sudo . eyeglasses.sh
cd (назад к папке с glasses recognition)
python run.py --input='result_test'
sudo . eyeglasses.sh
Можно скачать по ссылке
Разархивирование unzip MeGlass_120x120.zip
Загрузить присланные фотографии в папку result_test(сразу сами файлы, без внутреннего разделения на glasses, not glasses)
prepare_data.py - подготовка датасета
train_model.py - обучение модели
run.py - инференс
'''
python prepare_data.py
python train_model.py
python run.py --input='result_test'
'''
-
Так как в выборках нет изображений очков не на лицу, то не обязательно детектить само лицо, достаточно только определить есть ли очки или нет. Ограничения на модель (вес, время инференса, точность - подробнее в ноутбуке) удается выполнить трансфером (squeezenet1_1,обученная весит 2.9 МБ) на обрезанную выборку лиц с очками и без.
PS: В принципе при необходимости классифицировать сложные случаи, можно поподбирать сетки с InsightFace Model Zoo и что-нибудь подобное RetinaFace для обнаружения области лица.
-
Добавление динамического квантования из torch не уменьшило размер модели(смотрите ноутбук).
-
Инференс дополнительно можно ускорять добавлением параллельности(multiprocessing).
-
Итоговые значения метрик тестил в ноутбуке для присланной выборки Recall(unglasses) = 1, Recall(glasses) = 0.9.
torch - 1.3.0
numpy - 1.16.1
torchvision - 0.4.1
sklearn - 0.20.2
argparse - 1.1
pandas - 0.25.1