ラズベリーパイで撮影した写真の解析をしたいと考えております。
やりたい事は写真の中のオブジェクト(顔ではありません)の数のカウントとオブジェクトのサイズを測る事です。
画像解析についてよくわかっていないのですが、PythonのOpenCVで可能な事なのでしょうか?
ご存知でしたら教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
まず、オブジェクトという概念が抽象的すぎます。
以下の記事にような事をしたいのであれば、現時点でOpenCVでは難しいと思います。
http://jp.techcrunch.com/2017/06/17/20170616object-detection-api/
あとオブジェクトのサイズを測りたいとの事ですが、これは無理だと思います。
なぜなら画像には深度情報がないためです。
最近、発売されたGooble Tangoであれば深度カメラが搭載されているのでサイズ測定が可能です。
http://www.moguravr.com/google-tango-ar-case/
現在、Tango対応の端末はLenoveしかありません、私も所有していますがものすごく楽しいです。
投稿2017/06/21 03:36
編集2017/06/21 03:43総合スコア930
0
ベストアンサー
*オブジェクト数のカウント
特定のオブジェクトのみを検出するのであれば、OpenCV標準の物体検出でよいと思います。
検出した物体それぞれについて~、という処理がセットでついてきますね。
顔の例でいう、for (x, y, w, h) in face_list:
です。この中で、OpenCVが思う「顔っぽい」ものを根こそぎ拾うことができます。
顔じゃないものを調べたい、とのことですので、上の例で言えば、cascade_file
の部分を適宜必要になるxmlファイル(検出してほしいオブジェクトの設定ファイル)に差し替えればできますね。腕、顔、胴体、車、猫のようなみんながやりたがる物体検出については既にxmlが多数公開されていると思いますが、公開されていないものについては自前で用意しないといけません。
特定のものではなくていろいろなものを、という事でしたら、先に回答されている方が出されていましたが、SSDやYOLOが良いのではないでしょうか?
*オブジェクトのサイズを測る
検出したものの大きさが測れたらいろいろできそうで楽しそうですね。
*通常のカメラ1台
検出するオブジェクトまでの距離を決め打ちしておかないと測定は難しそうです。やるとしたら、1pxが何mmに対応するから、このオブジェクトは何cmです、のようなやり方になるのではないでしょうか?先のfor (x, y, w, h) in face_list:
の中で、オブジェクトが何pxかも拾えるので、あとは「縦・横のpx数 × 1pxが何mmに対応するか」で出せますね。
*複数のカメラ
ステレオマッチングで行けると思います。例えばですが、こちらが参考になると思います。この距離で何pxに見えるから、実際には何cmのような処理で測れそうですね。
投稿2017/06/22 22:24
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
OpenCVでも機械学習は出来ますが、本来の用途ではないので貧弱です。
Machine Learningのリファレンスを眺めても、あまり使えそうなものはないですね。
クラスタリングや分類問題ばかりです。
C++版のOpenCVはニューラルネットに対応しているようですが、性能はあまり期待できません。
Pythonなら深層学習のパッケージが充実しています。
それらを用いた方が労力的にも、性能的にも、応用が利くという意味でもよいでしょう。
Google発のKerasや、日本語のリファレンスが充実しているChainerなどがあります。
オブジェクトの面積に関しては、検出矩形の面積とみなすなら簡単です。
ある程度検出されるものが限定されているなら、矩形の面積を定数倍してしまうのもアリでしょう。
正確な面積でなくてもよい場合
YOLOやSSDなどが最近ホットです。これらはリアルタイムで動きます。
正確な面積が良い場合
マスクも矩形(バウンディングボックスといいます)も検出出来る手法を用いる必要があります。
Faster R-CNNなら資料も見つかるかもしれませんね。
投稿2017/06/21 10:46
総合スコア35658
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/21 11:43
2017/06/21 12:01
2017/06/21 12:13
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/21 11:38
2017/06/21 12:58