お問い合わせ
2 分で読むことができます

物体検出の開発経過 その2

執筆者 Dragon 更新日時 2020年8月15日

こんにちは。Dragonです。 
今回は、前回の続きで物体検出の開発過程になります。ここでは物体検出(車)をするためにOpenCVで分類器を作るまでを紹介したいと思います。前回記事はこちらです。

目次

 前回はPythonを使って定期的に写真を取るまで紹介しました。
その取得した写真を振り分けるところから説明をします。

1.画像振分け

 一番悩みどころが、車体全体が写っていない場合の処理でした。後で説明しますが、撮った画像から車の座標をもとに機械学習させるのですが、車の一部だけが写っていることも多く”車っぽい”ものがあると、それも車として認識してしまうので、今回は車全体が写っていないものはNGの写真として処理させることにしました。そのほか軽自動車、普通車、トラック、バスなど車の形などあり、まだどうするか悩みどころです。とりあえずスタートしたので開発途中で考えることが多かったです。

以下の内容が判断が厳しくさせる内容でした。
・車の一部しか映ってない
・車体の大きさ
・地面の光と影など
以下の写真のように、道路の日の当たっている部分や影や車の一部などの画像を分ける判断が必要でした。

物体検出その2

 

2.車の座標データを作成

 撮った写真をNeoTrainingAssistというツールを使って画像の車の座標リストを作成します。本来は、以下のように画像1枚づつファイル名、認識したい物体の個数、X座標、Y座標、横の長さ、縦の長さを指定します。
<車の座標リストの内容>
 ディレクトリ名\ファイル名.jpg 1 233 200 137 78←こんな感じです。

 これをNeoTrainingAssistは、以下の画面のようにクリックしてドラッグするだけで、枠線が表示されるので問題なければOKで次々と作業が簡単にできます。
これが無かったら相当大変でした。

Assist1

Assist2

不正解ファイルもリストが必要で、不正解ファイルは画像のディレクトリ+ファイル名を示したファイルのみの記述になります。
ディレクトリ名\camera0.jpg
※これはコマンドでファイル作成が楽かと思います。

dir 【フォルダ名】 /b > 【ファイル名】

 

3.サンプルファイルの生成

 用意できたら、以下のコマンドで、現在の画像からサンプル画像を増やすことができます。これは実際の画像ファイルを増やすのではなくvecファイルというものに書き込むもののようです。

opencv_createsamples.exe -info positive.dat -vec positive.vec -num 3000


正解画像とリストファイル(positive.dat)、不正解画像とリストファイル(negative.dat
を用意できたら、以下のコマンドで分類器(カスケード)の作成になります。

opencv_traincascade.exe -data cascade -vec positive.vec -bg negative.dat -numPos 3000 -numNeg 1874

実行すると、cascadeフォルダにcascade.xmlというファイルが作成できるので、これで分配器が作成完了となります。

4.実践

 実際の画像2447枚を3000枚までサンプルを追加して、不正解画像は1874枚で処理しました。結果は、こんな感じです。

result

 

 まだまだ難しいというところです。車両が通るたびに捉えてますが、安定していません。
実際、やってみるとどういう影響があるのか色々と分かることが多かったです。
ちなみに、背景などごちゃごちゃしない状態で、同じ物体でとってみました。
画像は正解10枚程度で不正解5枚くらいです。

 

result2

 

 少ない枚数の割には、ドローンの認識が良いかなと思います。認識したいものが同一で限りなく近い事、背景などに余計なものが無い状態であればかなりの精度で認識できるのかと思ってます。今は開発を中断していますが、再開するきっかけで他のライブラリやGoogleCoraborateなどGPUで開発出来る環境など新しい進捗がありましたら記事にしたいと思います。

それでは、また次回。

Dragon

執筆者 Dragon

沖縄県宜野座生まれ、新潟競馬場で馬に関わる仕事を携わり、当時トレンドのIT業界へ参入。中国、ベトナムのオフショア開発を経て、INSIGHT LABを一時退職し、JICA青年海外協力隊でラオスへ渡航。2020年3月に帰国し、新潟研究開発センターへ合流。社会課題をテクノロジーを使って解決したい。世界的に話者の少ないラオ語を話せる。趣味はランニング。

 

こちらの記事もおすすめです

2 分で読むことができます。

物体検出の開発経過 その1

2 分で読むことができます。

物体検出の開発経過 その2

1 分で読むことができます。

スタートアップ大国イスラエルで会社を創った話し-1