+7 (495) 107-75-45 Подключение
+7 (495) 107-75-47 Тех. поддержка 24/7
Пример
22.11.2024

Использование Raspberry Pi для видеонаблюдения с распознаванием лиц и искусственного интеллекта

Raspberry Pi – это небольшой одноплатный компьютер, который широко используется в различных проектах, связанных со сбором данных и анализом. Одним из популярных применений Raspberry Pi является реализация системы видеонаблюдения с функцией распознавания лиц и искусственного интеллекта (ИИ). В данной статье мы рассмотрим пошаговую инструкцию по созданию такой системы.

Материалы и оборудование:

  • Raspberry Pi 3 или более поздняя версия;
  • Камера для Raspberry Pi или любая другая USB-камера с поддержкой MJPEG (например, Logitech C270);
  • MicroSD-карта объемом не менее 8 ГБ для установки операционной системы и других необходимых пакетов;
  • Экран или монитор для настройки Raspberry Pi;
  • Wi-Fi адаптер (если ваш Raspberry Pi не имеет встроенной Wi-Fi);
  • Power Bank или блок питания для Raspberry Pi.

видеонаблюдение raspberry pi

Шаг 1: Установка операционной системы

Сначала установите операционную систему Raspbian на ваш Raspberry Pi. Это можно сделать, используя официальный инструмент

Raspberry Pi Imager или другие методы.

  1. Скачайте и запустите Raspberry Pi Imager.
  2. Выберите свою MicroSD-карту и выберите образ Raspbian (например, “Rasbpian OS with desktop and recommended software”).
  3. Установите образ на карту памяти.
  4. Вставьте готовую карточку в Raspberry Pi и запустите его.

Шаг 2: Настройка системы

После установки Raspbian выполните следующие шаги для подготовки системы:

  1. Настройте Wi-Fi:

    • Откройте терминал.
    • Введите команду sudo raspi-config.
    • Перейдите к пункту “Network Options” и настройте Wi-Fi соединение.
  2. Обновление пакетов:

Выполните следующие команды в терминале для обновления системы:

sudo apt-get update
sudo apt-get upgrade

Установка необходимых пакетов:

Установите OpenCV, который будет использоваться для распознавания лиц.

sudo apt-get install python-opencv

Установите библиотеку Dlib, которая используется для обработки изображений и распознавания лиц:

sudo pip3 install dlib
sudo pip3 install face_recognition

камера Raspberry Pi или USB-камера работает

Шаг 3: Настройка камеры

Убедитесь, что камера Raspberry Pi или USB-камера работает корректно.

Войдите в терминал и выполните команду:

v4l2-ctl --list-devices

Это покажет доступные устройства видеозахвата (например, /dev/video0).

Шаг 4: Создание скрипта для распознавания лиц

Создайте Python-скрипт, который будет использовать OpenCV и face_recognition для обнаружения лиц.

Откройте текстовый редактор (например, nano) и создайте новый файл:

nano facerecognizer.py

Добавьте следующий код в скрипт:

import cv2
import face_recognition

# Инициализация видеопотока с камеры
video_capture = cv2.VideoCapture(0)

known_face_encodings = []
known_face_names = []

# Пример: добавьте изображения известных лиц (сюда нужно загрузить изображения)
image_of_person1 = face_recognition.load_image_file("person1.jpg")
face_encoding_of_person1 = face_recognition.face_encodings(image_of_person1)[0]
known_face_encodings.append(face_encoding_of_person1)
known_face_names.append("Person 1")

# Загружайте остальные известные лица аналогично

while True:
    ret, frame = video_capture.read()

    # Преобразование кадра в цветовое пространство RGB (OpenCV использует BGR по умолчанию)
    rgb_frame = frame[:, :, ::-1]

    face_locations = face_recognition.face_locations(rgb_frame)
    face_encodings = face_recognition.face_encodings(rgb_frame, face_locations)

    for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
        matches = face_recognition.compare_faces(known_face_encodings, face_encoding)

        name = "Unknown"

        # Если найдено совпадение
        if True in matches:
            first_match_index = matches.index(True)
            name = known_face_names[first_match_index]

        # Нанесение прямоугольников на изображения и подписей
        cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)
        cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED)
        font = cv2.FONT_HERSHEY_DUPLEX
        cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)

    # Отображение кадра с обнаруженными лицами
    cv2.imshow('Video', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# Освобождение ресурсов
video_capture.release()
cv2.destroyAllWindows()

Сохраните файл и закройте редактор.

Шаг 5: Запуск скрипта

Запустите скрипт, чтобы начать работу с распознаванием лиц

python3 facerecognizer.py

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

Шаг 6: Дальнейшие шаги

  • Экспорт видео: Если вам нужно записывать видео с распознаванием лиц, добавьте код для записи в файл.
  • Интеграция с облачными сервисами: Можно использовать Raspberry Pi для передачи данных о распознанных лицах на сервер или облачное хранилище.

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

Заключение

Созданная система видеонаблюдения с распознаванием лиц на Raspberry Pi может быть полезна в различных сферах, таких как охрана безопасности домов и предприятий, контроль доступа или мониторинг в общественных местах. Базовая реализация предоставлена для начала работы с этим проектом, однако она может быть значительно расширена и доработана.

Для повышения точности и функциональности системы можно рассмотреть следующие шаги:

  • Использование более сложных алгоритмов ИИ: Интеграция нейронных сетей для улучшения точности распознавания.
  • Облачное хранилище данных: Передача отснятого видео и информации о распознанных лицах на облачные серверы для хранения и анализа.
  • Интеграция с другими системами безопасности: Обмен данными с системами контроля доступа или тревожными кнопками.

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