Реферат 4
Перечень сокращений
Введение 7
1 Обзор предметной области 9
1.1 Анализ темы 9
1.2 Анализ решений 12
1.3 Анализ существующих наборов данных 17
1.4 Постановка задачи 19
2 Выбор технологий разработки 21
2.1 Выбор программной библиотеки 21
2.1.1 TensorFlow 21
2.1.2 Keras 21
2.1.3 PyTorch 21
2.2 Выбор IDE 22
2.2.1 Visual Studio Code 22
2.2.2 Jupyter Notebook 22
2.2.3 PyCharm 22
2.3 Выбор инструмента аннотирования данных 23
2.3.1 LabelStudio 23
2.3.2 CVAT 23
2.4 Выбор инструмента версионирования данных 24
2.4.1 Amazon S3 24
2.4.2 Pachyderm 25
2.4.3 Delta Lake 25
2.4.4 LakeFS 25
2.5 Выбор инструмента версионирования моделей 26
2.5.1 Weights &Biases 26
2.5.2 Git 27
2.5.3 Git LFS 28
2.5.4 DVC 28
2.5.5 MLflow 28
2.6 Выбор инструмента управления виртуальным окружением 29
2.6.1 Venv 29
2.6.2 Pipenv 30
2.6.3 Conda 30
3 Набор данных 31
3.1 Предварительная обработка данных 32
3.2 Описание набора данных 40
4 Программная реализация 42
4.1 Описание архитектуры YOLOv8 42
4.2 Описание функций YOLOv8 44
4.2.1 Predict 44
4.2.2 Val 45
4.2.3 Train 45
4.3 Проектирование ПО 46
4.4 Архитектура разрабатываемой системы 47
5 Эксперименты 49
5.1 Настройка виртуального окружения 49
5.2 Метрики 49
5.3 Сравнение моделей семейства архитектур YOLOv8 52
5.4 Оборудование 52
5.5 Выбор оптимизатора 53
5.6 Аугментация входных данных 55
5.7 Результаты на конечном устройстве 56
6 Безопасность жизнедеятельности 58
6.1 Вред здоровью при работе с компьютером 58
6.2 Снижение вредного воздействия на здоровье при работе с ПК 58
6.3 Техника безопасности при работе с компьютером 59
Заключение 60
Список использованных источников 61
Приложение А - UML-диаграммы 67
Приложение Б - Листинг программы 72
Приложение В - Презентация 77
Обнаружение объектов играет ключевую роль в задачах компьютерного зрения и обработки изображений, целью которых является обнаружение и определение местоположения интересующих объектов на изображении или видео. Задача включает определение положения и границ объектов на изображении, а также классификацию объектов по разным категориям. Нейронные сети, предназначенные для обнаружения объектов на изображениях, далее детекторы, уже сейчас активно применяются во многих сферах деятельности. Одним из наиболее популярных направлений применения детекторов стали БПЛА.
В настоящее время БПЛА становятся все более распространенным и востребованным средством для визуального наблюдения, а также контроля и мониторинга различных территорий. Точность обнаружения становится особенно важной при использовании БПЛА в военных или поисково-спасательных операциях. Однако, их использование в упомянутых задачах, связано с рядом проблем:
- малый размер обнаруживаемых объектов: искомые объекты могут занимать на изображении лишь несколько пикселей, что делает их почти не находимыми при использовании традиционных методов обработки изображений;
- сложный фон: изображения, снятые с БПЛА, как правило, содержат большое количество различных фоновых объектов, таких как деревья, дорожные знаки, здания и пр., что создаёт помехи при обнаружении целевых объектов;
- изменчивость условий съемки: погодные условия, угол съемки, освещенность, высота полета и другие факторы могут сильно повлиять на качество съемки и усложнить задачу поиска объекта.
Искусственные нейронные сети благодаря своей архитектуре являются перспективным подходом для решения задачи обнаружения небольших объектов на изображениях, снятых с дрона. Благодаря своей способности извлекать признаки и эффективно обрабатывать большие объемы данных они способны эффективно решить все вышеупомянутые проблемы поставленной задачи.
В рамках данной работы рассматривается применение искусственных нейронных сетей для обнаружения небольших объектов на изображения, полученных с БПЛА. Будут исследованы различные архитектуры нейронных сетей, а также методы предобработки данных. Будут проведена серия экспериментов с моделью наилучшей архитектуры, которая будет выбрана после сравнительного анализа всех подходящих решений, с целью добиться наилучших показателей в поставленной задаче.
В ходе выполнения данной ВКР были рассмотрены различные архитектуры искусственных нейронных сетей для обнаружения объектов на изображениях, полученных с БПЛА. В ходе их анализа была выбрана наиболее подходящая из них для решения поставленной задачи. В ходе дальнейшего исследования на основе заявленных требований к модели было принято решение о необходимости проведения экспериментов с моделью выбранной архитектуры YOLOv8n. В ходе экспериментов были исследованы наиболее известные алгоритмы оптимизации — Adam и SGD, влияние адаптивного планировщика на их эффективность, а также влияние различных методов аугментации изображений на итоговый результат модели с применением этих оптимизаторов.
В процессе исследования было установлено, что при обучении моделей YOLOv8n для достижения наилучших результатов при решении поставленной задачи следует использовать алгоритм оптимизации SGD, а также следующие методы аугментации изображений: изменение цветовой палитры на изображении, изменение насыщенности цветовой палитры, изменение яркости изображения, незначительные перемещения изображения в случайную сторону, изменение масштаба изображения, переворот изображения, объединение нескольких изображений в одно и удаление случайной части изображения. Несмотря на то, что при использовании адаптивного планировщика метрики модели показывали более плохие значения, чем при обучении без него, на большом количестве эпох адаптивный планировщик будет предпочтительнее.
Для запуска модели, полученной в ходе исследования, на конечном устройстве использовался Python-фреймворк SAHI, который, в случае превышения входными данными допустимого размера сторон изображения, разделял изображения на несколько фрагментов заданного размера, благодаря чему точность модели значительно возрастала. Использование дополнительного этапа предварительной обработки данных привело к снижению количества обрабатываемых кадров в секунду на конечном устройстве с 53 до 27.
1. ASTRIAL GmbH. Using Unmanned Aerial Vehicles (UAVs) to detect abnormal behavior exhibited by individuals and vehicles within APPRAISE. [Электронныйресурс]. URL: https://appraise-h2020.eu/node/127. (дата обращения: 19.04.2024).
2. Волкова К. Тактика работы дронов во время поисково-спасательных мероприятий. [Электронный ресурс]. URL: https://skymec.ru/blog/drone-use- cases/bezopasnost/rabota-dronov-vo-vremya-psm. (дата обращения: 19.04.2024).
3. R. Koslowski. Drones Along Borders: Border Security UAVs in the United States and the European Union. [Электронный ресурс]. URL: https://www.researchgate.net/publication/322909294_Drones_Along_Borders_Border_ Security_UAVs_in_the_United_States_and_the_European_Union. (дата обращения: 19.04.2024).
4. Kenk, V.S., Krizaj,, J., Struc, J. &Dobrisek S., Smart Surveillance Technologies in Border Control, in European Journal of Law and Technology, Vol 4., No. 2., 2013. (дата обращения: 19.04.2024).
5. Zhang, M., Tang, F., Ren, Y., & Yan, C. (2017). A Review of Image-based
Traffic Flow Estimation and Vehicle Detection and Tracking Techniques. Journal of Traffic and Transportation Engineering (English Edition), 4(4), 346-361.
[Электронный ресурс]. URL: https://doi.Org/10.1016/j.jtte.2017.06.001. (дата
обращения: 19.04.2024).
6. Qureshi, S., & Shah, M. (2008). Real-time detection and tracking of pedestrians with non-stationary cameras. In Proceedings of the 2008 IEEE Conference on Computer Vision and Pattern Recognition (pp. 1-8). [Электронныйресурс]. URL: https://doi.org/10.1109/cvpr.2008.4587441. (дата обращения: 19.04.2024).
7. Xu, L., Ren, C., Liu, C., & Jia, J. (2018). Vehicle detection on drones: A
benchmark dataset. In 2018 International Joint Conference on Neural Networks (IJCNN) (pp. 1-8). [Электронный ресурс]. URL:
https://doi.org/10.1109/ijcnn.2018.8489108. (дата обращения: 19.04.2024).
8. Duan, Y., Chen, C., & Yuan, Y. (2019). A lightweight convolutional neural network for pedestrian detection in aerial images. Remote Sensing, 11(19), 2229. [Электронный ресурс]. URL: https://doi.org/10.3390/rs11192229. (дата обращения: 19.04.2024).
9. Chen, L. C., Papandreou, G., Kokkinos, I., Murphy, K., &Yuille, A. L.
(2017). Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs. IEEE transactions on pattern analysis and machine intelligence, 40(4), 834-848. [Электронный ресурс]. URL:
https://doi.org/10.1109/tpami.2017.2699184. (дата обращения: 20.04.2024).
10. Zhang, S., Benenson, R., Omran, M., Hosang, J., & Schiele, B. (2018).
Towards reaching human performance in pedestrian detection. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 5275-5284). [Электронный ресурс]. URL: https://doi.org/10.1109/cvpr.2018.00554. (дата
обращения: 20.04.2024).
11. Leal-Taixe, L., Fenzi, M., Kuznetsova, A., Rosenhahn, B., & Savarese, S. (2017). Learning an image-based motion context for multiple people tracking. In Proceedings of the IEEE International Conference on Computer Vision (pp. 4107-4116).[Электронныйресурс]. URL: https://doi.org/10.1109/iccv.2017.441. (дата обращения: 20.04.2024).
12. Li, B., Zhang, D., Huang, K., &Tan, T. (2014). Multi-camera activity correlation analysis for crowd behavior understanding. Pattern Recognition, 47(3), 1136-1147. [Электронныйресурс]. URL: https://doi.org/10.1016/j.patcog.2013.09.019. (дата обращения: 20.04.2024).
13. Gade, R., &Moeslund, T. B. (2014). Thermal cameras and applications: A survey. Machine Vision and Applications, 25(1), 245-262. [Электронныйресурс]. URL: https://doi.org/10.1007/s00138-013-0539-3. (дата обращения: 20.04.2024).
14. Khan, S., &Yeasin, M. (2019). Understanding group activities from still images: An unsupervised approach. IEEE Transactions on Image Processing, 28(2), 888-901. [Электронный ресурс]. URL: https://doi.org/10.1109/tip.2018.2873786. (дата обращения: 20.04.2024).
15. Liu, B., Fan, X., & Zhang, Y. (2019). Deep convolutional neural network based pedestrian detection in aerial images. In 2019 IEEE International Conference on Image Processing (ICIP) (pp. 1805-1809). [Электронный ресурс]. URL: https://doi.org/10.1109/icip.2019.8803218. (дата обращения: 20.04.2024).
16. Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster r-cnn: Towards real-time object detection with region proposal networks. In Advances in neural information processing systems (pp. 91-99). (дата обращения: 21.04.2024).
17. Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You only look once: Unified, real-time object detection. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 779-788). (дата обращения: 21.04.2024).
18. Alahi, A., Goel, K., Ramanathan, V., Robicquet, A., Fei-Fei, L., & Savarese, S. (2016). Social LSTM: Human trajectory prediction in crowded spaces. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 961-971). [Электронныйресурс]. URL: https://doi.org/10.1109/cvpr.2016.106. (дата обращения: 21.04.2024).
19. Sadeghian, A., Alahi, A., & Savarese, S. (2019). Sophie: An attentive GAN
for predicting paths compliant to social and physical constraints. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 1349-1358). [Электронный ресурс]. URL: https://doi.org/10.1109/cvpr.2019.00145. (дата
обращения: 21.04.2024).
20. Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You Only
Look Once: Unified, Real-Time Object Detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (pp. 779-788). [Электронныйресурс]. URL: https://doi.org/10.1109/CVPR.2016.91. (дата
обращения: 21.04.2024).
21. Lin, T. Y., Goyal, P., Girshick, R., He, K., &Dollar, P. (2017). Focal Loss for Dense Object Detection. In Proceedings of the IEEE International Conference on Computer Vision (ICCV) (pp. 2980-2988). [Электронныйресурс]. URL: https://doi.org/10.1109/iccv.2017.324. (дата обращения: 21.04.2024).
22. Lin, T. Y., Dollar, P., Girshick, R., He, K., Hariharan, B., &Belongie, S.
(2017). Feature Pyramid Networks for Object Detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (pp. 2117-2125). [Электронный ресурс]. URL: https://doi.org/10.1109/CVPR.2017.106. (дата
обращения: 21.04.2024).
23. Liu, W., Anguelov, D., Erhan, D., Szegedy, C., Reed, S., Fu, C. Y., & Berg, A. C. (2016). SSD: Single Shot MultiBox Detector. In European Conference on Computer Vision (ECCV) (pp. 21-37). [Электронныйресурс]. URL: https://doi.org/10.1007/978-3-319-46448-0_2. (дата обращения: 21.04.2024).
24. SeokwonYeom (2024). Thermal Image Tracking for Search and Rescue Missions with a Drone. [Электронныйресурс]. URL: https://www.mdpi.com/2504- 446X/8/2/53. (дата обращения: 21.04.2024).
25. K.T. (2023). NTUT 4K Drone Photo Dataset for Human Detection. [Электронный ресурс]. URL: https://www.kaggle.com/datasets/kuantinglai/ntut-4k- drone-photo-dataset-for-human-detection. (дата обращения: 22.04.2024).
26. VisDrone (2021). DroneCrowd. [Электронный ресурс]. URL: https://github.com/VisDrone/DroneCrowd. (дата обращения: 22.04.2024).
27. Roboflow (2022). Aerial Person Detection Computer Vision Project.
[Электронный ресурс]. URL: https://universe.roboflow.com/aerial-person-
detection/aerial-person-detection. (дата обращения: 22.04.2024).
28. D. Cafarelli, L. Ciampi, L. Vadicamo, C. Gennaro, A. Berton, M. Paterni,
C. Benvenuti, M. Passera, F. Falchi (2021). MOBDrone: a Drone Video Dataset for Man OverBoard Rescue. [Электронный ресурс]. URL:
https://aimh.isti.cnr.it/dataset/mobdrone/. (дата обращения: 22.04.2024).
29. RICARDO DE DEIJN (2022). Detect White Clothed People With Drones. [Электронный ресурс]. URL: https://www.kaggle.com/datasets/ricardodedeijn/drone- detection. (дата обращения: 22.04.2024).
30. Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., ... & Adam, H. (2017). MobileNets: Efficient Convolutional Neural Networks for
Mobile Vision Applications. [Электронный ресурс]. URL:
https://arxiv.org/abs/1704.04861. (дата обращения: 22.04.2024).
31. Abadi, M., Barham, P., Chen, J., Chen, Z., Davis, A., Dean, J., ... &Kudlur, M. (2016). TensorFlow: A system for large-scale machine learning. In 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16) (pp. 265-283).(дата обращения: 23.04.2024).
32. Chollet, F. (2015). Keras: Deep Learning library for Theano and
TensorFlow GitHubRepository. [Электронный ресурс]. URL:
https://github.com/keras-team/keras. (дата обращения: 23.04.2024).
33. Paszke, A., Gross, S., Massa, F., Lerer, A., Bradbury, J., Chanan, G., ... &Chintala, S. (2019). PyTorch: An Imperative Style, High-Performance Deep Learning Library. In Advances in Neural Information Processing Systems (NeurIPS). [Электронныйресурс]. URL: https://papers.nips.cc/paper/9015-pytorch-an-imperative- style-high-performance-deep-learning-library. (дата обращения: 23.04.2024).
34. Visual Studio Code Official Website. [Электронный ресурс]. URL: https://code.visualstudio.com/. (дата обращения: 24.04.2024).
35. Project Jupyter: Computational Narratives as the Engine of Collaborative Data Science. [Электронный ресурс]. URL: https://blog.jupyter.org/project-jupyter- computational-narratives-as-the-engine-of-collaborative-data-science-2b5fb94c3c58. (дата обращения: 24.04.2024).
36. PyCharm Official Website. [Электронный ресурс]. URL:
https://www.jetbrains.com/pycharm/. (дата обращения: 24.04.2024).
37. Label Studio Official Website. [Электронный ресурс]. URL: https://labelstud.io/. (дата обращения: 25.04.2024).
38. CVAT Official Website. [Электронный ресурс]. URL: https://cvat.org/. (дата обращения: 25.04.2024).
39. Amazon S3 Official Website. [Электронный ресурс]. URL: https://aws.amazon.com/s3/. (дата обращения: 25.04.2024).
40. Introduction to Pachyderm. [Электронный ресурс]. URL:
https://medium.com/better-programming/introduction-to-pachyderm-89b4f866b6fc. (дата обращения: 25.04.2024).
41. Delta Lake: An Open Source Storage Layer for Big Data Analytics. [Электронный ресурс]. URL: https://databricks.com/blog/2019/10/07/delta-lake-open- source-storage-layer-big-data-analytics.html. (дата обращения: 26.04.2024).
42. Introducing lakeFS: Version control for your data lakes. [Электронный ресурс]. URL: https://treeverse.io/blog/introducing-lakefs-version-control-for-your- data-lakes/. (дата обращения: 26.04.2024).
43. How to Set Up an S3-Compatible Object Storage Server with Minio on
Ubuntu 20.04 [Электронный ресурс]. URL:
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-s3-compatible- object-storage-server-with-minio-on-ubuntu-20-04. (дата обращения: 26.04.2024).
44. Weights &Biases (WandB) Official Website. [Электронный ресурс]. URL: https://wandb.ai/. (дата обращения: 26.04.2024).
45. Version Control for Machine Learning Projects. [Электронный ресурс].
URL: https://towardsdatascience.com/version-control-for-machine-learning-projects-
7c5c0d50f90e. (дата обращения: 27.04.2024).
46. Git Large File Storage (Git LFS). [Электронный ресурс]. URL: https://git-lfs.github.com/. (дата обращения: 27.04.2024).
47. DVC (Data Version Control) Official Website. [Электронный ресурс]. URL: https://dvc.org/. (дата обращения: 27.04.2024).
48. MLflow на платформе GitHubPages. [Электронный ресурс]. URL: https://mlflow.org/docs/latest/index.html. (дата обращения: 27.04.2024).
49. Документация по модулю venv в Python. [Электронный ресурс]. URL: https://docs.python.org/3/library/venv.html. (дата обращения: 27.04.2024).
50. PipenvGitHubRepository. [Электронный ресурс]. URL:
https://github.com/pypa/pipenv. (дата обращения: 27.04.2024).
51. Conda Official Website. [Электронный ресурс]. URL:
https://www.anaconda.com/. (дата обращения: 27.04.2024).