Сегментация и детекция
Владимир Игловиков
Classification
![](http://html.scirp.org/file/4-7800353x6.png)
![](https://cs8.pikabu.ru/post_img/2016/11/09/6/1478684091112548169.jpg)
Cat (0.99)
Dog(0.01)
Segmentation
![](https://media.slid.es/uploads/647006/images/5923491/segmentation.png)
- Сегментация = попиксельная классификация
- Не требует большого объема тренировочных данных.
- Все сегментационные сети - это архитектуры вида FCN.
Segmentation: Metric
![](https://media.slid.es/uploads/647006/images/5924991/iou.png)
![](https://media.slid.es/uploads/647006/images/5925002/segmentation_metric.png)
Чаще всего используют Dice - особенно в медицинских снимках
и Jaccard (IoU)
Fully Convolutional Network: FCN
![](https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/image_folder_7/FCN.jpg)
- Оторвать Dense слой, или Dense => Conv.
- В сети мало параметров.
- Берет на вход картинки любого размера.
Jonathan Long, Evan Shelhamer, Trevor Darrell; The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015, pp. 3431-3440
FCN = Efficient Sliding Window
![](https://media.slid.es/uploads/647006/images/5925042/window.gif)
![](https://media.slid.es/uploads/647006/images/5925043/conv_vs_sliding.png)
Classification to Segmentation
![](https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/image_folder_7/FCN.jpg)
- Оторвать Dense или Dense => Conv
- Добавить декодер
Jonathan Long, Evan Shelhamer, Trevor Darrell; The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015, pp. 3431-3440
FCN8 to SegNet
![](https://meetshah1995.github.io/images/blog/ss/fcn.png)
FCN8
SegNet
Заменить Upsampling на иерархический Upsampling
V. Badrinarayanan, A. Kendall, and R. Cipolla, “Segnet: A deep convolutional encoder-decoder architecture for image segmentation,” arXiv:1511.00561, 2015
SegNet to UNet
![](http://cvlab.postech.ac.kr/research/deconvnet/images/overall.png)
SegNet
UNet
Added skip connections
![](https://media.slid.es/uploads/647006/images/5923329/u-net-architecture.png)
O. Ronneberger P. Fischer T. Brox "U-net: Convolutional networks for biomedical image segmentation" Proc. Med. Image Comput. Comput.-Assisted Intervention pp. 234-241 2015.
UNet => TernausNet
![](https://media.slid.es/uploads/647006/images/4516154/unet111.png)
![](https://media.slid.es/uploads/647006/images/5923329/u-net-architecture.png)
Text
Iglovikov, V., Shvets, A.: Ternausnet: U-net with vgg11 encoder pre-trained on imagenet for image segmentation. arXiv preprint arXiv:1801.05746 (2018)
Энкодер инициализируем весами с ImageNet
Any binary Image Segmentation => UNet
![](https://media.slid.es/uploads/647006/images/4101843/i164091.jpg)
![](https://media.slid.es/uploads/647006/images/4101848/i164091.png)
Medical Imaging
![](https://media.slid.es/uploads/647006/images/4516119/JAX_Tile_017_RGB_0.jpg)
![](https://media.slid.es/uploads/647006/images/4516120/JAX_Tile_017_RGB.png)
Satellite Imaging
Feature Pyramid Networks (FPN)
![](https://media.slid.es/uploads/647006/images/5923372/fpn.png)
- Легко добавить во многие архитектуры.
- Помогает с multiscale
Tsung-Yi Lin, Piotr Dollar, Ross Girshick, Kaiming He, Bharath Hariharan, Serge Belongie; The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017, pp. 2117-2125
U-Net + FPN
![](https://media.slid.es/uploads/647006/images/5923329/u-net-architecture.png)
![](https://media.slid.es/uploads/647006/images/5923418/fpn1.png)
Segmentation Loss Function
Каждый пиксель классификатор => Categorical / Binary Cross Entropy(CCE, BCE)
Но! Метрика Dice / Jaccard
Dice / Jaccard недифференцируемы =>
Soft Dice / Soft Jaccard
и добавляем в loss
![](https://media.slid.es/uploads/647006/images/5925010/bce_dice.png)
Lovasz-Softmax loss
Использовать для FineTune
Berman, M., Rannen Triki, A., Blaschko, M.B.: The lovász-softmax loss: a tractable surrogate for the optimization of the intersection-over-union measure in neural networks. In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 4413–4421 (2018)
Detection
![](https://media.slid.es/uploads/647006/images/5923526/detection.gif)
Предсказываем:
- координаты боксов
- класс
- опционально атрибуты
Detection Metric: mAP
![](https://media.slid.es/uploads/647006/images/5925023/detection_1.png)
Метрика крайне замороченная.
Нужно свести в одно число:
- Точность бокса
- Confidence класса
Для каждого класса:
- Хотим получить Precision Recall Curve.
- Цикл по трешходам confidence.
- Трешхолд по IOU => TP, FP, FN
- mAP = area under PR Curve
![](https://media.slid.es/uploads/647006/images/5924991/iou.png)
Non Maximum Supression (NMS)
Detection = Предсказываем много боксов, а потом фильтруем
![](https://media.slid.es/uploads/647006/images/5925333/nms3.jpg)
![](https://media.slid.es/uploads/647006/images/5925334/nms4.jpg)
Detection
One-shot (быстрые)
YOLO, SSD, RetinaNet,
SqueezeNet, DetectNet
Two-shot (точные)
R-FCN, Fast RCNN, Faster-RCNN
![](https://media.slid.es/uploads/647006/images/5923563/detector-comparison.png)
One shot detectors
![](https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/image_folder_7/FCN.jpg)
![](https://media.slid.es/uploads/647006/images/5923780/YOLO.jpeg)
Для каждой ячейки в последнем conv слое предказываем координаты бокса и класс объекта с центром в ячейке.
One shot detectors: YOLO
Для каждой ячейки в последнем conv слое предказываем координаты бокса и класс объекта с центром в ячейке.
![](https://media.slid.es/uploads/647006/images/5923791/YOLO1.png)
One shot detector with FPN = SSD
![](https://media.slid.es/uploads/647006/images/5923854/yolo_vs_ssd.png)
mAP | FPS | |
---|---|---|
YOLO v2 | 21.6 | 91 |
SSD | 28.0 | 59 |
Two shot: R-CNN
![](https://media.slid.es/uploads/647006/images/5923591/rcnn.png)
![](https://media.slid.es/uploads/647006/images/5923613/selective_search1.png)
R-CNN = Selective Search
+ Classification
Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik; The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014, pp. 580-587
Two shot: Fast-RCNN
![](https://media.slid.es/uploads/647006/images/5923605/rcnn1.png)
![](https://media.slid.es/uploads/647006/images/5923632/fastrcnn.png)
R-CNN => Fast R-CNN
Меняем порядок Crop и ConvNet
50 секунд => 2 секунды (25 раз быстрее)
Fast => Faster
![](https://media.slid.es/uploads/647006/images/5923632/fastrcnn.png)
Fast R-CNN => Faster R-CNN
Вычисляем proposals самой сетью.
2 секунды => 0.2 секунды (10 раз быстрее)
![](https://media.slid.es/uploads/647006/images/5923662/faster-rcnn.png)
Two shot: performance
![](https://media.slid.es/uploads/647006/images/5923675/comparison.jpg)
Improvements
- Тяжелые backbones
- FPN
- ROI Pooling => ROI Align
- Аугментации
Backbone | FPN | mAP |
---|---|---|
ResNet 50 | No | 34.8 |
ResNet 50 | Yes | 36.8 |
ResNet 101 | Yes | 39.1 |
ResNext 101 | Yes | 41.2 |
Сегментация и детекция
By Vladimir Iglovikov
Сегментация и детекция
- 7,524