При помощи TensorFlow на открытых данных была обучена модель архитектуры U-Net сегментации автомобильных дорог на спутниковых снимках для дальнейшей навигации по местности.
Был написан скрипт для парсинга открытых данных. Это спутниковые снимки торонто с масками дорог на них. Все снимки имеют формат 1500x1500, некоторые из них были "битые". Парсился следующий сайт. Аналогичном образом были спарсены маски для этих снимков на этом сайте. После чего все снимки были сжаты до размера 512x512 в силу нехватки мощности и времени на правильное "разрезание" картинок.
Пример фрагмента изображения:
Была выбрана архитектура U-Net, которая хорошо работает на сегментации при небольшой выборке. После чего Train выборка была поделена на train/validation в соотношении 4:1. А также 16 тестовых изображений для визуальной проверки. Модель была глубиной в 7 слоев, оптимизировалась метрика accuracy, функция потерь — binarry_cross_entropy. Полученную модель можно найти в репозитории.
Схема модели для RGB изображения 256x256:
Удалось добиться accuracy в 0.9645 на валидационной выборке. Для примера рассмотрим три тестовых изображения, и как модель на них отработала.