Сделайте свою собственную умную домашнюю камеру безопасности

Камера с функцией распознавания лиц стоит менее 80 долларов.

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

Необходимые детали:

  • Малина PI 3
  • Веб-камера
  • Датчик PIR / ультразвуковой датчик

Требуемые знания:

  • Python
  • OpenCV
  • dlib

Если вам нужна дополнительная информация об OpenCV и dlib, взгляните на мою старую статью.

Что такое датчик PIR?

Пассивный инфракрасный датчик (PIR-датчик) - это электронный датчик, который измеряет инфракрасный (ИК) свет, излучаемый объектами в его поле зрения. Чаще всего они используются в датчиках движения на основе PIR. Все объекты с температурой выше абсолютного нуля излучают тепловую энергию в виде излучения. Обычно это излучение не видно человеческому глазу, потому что оно излучается в инфракрасном диапазоне длин волн, но его можно обнаружить с помощью датчика PIR.

Что такое ультразвуковой датчик?

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

Подход

С точки зрения непрофессионала, датчик PIR будет определять моменты, а камера фиксировать кадры, в которых Raspberry PI выполнит распознавание лиц и предоставит окончательный результат.

Более подробно, я подключил датчик PIR к Raspberry PI, и веб-камера находится напротив входной двери моей квартиры. Я не использую AWS или какие-либо другие облачные сервисы для выполнения логических выводов или отправки уведомлений. Я делаю локальный логический вывод и проигрываю в своем динамике звуки в зависимости от того, кто вошел.

Сам по себе Raspberry PI до сих пор не является идеальной встроенной платформой для выполнения логических выводов в реальном времени / в реальном времени. Итак, я использую датчик PIR, чтобы узнать, когда запускать механизм вывода и выполнять распознавание лиц. Вы также можете использовать ультразвуковой измеритель расстояния, но в моем случае я собираюсь использовать его для другого своего проекта.

Датчик PIR начнет обнаруживать, как только дверь откроется и человек начнет входить. В тот момент, когда датчик PIR обнаружит любое движение, камера начнет снимать кадры в течение 10 секунд. В то же время Каскады Хаара в OpenCV начнут обнаруживать лица, а обнаружение ориентиров лица на 68 точек dlib сопоставит обнаруженные ориентиры лица с сохраненными, чтобы проверить, является ли это злоумышленником или нет?

Используя OpenCV, мы можем захватывать кадры с веб-камеры и преобразовывать каждый кадр в массив numpy. Здесь мы записываем кадры в формате 320x240. Мы также можем записывать кадры в формате Full HD, но обнаружение лиц на Raspberry PI займет много времени. Затем, после использования модели «haarcascade_frontalface_alt2.xml», мы обнаруживаем лица в данном кадре. Как только мы определим все лица, мы сохраним их в одном списке, чтобы сравнить каждое из них с сохраненными лицами.

мы будем использовать dlib для сравнения лиц. Функция определения ориентира лица dlib 68 point даст вам ориентиры для данного лица. У нас есть некоторые известные ориентиры лиц, хранящиеся в файлах numpy, которые мы загрузим перед сравнением. Когда у нас есть все ориентиры, мы найдем расстояние между ними. Мы используем 0,6 в качестве порога. Ориентиром на лице, которая показывает наименьшее расстояние ниже порога, является известный человек, входящий в комнату. Если значение не ниже порога, значит, это злоумышленник !!

Вы можете найти полный код в следующем репозитории git,



Заключение

Вы можете разработать умную камеру дома, чтобы получить статус злоумышленника. Вы также можете использовать такие сервисы, как AWS или Google Cloud, для отправки уведомлений на свой телефон или SMS.

Если вам понравилась эта статья, подпишитесь на меня на Medium или Github или подпишитесь на мою канал YouTube.