Webカメラの画像を取り込んで処理してみた!
昨今AIが進化するなかで、画像解析技術が注目を集めています。ビジネスシーンにおける導入事例も増加しており、今後の発展にも大きな期待が寄せられている分野です。「画像解析に興味はあるけど、実際にどうやってやるのかがわからない」そんな方も多いのではないでしょうか。
今回はCONEXIOBlackBearとWEBカメラを使って、
簡単な画像解析を行ってみましたのでご紹介します!
画像解析の流れ
今回はCONEXIOBlackBearに接続したWebカメラから取り込んだ画像を、画像認識ライブラリー「OpenCV」を用いて解析します。
OpenCVは、正式名称「Open Source Computer Vision Library」と言います。その名が表すとおり画像処理、画像解析および、機械学習などの機能を持つオープンソースのライブラリです。各種プログラミング言語(Pythonをはじめ、C/C++、Javaなど)用に、インターフェースが公開されています。
今回の具体的な画像解析の流れですが、以下の機能を持つWebアプリを作成し、画像解析の一つ「テンプレートマッチング」を行います。プログラムの詳細な掲載、解説は行っていないのであらかじめご了承ください。
・ストリーミング機能 (Webカメラで映した映像をWebアプリ上で表示)
・テンプレート画像撮影機能
・テンプレートマッチング画像撮影機能
画像解析の準備標準装備
-
OpenCV、Pythonのセットアップ
CONEXIOBlackBearでは、OpenCV、Pythonがプリインストールされており、すぐに使用できます。※OSのバージョンによって、これらのライブラリのバージョンは異なる場合が有ります。
画像解析(テンプレートマッチング)の実施
「テンプレートマッチング」とは、画像の中から”テンプレート画像”と類似した部分を探し出す画像処理のことです。今回は、作成したWebアプリの機能を使って、このテンプレートマッチングを行った画像表示を行います。OpenCVでは、これらの機能を少なく簡単なコードで実装することができます。
-
テンプレート画像、マッチング画像撮影
Webカメラで映した映像をWebアプリ上で表示します。(ストリーミング機能)
カメラを調整し、「テンプレート画像撮影」ボタンをクリックして撮影します。(必要に応じて、トリミングなどを行って解析しやすい画像を作成します)
再度、カメラを調整し、「テンプレートマッチング」ボタンをクリックして撮影します。
-
テンプレートマッチング結果確認
Webアプリ上でテンプレートマッチング結果を画像で確認します。
テンプレート画像に類似した部分を抽出して赤枠を描画することができています。
今回、掲載ページの都合上、載せることはできませんでしたが、実装したプログラムは全体で100ステップ程度と少ないコードで実装することができます。例えば、画像マッチング処理を行うプログラムは、たったこれだけで実装できます。簡単ですよね!
OpenCVを使った画像解析の例をご紹介しました。今回はテンプレートマッチングだけのご紹介となりましたが、製造ラインでも製品の外観検査などに応用されている、とても役に立つ技術です。OpenCVも他のライブラリと組み合わせて、人の顔の検出など多くのことができるようになっています。応用的な画像解析やWEBアプリ実装などについても、またの機会にご紹介できればと思います!