深層学習_画像認識_応用

AlexNet(2012年)

2012年のILSVRCの優勝モデル

GoogLeNet(2014年)

2014年のILSVRCの優勝モデル
フィルタサイズの異なる畳み込み層を並列に配置、それぞれの結果をチャンネル方向に結合して出力するInceptionを多層に積み重ねた構造を持つ.
Inception:
①フィルタの値を各画素値にかけ、すべて足し合わせたものが最終出力値となる.
②ネットワークの途中から補助的分類器と呼ばれるサブネットワークにおいても予測し、逆伝播で勾配消失を回避する.
③サイズの異なる畳み込みを並列に重ね、複数のスケールの特徴を抽出することができる.層を深くして複雑の特徴を表現できるようになる.
④Inceptionのバージョン:Inception-ResNetはResNetアーキを採用した;Inception-v3はBatch Normalizationを採用した;Inception-v2はInceptionモジュールで使用される畳み込みフィルタの大きさを変更した.

GAP(Global Average Pooling)の採用:最終の全結合層の代わりに取り入れた手法である。各チャンネルの値の平均を求めて、各チャンネルの平均値を要素とするベクトルに変換することで過学習を抑制する.全結合層ですべての画素値を使う場合より大幅に計算量を削減できる.

VGG(2014年)

2014年のILSVRCの準優勝モデル
特徴:AlexNetより深い層で、小さな 3×3フィルタ(全部3x3に統一)中心の構造にして、プーリングを行う.畳み込み層と全結合層を連結したシンプル構造である.
問題点:層が深くなったことで勾配消失問題

YOLO(2016年)

YOLOシリーズの著者とリンク集(2023/01のv8まで) - Qiita
特徴:入力画像を複数の小領域に分割し、各小領域ごとにクラス分類とbboxの位置や大きさの回帰を行う

SSD(2016年)

特徴:大きさの異なる複数の特徴マップを使って、クラス分類やbbox回帰を行う

ResNet(2016年)

ResNet

F(x)は、入出力の差分 H(x)-xを学習

WideResNet(2017年)

<特徴>

  • モデルパラメータを増加させてモデルの表現力を上げている
  • 移転学習に用いてることを考える、do_fine_tuning = False

残差ブロックについて

  • 畳み込み層の出力と残差ブロックへの入力は同じサイズと限らない
  • 残差ブロックに含まれる畳み込み層のカーネルサイズは全て3x3
  • 残差ブロックの出力は、畳み込み層側の出力と残差ブロックへの入力の差である
  • 残差ブロックに含まれる畳み込み層は2層である

R-CNN, Fast R-CNN, Faster R-CNN

R-CNN (2014年)

特徴

選択的探索(Selective Search)を使って物体が存在する候補領域を求めて、その領域を切り抜き、畳み込み層による特徴抽出を行う.
②NMS(Non Maximum Supression)を使って、IoUと呼ばれる評価指標を基準に画像を認識する.
SVMによるクラス分類と全結合層のbbox座標の回帰を行う.
CNNのインプットに合うように候補領域の画像をリサイズする.

課題

課題1:候補領域ごとに畳み込みによる特徴抽出が必要となる (→Fast R-CNNでは)
課題2:選択的探索による候補領域すべての決定にCNNの順伝播計算で検出時間がかかる (→Faster R-CNNでは)

Fast R-CNN(2015年)

2015年のILSVRCの優勝モデル、初めて人間のエラー率 5% を上回る精度を達成した.バッチ正則化を導入した.
R-CNNの課題1に対して、画像全体を複数解畳み込んで特徴マップを生成し、選んだ特徴マップから各候補領域に該当する部分を抜き出す.
物体候補領域の大きさにかかわらず固定サイズの特徴マップを抽出するROIプーリングを行う.
処理フロー:入力画像⇒CNNで特徴マップの作成+Selective Searchで候補領域の作成⇒候補領域に従って特徴マップを切り出す⇒固定サイズにプーリング⇒全結合層⇒Softmax関数でクラス分類

Faster R-CNN(2015年) paper

R-CNNの課題2に対して、領域提案ネットワーク(Region Proposal Network)というサブネットワークで候補領域を選ぶ.検出時間が短縮できた.

各スライディング・ウィンドウには、k個のアンカーボックスを設定する.
k個のアンカーボックスは、それぞれ異なるスケールとアスペクト比を持つ矩形領域である.

RPNへ入力される特徴マップの(H,W,C)の場合、HxW個のスライディング・ウィンドウごとにk個のアンカーボックスが存在するため、アンカーボックスの個数はHxWxkとなる.

RPNの訓練の時の損失関数の式:
\mathcal{L}_{RPN} (\{p_i\},\{t_i\}) = \frac{1}{N_{cls}}\mathcal{L}_{cls}(\tilde{p_i},p_i)  + \lambda \frac{1}{N_{reg}} \sum_i  \tilde{p_i}^* \mathcal{L}_{reg}(\tilde{t_i},t_i)

i: バッチ内のアンカーボックスのインデックス.
pi: 番目アンカーボックスの物体らしさ(Objectness)確率の[1: 物体, 0: 背景]の正解値.
piハット: piの予測値.
ti: 番目アンカーボックスの修正量の真の座標ベクトル
tiハット: アンカーボックスの修正量の予測の座標ベクトル
 p^*は、回帰損失にかかる係数.正例(物体)のアンカーボックスの場合のみ回帰損失を加味するため

分かりやすい説明:
Faster R-CNNにおけるRPNの世界一分かりやすい解説. 今更ですがFaster… | by Kai | LSC PSD | Medium
Faster R-CNN: 2ステージ型の物体検出CNNの元祖 | CVMLエキスパートガイド

FCN(2015年)

特徴

①全結合層の代わりに畳み込み層を使用するため、入力画像サイズが異なっていても単一のモデルで予測できる
②大きさの違う複数の特徴マップを転置畳み込み(transposed conv)で拡大し、大きさを揃えた上で各画素ごとに足し合わせることで、物体の詳細な情報を捉えることができる.

SegNet(2017年)

エンコーダとデコーダにより構成された、自己符号化器型のCNNである.

特徴

エンコーダ側の最大値プーリングで取得した値の場所を記録して、その情報をデコーダ側のアップサンプリングに利用する.
FCNはアップサンプリングである特徴マップ上の値が元々あった場所のみを利用するため、SegNetはFCNより省メモリである.

UNet(2015年)

SegNet,FCNよりも高精度である.

特徴

エンコーダ側が持つ入力の位置情報をデコーダに渡すとき、DenseNetのようにエンコーダ側の特徴マップとデコーダの特徴マップをチャンネル方向に結合する方法である.
画像変換を行う生成モデルpix2pixの生成器にも利用される.

MobileNet(2017年)

特徴

「depthwise convolution」と「pointwise convolution」の組み合わせで軽量化を実現している

  • 通常の畳み込み層のパラメータθ数 (H \times W \times C)\times M \times K^2
  • depthwise convolutionのパラメータθ数 (H \times W \times C) \times K^2
  • pointwise convolutionのパラメータθ数 (H \times W \times C) \times M


計算コストは以下のパラメータの大きさに乗算的に依存していること

  • 入力特徴マップのチャネル数  C_{in}
  • カーネルサイズ f ×f
  • 出力チャネル数  C_{out}
  • 特徴マップサイズ DF × DF

通常の畳み込み層のパラメータθ数  C_{in} C_{out} f^2
depthwise convolutionのパラメータθ数  C_{in} f^2
pointwise convolutionのパラメータθ数  C_{in} C_{out}

MobileNet モデルは、これらの各項とその乗算的関係に対応することで計算コストを削減する.
具体的には、depthwise convolutions convolutionsを用いることで、出力チャネル数とカーネルサイズが乗算されることを解消する.
E資格合格に向けて 深層学習day4 (応用モデル) - Qiita
軽量モデルに新風を巻き起こした代表格!MobileNetV1 を詳細解説! | DeepSquare

Segmanticのように広い領域を参照する必要があるタスクの場合、単にフィルタサイズを大きくすると、パラメータ数が増加する.
そのため、少ないパラメータ数で広い領域を参照できる畳み込みはDilated convolutionである.
生成モデルのように小さな画像から大きな画像を生成する場合に使う畳み込みはtransposed convolutionである.

DenseNet (2018年)

  • 特徴

①DenseBlock
DenseNetでは前にある全てのノードに対してスキップ接続を行う.
DenseNetのスキップ接続では、ResNetの入力と出力を加算するのではなく、連結するため、チャンネル数が変わる.
(一方、ResNetでは画像の要素同士を加算するため、チャンネル数は増えない)
②Transition Layer
Dense Blockの間にプーリング層を挿入して画像サイズを変更する.

FCOS(2019年) paper

Fully Convolutional One-Stage Object Detection

RetinaNet,SSD,YOLOV2,V3やFasterR-CNNでの問題点:

  • ハイパーパラメータ(サイズ、アスペクト比、数)の設定に敏感
  • アンカーボックスのサイズとアスペクト比が固定
  • ポジティブサンプルとネガティブサンプル(背景)で均衡が崩れる学習

従って、アンカーボックスフリーが必要となる
one-stage:bboxの候補領域の選定とクラス判別を一括で行う→計算コスト小

center-ness 目的は物体中心に近い位置での誤差を大きくする
ラベルと予測されたCenter-nessを、Binary Cross Entropy関数(BCELoss)で計算

損失関数では、分類計算 LclsはFocal Loss損失関数;四次元ベクトル LregはIoU Loss損失関数

ai-kenkyujo.com