|
Беспроводная камера для классификации видов
Непрерывная охота привела к исчезновению многих видов животных, и правительство внесло мало изменений, кроме принятия нескольких законов и проведения нескольких обследований. Но проведение опросов - задача исключительно сложная, особенно без помощи технологий. Чтобы исправить это, мы собираемся создать прототип интеллектуальной камеры, которая поможет нам в мониторинге и наблюдении за лесами. Наша интеллектуальная камера использует код на основе Python, который состоит из предварительно обученных моделей TensorFlow. Предварительно обученные тензорные модели помогают нам сопоставлять и отображать изображение в кадре с обученными данными модели для обнаружения изображения в кадре. Мы использовали Raspberry Pi с модулем камеры. Raspberry Pi получает видео с помощью камеры, а затем с помощью модуля OpenCV обрезает видео по кадрам. Затем, используя OpenCV и другие модули, он обрабатывает обнаружение видов на изображении и пытается сопоставить его с категорией и предварительно обученной моделью обнаружения. Затем он показывает результат обнаруженных видов. Если обнаруженный вид на изображении недоступен в списке категорий, он выдает вывод как {none} и сохраняет это изображение с данными и отметкой времени в папке базы данных, чтобы его можно было позже изучить. Если обнаруженный вид доступен в списке категорий, он дает вывод с именем и идентификатором обнаруженного вида и сохраняет эти данные в текстовом формате с датой и временем в текстовом файле с именем Survaydb.txt и одновременно сохраняет изображение с обнаруженной именной меткой впапке базы данных для справки. Таким образом, наша умная камера отслеживает и создает базу данных с фотографиями всех видов, обитающих в лесу. Это также может быть полезно при изучении поведения животных и может помочь нам в изучении роста и движения флоры и фауны в лесу. Итак, давайте начнем наш проект с покупки необходимых компонентов.
Кодирование
Предполагая, что у вас есть готовый RPI с ОС Raspbian и Python IDE и у вас есть доступ к рабочему столу RPI либо через VNC, либо через дисплей на основе HDMI. Итак, мы собираемся начать с установки модулей и библиотеки для нашего проекта. Сначала откройте терминал Linux на Raspberry Pi. Затем установите необходимое, используя следующий синтаксис
ПРИМЕЧАНИЕ. - Мы используем среду Python3, и код совместим только с версией python 3 и выше.
sudo apt-get update
sudo apt-get upgrade
sudo nano / etc / dphys-swapfile
Затем измените строку CONF_SWAPSIZE = 100 на CONF_SWAPSIZE = 1024
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
sudo pip3 установить opencv
sudo pip3 установить numpy
wget https://bootstrap.pypa.io/get-pip.py
pip3 установить dlib
pip3 установить тензор потока
После установки вы можете приступить к клонированию модулей, примеров и файлов TF, используя следующую команду:
git clone https://github.com/tensorflow/tensorflow.git
После успешного клонирования перейдите в каталог → папка исследования → файл detect.py в среде IDE python. Теперь давайте разберемся и изменим код. (См. Рис. 1.)
Рисунок 1.
Первая часть кода состоит из необходимой библиотеки и модулей. Затем мы должны установить текстовый файл на уровне пути, который состоит из названий категорий видов / объектов, которые мы хотим обнаружить. Здесь мы установили файл уровня категории как New.pbtx. Следующая часть кода предназначена для обнаружения объекта / вида, а затем у нас есть код, который сохраняет результат обнаружения в строковой переменной с именем «name». Затем у нас есть код, который присваивает имени изображения дату и время обнаружения.
Затем у нас есть условный оператор, который проверяет выходной результат обнаружения, и если условие результата обнаружения не равно «[]», то он сохраняет результат с датой и временем в текстовом файле с датой и временем обнаружения. Следующая часть кода сохраняет обнаруженное изображение в папке базы данных. Здесь вы можете изменить путь для хранения изображений по вашему выбору. (См. Рис. 2,3,4)
Рис 2.
Рис 3
Рис 4.
Теперь сохраните код. Затем перейдите в папку с данными и создайте файл с именем New.pbtxt и укажите категорию животных / видов для обнаружения, а затем сохраните их. (См. Рис. 5,6)
Рис 5
Рис 6
Тестирование
После завершения всех вышеперечисленных частей подключите модуль камеры к порту камеры Raspberry Pi с помощью ленточного кабеля (см. Рис. 7). Затем откройте код в Python IDLE, запустите скрипт и подождите несколько минут, чтобы он смог загрузить все модули тензорного потока. Откроется новое окно с видеовыходом камеры. Поднесите камеру к любому животному, например, корове, овце и т. Д. Всякий раз, когда животное появляется в кадре камеры, оно будет обнаружено, и результаты будут сохранены в текстовом файле, а изображение кадра будет сохранено в папке базы данных. с датой и отметкой времени. (См. Рис. 8).
Рис 8.
Теперь, чтобы проверить обнаруженные виды / животных для исследования, откройте файл db data.txt, чтобы увидеть список обнаруженных видов / животных с указанием времени и даты. Затем, если вы хотите получить изображение этих обнаруженных видов / животных для изучения, откройте папку базы данных, и вы сможете увидеть все изображения с датой и временем обнаруженных видов. (См. Рис. 9,10).
Рис 9.
Рис 10.
Исходный Код