物体検出は、画像や動画でオブジェクトのインスタンスを特定するためのコンピューター ビジョンの手法です。物体検出アルゴリズムは通常、機械学習やディープラーニングを活用して意味のある結果を生成します。人間が画像や動画を見る場合、一瞬で興味のあるオブジェクトを認識し、位置を特定できます。物体検出の目標は、コンピューターを使用してこの知能を再現することです。
物体検出が重要な理由
物体検出は、先進運転支援システム (ADAS) で使用される主要技術であり、自動車による走行車線や歩行者の検出を可能にし、交通安全性を向上させることができます。また、物体検出は、外観検査、ロボティクス、医用画像処理、ビデオ監視、コンテンツベースの画像検索などのアプリケーションに不可欠な要素です。
物体検出のしくみ
ディープラーニングを使用した物体検出
物体検出の実行には、さまざまな手法を使用できます。YOLO、SSD、R-CNN など、畳み込みニューラル ネットワーク (CNN) を使用した広く利用されているディープラーニング ベースの手法では、画像内のオブジェクトを検出する学習が自動的に行われます。
ディープラーニングを用いた物体検出を始めるには、次の 2 つの主要な手法から選択できます。
- 事前学習済みの物体検出器の使用。一部のディープラーニング物体検出器は、大規模なデータセットで学習を行い、さらなる学習の必要なく、人、車両、画像テキストなどの一般的なオブジェクトを検出できます。
- カスタム物体検出器の作成および学習。特定のニーズに合わせて物体検出器をカスタマイズするには、転移学習を使用します。この手法を用いると、アプリケーションに合わせてさらに微調整されたネットワークを事前学習済みのネットワーク上に構築できます。この手法は、物体検出器が既に何千、何百万もの画像で学習を行っているため、ゼロから学習させるよりも短期間で結果が得られます。
事前学習済みの物体検出器を使用するか、カスタムの物体検出器を作成するかなど、どのタイプの物体検出ネットワークを使用するかを決定する必要があります。
機械学習を使用した物体検出
機械学習手法も物体検出によく使用され、ディープラーニングとは異なる手法が備わっています。一般的な機械学習技術には次のようなものがあります。
- 集約チャネル特徴 (ACF)
- 勾配方向ヒストグラム (HOG) 特徴を用いたサポート ベクター マシン (SVM) 分類
- 人の顔や上半身を検出する Viola-Jones アルゴリズム
ディープラーニングベースのアプローチと同様に、事前学習済みの物体検出器から始めるか、アプリケーションに合わせてカスタム物体検出器を作成するかを選択できます。ディープラーニングベースのワークフローでは自動特徴選択が行われるのに対し、機械学習を使用する場合は、オブジェクトを識別する特徴を手動で選択する必要があります。
物体検出における機械学習とディープラーニングの比較
物体検出の最適な手法は、アプリケーションと解決しようとしている問題によって異なります。機械学習とディープラーニングのいずれかを選択する場合は、高性能な GPU と多くのラベル付き学習画像があるかどうかを考慮します。いずれもない場合は、機械学習手法を選択した方が良い可能性があります。ディープラーニング手法は、画像が多いほど成功する傾向があり、GPU はモデルの学習に必要な時間を短縮します。
その他の物体検出手法
ディープラーニングや機械学習をベースにした物体検出に加え、アプリケーションによっては他のいくつかの一般的な手法も適用できます。
- サイズ、形状、色などの単純なオブジェクト プロパティを使用する画像セグメンテーションおよびブロブ解析
- 各オブジェクトの正確な形状と領域のピクセル単位のセグメンテーション マスクを予測する手法であるインスタンス セグメンテーション
- オブジェクト上の特定の関心点を予測する手法であるキーポイント検出
- 特徴抽出、マッチング、および RANSAC を用いてオブジェクトの位置を推定する特徴ベースの物体検出
MATLAB による物体検出
MATLAB® のコードを数行記述するだけで、専門家でなくても物体検出用の機械学習モデルやディープラーニング モデルを構築できます。
アプリを使用した学習画像への自動ラベル付け
MATLAB には、学習データの準備と畳み込みニューラル ネットワークのカスタマイズの両方に対応した対話型のアプリが用意されています。物体検出器のテスト画像にラベル付けするのは面倒であり、高性能な物体検出器を作成するのに十分な学習データを得るには多くの時間がかかります。イメージラベラー アプリを使用すると、画像のコレクション内のオブジェクトに対話的にラベル付けでき、グラウンド トゥルース データに自動的にラベル付けする組み込みのアルゴリズムが提供されます。自動運転アプリケーションの場合はグラウンド トゥルース ラベラー アプリを使用でき、動画処理ワークフローにはビデオラベラーアプリを使用できます。
物体検出アルゴリズムの対話的な作成とフレームワーク間の相互運用
既存の CNN をカスタマイズしたり、ゼロから CNN を作成したりすると、貴重な学習時間を無駄にするアーキテクチャの問題が発生する可能性が高まります。ディープ ネットワーク デザイナー アプリ を使用することで、ディープラーニング ネットワークを対話的に構築、編集、および可視化できます。また、ネットワークの学習を行う前に、アーキテクチャの問題をチェックする解析ツールが提供されます。
MATLAB では、ONNX™ (Open Neural Network Exchange) のインポート/エクスポート機能を使用して、TensorFlow™-Keras、PyTorch®、Caffe2 などのフレームワークのネットワークやネットワーク アーキテクチャと相互運用できます。
展開用に最適化されたコードの自動生成
MATLAB を使用してアルゴリズムを作成した後、自動ワークフローを活用して、GPU Coder™ で TensorRT または CUDA® コードを生成し、ハードウェアインザループ テストを実行できます。生成したコードは、既存のプロジェクトに統合でき、デスクトップ GPU または NVIDIA® Jetson™、NVIDIA Drive プラットフォームなどの組み込み GPU での物体検出アルゴリズムの検証に使用できます。
リソース
ドキュメンテーション、例、ビデオなどを通じて知識を広げましょう。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)