下記の翻訳+補足です.
- タイトル: Detect and Classify Species of Fish from Fishing Vessels with Modern Object Detectors and Deep Convolutional Networks
- 順位: 8位
魚の分類問題
The Nature Conservancy Fisheries Monitoring
- 主にマグロの分類問題
- その他の魚としてはサメやマンボウなどがある.
データの傾向
- クラス分布が非常に不均衡.
- ほとんど同じ画像ばっかり.
- 人間が見ても難しいクラス分類
- 間違ったラベルデータが散見
利用した学習済みモデル
- VGG-16,19
- ResNet-50,152
- Inception-V1,V3,V4
- Xception
- DenseNet-121
Optimizer
- SGD(いまだに使われるのは驚き)
Data Augmentation
- 回転
- 平行移動
- 拡大縮小
- Channelずらし
- 反転
メモ
- Pipeline方法
- 微調整方法についてはこちらを参照
- ResNetはあんまりスコア良くなかったらしい
-
VGG-CAMを利用すると,どこを利用して予測しているか可視化できる.
- CAMはClass Activation Mapsの略称.これ使えるかも
- 魚以外も判断に利用している(e.g. ボート)ことが分かったので,魚部分の検出を行う必要があった.
- Sloth: 矩形に区切るツール
Bounding Box Regressin(境界ボックス回帰)
- VGG16を利用
- logloss(分類誤差)
- 平均二乗誤差(境界ボックス回帰誤差) で損失関数を定義.上手く回帰が成功しているかに思えたが, どうもボートの位置を記憶して割り出していたっぽくてLBだと非常に悪いスコアだった.
物体位置検出アルゴリズム
Faster-RCNN
- R-CNNの改良版
- TensorFlow版
- 5〜7フレーム/秒
YOLO
- シンプル
- 早い(45フレーム/秒)
- ストリーミングビデオなどリアルタイム性が求められる検出タスクに適している.
- NxNに最初分割
SSD
- 精度と速度のトレードオフが良い.
まとめ
- データセットの少ないラベルに対して転移学習つかっても性能が出しづらい.
- VGG-CAMを使ってどこらへんを注視しているか確かめる.