新規記事の投稿を行うことで、非表示にすることが可能です。
2019年10月17日
【6日目成果】英語版Udemy講座で学ぶ!OpenCV、ディープラーニングを使ってpythonで画像認識
進捗 54%(+9%)
順調。
しばらくは動画の画像認識はないようなので、Macのセットアップはほっておく。
画像認識の勉強はAPIをコールしながらも、多重ループを使ったり、複雑なAPI呼び出しを繰り返したりというのを想像していたのだが、OpenCVを使ったものはまったく違う感じだ。
■セクション6:物体検出
・テンプレートマッチング
テンプレートマッチングの複数のアルゴリズムを試して比較を行う。うーん、matchTemplate関数を一回コールするだけで、テンプレートマッチングが完了するのがすごい!これがOpenCVの威力か!
pythonのeval関数の説明あり。pythonの勉強はしたことがあるが、evalは知らなかった。勉強になる。
evalとは文字列(式)を実行(評価)してくれるのだ。
例えば、eval('1 + 1') は2になる。
検出結果を見るとTM_CCORRのアルゴリズムの検出だけが間違って検出されている。
OpenCVのドキュメントでも同様だ。
https://docs.opencv.org/3.4.3/d4/dc6/tutorial_py_template_matching.html
Matching Resultの画像の一覧を見る。なるほど、画像の白いポイントが検出位置になっているようだ。全体が白いところに引っ張られて検出が間違っているようだ。正規化を行ったTM_CCORR_NORMEDは正しく検出できている。
一つずつ見るとTM_SQDIFFとTM_SQDIFF_NORMEDは反対の黒い所が検出位置になっている。差分で評価を行うアルゴリズムなので差分が最小になる所=黒が検出位置か。コードも同様になっていることを確認した。
・エッジ検出
Cannyのアルゴリズムに掛ける前に、ぼかしをしておくときれいにエッジが検出できるとのこと。改めて処理した結果の差を見ると大きく異なる。
https://docs.opencv.org/3.4.3/da/d22/tutorial_py_canny.html
OpenCVのドキュメントではいきなり、エッジ検出なっている。
検出対象の画像の背景が元々ぼけている画像だからか。非常にきれいにエッジ検出できている。Cannyのしきい値の設定もポイントなんだろうな。
・輪郭検出
単に輪郭が検出できるだけでなく、外輪郭の線、内部の輪郭の線を区別して検出できて、さらに内部の輪郭をグルーピングできている。
https://docs.opencv.org/3.4.3/d3/d05/tutorial_py_table_of_contents_contours.html
■次は
セクション6の残りを終わらせたい。
このコースへのリンク
Python for Computer Vision with OpenCV and Deep Learning
全般ランキング