のんびり肉体改造ブログ

30代社会人のトレーニング記録と雑記

ラビットチャレンジレポート(深層学習/後編/その3)

トレーニングにまつわるあれこれを掲載しているブログではありますが,都合によりこのような記事を掲載いたします.
現在一般社団法人ディープラーニング協会のE資格を取得するため,ラビットチャレンジなるプログラムを受講しています.本プログラムにおいてレポート公開が必須になっていることから,こちらのブログにてレポートします.

物体検知とSemantic Segmentation

概要

画像の中で位置と大きさ,クラスと推定するのが物体検知.ピクセル単位でクラス分類をするのが Semantic Segmentation.U-Netは経験があるのでそれなりに馴染みがある.

f:id:CivilEng:20211223103842p:plain

データセット

画像認識モデルの性能を検証するために,MINISTやImageNet,CIFAR-10などを利用するが,物体検知やSemantic Segmentationでもデータセットが存在する.
具体的にはVOC12,ILSVRC17,MS COCO18,OICOD18など.

評価指標

分類問題ではconfusion matrixから評価指標を算出するのが一般的. 物体検出の場合,threshholdの変化に対する振る舞いは以下のようになる.

  • threshholdを変化させると検出数が変化する.
  • threshholdが低すぎる場合,同じ物体を複数回検出してしまう可能性がある.

また,物体位置の予測精度はIOUやDice係数を使用する場合が多い.cmで表現すると,IoU= TP/(TP+FP+FN)で,Dice=2TP/(2TP+FP+FN).

Average Precision

IoUを0.5で固定,クラスラベルを固定した状態で得たPR曲線の積分値をAverage Precisionと呼ぶ.さらに複数のラベルに対してAPを算出,その平均をmAPと呼ぶ.さらにIoUを0.5~0.95まで0.05刻みで変化させて,その平均をとったものをmAPcocoと呼ぶ.

検出速度

リアルタイム検出が求められることが多い物体検出では,FPS(Flame per Second)も重要.

モデル概要

領域検出とクラス推定を別々に行う2段階検出器と,同時に行う1段階検出器がある.2段階は精度が高く,検出が遅い傾向がある.1段階は精度は比較的低いが,検出が早い.

物体検出:SSD

大きさ,アスペクト比が異なる多数のdefault boxを用意して,これらのconfidenceを算出して物体位置を特定する方法.

複数のdefault boxが検出結果として得られるので,以下の手順で抽出していく.

  • スコアが高いデフォルトボックスのみ抽出。
  • 各クラスごとにデフォルトボックスの重なり率IoUを計算
  • IoUが高い場合はスコアの低いデフォルトボックスを除去

f:id:CivilEng:20211224063518p:plain

Semantic Segmentation

こちらは割愛.

GAN

GANはGenarative Adversarial Netsの略.GeneratorとDescriminatorを競わせることで,生成モデルと識別モデルを作成する手法のこと.

ミニマックスゲーム

f:id:CivilEng:20211224064538p:plain

価値関数はクロスエントロピーの形になっている.

Generatorを更新する際には,Descriminatorのパラメータを固定して,Generatorを更新する.Descriminatorを更新する際には,Generatorのパラメータを固定して,Descriminatorを更新する.

以下がイメージとして非常にわかりやすかった.

f:id:CivilEng:20211224070200p:plain

DCGAN

Generatorは100次元の乱数ベクトルから転置畳み込みにより画像を生成する.Descriminatorは畳み込みにより識別する.中間層を全て畳みこみ層を使用するのが特徴.



長くなったが最後の記事でコード演習をレポートする.