Нейросетевая кормушка автоматизировала дрессировку собак

Американские разработчики собрали аппарат для полуавтоматической дрессировки собак. Например, после команды «сидеть» устройство распознает с помощью нейросети положение собаки и, если оно соответствует команде, выдает ей лакомство. Статья о разработке опубликована на arXiv.org.

При дрессировке собак хозяева или тренеры обычно используют метод обучения с подкреплением, то есть тем или иным образом вознаграждают животное за желаемое поведение, например, давая ему лакомство. Этот метод не только гуманнее метода обучения через наказание, но и, как показывают исследования, эффективнее, а также вызывает у собак меньший стресс во время обучения. Поскольку процесс обучения принципиально прост (необходимо оценить действие собаки и дать или не дать награду), его можно автоматизировать и некоторые исследователи уже создавали подобные алгоритмы.

Джейсон Сток (Jason Stock) и Том Кейви (Tom Cavey) из Университета штата Колорадо создали алгоритм, адаптированный для работы на недорогом одноплатном компьютере, и аппарат для дрессировки, который самостоятельно выдает собаке угощение за правильные действия. Они использовали компьютер NVIDIA Jetson Nano, у которого есть мощный видеоускоритель, подходящий для выполнения нейросетевых алгоритмов. К нему они также подсоединили камеру и самодельный дозатор, который приоткрывает отсек с кормом, чтобы оттуда высыпалась порция угощения в качестве награды. Авторы не отметили в статье, как именно дается команда, и не перечислили динамик в списке оборудования, так что, по-видимому, эту часть работы все же выполняет человек и работу аппарата нельзя назвать полностью автоматической.

Разработчики использовали три распространенных команды: «сидеть», «стоять» и «лежать». Для их распознавания они опробовали различные модификации трех сверточных нейросетей: ConvNet, MobileNetV2 и EfficientNet, а после обучения опробовали квантование («сжатие» нейросети за счет преобразования чисел с плавающей запятой в целые, подробнее можно прочитать тут) с помощью TensorFlow и TensorRT.

Для обучения нейросетевых моделей авторы воспользовались датасетом Stanford Dog Dataset и самостоятельно разбили кадры из него на четыре группы, соответствующие трем желаемым положениям собак и одному типу с неопределенным положением. В результате они получили набор из 20578 фотографий с разными собаками, сделанных в разных окружениях и при разном освещении.

Обучив множество комбинаций нейросетей и методов квантования, они определили два оптимальных варианта, один из которых выдает высокую точность и скорость работы, а второй оптимизирован для эффективного использования памяти. Первый вариант — это нейросеть EfficientNetB0, оптимизированная с помощью TensorRT. Она показывает точность 90,75 процентов и работает с частотой 36,28 кадра в секунду, занимая 28,34 мегабайта. Второй вариант — MobileNetV2, оптимизированная при помощи TensorFlow. Она имеет точность 87,57 процента и занимает всего 4,48 мегабайт памяти, но работает с частотой 9,38 кадра в секунду.

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

Дрессировку можно использовать не только для домашних питомцев. В 2017 году нидерландские инженеры создали умную кормушку для ворон и воронов, которая выдает еду только в обмен на сигаретные окурки — так они предложили бороться с мусором на улицах.

Григорий Копиев