Для установки пакета нужно клонировать репозиторий себе на компьютера и воспользоваться poetry.
git clone https://github.com/nordmtr/eyes.git
cd ./eyes
poetry install
- Размечено вручную 1000 картинок в выборке.
- Использован сторонний датасет из более чем 80000 изображений глаз.
- Аугментация этого датасета с помощью RandAugment.
- Предобучение ResNet18 на этом датасете.
- Файн-тюнинг с разморозкой верхних слоев на размеченной части оригинального датасета.
- Полученная точность на отложенном подмножестве оригинального датасета: 94%.
- Веса находятся в файле
checkpoints/final.pt
.
- При использовании стандартных аугментаций качество модели на претрейне хорошее, но сильно падает при тесте на оригинальном датасете (accuracy порядка 60-70%). Причина кроется скорее всего в том, что несмотря на то, что задачи по сути одинаковые, распределения, соответствующие датасетам разные. Эта проблема называется domain adaptation. Существует множество подходов для ее решения, в частности, архитектура под названием DANN. Я попробовал использовать ее, но большого прироста качества это не дало, к сожалению.
- Сильная аугментация помогает. Я использовал RandAugment с магнитудой 7-10/10 и 3 слоями, и это по всей видимости сглаживало разницу между доменами.
- При файнтюнинге без заморозки все оверфитится.
- В оригинальном датасете некоторые картинки тяжело размечать даже человеку, поэтому полученная точность, как мне кажется, недалека от предела.
- Самое важное --- доразметить полностью выборку. Это скорее всего даст наибольший прирост в качестве.
- Если бы датасет был сильно больше, и руками размечать его было бы очень долго, то стоило бы посмотреть на self-supervised методы обучения.
- Продолжить эксперимент с domain adaptation, попробовать потюнить DANN или посмотреть на более современные модели.
- Попробовать другие архитектуры.
- Потюнить параметры уже используемой сетки.