bonlime / opencities

DrivenData OpenCities competition
1 stars 0 forks source link

Papers #3

Open bonlime opened 4 years ago

bonlime commented 4 years ago

Пусть тут будет склад статей

bonlime commented 4 years ago

Статья про разпознавание объектов на спутниковых снимках: End-to-End Deep Convolutional Active Contours for Image Segmentation

upd. прочитал. мне нравится идея. не понятно почему они используют какую-то супер маленькую сеточку для детекции крыш, вместо какого-нибудь dilate Resnet ну и ладно. С точки зрения реализации сделать на выходе 3 слоя для distance transform, lambda1 и lambda2 не сложно. А вот самому написать DSAC может быть очень проблемно.

upd 2. нашел еще одну статью от того же автора: DALS: Deep Active Lesion Segmentation. Там есть чуть больше инфы о том, как устроен этот его DSAC.

bonlime commented 4 years ago

Еще у меня есть идея попробовать собрать монстра вроде: EfficientNet backbone + aspp (из Deeplabv3) чтобы улучшить фичи на последнем слое + BiFPN чтобы улучшить фичи на слоях с высоким разрешением + Segmentation голову поверх всего этого

bonlime commented 4 years ago

Panoptic-DeepLab - небольшое улучшение DeepLab. [Panoptic Feature Pyramid Networks](Panoptic Feature Pyramid Networks) - то что в pytorch_tools я впилил как SegmFPN

zakajd commented 4 years ago

Статья про разпознавание объектов на спутниковых снимках: End-to-End Deep Convolutional Active Contours for Image Segmentation

Сейчас написал письмо одному из авторов статьи, попросил поделиться исходным кодом. Будем надеяться, что он ответит.

upd: ahatamiz@cs.ucla.edu не ответил. Эмиль хочет написать на FB https://www.facebook.com/ahatamiz буду ждать результатов

bonlime commented 4 years ago

https://arxiv.org/pdf/1805.04777.pdf Статья о convolutinal conditional random fields. Если я правильно понимаю, можно обучить сетку с binary cross-entropy, а потом поверх набросить эту штуку и она может улучшить предсказания. есть код для PyTorch! upd. с пол пинка код не завелся и с пинка тоже. видимо придется разобраться что там происходит прежде чем получится заставить это работать

bonlime commented 4 years ago

https://arxiv.org/pdf/2001.04269.pdf Статья про то, что можно добавить дескриминатор, adversarial loss и учить сегментацию как GAN. Звучит прикольно, но кажется что на практике будет сложно применить

bonlime commented 4 years ago

END TO END TRAINABLE ACTIVE CONTOURS VIA DIFFERENTIABLE RENDERING

Еще одна статья про active contours. Огромный плюс - у них есть код на торче! Можно попытаться запустить upd. у них есть фундаментальнео ограничение - они хорошо сегментируют только один объект, причем он должен находиться в центре. картинки в статье черри пикнутые.

zakajd commented 4 years ago
  1. Вот тут хороший репозиторий. Перечислены статьи, их немного, можно изучить. https://github.com/JunMa11/SegWithDistMap Статьи все свежие.

  2. https://arxiv.org/pdf/1909.01671.pdf Но тут нет кода.

  3. Более старая статья про Watershed transform, и по ней, кажется, есть код. https://arxiv.org/abs/1611.08303v2

Главный вопрос, собственно, в том, как считать distance map на pytorch, чтобы можно было делать backprop. Пока что я реализаций distance transform на Pytorch не встречал, но м.б. есть какие-то его заменители или приближения?

zakajd commented 4 years ago

https://towardsdatascience.com/mapping-challenge-winning-solution-1aa1a13161b3 Нет смысла читать всю статью. Основная идея, которую можно попробовать повторить, это использование разных взвешенных лоссов.

1) Distance weights: high values corresponds to pixels between buildings.

2) Size weights: дополнительно взвешивать маски в зависимости от размера здания. Т.е. чем оно больше, тем его вес меньше. Идея видимо в том, что большие здания сетка и так найдёт, поэтому нужно искусственно учить её находить варианты поменьше. При это всё что не здание закрашивать чёрным (максимальный вес)

bonlime commented 4 years ago

Aerial image semantic segmentation using DCNN predicted distance maps Статья про обучение предсказаний на спутниковых снимках с использованием signed distance maps

zakajd commented 4 years ago

Ссылки от парня из лабы Карима:

  1. Для того, чтобы разделять здания более четко могу порекомендовать отдельную сетку научить сегментировать границы зданий (взять границу толщиной 2-3 пикселя), и потом из итоговой маски зданий вычитать маску границ. https://www.kaggle.com/c/data-science-bowl-2018/discussion/54741

  2. Для выравнивания границ ничего адекватного не могу подсказать, мы после всего уже с векторными полигонами работаем, но это вряд ли улучшит метрики, только внешний вид будет более привычный человеку, вот тут примерно написано: https://medium.com/geoalert-platform-urban-monitoring/urban-mapping-going-over-post-processing-issues-f89170131b56