皆様はコンピュータビジョンという用語をご存知でしょうか。例えばデジタルカメラに搭載されている顔画像認識や、Google Street Viewの360度パノラマ表示、XBox360のKinectによるプレイヤーのジェスチャー認識など、これらは全てコンピュータビジョンの技術による製品です。
この連載では「コンピュータビジョンを応用した実際の製品」を毎回1つのテーマのもとで紹介し、その仕組みを誰でも理解できるレベルで簡単に解説していきます。これにより「いかにコンピュータビジョンが身近な存在で、かつ、いかにその使われている場所が急速に増えているか」をたくさんの方に知っていただきたいと思っております。
私は今回の連載のテーマであるコンピュータビジョン技術の研究者です。慶應義塾大学 理工学部 青木研究室という研究室に所属しております。大学院の修士課程を卒業したあと某企業にてソフトウェア開発の仕事を行っていたのですが、この春でその会社を退職して転身をしたという駆け出しのコンピュータビジョン研究者です。
「え、結局コンピュータビジョンってなに?」というあなた。何事もせっかちなのはいけませんよ。今回より詳しく説明していきますのでぜひ次回以降もお読みください。
コンピュータビジョン(英語ではComputer Vision)は科学技術分野の一種類で、「コンピュータを用いた視覚(Vision)の実現」を研究する学術分野です。つまり「様々なタスクをこなすための情報を画像データから抽出する」ことで、例えば顔画像の認識や、ノイズの自動除去、高画質画像の自動生成といった「コンピュータによる視覚」を実現するのがコンピュータビジョンの目的です。
コンピュータビジョンは世界中の情報工学系の優秀な研究者達が競って研究している活発な学術分野です。コンピュータビジョンのような情報工学系の学問はノーベル賞などがないので実感は沸きづらいかもしれませんが、世界中で研究者が増えており年々その規模が広まっています。またその研究の活発さとあいまって、年々実社会での応用例が爆発的に増えています。これを読むまで知らなかったかもしれませんが、あなたの身の回りや会社のまわりでは数多くのコンピュータビジョン技術が使われています。
今回は連載の第1回ということで、まずイントロダクションとして、コンピュータビジョンの概要と、次回から紹介していくアプリケーションのリストを紹介します。
コンピュータビジョンってなに??
コンピュータビジョンは、コンピュータによる視覚を実現する技術です。ある「画像データ」を用いて何らかの処理を行い、人間の視覚と同じ視覚処理を実現します。また、時には人間では不可能な視覚処理をも実現します。要するに、静止画もしくは動画を入力データとして使い、人間の視覚のようなものをコンピュータのソフトウェアで実現するというのがコンピュータビジョンという分野です。
例えばデジタルカメラでの顔画像認識は人間の視覚と同等の仕組みを、コンピュータビジョンで実現したものです。一方、Google Street Viewの360度視点画像は、人間ひとりでは実現できない技術ですが、これも視覚に関するコンピュータ技術なのでコンピュータビジョンの範疇というわけです。
コンピュータビジョンが処理対象としている「画像データ」の種類は様々で、通常のデジタルカメラや携帯カメラなどで撮影する画像データや、ステレオカメラなどの複数方向からのデータや、ビデオシーケンス、距離画像カメラによる奥行き情報付きの距離画像など様々なものがあります。
コンピュータビジョンの代表的な技術としてあげられるものには、例えば以下のようなものがあります。
- ステレオビジョンによる3次元形状再構成
- ビデオ中の物体トラッキング(人間の動きの追跡など)
- 顔画像認識などに代表される物体認識
- オプティカルフローによる動き推定
- 超解像や写真レタッチなどの画像復元
- AR(複合現実感)
- イメージスティッチング(パノラマ画像の自動作成)
このリストを見て「えっ!?」と思った方、心配しないでください。この連載では先に技術を数式で把握してからその応用例を説明するという教科書みたいな頭が痛くなるような手順でコンピュータビジョンを紹介したりするつもりはありません。もちろん専門の技術者の方々にはこれらの具体的なアルゴリズムを順番に勉強していただくのが一番なのですが、今回の連載の目的はあくまで「コンピュータビジョン技術が幅広くいろいろなところで用いられていることを知ってもらう」ことです。よって、実際に世の中にある製品例を順番に紹介するという形で、それらの仕組みであるこれらのコンピュータビジョン技術を紹介して行きます。
コンピュータビジョンとその周辺分野
コンピュータビジョンはコンピュータにプログラミングされた人間相当の眼を作ることを目的としているので、しばしばコンピュータグラフィックスの逆問題であると説明されます。コンピュータグラフィックスは人間が人工的に作り出した3次元モデルを、我々がそれをディスプレイで見るための2次元への投影を表示するための技術ですが、コンピュータビジョンは実世界を撮影した2次元の画像データから人間が頭でそれらの中の情報を認識して処理するための3次元の情報を抜き出すことを目的として技術だからです。
こういう対称関係があるからか、こらら2つは相互に補い合う場面が多くみられます。バーチャルリアリティ(VR)や拡張現実感(AR)などの画像表示技術などがまさにそうで、これらをコンピュータグラフィックスと言えばよいか、コンピュータビジョンと呼べばよいか曖昧なところがあります。
また、最近技術革新が著しいロボットにもコンピュータビジョンが重要な役割を果たしています。ロボットが自力で移動するためには当然ロボットが自分の周辺環境を画像やその他センサで把握する必要があり、ロボットの技術でもコンピュータビジョンの技術が非常に重要な役割を果たしています。
この連載で紹介するコンピュータビジョンのアプリケーション
第2回から、以下のようなアプリケーション例を紹介・解説していく予定です。
- マッチムーブ:映像中の3次元座標を自動認識し、カメラが回転しても違和感無く3次元画像を表示する技術
- デジタルカメラ:顔画像認識
- Computational Photograhy:HDR、超解像、など
- ロボットの画像処理:テレプレゼンスロボットの画像処理
- AR(拡張現実感):ARToolkitの仕組み
- ジェスチャー認識:Kinectによる人間のジェスチャー認識や、普及が近づいているPC操作ジェスチャ認識
- 顔画像関係:顔画像3Dトラッキング。表情による感情解析
- スポーツ解析:サッカーやテニスでのゴール判定や選手トラッキング
- モーションキャプチャー:基本的原理からAvatarでの最新のものまで
- 車載カメラ認識:歩行者や車両認識。ステレオカメラによるレーン認識など
- 3次元計測(イメージベースドレンダリング):Google Street Viewなど
- 3次元計測(ポイントクラウドベース):Microsoft Photo Synthなど
- 医療画像処理:病変の自動認識や、内視鏡画像の3次元可視化
- マシンビジョン:工場での自動検査装置やロボットアームを助ける画像処理
- セキュリティ:ビデオ解析による監視システム。
- 生体認証・OCR:指、顔、文字の認識
- 画像検索:画像による検索Webサイトのための特定物体認識
- 航空宇宙画像処理:月面画像からの月面表面の3次元形状推定や、衛星写真と地上写真の対応づけなど
冒頭でも述べたようにコンピュータビジョンは研究段階から実用化への期間が非常に早く、連載していく中で紹介できる実例が増えていくのは確実です。よって、そのたびに新しいテーマを追加して紹介ようと考えているので、これはあくまで現状の紹介予定リストであることをご了承ください。
また、SIIGRAPHなどコンピュータビジョンが関わってくる著名な国際会議には、MicrosoftやWalt DisneyなどComputer Visionに強い企業が新製品に用いる技術の研究成果を発表してきます。よって、それらの国際会議の速報記事も提供していければとも考えています。
連載開始に添えて
コンピュータビジョンという分野はPCとインターネットの急速な発展に呼応するようにこの20年で急速に発展し、コンシューマ向け、ビジネスユース向けを問わず実際の社会で製品に用いられる技術となりました。そしてこの発展傾向は近年も継続しており、更なる急速な発展が予想されます。
その一方で、コンピュータビジョンは必要な周辺分野の知識が高度かつ多岐にわたり(機械学習、人工知能、ロボット制御、信号処理、物理、数学、神経科学など)、専門で勉強しない限りなかなか理解するのは難しい分野です。ですが、この連載で紹介していくようにコンピュータビジョンは身近な存在になってきており、そろそろ一般の人でも基礎的なところは知っていないとまずいくらいに普及が加速していると考えています。
また、カメラがあれば何処にでも適用できるという性質がゆえ、他の専門分野と比べるとアプリケーション例があまりにも多く、コンピュータビジョンの全てを俯瞰するのはなかなか難しいのが現状です。
加えて、この十年程で急速に発展した技術分野であるがゆえ、初学者向けや専門外の方向けに解説されている記事や書籍などはまだまだ少なく、世の中で広く使われているのにもかかわらず一般の人には各技術の仕組みがブラックボックスのままだともいえます。
これらのような背景から、今回、幸いにもこのような情報発信の場を提供いただけることになりました。この連載を通じてコンピュータビジョンの技術がどこに使われているかを整理していくことで、コンピュータビジョンの認知度が少しでも高まれば幸いです。