「OpenCVにより制作されたソフトウェアの事例に興味がある」
「ライブラリで実現できる画像認識・解析をどのように活用できるのか知りたい」
自動運転や無人化など画像処理のニーズが高まっている今では、OpenCVを活用する事例が増えています。豊富な機能が備わったライブラリにより、スムーズにソフトを開発できるのが特徴。
この記事ではOpenCVの活用事例について分かりやすく紹介します。
OpenCVとは?
OpenCVとは、正式名称で「Open Source Computer Vision Library(オープン・ソース・コンピュータ・ヴィジョン・ライブラリ)」と言います。
OpenCVは2006年に最初のバージョンが公開された後、バージョンアップによって機能が改善されました。現在のバージョンやソースコードなどはOpenCVのReleasesで確認できます。
その名が表すとおり画像処理・画像解析および機械学習等の機能を持つオープンソースのライブラリのことです。
オープンソースですので、基本的に無料で使用することができます。Pythonを始め、C/C++、Java、MATLAB用として公開されており、もともとは大手企業インテルが開発・公開しています。
OpenCVを活用した事例4選
多くのソフトウェア制作会社は開発時に利用した言語やライブラリを隠すため、ネットで検索しても法人向けの事例はあまり出てきません。しかし、エンジニアなどがOpenCVを活用した事例はいくつか掲載されています。
あなたが知っておくべきOpneCVの活用事例は次の4つ。
- 画像から人の手を認識
- 画像から顔のパーツを認識
- 上司を認識して画面を隠蔽
- OpenCVによる画像編集
それぞれの事例について詳しく見てみましょう。
【ONETECH】流通向け商品画像認識ARアプリをOpenCVで制作中
画像から人の手を認識
入力された画像から人の手を解析して、機械学習によって手の範囲を識別する事例です。Webカメラの映像をOpenCVで使える画像形式に変換して、識別した手の範囲や筋に線を挿入します。
手の範囲を水色の線で囲い、指の筋を赤線で出力しているのがこの事例の特徴。カメラで手を認識できるようになれば、コンピュータの遠隔操作やカメラ撮影などに役立ちます。
画像から顔のパーツを認識
OpenCVを活用したプログラムが機械学習をして、顔のパーツを認識する事例です。開発者はプログラミング言語であるPythonを活用し、高精度の顔認識を支援するデータセットによりソフトを制作しました。
「Helen dataset」という学習データにより、コンピュータが顔全体を細かく認識できるのが特徴。顔のパーツに点をつけた画像を学習させることで、入力した画像から顔を識別できるのです。
上司を認識して画面を隠蔽
オフィスにいる上司が近づいてきたとき、自動で画面を隠してくれるソフトの事例もあります。業務に関係のない私用を隠せて、上司に怪しまれることを防ぐのが本事例の目的です。
自分のデスクにWebカメラを設置して、上司の顔を認識したときに画面を切り替えるのがソフトの仕組み。撮影した画像から顔部分以外の要素をカットして、機会に学習させることで上司の認識が可能になります。
光やブレによって認識できない場合がありますが、開発者はカメラによって上司を認識させることに成功させました。本事例のソースコードはBossSensorから確認できます。
OpenCVによる画像編集
機械学習を活用するには学習データが必要になる場合が多く、OpenCVにはデータ作成を支援する編集機能が備わっています。学習データを作るのに必要な工程と、それに対応したOpenCVの機能は次の通り。
- 物体検出するための前処理:グレースケール化/閾値処理/スムージング
- 画像から物体検出:輪郭検出/輪郭の近似/学習済みモデルによる物体認識
- 検出した画像の加工:検出領域の切り出し/物体の位置揃え/正規化
OpenCVによる画像編集が気になる人は、「機械学習のためのOpenCV入門」を見てみましょう。
まとめ
手の範囲を解析したり人物の顔を認識したりするなど、OpenCVによってさまざまな画像処理を実現できます。画像認識・解析が必要なソフトウェアを開発したい人は、OpenCVの活用を検討してみましょう。
AI(人工知能)システム開発
ONETECHはベトナムの優秀なエンジニアによる、ディープラーニング(Deep Learning)やニューラルネットワークなどを利用した様々なAI(人工知能)開発を提供します。
将来のAI社会に向けて、受託開発だけでなく、自社サービス開発またR&DセンターでAI研究開発に積極的に取り組んでいます。
またベトナムのAI開発の第一人者とのパートナーシップにより、オープンAPIだけではなく、スクラッチ型のAI開発を実現しています。
ONETECHは、将来の各業界にイノベーションをもたらすAI活用をR&Dチームにおいて日々研究開発しています。