Система оценивания на базе компьютерного зрения
Вроде, элементарная штука, и должна быть в открытом доступе. Но ни один из существующих алгоритмов не подходил под нашу задачу, и мы решили сделать его самостоятельно.
Мы компания, которая разрабатывает различные решения с использованием технологий искусственного интеллекта. Для реализации одного проекта нам потребовалась система компьютерного зрения, умеющая распознавать жесты «палец вверх» и «палец вниз».
Проект 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.