20章OpenCVによる機械学習の基本
本章では、視覚を知覚に変換するのに使われる「機械」、つまり、視覚入力を重要な視覚意味論に変換する機械についての説明を始めます。
これまでの章では、2次元や2次元+3次元センサーの情報を特徴量やクラスタ、幾何形状情報に変換する方法について説明してきました。続く3つの章では、これらの手法で得られた結果を使って、特徴量、セグメンテーション、その幾何形状などを、シーンや物体の認識に変換します。すなわち、生の情報を知覚情報(機械が何を見ているかや、それがカメラから見てどこにあるか)に変換するステップです。
本章では機械学習の基礎を見渡し、それがどのようなものであるかを中心に扱います。まずはOpenCVが提供するいくつかの簡単な機械学習の機能を見ていきます。これは、機械学習の基本的な考え方を全体として理解するのによい出発点となります。次の章では、近年の機械学習がどのようにライブラリで実装されているかについての詳細に入りましょう†1。
[†1] 機械学習は、「付録B opencv_contribモジュール」で説明するように、他の多くのものと同じく実験的なopencv_contrib
のコード内で拡張されていることに注意してください。詳細は、多層構造を持つニューラルネットワークのリポジトリcnn_3dobj
とdnn
を参照してください。訳注:バージョン3.3から、dnn
モジュールはopencv_contrib
から標準パッケージに移行されています。
20.1 機械学習とは?
機械学習(ML:Machine Learning)†2の目標は、生のデータを情報に変換することです。機械がデータから学習した後は、その機械に、データについての質問に答えられるようになっていてほしいのです。例えば、「このデータに最も似ている他のデータは何か?」「画像内に車はあるか?」「ユーザーはどの広告に反応するか?」などです。最後の質問に関してはお金の問題が絡むことが多いので、次のように言い換えることもできるでしょう。「最も売れているわが社の製品のうち、広告を出すとユーザーがいちばん購入しそうなのはどの製品か?」といった具合です。機械学習は、データからルールやパターンを抽出することで、データを情報に変換するのです。 ...
Get 詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.