Система оценивания на базе компьютерного зрения

Вроде, элементарная штука, и должна быть в открытом доступе. Но ни один из существующих алгоритмов не подходил под нашу задачу, и мы решили сделать его самостоятельно.

Система оценивания на базе компьютерного зрения

Мы компания, которая разрабатывает различные решения с использованием технологий искусственного интеллекта. Для реализации одного проекта нам потребовалась система компьютерного зрения, умеющая распознавать жесты «палец вверх» и «палец вниз».

Проект Rate Me основан на компактной нейронной сети для обнаружения объектов Tiny-YOLO 3. Тренировали сеть с помощью фреймворка Darknet. Чтобы запустить алгоритм на на языке программирования Python, мы использовали DNN модуль библиотеки OpenCV. Сеть имеет mAP = 0,851941 или 85,19%, а также среднее IoU = 73,89%. Rate Me работает со скоростью 6-7 кадров в секунду на процессоре Intel Core TM i5-4300M при частоте 2.60 ГГц.

Система оценивания на базе компьютерного зрения

Изначально обучающий датасет состоял из 50 картинок, размеченных с помощью инструмента LabelImg. Но после тренировки он детектил лайки и дизлайки только правой руки и только мужские. Для него вот здесь ничего не было:

Погуглив, мы собрали еще 200 фото, которых тоже оказалось недостаточно. В ход пошли офисные и вне офисные фотосессии коллег на разных фонах и в разной одежде. У нас получилось еще 1500 картинок. Казалось бы, что этого должно быть достаточно. Однако теперь образовалась новая проблема: алгоритм считал, что если оттопырен палец вверх или вниз, значит лайк или дизлайк соответственно. Мы снова отправились собирать датасет, только теперь с другими жестами или вообще без них. В итоге, у нас получился набор, который состоит из 3 000 размеченных фотографий, сделанных с разных ракурсов и на различных фонах, где люди показывают большой палец вверх, вниз или что-то другое.

Теперь любой желающий может встроить алгоритм в свой проект и автоматизировать процесс оценивая чего-либо или кого-либо. Например, с помощью Rate Me можно:

  • Оценить музыку на сервисе YouTube Music, когда неудобно нажимать на кнопки, чтобы пропустить песню или поставить ей лайк

  • Подсчитать голоса на различных конкурсах для определения победителя

  • Оценить напитки или блюда, которые понравились или не понравились во время их дегустации

Мы, в свою очередь, задачу с помощью Rate Me решили и успешно применили его в проекте, о котором вам расскажем чуточку позже. А пока протестировать работу алгоритма можно, скачав его с GitHub.

55
3 комментария

Выглядит как тренировочное задание на курсе по CV.
Зачем было всех мучать и делать на чистом питоне, когда есть TF, Keras?
Удивились про то, что работает только на мужских руках и на изображениях? Про оверфиттинг не слышали?
Не проще ли было кропнуть изображения и прогонять само изображение лайка или дизлайка не собирать различные фоны , разную одежду итд.

1
Ответить

Зачем было всех мучать и делать на чистом питоне, когда есть TF, Keras? Мы никого не мучали) О второй части вопроса могу сказать, что Darknet – это отдельный фрэймворк, например. С его помощью была натренировна модель Tiny-YOLO 3, которая быстрее многих сетей на TF/Keras. Нам была важна скорость. В самой программе архитектура и веса загружаются с помощью OpenCV.

Удивились про то, что работает только на мужских руках и на изображениях? Про оверфиттинг не слышали?Слышали, не он)

Не проще ли было кропнуть изображения и прогонять само изображение лайка или дизлайка не собирать различные фоны, разную одежду итд.Проще, но это другая задача.

Ответить