深さ学習対象検出(2)-位置決め概念のまとめ
オブジェクト検出シリーズ
0️⃣ 深さ学習対象検出(1)-概念と用語のまとめ
1️⃣ 深さ学習対象検出(2)-位置決め概念のまとめ
2️⃣ 深度学習オブジェクト検出(3)-スライドウィンドウ、Convolution
3️⃣ 深度学習対象検出(4)-Anchor Box、NMS
4️⃣ 深度学習オブジェクト検出(5)-アーキテクチャ-1次または2次検出器
今日のテーマを発表する前に、参考資料を添付してください.では今日も勉強を頑張ります.🐣!
Object Localization
オブジェクト検出を構成するには、オブジェクトのローカライズを理解する必要があります.
このイメージから
画像を分類することは、画像を分類し、画像の中でcarというオブジェクトの位置を決定することは、画像を分類して位置決めすることであり、位置決めによって画像の中の複数のオブジェクトを識別することができ、1つのオブジェクトではない.
Classification with localization
検出を行うためには、分類と位置決めを同時に実行する必要があります.画像をinputとして入力する場合、以下の方法で同時に処理できます.
複数層のConvNetに画像を入力する場合は、アプリケーションソフトmaxのOutput Vectorを使用してクラス別に画像を分類できます.
Output Vectorの分類と位置に出力する場合は、Bounding Boxの座標を追加できます.
画像ソース:ここ
Boundig Boxは、上の図のようにオブジェクトの境界を表します.
上図では、Bounding Boxの座標をbx、by、bh、bwと表す.
Target Label
分類モデルを作成する際、ボリューム層で構成されたバックボーンネットワーク(Backbone Network)から画像の特性を抽出し、クラス間で分類するために完全に接続された層を追加します.
分類問題を解く場合、最終結果ノードの数は、表示するクラスに依存します.
位置決めを行うには、ボックスの位置を表すために、ボリューム層からなるホストネットワークの後に4つの出力ノードを追加する必要があります.
画像ソース:ここです。
ラベルは以下の通りです.
バウンディングボックス(Bbox)を定義する4つのノード
分類モデルではなく出力を追加するローカライズモデルを構成します.
import tensorflow as tf
from tensorflow import keras
output_num = 1+4+3
# object_prob 1, bbox coord 4, class_prob 3
imput_tensor = keras.layers.Input(shape=(224,224,3), name='image')
base_model = keras.applications.resnet.ResNet50(
input_tensor=input_tensor,
include_top=False,
weights='imagenet',
pooling=None,
)
x = base_model.output
preds = keras.layers.Conv2D(output_num, 1,1)(x)
localize_model=keras.Model(inputs=base_model.input, outputs=preds)
localize_model.summary()
上記で作成したモデルでは、上記のyをターゲットラベルとして提供します.Quiz
画像ソース:ここ
上記の入力画像では、オブジェクトを検出するためにターゲットlabel yを自分で作成できます.しかし、この場合、class labelは、個(dog)の単一オブジェクト検出であるため、考慮されない.「Ground Truth」の枠線である座標(位置)は、上図のようにx 1、y 1、x 2、y 2である.入力画像の幅(width)はw、高さ(height)はhである.
[参考写真]
ターゲットラベルy=[1]、x 1/w、y 1/h、(y 2-y 1)/h、(x 2-x 1)/w]
Reference
この問題について(深さ学習対象検出(2)-位置決め概念のまとめ), 我々は、より多くの情報をここで見つけました https://velog.io/@cha-suyeon/딥러닝-Object-Detection-Localization-개념-정리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol