login
Updated 04/7/2024
0

Применение БПЛА для распознавания скота, их нахождения и прогнозирование их миграции.

Cause and Effect Chain #

Причинно-следственная цепочка:

·        Обнаружение пропажи скота

·        Запуск БПЛА, дрона оборудованным камерой и запрограммированный програмным обеспечением, интегрированный с системой мониторинга (отправка информации о обнаружении скота в той или иной локации)

·        Обнаружение дроном потерявшегося скота в два отрывка времени, отправка информации о его геолокации в систему мониторинга)

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

 

Процесс работы нейронной сети:

Система работы программы сделано на языке программирования python и нейронной модели YOLO v5. YOLOv5- это мощный алгоритм обнаружения объектов, разработанный Ultralytics. За один проход сеть YOLO прогнозирует для изображения положение ограничивающих прямоугольников и вероятности классификации.

предсказывает координаты определённого количества bounding box'ов с результатами классификации и вероятности нахождения объекта, и в дальнейшем корректируя их местоположение. В целом такую архитектуру можно представить в следующем виде:

 


Для использования нейросети ее с начала нужно натренировать.


Для тренировки нейросети нам понадобится:

  • сама библиотека yolov5 (есть на pypi и на github)
  • предобученные веса (можно найти на github)
  • файл .yaml (в нем указываются пути до тренировочной и валидационной выборок, а также количество классов и их метки)
  • собственно, датасет
  • GPU с драйвером CUDA, совместимым с версией pytorc

Датасет должен быть разделен на две папки: train (тренировочная выборка) и val (валидационная).



Формат подразумевает, что каждая строка текстового файла представляется в виде:

n, x, y, w, h, где

n — номер класса объекта

x — относительная координата bounding box’а объекта по оси Ox

y — относительная координата bounding box’а объекта по оси Oy

w — относительная ширина bounding box’а объекта

h — относительная высота bounding box’а объекта


Перед запуском обучения обязательно надо запустить параметры:

1.     —img — размер изображения.

2.     —batch — размер батча.

3.     —epoch — количество эпох для обучения.

4.     —data — путь до .yaml файла.

5.     —weights — путь до файла весов (нужны предобученные веса, чтобы не обучаться с нуля).

6.     —name — куда сохраняем результаты обучения.

7.     —workers — количество потоков, на которых запускаем.

Далее пишем программу запуска тренировки:

python yolov5/train.py --img 896 --batch 8 --epoch 300 --data ./dataset.yaml --weights ./yolov5x.pt --name result --workers 2

 

Использование:

Для запуска нейроной сети надо написать в терминал следующие команды:

Python neiron.py(название файла) –source 5(порядковый номер камеры)

После запуска программы запустится экран камеры где будут обнаруживаться объекты:

 

 

При обнаружении дроном объекта на систему мониторинга приходит информация о обнаружении объекта и его геолокация благодаря GPS трекеру на дроне.

 

 

После повторного обнаружение через промежуток времени можно определить направление и скорость передвижение потерявшегося скота по формуле Гаверсинуса:

 

 

Пример использования:

Apr 7 2024 10:41:14 am
Tools navigation
Login to comment

Similar projects

Проект "OrbiNet" - это уникальная инициатива, в которой участвуют ученики 10-го класса, целью которой является создание ассистента для геосервисов, интегрированного в телеграм-бота. Этот проект позволяет школьникам прикоснуться к передовым технологиям в области космического мониторинга и обработки данных, обучаясь и одновременно внося свой вклад в разработку инновационных решений. В рамках "OrbiNet", студенты исследуют, как с помощью ассистента можно эффективно работать с новейшими методами распознавания образов и потоковой обработкой данных. Они изучают, как данные с различных датчиков - мультиспектральных, гиперспектральных, радарных и лидарных - могут быть систематизированы и обработаны для решения реальных задач, таких как мониторинг окружающей среды и предотвращение природных катастроф. Ученики также занимаются разработкой алгоритмов для предварительной обработки данных на космических аппаратах и изучают, как технологии блокчейна могут быть применены в управлении космическими данными. Особое внимание уделяется возможностям ассистента в прогнозировании и распознавании лесных пожаров, а также в мониторинге землетрясений. Проект "OrbiNet" не только способствует развитию навыков учащихся в области науки и техники, но и позволяет им участвовать в создании реального продукта, который может быть масштабирован и использован для решения глобальных задач в будущем. Это отличный пример того, как обучение и практическая деятельность могут объединяться для достижения впечатляющих результатов в области геосервисов и космических технологий.

Abilmansur Satybaldy avatar
Abilmansur Satybaldy

In our company, the CI/CD processes are very long (over 2 hours). Since this is a blocking step in the release flow it causes holdups of our fast-paced releases. Eventually, we are getting a backlog of unreleased features, which could be mitigated by releasing many things at once, but that comes with additional risks.

Alex Agulyansky avatar
Alex Agulyansky