コンピュータビジョンとは何ですか?画像とビデオのAI

コンピュータビジョンは、デジタル画像やビデオ内のオブジェクトを識別し、多くの場合、その場所を特定します。生物は視覚野で画像を処理するため、多くの研究者は、画像認識を実行するように設計されたニューラルネットワークのモデルとして哺乳類の視覚野のアーキテクチャを採用しています。生物学的研究は1950年代にさかのぼります。

過去20年間のコンピュータビジョンの進歩は、絶対に目覚ましいものです。まだ完璧ではありませんが、99%の精度を達成するコンピュータービジョンシステムもあれば、モバイルデバイスで適切に動作するコンピュータービジョンシステムもあります。

視覚のためのニューラルネットワーク分野における画期的な進歩は、32x32ピクセル画像でデジタル化された手書き数字を認識するための7レベルの畳み込みニューラルネットワークであるYannLeCunの1998LeNet-5でした。より高解像度の画像を分析するには、LeNet-5ネットワークをより多くのニューロンとより多くの層に拡張する必要があります。

今日の最高の画像分類モデルは、HD解像度のカラーでオブジェクトの多様なカタログを識別できます。純粋なディープニューラルネットワーク(DNN)に加えて、人々は、特定のサブタスクを実行する古典的な機械学習アルゴリズムとディープラーニングを組み合わせたハイブリッドビジョンモデルを使用することがあります。

基本的な画像分類に加えて、ローカリゼーションによる画像分類、オブジェクト検出、オブジェクトセグメンテーション、画像スタイルの転送、画像の色付け、画像の再構成、画像の超解像、画像合成など、その他の視覚の問題はディープラーニングで解決されています。

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

コンピュータビジョンアルゴリズムは通常、畳み込みニューラルネットワーク(CNN)に依存しています。CNNは通常、畳み込み層、プーリング層、ReLU層、完全接続層、損失層を使用して視覚野をシミュレートします。

畳み込み層は基本的に、多くの小さな重なり合う領域の積分を取ります。プーリング層は、ある種の非線形ダウンサンプリングを実行します。ReLUレイヤーは、非飽和活性化関数f(x)= max(0、x)を適用します。

完全に接続された層では、ニューロンは前の層のすべての活性化に接続しています。損失層は、分類にSoftmaxまたはクロスエントロピー損失を使用して、ネットワークトレーニングが予測ラベルと真のラベルの間の偏差にペナルティを課す方法を計算します。

コンピュータビジョントレーニングデータセット

ビジョンモデルのトレーニングに役立つ多くの公開画像データセットがあります。最も単純で最も古いものの1つはMNISTで、10クラスに70,000の手書き数字が含まれ、トレーニング用に60K、テスト用に10Kです。MNISTは、アクセラレーションハードウェアのないラップトップを使用する場合でも、モデル化するのが簡単なデータセットです。CIFAR-10とFashion-MNISTは、同様の10クラスのデータセットです。SVHN(ストリートビューの家番号)は、Googleストリートビューから抽出された実際の家番号の60万枚の画像のセットです。

COCOは、オブジェクトの検出、セグメンテーション、およびキャプションのための大規模なデータセットであり、80のオブジェクトカテゴリに33万の画像があります。 ImageNetには、境界ボックスとラベルが付いた約150万の画像が含まれており、WordNetの約10万のフレーズを示しています。 Open Imagesには、画像への約900万のURLと、約5Kのラベルが含まれています。

Google、Azure、AWSにはすべて、非常に大規模な画像データベースに対してトレーニングされた独自のビジョンモデルがあります。これらをそのまま使用することも、転送学習を実行してこれらのモデルを独自の画像データセットに適合させることもできます。ImageNetとOpenImagesに基づくモデルを使用して転移学習を実行することもできます。モデルを最初から構築するよりも転移学習の利点は、はるかに高速(数週間ではなく数時間)であり、より正確なモデルが得られることです。最良の結果を得るには、ラベルごとに1,000枚の画像が必要ですが、ラベルごとに10枚の画像で済む場合もあります。

コンピュータビジョンアプリケーション

コンピュータビジョンは完璧ではありませんが、実用的であるには十分な場合がよくあります。良い例は、自動運転車のビジョンです。

以前はGoogleの自動運転車プロジェクトであったWaymoは、700万マイルの公道でのテストと、毎日の交通で安全にナビゲートする能力を主張しています。Waymoバンに関連する事故が少なくとも1回ありました。警察によると、ソフトウェアに問題があるとは考えられていなかった。

テスラには自動運転車の3つのモデルがあります。2018年、自動運転モードのテスラSUVが致命的な事故に巻き込まれました。事故の報告によると、運転手(殺害された)はコンソールからの複数の警告にもかかわらずハンドルから手を離し、運転手もソフトウェアもコンクリートの障壁にぶつからないようにブレーキをかけようとしなかった。その後、ソフトウェアは、ドライバーの手がハンドルにあることを示唆するのではなく、要求するようにアップグレードされました。

Amazon Goストアは、チェックアウト不要のセルフサービス小売店であり、店内のコンピュータービジョンシステムが、買い物客が在庫商品を受け取ったり返品したりしたことを検出します。買い物客は、AndroidまたはiPhoneアプリによって識別され、課金されます。Amazon Goソフトウェアがアイテムを見逃した場合、買い物客はそれを無料で保管できます。ソフトウェアが取得したアイテムを誤って登録した場合、買い物客はアイテムにフラグを付けて、その料金の払い戻しを受けることができます。

ヘルスケアでは、病理学スライド、胸部X線、およびその他の医用画像システムの特定の機能を分類するためのビジョンアプリケーションがあります。これらのいくつかは、熟練した人間の開業医と比較した場合に価値を示しており、規制当局の承認には十分なものもあります。手術室または分娩室での患者の失血を推定するためのリアルタイムシステムもあります。

農業(農業ロボット、作物と土壌の監視、予測分析)、銀行(詐欺の検出、ドキュメント認証、リモートデポジット)、および産業モニタリング(リモートウェル、サイトセキュリティ、および作業活動)に役立つビジョンアプリケーションがあります。

物議を醸している、あるいは非推奨でさえあるコンピュータビジョンのアプリケーションもあります。1つは顔認識です。これは、政府によって使用されるとプライバシーの侵害になる可能性があり、多くの場合、白い顔以外の顔を誤認する傾向があるトレーニングバイアスがあります。もう1つはディープフェイク世代です。これは、ポルノやデマやその他の不正な画像の作成に使用されると、少し不気味です。

コンピュータビジョンのフレームワークとモデル

PythonベースのフレームワークTensorFlow(本番環境の主要な選択肢)、PyTorch(学術研究の主要な選択肢)、MXNet(Amazonの主要なフレームワーク)など、ほとんどのディープラーニングフレームワークはコンピュータービジョンを実質的にサポートしています。 OpenCVは、リアルタイムビジョンアプリケーションに傾倒し、利用可能な場合はMMXおよびSSE命令を利用する、コンピュータービジョン専用のライブラリです。また、CUDA、OpenCL、OpenGL、およびVulkanを使用したアクセラレーションもサポートしています。

Amazon Rekognitionは、顔の分析やカスタムラベルなど、オブジェクト、人物、テキスト、シーン、アクティビティを識別できる画像およびビデオ分析サービスです。 Google Cloud Vision APIは、オブジェクトと顔を検出し、印刷されたテキストと手書きのテキストを読み取り、画像カタログにメタデータを組み込むことができる、事前にトレーニングされた画像分析サービスです。 Google AutoML Visionを使用すると、カスタム画像モデルをトレーニングできます。 Amazon Rekognition CustomLabelsとGoogleAutoMLVisionの両方が転移学習を実行します。

Microsoft Computer Vision APIは、25の言語のラベルを使用して、10,000のカタログからオブジェクトを識別できます。また、識別されたオブジェクトの境界ボックスも返します。Azure Face APIは、画像内の顔と属性を認識する顔検出、最大100万人のプライベートリポジトリ内の個人と一致する個人識別、および認識された感情認識を行います。Face APIは、クラウドまたはコンテナーのエッジで実行できます。

IBM Watson Visual Recognitionは、事前にトレーニングされたモデルから画像を分類し、転送学習を使用してカスタム画像モデルをトレーニングし、オブジェクトカウントを使用してオブジェクト検出を実行し、目視検査用にトレーニングすることができます。Watson Visual Recognitionは、クラウド、またはCoreMLを使用するiOSデバイスで実行できます。

データ分析パッケージMatlabは、機械学習と深層学習を使用して画像認識を実行できます。オプションのComputerVision Toolboxがあり、OpenCVと統合できます。

コンピュータビジョンモデルはLeNet-5以来長い道のりを歩んできました、そしてそれらはほとんどCNNです。例としては、AlexNet(2012)、VGG16 / OxfordNet(2014)、GoogLeNet / InceptionV1(2014)、Resnet50(2015)、InceptionV3(2016)、MobileNet(2017-2018)などがあります。MobileNetファミリーのビジョンニューラルネットワークは、モバイルデバイスを念頭に置いて設計されました。

[また、:Kaggle:データサイエンティストが学び競争する場所]

Apple Visionフレームワークは、顔と顔のランドマーク検出、テキスト検出、バーコード認識、画像レジストレーション、および一般的な機能追跡を実行します。Visionでは、分類やオブ​​ジェクト検出などのタスクにカスタムCoreMLモデルを使用することもできます。iOSとmacOSで動作します。Google ML Kit SDKにも同様の機能があり、AndroidデバイスとiOSデバイスで実行されます。ML Kitは、自然言語APIを追加でサポートします。

これまで見てきたように、コンピュータビジョンシステムは、人間の視覚よりも有用であり、場合によってはより正確であるほど十分に優れています。転移学習を使用して、視覚モデルのカスタマイズは単なる人間にとって実用的になりました。コンピュータビジョンは、もはや博士レベルの研究者の独占的な領域ではありません。

機械学習とディープラーニングの詳細:

  • ディープラーニングと機械学習:違いを理解する
  • 機械学習とは何ですか?データから得られるインテリジェンス
  • ディープラーニングとは何ですか?人間の脳を模倣するアルゴリズム
  • 機械学習アルゴリズムの説明
  • 自然言語処理とは何ですか?スピーチとテキストのためのAI
  • 自動機械学習またはAutoMLの説明
  • 教師あり学習の説明
  • 半教師あり学習の説明
  • 教師なし学習の説明
  • 強化学習の説明
  • Kaggle:データサイエンティストが学び競争する場所
  • CUDAとは何ですか?GPUの並列処理

機械学習とディープラーニングのレビューを読む:

  • クラウド機械学習プラットフォームの選び方
  • Deeplearning4j:JVMのディープラーニングとETL
  • レビュー:AmazonSageMakerが追いつきます
  • TensorFlow 2レビュー:より簡単な機械学習
  • レビュー:Google CloudAutoMLは真に自動化された機械学習です
  • レビュー:MXNetディープラーニングはGluonで輝いています
  • PyTorchレビュー:スピードを重視して構築されたディープラーニングフレームワーク
  • レビュー:Kerasはディープラーニングを航海します