РИТ++ 2017, секция ML + IoT + ИБ
Зал Белу-Оризонти, 6 июня, 16:00
Тезисы:
http://ritfest.ru/2017/abstracts/2802.html
В докладе я расскажу про решение задачи сегментации объектов на спутниковых снимках, которая была поставлена в рамках Kaggle-соревнования Dstl Satellite Imagery Feature Detection. В этом соревновании я в команде с Романом Соловьёвым занял 2 место.
В докладе я кратко опишу особенности работы нейросети для сегментации объектов. Затем будут показаны примеры модификаций нейросети с учетом особенности задачи. Также будут рассказаны приемы обучения нейросети, значимо повышающие финальную точность. Будут рассказаны все топ-5 решения.
В качестве бонуса - история, как можно сломать лидерборд за пару дней до конца соревнования.
9. Улучшения базового решения
Conv + ReLu → Conv + BN + ReLu
Augs: Rotation, Mirror, Flip
Adam (LR 0.001)
Hard samples on Epoch:
...
~3000
Train pool
Predict
...
...
...
...
...
Class 1
Class 2
Class n
Top 100 hard samples per class
~30%
10. RGB+P, 224 x 224
M band
56 x 56
A band
14 x 14
masks, 224x224
Multi input
Conv
+
Pool
Conv
+
Pool
Concat
Concat
Concat
Concat
Conv
+
Up
Conv
+
Up
Conv
+
Up
Conv
Conv
Conv
+
Pool
Conv
+
Pool
11. Full pipeline
RGB+P+M
1280 x 1280
128x128
U-net
RGB+P
3360 x 3360
160x160
U-net
RGB+P
3584 x 3584
M band
896 x 896
A band
224 x 224
56 x 56
14 x 14
Multi
input
U-net
1 class, gmean epoch: 489, 450, 245
3 class, epoch: 489
6 class, epoch: 489
7 class, gmean epoch: 389, 349
8 class, gmean epoch: 489, 450, 245
2 class, epoch: 518
4 class, epoch: 457
5 class, epoch: 321
20. Kyle pipeline overview
RGB
RGB+M
RGB+M+A
RGB+P+M+A
M+P+A
224 x 224 x n
256 x 256 x n
288 x 288 x n
320 x 320 x n
Class n
U-net
Depth 3
Depth 4
Depth 5
Bagging
Union
http://blog.kaggle.com/2017/04/26/dstl-satellite-imagery-competition-1st-place-winners-interview-kyle-lee/
Oversampling on rare classes
Vehicles sample on Roads and Building
Augs: rotate 45 deg, 15-25% zooms/translations, shears, channel shift, flips
Adam (LR 0.001)
Index methods for waterways (CCCI and NDWI)
21. Vladimir Iglovikov, Ph.D. & Sergey Mushinskiy (3rd place)
3560 х 3560 x 16 chns
RGB+P
M band
EVI
NDWI
SAVI
CCCI
112 x 112 x 16
Class n
U-net
Conv + ReLu → Conv + BN + Elu
Batch 128
Train augs: Mirror, Flip, 45 Flip (transpose) [D4 group]
Nadam (LR 0.001, 0.0001)
Test time aug: original + flips + transpose
80 x 80
P.S. Sergey is open for new opportunities in Data Science
linkedin.com/in/sergeymushinskiy
22. alno & kostia & deepsystems
Many different approaches:
UNet with smaller patches
Modified DenseNet (Tiramisu) github.com/SimJeg/FC-DenseNet
SegNet (conv/deconv without skip connections)
Using pre-trained VGG (smart pre-processing by deepsystems)
Some post-processing for water
Voting/union of several models
2nd place on Public LB → 5th place on Private LB
Standing water 0.072 → 0.018, other classes were good.
24. Misc. Manmade structures
Very thin, lot of loss on polygon → mask → polygon:
pixel jaccard 0.27 → polygon jaccard 0.23 :(
Solution: before making train polygons, do .buffer(0.5):
pixel jaccard 0.29 → polygon jaccard 0.29 on validation, 0.027 on Private LB