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

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

執筆者 BI LAB編集室 更新日時 2020年8月15日

こんにちは。
今回は、前回の続きで物体検出の開発過程になります。ここでは物体検出(車)をするために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枚で処理しました。結果は、こんな感じです。

 

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

 

 

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

それでは、また次回。

BI LAB編集室

執筆者 BI LAB編集室

BI LAB(データ活用研究所)編集室です。 BI、AI、DWHなどデータ活用に関するトレンドやニュースやコラムをほぼ毎日配信しています。押さえておきたい基本知識から、最新ニュース、事例インタビューやお役立ち情報・セミナーレポートまで、データ活用の専門家ならではの視点と情報量でお届けします。

 

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

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

【DBpedia探索2】新潟県にある新幹線の駅を調べてみる

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

Twitterアカウントロック! ~解除までの道のり~

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

プロ野球を支えるAIとは?WBCで活用された技術についてもご紹介