ページ 11

細い物体の検出

Posted: 2018年5月14日(月) 10:29
by ttb
現在画像処理をc言語で勉強しています.
糸や紐などの細く直線的でない物体の検出の仕方が分からず困っています.
具体的なコードでなくても,どのように考えていけばいいのかでもよいので教えて頂けると助かります. 

開発環境は windows10 visualstudio 2013 C++で行っております.

Re: 細い物体の検出

Posted: 2018年5月14日(月) 11:25
by usao
この手の問題では
処理対象や実施状況等に関しての条件みたいな情報を書くべきではないでしょうか.

・画像に関して
 ・映像はカラーなの? グレースケールなの? あるいはその他?
 ・解像度はどの程度?
・検出対象の像に関して
 ・色とかが決まっている?
 ・常に明瞭に写ると期待して良い?
 ・細いって言うけど画像上では何画素くらいの幅になる?
 ・像の形:ポケットから取り出したイヤホンのケーブルのごとく,ぐちゃぐちゃに絡み合うとかある?
・実施状況に関して
 ・実施に際して,「都合が良い」背景を採用できる? (例えば,糸や紐と区別しやすい単色の背景を用意できる,とか)
 ・検出対象以外の物体が写り込むことが有り得る? (誤検出になり得る対象)
・etc

何かしらそういう話があれば,「その話の中で」考えることができますので,(誰かが)何かしらの回答を付けやすいでしょう.
(また,「これらを検出できればとりあえずOK」的なサンプル画像示すとか.)

Re: 細い物体の検出

Posted: 2018年5月14日(月) 12:03
by ttb
情報が全く足りなかったこと,申し訳ありませんでした.
画像に関しては 
 カラー画像
 解像度は640×480
対象物に関して
 色は基本的には黒または紺色のような色です.
 画像上で何画素になるかはわかりません.
実施状況に関して
 背景は単色ではなく糸以外にも複数の物体が映りこみますが,糸のような細い物体は検出したい対象以外には映り 込みません.

サンプル画像もあるのですが,この返信欄に載せる方法が分からないので,載せることが出来ません.
すみません.

Re: 細い物体の検出

Posted: 2018年5月14日(月) 15:04
by usao
うーん,最初に必要なのは
検出対象の「糸や紐などの細く直線的でない物体」というのを
画像データ上で「こういうもの」という具体的な言葉に置き換えることでしょうか.

例えば検出方法として
(1)検出対象たる"細い物"の像を構成する画素群を検出する
(2)それらを繋ぐ
みたいな方針を考えたとして,(1)はどうすればできそうか? とか.


>色は基本的には黒または紺色のような色です.

このことが他の物(背景や,検出したくない物体)と検出対象との差として利用できますか?
例えば,「検出対象は,輝度が背景よりも常に明らかに暗い」とか言えますか?
もしこれが言えるのであれば,検出対象と背景との間のエッジを(比較的ロバストに)抽出することができ,
且つ,エッジ点における輝度勾配方向が{検出対象側,背景側}のどちらを向いているかという事柄が知見として使えるかもしれません.
(対象が”細い”ことから,対象の両側のエッジ点を検出できれば,その間に対象の像が存在する,みたく推定したりとか.)

オフトピック
うーん,リニューアルしてからまともに繋がらない率がすごい……
ブラウザ「TLSハンドシェイクを実行しています…」→タイムアウト.