定義
スマートフォンのカメラが人間の「目」だとすれば、コンピュータビジョンは目に映った風景を認識して意味を読み解く「脳」の働きです。コンピュータが写真や動画などの視覚データを分析し、物体の種類や位置だけでなく、今どのような状況が起きているのかを自ら理解できるようにする人工知能(AI)技術です。
数字のマス目から猫を見つけ出す仕組み
人間なら、猫の写真を見れば一目で尖った耳や愛らしいヒゲに気づきます。しかしコンピュータにとって写真は、何百万もの小さな点(ピクセル)ごとに色や明るさを示す数字がぎっしり並んだ、巨大なマス目(方眼紙)にすぎません。
コンピュータビジョンは、この膨大な数字の羅列の中から意味のある視覚的パターンを見つけ出す訓練を行います。たとえば、周囲と比べて数値が急激に変化する境界線(輪郭)をまず検出し、それらの線が集まってできる角や曲線といった基本パーツを組み立てていきます。
最後に、耳のような尖った形や目のように丸い模様といった部分ごとの特徴を組み合わせ、「これは猫の顔だ」と結論づけます。こうした特徴をどう組み合わせるかは、コンピュータが大量の写真を見ながら自ら学び取ります。モザイクのピースを下から一つずつ組み立てて、全体の絵柄を理解していく作業に似ています。
単なる分類を超えて、細部まで精密に捉える
コンピュータビジョンの能力は、単に写真に「猫」というラベルを貼るだけにとどまりません。写真の中に何が写っているかを当てるレベルから出発し、はるかに精密で複雑なタスクへと進化しています。
代表的なものが、画面の中のどこに物体があるかを四角い枠(バウンディングボックス)で特定する物体検出(Object Detection)です。自動運転車が道路を走りながら、周囲の歩行者や信号機、車線をリアルタイムで同時に見つけ出す際になくてはならない技術です。
さらに一歩進んで、画像内のすべてのピクセルを道路、人、歩道、空といった領域ごとに塗り分けるセグメンテーション(領域分割)という技術もあります。人工衛星の写真から森林や建物の面積変化を分析したり、スマホの写真アプリで人物の背景だけをきれいにぼかしたり切り抜いたりするときに大活躍しています。
少し専門的に:ディープラーニングと畳み込みニューラルネットワーク
かつては研究者が、輪郭の方向や明暗パターンなど「コンピュータがどの特徴に注目すべきか」を手作業で設計していました。コンピュータは人間が決めた特徴を手がかりに判断することをデータから学んでいたため、猫が横を向いたり薄暗い部屋にいたりすると、認識率ががくっと落ちてしまう弱点がありました。
現在では、畳み込みニューラルネットワーク(CNN)に代表されるディープラーニング(深層学習)の技術により、この問題が劇的に改善されました。何百万枚もの写真を見せることで、さまざまな角度や照明環境でも物体を見分けられる特徴を、コンピュータ自らが発見して習得します。ただし、学習時に見たことがない極端な天候や低画質の画像では、今でも精度が落ちることがあります。
人間の視覚野の働きから着想を得たアルゴリズムと膨大なデータ学習が組み合わさったことで、現代のコンピュータビジョンは、工場の製造ラインで一瞬のうちに不良品を見極めたり、複雑な交差点の交通量をリアルタイムで管理したりできるレベルにまで進化しています。
よくある誤解
コンピュータビジョンとは、極めて解像度の高い高性能カメラ機器(ハードウェア)のことである。
コンピュータビジョンはカメラ機器そのものではなく、カメラが捉えた視覚データを分析して意味を解釈する「AI・ソフトウェアのアルゴリズム」を指します。
日常で出会う場面
スマートフォンのカメラに顔を向けると持ち主を認識してロックを解除する「顔認証」機能
自動運転車が走行中に車線や標識、歩行者を認識し、自ら進路や速度を調整するシステム
工場の生産ラインでカメラが製品表面をスキャンし、肉眼では見落としがちな微細な傷を瞬時に検出する不良品検査
つまり ひとことで
コンピュータビジョンは、ピクセルごとの数値データを分析し、物体の形状や位置、状況の意味を人間のように理解できるようにする人工知能技術です。