質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

577閲覧

機械学習による画像認識の手法について質問

Chamuji

総合スコア12

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/03/19 13:57

機械学習を用いたデータ(xml)を用いて画像認識をしたいと思い、色々と調べています。

機械学習については現在勉強中なので的外れな質問になってしまいますが、

カスケードファイルと呼ばれる拡張子がxmlのデータを作成したい場合は、何を行えば良いのでしょうか。
また、機械学習について詳しく記載されているwebサイトがあれば教えて欲しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2019/03/19 14:50 編集

カスケードファイルで通じるような標準化されたファイル形式はないので、なにかの例を見て質問したのであれば、参考リンクを追記してください。
Chamuji

2019/03/19 15:07

pepperleaf様 ご回答ありがとうございます。サイトを見てみます。
Chamuji

2019/03/19 15:10

tiitoi様 ご回答ありがとうございます。 OpenCVの公式サイトからダウンロードできるデータの中に "haarcascade_frontalface_default.xml"という顔の特徴を持つデータや、他にも目の特徴を持つデータの拡張子がxmlだったので、特徴データはxmlで作成しなければいけないのだと考えておりました。
tiitoi

2019/03/19 15:19

これで生成される xml は物体検出用のものになりますが、やりたい画像認識は物体検出であっていますか?
Q71

2019/03/19 22:32

大昔にカスケードというコンピュータウィルスがありました。入力した文字が滝のように下に落ちていきます。「カスケード ファイル」とだけいうと、XMLの書式を勉強すればわかりますが、上位下位の構造があるファイルです。意味が違えば意図が通じません。ご注意を。 同じく、「画像認識」とは、「この画像に写っているのは犬である」「犬と猫である」と、画像全体を識別するものです。一方、質問文に上がっているのは「物体認識」で、「この位置に、犬がいる」「この位置に車がある」と、位置を特定して認識をします。OpenCVでできるのは検出できる対象が決まっているものです。 本当にあなたがしたいことは何ですか?「これこれをしたい。こういうものを調べたところ、こうすればいいらしい。それにはこれが必要だ。どうすれば?」と、最初から順番に説明するといいと思います。
Chamuji

2019/03/20 06:56

Q71様 ご回答ありがとうございます。 画像認識と物体検出は全く同じものだという風に認識しておりました。 違うものなんですね。 私がしたいことは麻雀牌を検出し、自分の上り役を自動的に計算することがしたかったです。 つまり、物体検出を行いたいということで間違い無いでしょうか。
Chamuji

2019/03/20 06:57

tiitoi様  現在、私がしたいことは麻雀牌を検出し、自分の上り役を自動的に計算することがしたかったです。 これを行うためには物体検出を行うという認識で間違い無いでしょうか。
tiitoi

2019/03/20 07:48

画像認識というと、画像になにが写っているかを判定する画像分類 (例: 猫か犬か)、画像に写っている物体を検出する物体検出 (例: 画像に写っている人物を矩形で検出する) などいろいろな種類があります。 今回は麻雀牌を画像から検出するということなので、物体検出が該当すると思います。 CascadeClassifier() は今回のケースに使用できます。 まずは回答のリンクを参考に、画像を自分で撮影するか、ネットから集めて、画像のどこにどの牌があるかの正解データを作りましょう。←手作業なのでここが一番面倒で大変な部分です。 ラベル付け補助ツールなど使うといいかもしれません。 https://github.com/NaturalIntelligence/imglab
guest

回答1

0

ベストアンサー

OpenCV の CascadeClassifier() で詠み込む xml ですね。

opencv_createsamples.exe にデータを与えて学習を行うと、そのような xml ファイルが生成されます。

以下の Qiita 記事の手順が記載されているので参考にするとよいと思います。

openCVで物体認識 by traincascade - Qiita

投稿2019/03/19 15:18

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Chamuji

2019/03/20 15:47

tiitoi様 回答ありがとうございます。 opencv_createsamples.exe というのは拡張子からするにWindows限定のツールっぽいのですが、MacOSでも使用することは可能なのでしょうか? また、OpenCVを公式サイトから4.0をダウンロードしてみたんですが、その中にopencv_createsamples.exeは見当たらず、3.4ではあるという状況です。 最新のOpenCVではなく、古いのを使うべきなのでしょうか? また、ラベル付け補助ツールのサイト https://github.com/NaturalIntelligence/imglab のツールを使う場合は、寄付を行わないと使用することが出来ないのでしょうか? 質問が多くて申し訳ありませんがご回答よろしくお願いします。
tiitoi

2019/03/20 16:30

> MacOSでも使用することは可能なのでしょうか? 4 でもまだあるみたいです。OpenCV は基本的にソースビルドして使うものなので、Mac でもソースビルドしてバイナリを作れば使えるのではないでしょうか? (Mac OS は持っていないので、こちらで試すことはできませんが) https://docs.opencv.org/4.0.0/dc/d88/tutorial_traincascade.html > 寄付を行わないと使用することが出来ないのでしょうか? 寄付は任意なので、別にしなくても使えると思います。 `<ファイルパス> <pos or neg> <x>, <y>, <width>, <height>` という形式で物体がどこにあるかというアノテーションを作らないといけないので、数値を直接入力して作ってもいいですが、大変なので GUI ツールを使われてはということで提案しました。imglab がそのまま OpenCV で使えるファイル形式を出力できるわけではないので、そこからさらに Python コードで OpenCV で読み込める形にしてあげる必要はありますね。
Chamuji

2019/03/22 04:30 編集

tiitoi様 回答ありがとうございます。 現状はWindows、opencv3.4環境でやってみようと思います。 tiitoi様 申し訳ありませんが、立て続けに質問をしてもよろしいでしょうか。 現在、opencv_createsamples.exeとopencv_traincascade.exeの作業をおこなっております。 opencv_traincascade.exeで1枚の画像から50枚の画像を複製、vecファイル作成をしました。 その次にopencv_traincascade.exeを実行した場合、以下のようなエラーになってしまいます。 ===== TRAINING 0-stage ===== <BEGIN POS count : consumed 40 : 40 Train dataset for temp stage can not be filled. Branch training terminated. Cascade classifier can't be trained. Check the used training parameters.   上記のエラーの原因についてなにかご存知でしたら教えていただくことは可能でしょうか 以下のサイトの手順で作業を進めいています。 https://www.pro-s.co.jp/engineerblog/opencv/post_6397.html
tiitoi

2019/03/22 08:48

データがないのでこちらで試すことはできないので原因はわかりませんが、エラーメッセージ「Train dataset for temp stage can not be filled」で調べると、https://qiita.com/N2i-tanaka/items/628c546187771f0daf8d が出てきましたがいかがでしょうか。
Chamuji

2019/03/22 09:12

tiitoi様  そちらのサイトに記載されているエラー対処法のうち、 「-w 24-h 24 に設定」は試してみました。 「改行コードが違う」がどこを調べたり、直してよいかわからずまだできておりません。 以下のサイトのpositive画像とnegative画像を使用してやっています。 https://github.com/pddenhar/OpenCV-Dashcam-Car-Detection 以下のコマンドを入力してvecファイルなどを生成しています。 opencv_createsamples.exe -img .~~/pos/v1_0001.jpg -vec .~~/vec/ooo.vec -num 50 -bgcolor 255 -maxidev 40 -maxxangle 0.8 -maxyangle 0.8 -maxzangle 0.5 -show opencv_traincascade.exe -data ./cascade/ooo/ -vec ./vec/ooo.vec -bg ./neg/nglist.txt -numPos 40 -numNeg 20
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問