Squirrel Soaker 9000 — автоматическая система отпугивания белок от кормушки для птиц


Jeremy B. Merrill использовал Raspberry Pi и силу машинного обучения для создания автоматической системы Squirrel Soaker 9000, которая предназначена для отпугивания белок от кормушки для птиц.

Автора очень злило, что весь корм из его кормушки для птиц съедали белки. Поэтому, он построил автоматическую систему («робота»), которая использует систему компьютерного зрения, чтобы распознать — есть ли белка у кормушки, и если белка детектируется, то система брызгает на неё водой из садового шланга.

Как это работает?
Сама система построена на одноплатном компьютере Raspberry Pi, к которому подключён модуль камеры.
Каждые тридцать секунд программа на Python делает снимок.
Это изображение отправляется на сервис AWS Lambda, на котором выполняется классификация фотографии в соответствии с моделью fast.ai, которая обучена определять — есть ли белка на картинке или нет.
Если модель определяет, что белка есть, то: включается запись видео (для будущего веселья) и
отправляется сигнал на MOSFET, который на несколько секунд включает питание 12В электромагнитного клапана, управляющего садовым опрыскивателем, направленным на кормушку.

Для обучения классификатора — автор создал собственные тренировочные данные, делая снимки из окна каждую минуту в течение нескольких дней. Полученные фотографии он отсортировал по папкам «белка» и «не белка». А затем обучил модель машинного обучения используя Fastai (это потребовало всего 13 строк кода) и примерно 45 минут в Google Colab.

Сама программа на Python — это простой скрипт с циклом while, который в светлое время суток каждые тридцать секунд делает снимок, отправляет его модели и, если уверенность модели в том, что на фотографии есть белка, превышает 70%, то снимок сохраняется для будущего анализа, время записывается в базу данных, включается запись видео, а затем открывается соленоид.
Так же на Raspberry есть приложение на Flask, которое показывает самую последнюю фотографию и кнопку для ручного управления соленоидом.

Точность распознавания составила около 86.6%. Это означает, что если Squirrel Soaker 9000 включает опрыскиватель, то в 86.6% % случаев на кормушке присутствует белка, а в 13.4% случаев -что-то другое (обычно — птицы, но может быть и сам автор).
Автор рассчитал точность работы на основе 15-дневной выборки из 321 случаях срабатывания, из которых 43 были ошибочными.

Автор отмечает, что Squirrel Soaker 9000 действительно работает и количество белок у кормушки уменьшилось с тех пор, он активировал данного робота, хотя и не так значительно, как он надеялся.
На зимнее время — систему пришлось отключить, чтобы избежать замерзания воды в шлангах.

Ссылки
Squirrel Soaker 9000: Protecting the Birdfeeder with Artificial Intelligence
[P] I built a robot to protect my birdfeeder from squirrels using computer vision
fast.ai
Руководства по разворачиванию обученной модели на AWS Lambda:
Using container images to run PyTorch models in AWS Lambda
Handling binary data using Amazon API Gateway HTTP APIs

По теме
Система компьютерного зрения отслеживает собачьи фекалии
Использование свёрточной сети на Raspberry Pi для подсчёта пчёл
Сортировщик огурцов на Arduino, Raspberry Pi 3 и TensorFlow
Проблемы применения машинного обучения для решения реальных задач


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение