コンピューター ビジョン: 機械が視覚世界を解釈する方法

公開: 2021-05-05

コンピューター ビジョンは、機械が「見る」ことを可能にする人工知能の分野です。

人間には視覚という才能があり、それを可能にする器官は複雑です。 UV スペクトルで見ることができるワシの遠距離視力やアオウミガメの目に匹敵するものではありませんが、それでも優れた機能を果たします。

見ることの一部は、あなたが見ているものを理解することです。 そうしないと、目の前の物体から反射された光を受け取っているだけです。 これは、目があり、後頭葉 (視覚処理を担当する脳の部分) 内の視覚野がない場合に起こることです。

コンピューターにとって、カメラは目です。 また、コンピューター ビジョンは後頭葉として機能し、画像上の何千ものピクセルを処理します。 簡単に言えば、コンピューター ビジョンによって、機械は見ているものを理解できるようになります。

コンピューター ビジョンは、自動運転車、顔認識、拡張現実など、いくつかの技術革新に不可欠です。 私たちが生成する画像データの量の増加は、この分野の  人工知能  指数関数的に成長しています。 この増加により、データ サイエンティストがアルゴリズムをトレーニングすることも容易になります。

簡単に言うと、コンピューター ビジョンの 2 つの主なタスクは、画像のオブジェクトを識別することと、それらが全体として何を意味するのかを理解することです。

人間は、何百万年もの進化の産物である仮想知覚を当然のことと考えています。 5 歳の子供は、テーブルに置かれたアイテムの名前を簡単に言え、セットアップ全体がダイニング テーブルであることを理解できます。 機械にとって、これは非常に困難な作業であり、これがコンピューター ビジョンが解決しようとしているものです。

486億ドル

は、2022 年までにコンピューター ビジョン市場の価値になると推定されています。

出典:ビットリファイン

汎用人工知能は、可能であったとしても、コンピューター ビジョンなしでは実現できません。 これは、周囲の物体を正確に識別して反応することが、知性の顕著な特徴の 1 つであるためです。 つまり、機械に思考を教えるには、機械に見る能力を与えなければなりません。

利用可能なデジタル写真とビデオの数が指数関数的に増加するとともに、ディープ ラーニングと人工ニューラル ネットワークの進歩も、現在のコンピューター ビジョンの栄光に貢献しています。

コンピュータビジョンの簡単な歴史

コンピューター ビジョンの分野における最初の実験は、人工ニューラル ネットワークの初期の形態の助けを借りて 1950 年代に始まりました。 オブジェクトのエッジを検出するために使用され、円や四角などの単純なオブジェクトを並べ替えることができました。

人間の視覚システムを模倣することは人間の知性を達成するための前提条件であるため、コンピュータービジョンは人工知能への足がかりと見なされていました。 そのため、1960 年代には、AI を研究している大学もコンピューター ビジョンに関与していました。

1963 年、インターネットの創始者と見なされているラリー ロバーツは、2D 写真から立体物に関する 3D 情報を導き出すプロセスについて説明しました。 彼の論文「Machine Perception of Three-Dimensional Solids」は、今でもコンピューター ビジョン分野の基礎となる作品の 1 つとして認識されています。

1966 年後半、AI の創始者の 1 人であるマービン ミンスキーは、夏のプロジェクトでコンピューター ビジョンを実現できると信じていました。 しかし、私たちは皆、何が起こったのかを知っています。 1970 年代にさかのぼると、コンピュータ ビジョン テクノロジは、手書きのテキストや画像内の印刷された文字を識別することができる光学式文字認識 (OCR) などの商用アプリケーションに使用されていました。

1990 年代に主流となったインターネットは、コンピューター ビジョンの急速な発展に重要な役割を果たしました。 大量の画像セットに簡単にアクセスできるようになり、アルゴリズムのトレーニングが容易になりました。

安価で豊富な計算能力も、アルゴリズムのトレーニングを容易にします。 これは、コンピューター グラフィックスとコンピューター ビジョンの相互作用が増加した時点でもありました。

コンピューター ビジョンを今日の堅牢なテクノロジにした重要なマイルストーンをいくつか紹介します。

1959 年:画像を数値グリッドに変換する最初のデジタル イメージ スキャナーが発明されました。

1963: Larry Roberts が、2D 画像から立体物の 3D 情報を導き出すプロセスについて説明しました。

1966年:マーヴィン・ミンスキーが大学院生にカメラをコンピューターに取り付けて、カメラが見たものを説明するように指示しました。

1980年:福島邦彦が  ネオコグニトロン。 これは、現代の畳み込みニューラル ネットワーク (CNN) の前身と考えられています。

2001: MIT の 2 人の研究者である Paul Viola と Michael Jones は、リアルタイムで機能する最初の顔検出フレームワークを作成しました。

2009: Google が自動運転車プロジェクトを開始。

2010: Google は、モバイル デバイスでキャプチャした写真に基づく検索に役立つ画像認識アプリ、Google ゴーグルをリリースしました。 同年、Facebook は顔認識を使用して写真に人を効果的にタグ付けし始めました。

2011:顔認識技術を使用して、   ウサマ・ビン・ラディンの身元  彼が殺された後。

2012: Google Brain は、ディープ ラーニング アルゴリズムを利用して猫の写真を認識できる 16,000 のコンピューター プロセッサで構成されるニューラル ネットワークを作成しました。 同じ年、畳み込みニューラル ネットワークである AlexNet は、ImageNet 2012 チャレンジで 15.3% のトップ 5 エラーを達成しました。

2014:テスラはモデル S 電気自動車にオートパイロットを導入しました。 自動運転システムは、オフラインで機能するだけでなく、正確に駐車することもできました。

2015: Google がローンチ  TensorFlow は、機械学習用のオープンソースで無料のソフトウェア ライブラリです。 同年、Google は顔認識用の FaceNet を導入しました。

2016:有名な AR ベースのモバイル ゲームである Pokemon GO が導入されました。

2017年: Appleは顔認識機能を搭載したiPhone Xをリリースしました。

2019:英国最高裁判所は、自動顔認識技術を使用して群衆の中の人々を検索することを許可しました.

コンピュータビジョンはどのように機能しますか?

コンピュータ ビジョンは小さく始まり、大きく終わります。

これは、ピクセルや色などの低レベルの特徴を識別して分析することから始まる、階層化された処理手法に従います。 徐々に、線やオブジェクトなどの高レベルの機能を分析するように機能します。

走っている人の画像を見たとします。 静止画像ですが、ほとんどの場合、文脈を理解することができます。 人は何かから逃げたり、何かに向かって走ったり、のんびりと走ったりしています。 これは、並列処理コンピューティングがリアルタイムで行われる典型的な例です。

画像の感情と文脈を理解するのは簡単です。 コンピューターはまだ取引を学習していますが、そのペースは非生物学的エンティティにとって印象的です。

コンピューターがどのようにして天気予報などの正確なデータを提供できるのか疑問に思ったことはありませんか? ここで、コンピューター ビジョンが並列処理の形で機能します。つまり、複数の複雑なデータ ソースを同時に処理します。

マシンにとって、画像は単なるピクセルの集まりです。 人間とは異なり、画像の意味を理解することはできず、ピクセルしか検出できません。 コンピュータ ビジョンの目標は、そのセマンティック ギャップを埋めることです。

光線が私たちの目の網膜に当たると、光受容体と呼ばれる特別な細胞が光を電気信号に変換します。 これらの電気信号は視神経を通って脳に送られます。 次に、脳はこれらの信号を私たちが見る画像に変換します。

これは、脳に到達する電気信号が単純に見えるまで処理されます。 脳がこれらの信号をどのように処理して画像に変換するかは、まだ完全には解明されていません。 より正確には、脳はブラックボックスです。 コンピュータビジョンもそうです。

ニューラルネットワークなどがあります  機械学習  人間の脳を模倣しようとするアルゴリズム。 それらはコンピューター ビジョンを実現可能にし、画像が何であるかを理解するのに役立ちます。 アルゴリズムの場合でも、機械学習の研究者は、それらがどのように機能するかを完全には認識していません。 ただし、それらの結果は定量化できるため、各アルゴリズムの精度を判断できます。

プロセスとしてのコンピュータ ビジョンは、人間の視覚と同じように説明可能です。 しかし、ニューラル ネットワークが画像を理解するためにどのように機能するのか、人間が視覚情報を処理する方法に近いのかどうかは、誰にもわかりません。

とはいえ、単純な意味で、コンピューター ビジョンはすべてパターン認識に関するものです。 などの機械学習手法を使用する  教師なし学習では、視覚データのパターンを認識するようにアルゴリズムがトレーニングされます。 必要な画像の数を考えると、少なくとも数百万または数千です。

画像内の犬を識別するアルゴリズムが必要だとします。 教師なし学習手法に従っている場合は、画像に犬のラベルを付ける必要はありません。 代わりに、数千または数百万の画像を分析した後、機械は犬の特定の特徴を学習します。

つまり、コンピュータは、動物 (または物) を犬にする特定の特徴を認識することができます。 特定の動物が「犬」と呼ばれていることはまだわかりません。 しかし、ラベルのない画像に犬が含まれているかどうかを判断するには、十分な情報と経験が必要です。

学習プロセスをより速くしたい場合は、   教師あり学習。 教師あり学習では、画像にラベルが付けられるため、アルゴリズムの作業が容易になります。

ピクセルレベルでの画像の検査

画像を分析するアルゴリズムについて話すとき、彼らは人間のように画像全体を調べているわけではありません。 代わりに、ラスター イメージのアドレス指定可能な最小要素である個々のピクセルを調べます。

簡単にするために、グレースケール画像を考えてみましょう。 ピクセル値と呼ばれる各ピクセルの明るさは、0 から 255 までの可能な値の範囲を持つ 8 ビットの整数で表されます。0 は黒と見なされ、255 は白と見なされます。 色付きの画像を研究している場合、物事はより複雑になります。

アルゴリズムが分析して学習すると言うとき、実際にはこれらのピクセル値を学習しています。 つまり、コンピュータはその数値をもとに画像を見て認識します。 これは、アルゴリズムが数値を見て画像のパターンを見つけ、同様の方法で画像を比較することも意味します。

要するに、マシンにとって、イメージを理解することは、整数の配列を含む数学的プロセスです。

次に、畳み込みニューラル ネットワークがあります。

畳み込みニューラル ネットワーク (CNN または ConvNet) は、   ディープラーニング  画像データセットから特徴を抽出できるアルゴリズム。 これらはニューラル ネットワークの 1 つのカテゴリであり、画像の認識と分類に優れた機能を備えています。 ほとんどすべてのコンピューター ビジョン アルゴリズムは、畳み込みニューラル ネットワークを使用します。

CNN は 1980 年代に発明されましたが、グラフィックス プロセッシング ユニット (GPU) が導入されるまで、正確には実行可能ではありませんでした。 GPU は、畳み込みニューラル ネットワークやその他のニューラル ネットワークを大幅に高速化できます。 2004 年には、CNN の GPU 実装は、同等の CPU 実装よりも 20 倍高速でした。

CNN はどのように行うのですか?

ConvNets は入力画像から学習し、パラメーター (重みとバイアス) を調整してより良い予測を行います。 CNN は画像を行列のように扱い、エッジ、深度、テクスチャなどの空間情報を抽出します。 ConvNets はこれを使用して行います  畳み込み層   プーリング。

CNN のアーキテクチャは、脳内のニューロンの接続パターンのアーキテクチャに類似しています。 CNN は、視覚情報を受け取って処理する脳の領域である視覚野の組織からインスピレーションを得て作成されました。

CNN は、パーセプトロンと呼ばれる人工ニューロンの複数の層で構成されています。パーセプトロンは、私たちの脳の生物​​学的ニューロンの数学的な対応物です。 パーセプトロンは、生物学的な対応物の働きも大まかに模倣します。

畳み込みニューラル ネットワークは、入力層、複数の隠れ層、および出力層で構成されます。

非表示のレイヤーには次が含まれます。

  • 畳み込み層
  • 修正された線形活性化関数 (ReLU) 層
  • 正規化層
  • プーリング層
  • 完全に接続されたレイヤー

以下は、それらが何をするかの簡単な説明です。

CNN が画像を処理するとき、その各層は画像のピクセルから個別の特徴を抽出します。 最初のレイヤーは、水平エッジや垂直エッジなどの基本的な特徴を検出する役割を果たします。

ニューラル ネットワークを深く掘り下げると、レイヤーは形状や角などの複雑な特徴を検出し始めます。 畳み込みニューラル ネットワークの最終層は、顔、建物、場所などの特定の特徴を検出できます。

畳み込みニューラル ネットワークの出力層は、数値情報を含むテーブルを提供します。 この表は、特定のオブジェクトが画像内で識別された確率を表します。

コンピューター ビジョン タスクの例

コンピューター ビジョンは、コンピューターが見ることを可能にするコンピューター サイエンスと AI の分野です。 コンピュータがこの分野を利用できる方法は数多くあります。 画像内のオブジェクトまたはアクティビティを識別しようとするこれらの試みは、コンピューター ビジョン タスクと呼ばれます。

一般的なコンピューター ビジョン タスクの一部を次に示します。

  • オブジェクト検出:画像内の特定のオブジェクトを検出するために使用される手法。 その高度なバージョンでは、1 つの画像内の複数のオブジェクトを識別できます。たとえば、にぎやかな通りの写真に写っている建物、車、人、信号機などです。
  • 画像分類:画像をカテゴリにグループ化すること。 これは、画像にラベルを割り当てるプロセスと呼ばれることもあります。
  • 顔認識:画像内の人間を識別し、顔を認識することができるオブジェクト認識の高度な形式。
  • 画像のセグメンテーション:画像を複数の部分に分割して個別に調べること。
  • パターン検出:視覚データのパターンと規則性を認識するプロセス。
  • エッジ検出:オブジェクトのエッジを検出して、画像の構成要素をより適切に識別するプロセス。
  • 特徴マッチング:画像の類似性を照合して分類するパターン検出の一種。

画像認識ソフトウェア  アプリケーションは、これらのコンピューター ビジョン技術の 1 つだけを使用する場合があります。 自動運転車のような高度なアプリケーションでは、同時に複数の技術が使用されます。

実世界のコンピューター ビジョン アプリケーション

コンピューター ビジョンは、現在使用されている多くの製品に既に組み込まれています。 Facebook は CV を使用して自動的に人をタグ付けします。 Google フォトはこれを使用して画像をグループ化し、Adobe Lightroom などのソフトウェア アプリケーションはそれを使用してズーム画像の詳細を強調します。 また、自動化に依存する製造プロセスの品質管理にも広く使用されています。

ここでは、コンピュータ ビジョンの実際のアプリケーションをいくつか紹介します。

顔認識

コンピューター ビジョンの最適な使用例の 1 つは、顔認識の分野です。 2017 年に Apple の iPhone X モデルで主流になり、現在ではほとんどのスマートフォンの標準機能となっています。

顔認証技術は、認証機能として複数の場面で利用されています。 それ以外の場合は、Facebook の場合のように個人を識別するために使用されます。 法執行機関は、顔認識技術を使用してビデオ フィード内の法違反者を特定することが知られています。

自動運転車

自動運転車は、リアルタイムの画像分析をコンピュータ ビジョンに大きく依存しています。 自動運転車が周囲を理解するのに役立ちます。 しかし、そのような自動車の背後にある技術はまだ初期段階にあり、交通量の多い道路に自信を持って配備するには、さらなる開発が必要です。

自動運転車は、コンピューター ビジョンなしでは事実上不可能です。 この技術は、自動運転車が視覚データをリアルタイムで処理するのに役立ちます。 そのアプリケーションの一例は、3D マップの作成です。 オブジェクトの識別と分類に加えて、コンピューター ビジョンは 3D マップを作成して、車両に周囲の感覚を与えるのに役立ちます。

車両と車線の検出は、もう 2 つの重要なユース ケースです。 次に、自動運転車の分野で非常に有名な空き領域の検出があります。 名前が示すように、車両の周囲に障害物のないスペースを決定するために使用されます。 フリースペースの検出は、自動運転車が動きの遅い車に接近し、車線を変更する必要がある場合に役立ちます。

医療画像処理

コンピュータ ビジョンは、ヘルスケア業界でより迅速かつ正確な診断を行い、病気の進行を監視するために使用されています。 医師は、パターン認識を使用して、人間の目には見えない癌などの病気の初期症状を検出できます。

医用画像は、多くの利点を持つもう 1 つの重要なアプリケーションです。 医用画像解析は、医療専門家が画像を解析するのにかかる時間を短縮します。 内視鏡検査、X 線撮影、超音波、および磁気共鳴画像 (MRI) は、コンピューター ビジョンを使用する医療画像分野の一部です。

CNN を医用画像と組み合わせることで、医療専門家は内臓を観察し、異常を検出し、特定の病気の原因と影響を理解することができます。 また、医師が病気の発生や治療の進行状況を監視するのにも役立ちます。

コンテンツのモデレーション

Facebook のようなソーシャル メディア ネットワークは、毎日何百万もの新しい投稿を確認する必要があります。 投稿されたすべての画像やビデオを確認するコンテンツ モデレーション チームを持つことは現実的ではないため、コンピューター ビジョン システムを使用してプロセスを自動化しています。

3億5000万

写真は毎日 Facebook にアップロードされます。

出典:社会性報告

コンピューター ビジョンは、そのようなソーシャル メディア プラットフォームがアップロードされたコンテンツを分析し、禁止コンテンツを含むものにフラグを立てるのに役立ちます。 企業は、テキスト分析に深層学習アルゴリズムを使用して、不快なコンテンツを特定してブロックすることもできます。

監視

監視ビデオ フィードは確固たる証拠です。 これらは、法律違反者を発見するのに役立ち、セキュリティの専門家が小さな懸念が壊滅的な事態になる前に行動するのにも役立ちます。

人間が複数のソースからの監視映像を監視することは事実上不可能です。 しかし、コンピューター ビジョンを使用すると、このタスクが簡素化されます。 CV を搭載した監視システムは、ライブ映像をスキャンして、疑わしい行動をしている人物を検出できます。

顔認識を使用して指名手配犯を特定し、それによって犯罪を防止できます。 画像認識技術を利用して、密集したエリアで危険物を持っている個人を検出できます。 モールで利用できる無料駐車スペースの数を決定するためにも同じことが使用されます。

コンピューター ビジョンの課題

コンピュータに見えるようにすることは、私たちが思っていたよりも困難です。

マービン・ミンスキーは、カメラをコンピューターに接続することでコンピューター・ビジョンを解決できると確信していました。 何十年にもわたる研究の後でさえ、問題の解決にはほど遠い. 人間にとって、視覚はとても楽なものです。 これが、コンピューター ビジョンが自明な問題と見なされ、夏の間に解決されるはずだった理由です。

私たちの知識は限られています

コンピュータ ビジョンの問題を完全に解決できない理由の 1 つは、自分自身に関する知識が限られていることです。 人間の視覚システムがどのように機能するかについて、私たちは完全には理解していません。 もちろん、生物学的視覚の研究は急速に進歩していますが、まだまだ道のりは長いです。

視覚世界は複雑です

CV の分野における困難な問題は、視覚世界の自然な複雑さです。 オブジェクトは、あらゆる角度、あらゆる照明条件、さまざまな距離から見ることができます。 人間の光学系は通常、このような無限のバリエーションの対象物をすべて見て理解することができますが、機械の能力は依然として非常に限られています。

もう 1 つの制限は、常識の欠如です。 何年にもわたる研究の後でさえ、私たちはまだ AI システムの常識を再現していません。 人間は、特定のオブジェクトに関する常識と背景知識を適用して、それらを理解することができます。 これにより、画像のさまざまなエンティティ間の関係を簡単に理解することもできます。

少なくともコンピューターと比較すると、人間は当て推量が得意です。 以前に特定の問題に直面したことがなくても、それほど悪くない決定を下すのは簡単です. しかし、同じことは機械には当てはまりません。 トレーニングの例に似ていない状況に遭遇した場合、彼らは不合理に行動する傾向があります.

コンピュータ ビジョン アルゴリズムは、新しいビジュアル データセットでトレーニングすると、著しく改善されます。 しかし、基本的には、ピクセル パターンを一致させようとしています。 つまり、ピクセルの知識は別として、画像で何が起こっているのかを正確には理解していません。 しかし、自動運転車における CV 駆動システムの驚くべき効果について考えるのは興味深いことです。

CV はハードウェアにバインドされています

コンピューター ビジョンでは、レイテンシは悪です。

自動運転車などの実際のアプリケーションでは、画像の処理と分析をほぼ瞬時に行う必要があります。 たとえば、時速 30 マイルで走行中の自動運転車が 100 メートル先の障害物を検出した場合、安全に停止または方向転換するまでの時間はわずか数秒です。

車が時間通りに行動するためには、AI システムが周囲を理解し、ミリ秒単位で決定を下す必要があります。 コンピュータ ビジョン システムは、カメラなどのハードウェア コンポーネントに大きく依存しているため、データ転送や計算のほんの一瞬の遅れでも、壊滅的な事故につながる可能性があります。

狭い AI では不十分

一部の AI 研究者は、 20/20のコンピューター ビジョンは、汎用人工知能 (AGI) のロックを解除した場合にのみ達成できると感じています。 それは、人間の視覚系において意識が重要な役割を果たしているように見えるからです。 私たちがどれだけ見て観察するかと同じように、私たちは想像します。 私たちの想像力は、私たちが目にするビジュアルを増強し、より良い意味をもたらします。

また、視覚的知性は知性と切り離せないものではありません。 複雑な思考を処理する能力は、周囲を見て理解する能力を補完しました。

多くの研究者によると、インターネットからダウンロードした何百万もの画像やビデオ フィードから学習しても、真のコンピューター ビジョンを実現するにはあまり役に立ちません。 代わりに、AI エンティティは人間のようにそれを体験する必要があります。 言い換えると、   私たちが現在持っている人工知能のレベルでは、狭い AI では十分ではありません。

一般的な知性を達成する時間枠については、まだ議論の余地があります。 AGI は数十年で達成できると感じている人もいます。 他の人は、それが次の世紀のものであることを示唆しています. しかし、大多数の研究者は、AGI は達成不可能であり、SF のジャンルにしか存在しないと考えています。

達成可能であろうとなかろうと、真のコンピューター ビジョンを解き放つ方法は他にもたくさんあります。 質の高い多様なデータを提供することは、そのための 1 つの方法です。 これにより、コンピュータ ビジョン テクノロジに依存するシステムがバイアスを回避できるようになります。

人工ニューラル ネットワークの強みを拡大するためのより良い方法を見つけ、強力な GPU やその他の必要なハードウェア コンポーネントを作成し、人間の視覚システムを理解することは、真のコンピューター ビジョンに向けて前進する方法の 1 つです。

機械にビジョンを贈る

画像認識モデルのエラー率は劇的に低下しています。 印刷された文字を検出するだけでなく、人間の顔を正確に識別するまでに、長い道のりを歩んできました。 しかし、道のりは長く、征服すべき多くの新しいマイルストーンがあります。 真のコンピューター ビジョンを実現することは、人間と同じくらい洗練されたインテリジェントなロボットを作成するための鍵の 1 つになるでしょう。

プロセスをデジタルで実行できる場合、機械学習は最終的にその一部になります。 完全に確信が持てない場合は、同じテクノロジーがほぼすべての業界を席巻していることを示唆する 51 の機械学習統計を以下に示します。