第8回目となる今回からは、「コンピュータビジョン」に関するテーマを多く扱っていきたいと思います。
今回はまず、その概要を紹介していきます。

人間が外界から得る情報の8割以上が、視覚からだと言われています。Wikipediaには、”コンピュータビジョン(computer vision)は大雑把に言って、「ロボットの目」を作る研究分野である”とあります。つまり、「8割以上の情報を得ている人間の目をコンピュータとカメラで作ろう」ということです。

さらに近年では、手足のあるロボットだけでなく、ドローン(無人航空機)、自動車の制御、スマートフォンのアプリ、Webサービス、監視カメラなど適用先は幅広いものとなっています。コンピュータビジョンは、普及期に入ったばかりで、まだまだ伸びしろ、ビジネスチャンスがある分野です。
コンピュータビジョンについては、数多くの学術論文や書籍、Slideshare、ブログなどですでに解説されています。しかし、それらのほとんどは、理論の詳細や、どうやって実装するかのみを記述しているもの、特定の技術のみに特化したものです。

そこで今回は、どういう技術がすでにあるのか、何に使えるのかに焦点をあて、分りやすく全体像を説明します。各技術の詳細、コーディング方法などは、学術論文、書籍、Webページで解説されていますので、検索してみてください。

コンピュータビジョンで何ができるのか?

コンピュータビジョンの概要を下図にまとめました。目の役割を果たすカメラにより現実世界の様々なものを撮影し、脳の役割を果たすコンピュータにより処理します。例えば、どんな画像なのか、何が写っているのか、物体までの距離は何メートルか、などを求めることができます。
また、インターネット上にアップされている写真、動画を処理することもできます。例えば、手持ちの画像と類似した画像をインターネット上から探すことができます。

もう少し技術的な視点から説明すると、機械の目から見た世界は、0と1の数字の組み合わせで表されるデジタルデータです。膨大な0と1で表される画像、動画をコンピュータで処理して、何が映っているかを自動で判定したり、映っている物体までの距離を計測したりする技術がコンピュータビジョンです。

図1 コンピュータビジョン技術の概要

図1 コンピュータビジョン技術の概要

コンピュータビジョンが何に応用できるのか具体的な例をいくつか紹介します。

デジタルカメラ、Facebook、エアコンの事例
デジタルカメラやスマートフォンのカメラには、人間の顔を検出して、ピントや露光を制御する機能がすでに搭載されています。また、Facebookでは顔を自動的に検出することでタグ付けを容易にできるようになっています。さらに日立や三菱電機の一部のエアコンでは、カメラが搭載されていて、人を検出することで快適性、省エネ効果を高めることができます。

自動車の自律走行、安全運転支援
カメラ、ミリ波レーダ、レーザレーダのいずれか、またはそれらの組み合わせで、周囲の車両、歩行者、車線を認識し、車を自動で制御する技術があります。完全に自動で走行する車はまだ研究開発段階ですが、衝突の危険性がある場合に自動でブレーキをかける機能はすでに製品化されています。アメリカでは、自動ブレーキ機能を標準装備にすることが決まったため、今後さらに普及するでしょう。

Google Earthの3次元地図
Google Earthでは、空撮した複数の画像から建物の3次元形状を自動で計測することで、地図の3次元化に成功しました。一部地域で3次元地図に対応しており、視点を変えて建物などの構造物をいろいろな角度から見ることができます。

コンピュータビジョンの技術が成熟すれば、間違いなく人の生活が変わります。自動車の自動運転が可能になったり、現地に行かずしてリアルな情景を3次元で観られるようになったりします。

機械の目は人間の目を越えられるのか?

機械の目は人間の目を越えられるのでしょうか?人工知能が、将棋やチェスでプロに勝つことがたびたび話題になりますが、視覚についても特定のタスクに関してはコンピュータの方が優れているということはすでに起こっています。

例えば、昔流行った「ウォーリーを探せ」のような問題はコンピュータが得意で、人間よりも圧倒的に早くウォーリーを探せるでしょう。また、人混みの人数をカウントする、数多くの画像から類似した画像を探し出す、というような問題もコンピュータが人間を凌駕できるでしょう。今後も、機械の目が人間の目に勝てる領域は間違いなく増えることが予想されます。

コンピュータビジョン分野における、オープンソースライブラリのデファクトスタンダードの地位を確立したOpenCVは、2006年にリリースされました。それまでは、様々な処理を自前でコーディングする必要があり、手法の詳細まで理解していなければなりませんでした。

しかし近年では、基本的な知識さえ押さえておけば、ライブラリを用いてある程度のアプリケーションを実装できます。ライブラリは今後も充実していくことが予想されます。コンピュータビジョンの専門家だけでなく、スマートフォンアプリ開発者、Webエンジニアなど、今までコンピュータビジョンに縁の無かった人でも必須になる時代はそう遠くないでしょう。

また、コンピュータビジョンで必要な知識は、機械学習、線形代数、最適化問題など多岐にわたります。それらは、音声の認識やビッグデータ解析など他分野でも間違いなく役に立ちます。ドローンのように新たなハードウェアは今後も登場し、その際に、コンピュータビジョンの知識は必ず役に立つはずです。

次回は、コンピュータビジョンの要素技術と応用範囲について、事例を紹介しながら説明していきます!