Око Саурона на OpenCV. Проект для Raspberry Pi

Published: 27 March 2019
on channel: AmperkaRu
56,647
2.2k

Заведи Raspberry Pi — http://amperka.ru/product/malina?utm_...
Cегодня видео о необычной картине. Это пейзаж Мордор, и в его центре живёт механический глаз Саурона. Он будет следить за любым, кто пройдёт мимо картины. Сделано это на OpenCV для Raspberry Pi.

Начну с самого сложного — картины. С Raspberry и OpenCV я работал и раньше, а вот с изобразительным искусство — не сложилось. Поэтому я скачал подходящую картинку из Инета, прошёлся парой фильтров в Photoshop и распечатал. Только не на бумаге, а на специальном холсте для плоттера. Полотно на 70 процентов состоит из хлопка, а на 30 из синтетики. Внешне ткань очень похожа на настоящую картину, но она прочнее холста и легче натягивается на подрамник.

Картинка получилась размером 120 на 85 сантиметров. Это чуть больше стандарта А0. Поэтому купить раму не составило труда — выбор готовых рам огромный. Я натянул холст на подрамник и закрепил его строительным степлером.

Всевидящее око сделаю из точечного светильника. Самый мощный, который я нашёл оказался со светодиодом на 3 Вт. Он дал чёткое белое пятно. Но у Саурона глаз был огненный! Если покрашу линзу или поставлю цветной фильтр, световой поток упадёт в разы — его не хватит для нужного эффекта.

Заменю белый светодиод жёлтым на 10Вт. Старому диоду хватало 600 мА, новому нужно в полтора раза больше. Поэтому выкину регулятор питания, а диод подключу через внешний адаптер Robiton.

Конструкция весит больше килограмма. Поэтому для вращения глазом использовал сервоприводы с металлическим редуктором — FS5109M. На 6В они выдают крутящий момент в 10 кг·см. Управляющая плата — Raspberry Pi 3B+. Подключю к ней сервы через Troyka Cap — это как Troyka Shield, только не под Ардуино, а для Распбери.

Подключу оригинальную камеру с сенсором Exmor от Сони. Можно было бы использовать обычную вебку, но тогда я потерял бы в скорости обработки видеопотока. USB-хост — ахилесова пята малинки. Мне нужны все ресурсы Расспбери, ведь движение буду отслеживать с помощью OpenCV.

OpenCV — это открытая библиотека алгоритмов компьютерного зрения. Она справляется с распознаванием символов и лиц, трекингом движущихся объектов и автоматической обработкой видеопотока. Версию библиотеки под Python легко установить из репозитория.

Я же пошёл путём настоящего самурая — скачал исходники и собрал OpenCV. Не всё прошло гладко, но зато я сформулировал четыре правила:
— для OpenCV не хватит карты на 8 Гб. Подойдёт microSD на 16 или 32 Гб;
— для сборки используйте только два ядра, иначе Raspberry рискует перегреться и зависнуть;
— отключите в конфиге компиляцию всех примеров. Это сэкономит кучу времени;
— не забудьте поставить GTK, пакет для работы с оконными интерфейсами.
Следуйте этим заповедям, и библиотека соберётся с первого раза, всего за пять-шесть часов.

Использую алгоритм поиска движения в кадре. Не буду лезть в сложную математику — достаточно что библиотека определяет движущийся объект и сообщает координаты его центра. Напишу несложный код на C++, который будет управлять сервами и наводить луч света по этим координатам.

Осталось решить последнюю проблему. Око должно оставлять чёткий луч света, прямо как в фильме. Вариант «поправить на посте» я не рассматриваю, поэтому подпущу дым. Помните как выглядит свет маяка в тумане? Попробую повторить этот эффект. Для этого у меня есть аж три ультрозвуковых увлажнителя. Их силёнок не хватило. Поэтому возьму профессиональную дым машину на 400 Вт. Залью в неё смесь глицерина, спирта и воды. И...

Let's go party!

В проекте использованы:
• Raspberry Pi 3 B+ — http://amperka.ru/product/raspberry-p...
• Troyka Cap — http://amperka.ru/product/raspberry-t...
• microSD-карта с ОС Raspbian — http://amperka.ru/product/raspbian-mi...
• Raspberry Pi Camera Board v2.1 — http://amperka.ru/product/raspberry-p...
• Сервопривод FS5109M — http://amperka.ru/product/servo-fs510...
• Импульсный блок питания (1000 мА) — http://amperka.ru/product/wall-plug-1...

#проекты #amperka #raspberry #rpi3 #opencv


Watch video Око Саурона на OpenCV. Проект для Raspberry Pi online without registration, duration hours minute second in high quality. This video was added by user AmperkaRu 27 March 2019, don't forget to share it with your friends and acquaintances, it has been viewed on our site 56,647 once and liked it 2.2 thousand people.