ワークレワークレ[ラズパイ]画像類似度チェック2019/6/262020/1/12目的ラズパイで撮影した画像を使って、画像の類似度チェックを行いたいと思います。類似度チェックとはこの記事で行う、類似度チェックとはどういうことかと言いますと。以下のような、リモコンをラズパイで撮影しました。この向きの状態を基準とします。次にリモコンを少し向きを変えた状態のものを、2つ撮影します。1つ目は真横に傾けたものAとしますもう一つは基準からほんの少しだけ傾けたものBとします。上記の画像AとBで、どちらが基準に近い状態かのチェックを行います。人間の目でひと目見れば、Bの方が基準の画像に近いです。これをプログラム上で判断できるようにします。pythonのOpenCVライブラリを使用すれば、簡単に基準となる画像との類似度を数値化することができます。なるリモコン画像を指定しておきます。以下の基準画像のことです。2.では現在ラズパイのカメラの前にあるリモコン画像を撮影します。状態の画像を取得できます。3.ではOpenCVライブラリを使った比較処理を行っています。最終的に、比較結果の画像に使われるmatches変数と類似度を表すdist変数を求めます。4.ではプログラム実行後のコンソールに類似値を表示しているのと比較結果の画像をcoImage.JPGという名前で保存しています。その状態が撮影され、基準のokImage.JPGと比較します。Aの状態のリモコンでプログラムを実行します。すると、類似値が表示され、比較画像(coImage.JPG)が実行ディレクトリに保存されます。72.73684210526316比較画像については、基準とAが並んでいて、リモコンのいろんな箇所がカラフルな線で結ばれています。次にBのようにして、プログラムを実行しました。今回も類似値が表示され、比較画像(coImage.JPG)が実行ディレクトリに保存されます。※画像は上書きされるので注意です。37.648648648648646今回は類似値は37となりました。Aの72とは2倍違います。先に述べた通り、カラフル線の長さのようなので、類似値が0になることは無いかと。今回のプログラムを用いると基準となる画像を用意しておくことで、あるタイミング撮影した画像との類似度を調べる事ができるようになりました。