スタブ 画像分類はどのように機能するのでしょうか? - Unite.AI
私達と接続
AI マスタークラス:

AI 101

画像分類はどのように機能するのでしょうか?

mm
更新中 on

写真を撮るだけで、携帯電話はどのようにしてその物体が何であるかを判断できるのでしょうか? ソーシャル メディア Web サイトはどのようにして写真内の人物に自動的にタグを付けるのでしょうか? これは、AI を活用した画像認識と分類によって実現されます。

画像の認識と分類は、人工知能の最も印象的な成果の多くを可能にするものです。 しかし、コンピューターはどのようにして画像の検出と分類を学習するのでしょうか? この記事では、コンピューターが画像の解釈と検出に使用する一般的な方法を説明し、次にそれらの画像を分類する最も一般的な方法のいくつかを見ていきます。

ピクセルレベルの分類とオブジェクトベースの分類

画像分類技術は主に XNUMX つの異なるカテゴリに分類できます。 ピクセルベースの分類 そしてオブジェクトベースの分類。

ピクセルは画像の基本単位であり、ピクセルの分析が画像分類を行う主な方法です。 ただし、分類アルゴリズムでは、個々のピクセル内のスペクトル情報のみを使用して画像を分類することも、スペクトル情報とともに空間情報 (近隣ピクセル) を検査することもできます。 ピクセルベースの分類方法はスペクトル情報 (ピクセルの強度) のみを利用しますが、オブジェクトベースの分類方法はピクセルのスペクトル情報と空間情報の両方を考慮します。

ピクセルベースの分類にはさまざまな分類手法が使用されます。 これらには、平均までの最小距離、最大尤度、および最小マハラノビス距離が含まれます。 これらの方法はクラスの平均と分散がわかっている必要があり、それらはすべてクラスの平均とターゲット ピクセルの間の「距離」を調べることによって機能します。

ピクセルベースの分類方法は、近くにある他のピクセルからの情報を使用できないという事実によって制限されます。 対照的に、オブジェクトベースの分類方法では他のピクセルを含めることができるため、空間情報も使用してアイテムを分類します。 「オブジェクト」とは、ピクセルの連続領域を指すだけであり、そのピクセル領域内にターゲット オブジェクトが存在するかどうかを指すものではないことに注意してください。

物体検出のための画像データの前処理

最新の信頼できる画像分類システムは主にオブジェクト レベルの分類スキームを使用しており、これらのアプローチでは画像データを特定の方法で準備する必要があります。 オブジェクト/領域を選択して前処理する必要があります。

画像およびその画像内のオブジェクト/領域を分類する前に、その画像を構成するデータをコンピューターによって解釈する必要があります。画像は前処理して分類アルゴリズムに入力できるようにする必要があり、これは物体検出によって行われます。これは、機械学習分類器をトレーニングするためのデータの準備と画像の準備において重要な部分です。

物体検出は次のように行われます。 さまざまな方法やテクニック。 まず、複数の対象オブジェクトがあるか、単一の対象オブジェクトがあるかが、画像の前処理の処理方法に影響します。 対象となるオブジェクトが XNUMX つだけの場合、画像の位置特定が行われます。 画像を構成するピクセルには数値があり、コンピューターによって解釈され、適切な色と色合いを表示するために使用されます。 バウンディング ボックスとして知られるオブジェクトが対象オブジェクトの周囲に描画されます。これは、コンピュータが画像のどの部分が重要で、どのピクセル値がオブジェクトを定義するかを認識するのに役立ちます。 画像内に対象となるオブジェクトが複数ある場合、オブジェクト検出と呼ばれる手法を使用して、これらの境界ボックスを画像内のすべてのオブジェクトに適用します。

写真: Adrian Rosebrock、ウィキメディア コモンズ経由、CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)

前処理の別の方法は画像セグメンテーションです。 画像セグメンテーションは、画像全体を類似の特徴に基づいてセグメントに分割することによって機能します。 画像の異なる領域は、画像の他の領域と比較して同様のピクセル値を持つため、これらのピクセルは、画像内の関連オブジェクトの形状と境界に対応する画像マスクにグループ化されます。 画像セグメンテーションは、境界ボックスと同様に、コンピューターが画像の特徴を分離してオブジェクトを分類するのに役立ちますが、はるかに正確なピクセル レベルのラベルを提供します。

オブジェクトの検出または画像のセグメンテーションが完了すると、問題の領域にラベルが適用されます。 これらのラベルは、オブジェクトを構成するピクセルの値とともに、さまざまなラベルに関連付けられたパターンを学習する機械学習アルゴリズムに入力されます。

機械学習アルゴリズム

データが準備され、ラベルが付けられると、そのデータは機械学習アルゴリズムに入力され、データに基づいてトレーニングされます。 最も一般的な種類の機械学習のいくつかについて説明します 画像分類アルゴリズム を参照してください。

K 最近傍法

K 最近傍法は、最も近いトレーニング サンプルを調べ、そのラベルを調べて、特定のテスト サンプルに対して最も可能性の高いラベルを確認する分類アルゴリズムです。 KNN を使用した画像分類に関しては、トレーニング画像の特徴ベクトルとラベルが保存され、テスト中に特徴ベクトルのみがアルゴリズムに渡されます。 次に、トレーニングおよびテストの特徴ベクトルが類似性について相互に比較されます。

KNN ベースの分類アルゴリズムは非常にシンプルで、複数のクラスを非常に簡単に処理します。 ただし、KNN はすべての特徴に基づいて類似度を均等に計算します。 これは、画像の分類に特徴のサブセットのみが重要な画像が提供された場合、誤分類が発生する可能性があることを意味します。

サポートベクターマシン

サポート ベクター マシンは、空間に点を配置し、点の間に分割線を引き、点が分割面のどちら側に位置するかに応じてオブジェクトを異なるクラスに配置する分類方法です。 サポート ベクター マシンは、カーネル トリックとして知られる技術を使用して非線形分類を行うことができます。 SVM 分類器は多くの場合非常に正確ですが、SVM 分類器の大きな欠点は、サイズと速度の両方によって制限される傾向があり、サイズが大きくなるにつれて速度が低下することです。

多層パーセプトロン (ニューラルネット)

多層パーセプトロンはニューラル ネットワーク モデルとも呼ばれ、人間の脳からインスピレーションを得た機械学習アルゴリズムです。 多層パーセプトロンは、人間の脳のニューロンが互いに結合されているのと同じように、互いに結合されたさまざまな層で構成されています。 ニューラル ネットワークは、入力特徴がデータのクラスにどのように関連しているかを仮定し、これらの仮定はトレーニングの過程で調整されます。 多層パーセプトロンのような単純なニューラル ネットワーク モデルは非線形関係を学習できるため、他のモデルよりもはるかに正確になります。 ただし、MLP モデルには、非凸損失関数の存在など、いくつかの注目すべき問題があります。

深層学習アルゴリズム (CNN)

写真: ウィキメディア コモンズ経由の APhex34、CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)

最近最も一般的に使用されている画像分類アルゴリズムは、畳み込みニューラル ネットワーク (CNN) です。 CNN は、オブジェクトの分類に最も重要で関連する特徴を抽出できる特殊なレイヤーと多層ニューラル ネットワークを組み合わせたニューラル ネットワークのカスタマイズされたバージョンです。 CNN は、画像の特徴を自動的に検出、生成、学習できます。これにより、機械学習アルゴリズム用に画像を準備するために手動で画像にラベルを付けたりセグメント化する必要性が大幅に軽減されます。また、非凸損失関数を処理できるため、MLP ネットワークよりも利点があります。

畳み込みニューラル ネットワークの名前は、「畳み込み」を作成するという事実に由来しています。 CNN は、フィルターを取得し、それを画像上でスライドさせることによって動作します。 これは、移動可能な窓を通して風景の一部を表示し、一度に窓を通して見える特徴だけに集中することと考えることができます。 フィルターには、ピクセル自体の値と乗算される数値が含まれています。 結果は、元のイメージを表す数値で満たされた新しいフレーム、つまり行列になります。 このプロセスは、選択した数のフィルターに対して繰り返され、その後、フレームが結合されて、元の画像よりわずかに小さく、複雑さの少ない新しい画像が作成されます。 プーリングと呼ばれる技術は、画像内の最も重要な値だけを選択するために使用されます。目標は、畳み込み層が最終的に画像の最も顕著な部分だけを抽出し、ニューラル ネットワークが画像内のオブジェクトを認識できるようにすることです。

畳み込みニューラルネットワーク XNUMX つの異なる部分で構成されます。 畳み込み層は、画像の特徴を抽出し、ニューラル ネットワーク層が解釈して学習できる形式に変換します。 初期の畳み込み層は、単純な線や境界など、画像の最も基本的な要素を抽出する役割を果たします。 中間の畳み込み層は、単純な曲線や角など、より複雑な形状をキャプチャし始めます。 後の、より深い畳み込み層は、画像の高レベルの特徴を抽出します。これらの特徴は、CNN のニューラル ネットワーク部分に渡され、分類器が学習します。

専門分野を持つブロガーおよびプログラマー 機械学習 および 深層学習 トピック。 ダニエルは、他の人が社会利益のために AI の力を活用できるよう支援したいと考えています。