Язык программирования - Python. Разрешено использовать любую библиотеку для машинного обучения (PyTorch, TensorFlow, Keras и др.). Запрещено использование готовых архитектур "из коробки" одной строчкой, в коде должны быть прописаны слои модели.
Необходимо создать модель для вычисления оптического потока изображения, обучить ее на предложенном датасете, а также измерить время работы модели на тестовом датасете и посчитать метрику.
Датасет содержит 1485 примеров, каждый из которых состоит из 2 изображений и соответсвующего им оптического потока (<sample_id>_img1.ppm <sample_id>_img2.ppm <sample_id>_flow.flo).
Ссылка на датасет.
Предложенный датасет представляет из себя выборку из синтетического датасета 'Flying Chairs'. Изображения показывают рендеры 3D-моделей кресел, движущихся перед случайным фоном, при этом движения как стульев и фона являются чисто плоскостными.
@InProceedings{DFIB15,
author = "A. Dosovitskiy and P. Fischer and E. Ilg and P. H{\"a}usser and C. Haz{\i}rba{\c{s}} and V. Golkov and P. v.d. Smagt and D. Cremers and T. Brox",
title = "FlowNet: Learning Optical Flow with Convolutional Networks",
booktitle = "IEEE International Conference on Computer Vision (ICCV)",
month = " ",
year = "2015",
url = "http://lmb.informatik.uni-freiburg.de/Publications/2015/DFIB15"
}
Для загрузки можно использовать функции, представленные в файлах utils.py и loader.py.
Для оценки качества модели используется следующая метрика:
- EPE - End-point error.
Метрика рассчитывается как Евклидово расстояние между истинным оптическим потоком и полученным в результате вычислений.
Реализация расчета метрики на python с использованием pytorch представлена в файле multiscaleloss.py в функции realEPE
Модель FlowNet S (находится здесь), оптимизатор Adam, loss - EPE, batch_size = 8, количество эпох 30.
Результаты:
EPE (train-val set) | EPE (test set) | Time per image, sec |
---|---|---|
12.09 | 10.55 | 0.042 |