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

Заведи Raspberry Pi — 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 — • Troyka Cap — • microSD-карта с ОС Raspbian — • Raspberry Pi Camera Board v2.1 — • Сервопривод FS5109M — • Импульсный блок питания (1000 мА) — #проекты #amperka #raspberry #rpi3 #opencv
Back to Top