「画像処理できるアプリを開発したくて、便利なライブラリを探している」
「OpenCVにより実現できる機能や活用事例について知っておきたい」
【ONETECH】流通向け商品画像認識ARアプリをOpenCVで制作中
画像や動画をコンピュータで処理できるよう、開発されたライブラリがOpenCVです。BSDライセンスで公開されているため、条件を守るだけで自由に変更・販売できるのが特徴。
この記事ではOpenCVの特徴や利用できる機能、活用事例について紹介します。
OpenCVとは?
インテルが開発・公開したオープンソースのライブラリがOpenCVです。もとの名称は「Open Source Computer Vision Library」であり、商用目的であっても無料で利用できます。
OpenCVは2006年に最初のバージョンが公開された後、バージョンアップによって機能が改善されました。現在のバージョンやソースコードなどはOpenCVのReleasesで確認できます。
初期のころはインテルが開発を進めていましたが、後にItseezという技術開発会社に引き継がれたのです。2016年にはインテルがItseezの買収を発表したため、現在はインテルがOpenCVを開発していることが推測できます。
利用できる機能
コンピュータの画像認識を支援する機能が多くあり、全ての機能を無料で使えるのがOpenCVの魅力です。具体的に利用できる機能として、次のような例があります。
- 認識している物体・オブジェクトの追跡・OpenCVで物体検出
- カメラの位置やユーザーの姿勢を検出するカメラキャリブレーション
- 線やテキストを画像に描画
- コンピュータがパターンを理解するための機械学習
- 利用したデータの読み込みや保存、出力
- Unity OpenCV 物体検出
- テンプレートマッチング
他にもコンピュテーショナルフォトグラフィやフィルター処理機能なども利用することが可能です。今後のバージョンアップによって機能が追加・削減される場合があります。
文字を認識するには?
物体を検出をする際は、まず入力された画像(カメラで撮影した画像などで)から、特徴量を抽出します。ものすごい計算をしながら学習済の特徴に合う部分がないか?
文字の認識をしたい場合は、物体検出より「OCR」か「パターンマッチング」が向いています。
ここでは、カスケード分類器による物体検出を説明しますので、文字認識を目指している方はOCRやパターンマッチングについて調べてみてください。
現在、OpenCVでカスケード分類機を作成するには、下記の2つの方法があり、この2つは、”特徴の抽出方法”に違いがあります。
- Haartraining(ハールトレーニング)
Haar-Like特徴によって機械学習を行います。 - Traincascade(トレインカスケード)
haartrainingのあとに作られました。
Haar-Like特徴・LBP特徴・HOG特徴から1つを選択できます。
「haartraining」が先に作られ、その後「traincascade」ができました。
サポートしている言語とOS
OpenCV 4では次のようなプログラミング言語を公式でサポートしています。
- C++
- Java
- Python
また、OpenCV 4が対応しているOSは次の通りです。
- Windows
- Mac OS
- Linux
- Android
- iOS
スマートフォン向けのOSも対応しているため、OpenCVを活用したアプリを開発できることが分かります。
OpenCVの活用事例
「実際にOpenCVでどのようなことを実現できるのか興味がある」と思う人もいるでしょう。OpenCVを活用した事例として次のような例があります。
- 看板を読み取り
- 交通標識を自動で画像認識
- 写真から顔を検出(OpenCVで物体検出)
- 対戦結果の自動記録
それぞれの事例について簡単に見てみましょう。
看板を読み取り
バインミーバーバーの看板を読み取り、位置を特定し、クーポン券やWEBサイトを表示!
いままでのクーポンアプリとの違いは、ビーコンやマーカーの読み取りではなくAI Yolo + OpenCVで実行しています。バインミーバーバー の画像データを50枚ほど教師データとしてAI Yoloでディープラーニング。
周囲が薄暗くなっても読み取れました。
今後の進化としては、アプリから複数の写真を教師データとしてサーバへ送りAI Yoloでディープラーニングで処理し、AIロジックだけアプリ側に格納してクーポンアプリを実行する。
CMSで画像データ(教師データ)、店舗、GPS、URL、クーポンなどのメタ情報を登録し、アプリ完結でクーポンアプリが作れます。
交通標識を自動で画像認識
iPhoneアプリで、交通標識を自動で画像認識しARで交通標識の意味を表示しています。
【ONETECH】AR + AIで標識認識アプリ作成しました。
- 運転中、屋外でもかなりの精度で読み取れました。
- 外国人が他国で生活する時、運転する時に標識の意味がわからないことがよくあります。
- このソリューションでどこへ行っても大丈夫です。
- 多言語も対応しております。
- AI Yolo + OpenCVをカスタマイズして開発しました。
- スマホカメラでも十分に高度な画像認識が可能です。
写真から顔を検出
コンピュータで読み込んだ画像を分析して、人物の顔を判断することがOpenCVによって実現できます。仕組みやソースコードについては「Face Detection using Haar Cascades」で確認しましょう。
コードを実行することで人の目や顔を認識していることが上記の画像から分かります。
対戦結果の自動記録
OpenCVの画像認識機能を活用して、ゲームの対戦結果から勝敗を自動記録することも可能です。実際に2015年にはスプラトゥーンの対戦勝率を自動で記録する仕組みを自作したプレイヤーが登場しました。
認識してほしい画像と無視すべき画像を数千単位で用意して、検出器を生成することで自動記録を実現しています。
まとめ
コンピュータに画像解析・認識させるのに無料で使えるOpenCVは便利です。コンピュータビジョンを活用したアプリを実現したい人は、OpenCVによるソフト開発を検討してみましょう。
ONETECHでは、2016年からOpenCVを利用した開発を盛んに行っております。次回のブログでONETECHの実績をご紹介いたします。
またONETECHでは、日本の有名大手ゲーム会社、ホログラム技術の応用、自動車、建築などの3DCGモデリング、UV、テクスチャ、アニメーションをベトナムオフショアで制作。ONETECHのUNITYエンジニアと連携しゲームや、映像、3D映像 技術、3Dホログラム、AR/VRアプリなどワンストップで開発可能です。
お困りのことがありましたら。お気軽にご相談ください。