УДК 004.85; 004.932
ИСПОЛЬЗОВАНИЕ НЕЙРОННОЙ СЕТИ YOLOV8 ДЛЯ ДЕТЕКТИРОВАНИЯ НА ИЗОБРАЖЕНИИ ЛАБОРАТОРНОГО ГРЫЗУНА (КРЫСЫ ИЛИ МЫШИ) В УСТАНОВКЕ «КВАДРАТНОЕ ОТКРЫТОЕ ПОЛЕ»
№43,
Технические науки
Гринин Игорь Леонидович
Кравченко Сергей Вячеславович
Чумаков Артем Владимирович
Тарасов Александр Сергеевич
Ключевые слова: НЕЙРОННАЯ СЕТЬ; ДЕТЕКТИРОВАНИЕ ОБЪЕКТА; ДЕТЕКТИРОВАНИЕ ЛАБОРАТОРНОГО ГРЫЗУНА; УСТАНОВКА «ОТКРЫТОЕ ПОЛЕ; ПОВЕДЕНИЕ; ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ; NEURAL NETWORK; YOLOV8; YOLOV5; OBJECT DETECTION; DETECTION OF LABORATORY RODENT; INSTALLATION «OPEN FIELD; BEHAVIOR; ARTIFICIAL INTELLIGENCE.
Введение
Доклинические исследования играют ключевую роль в разработке лекарственных препаратов. На этом этапе изучаются фармакологические свойства препарата: фармакокинетика, фармакодинамика, общая токсичность, а также оценивается его эффективность и безопасность. Основной целью доклинических исследований является получение результатов и выводов о возможности или невозможности проведения в дальнейшем клинических исследований – исследований лекарственного препарата на человеке [1, 2].
Доклинические исследования не обходятся без помощи лабораторных грызунов, таких как мыши и крысы. Ученые размещают животное в установке, фиксируют результаты на видеокамеру, затем анализируют и интерпретируют полученные видеозаписи. Анализ видеозаписей и фиксация результатов – трудоёмкий процесс и занимает длительное время. Чтобы облегчить работу учёных и существенно сократить трудозатраты на анализ видеозаписей с экспериментами, необходимо разработать приложение, которое позволит отследить перемещение лабораторного грызуна (крысы или мыши) на видеозаписи и зафиксировать основные статистические показатели активности [3].
Ранее была решена задача детектирования лабораторного грызуна (крысы или мыши) на изображении в установке «Квадратное открытое поле» с помощью обучения нейронной сети YOLOv5. По результатам первого обучения был проведен сравнительный анализ обученных моделей YOLOv5 и выбрана оптимальная по точности и скорости работы модель – YOLOv5s. В дальнейшем было произведено обучение выбранной модели в течение нескольких итераций на большем объёме данных. В скором времени планируется публикация полученных результатов.
В рамках данной статьи осуществляется обучение модели YOLOv5s и модели YOLOv8n, проводится сравнительный анализ и выбирается оптимальная для дальнейшего использования и обучения модель.
Данное исследование проводится совместно с Лабораторией фармакоэкономики, цифровой медицины и искусственного интеллекта и Лабораторией нейропсихотропных средств Научного центра инновационных лекарственных средств с опытно-промышленным производством (НЦИЛС) ВолгГМУ в г. Волгоград.
Нейронная сеть YOLOv8
YOLOv8 – это последняя версия YOLO от Ultralytics. YOLOv8 представляет собой передовую, современную (state-of-the-art (SOTA)) модель, основанную на успехе предыдущих версий, с новыми функциями и улучшениями для повышения производительности, гибкости и эффективности. YOLOv8 поддерживает полный спектр задач искусственного интеллекта, включая детектирование (detection), сегментацию (segmentation), оценку позы (pose estimation), отслеживание (tracking) и классификацию (classification). Эта универсальность позволяет пользователям использовать возможности YOLOv8 в различных приложениях и областях [4].
YOLOv8 использует сверточную нейронную сеть, которую можно разделить на две основные части: позвоночник (backbone) и голову (head). Позвоночник – это модифицированная версия архитектуры CSPDarknet53. Эта архитектура состоит из 53 сверточных слоев и использует частичные межэтапные соединения для улучшения информационного потока между различными слоями. Голова YOLOv8 состоит из нескольких сверточных слоев, за которыми следует ряд полносвязных. Эти слои отвечают за прогнозирование ограничивающих прямоугольников (bounding boxes), оценки объектности (objectness scores) и вероятности классов для объектов, обнаруженных на изображении. Одной из ключевых особенностей YOLOv8 является использование механизма самоконтроля в голове сети. Этот механизм позволяет модели сосредоточиться на разных частях изображения и устанавливать важность различных признаков в зависимости от их применимости к задаче. Еще одной важной особенностью YOLOv8 является его способность выполнять многомасштабное обнаружение объектов. Модель использует пирамидальную сеть признаков (feature pyramid network) для обнаружения объектов разных размеров и масштабов на изображении. Она состоит из нескольких слоев, которые обнаруживают объекты в разных масштабах, что позволяет модели обнаруживать большие и маленькие объекты на изображении [5].
На рис. 1, созданным github-пользователем RangeKing, представлена подробная визуализация архитектуры нейронной сети YOLOv8 [6].
Рис. 1. Архитектура нейронной сети YOLOv8, визуализация которой выполнена github-пользователем RangeKing
Предобученные модели YOLOv5 и YOLOv8
В таблице 1 представлено сравнение моделей YOLOv8 для решения задачи детектирования [7].
Таблица № 1
Сравнение моделей YOLOv8 для решения задачи детектирования
Model | size (pixels) |
mAP val 50-95 |
Speed CPU ONNX (ms) |
Speed A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
YOLOv8n | 640 | 37.3 | 80.4 | 0.99 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 1.20 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 1.83 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 2.39 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 3.53 | 68.2 | 257.8 |
В таблице 2 представлено сравнение моделей YOLOv5 для решения задачи детектирования [7].
Таблица № 2
Сравнение моделей YOLOv5 для решения задачи детектирования
Model | size (pixels) |
mAP val 50-95 |
mAP val 50 |
Speed CPU b1 (ms) |
Speed V100 b1 (ms) |
Speed V100 b32 (ms) |
params (M) |
FLOPs @640 (B) |
YOLOv5n | 640 | 28.0 | 45.7 | 45 | 6.3 | 0.6 | 1.9 | 4.5 |
YOLOv5s | 640 | 37.4 | 56.8 | 98 | 6.4 | 0.9 | 7.2 | 16.5 |
YOLOv5m | 640 | 45.4 | 64.1 | 224 | 8.2 | 1.7 | 21.2 | 49.0 |
YOLOv5l | 640 | 49.0 | 67.3 | 430 | 10.1 | 2.7 | 46.5 | 109.1 |
YOLOv5x | 640 | 50.7 | 68.9 | 766 | 12.1 | 4.8 | 86.7 | 205.7 |
На рис. 2 представлено графическое сравнение моделей YOLOv5 — YOLOv8 [9].
Рис. 2. Графическое сравнение моделей YOLOv5 — YOLOv8
Проанализировав таблицы и графики, делаем вывод, что ближайшей по эффективности моделью к модели YOLOv5s является YOLOv8n. Проведём проверку гипотезы: выполним обучение моделей YOLOv5s и YOLOv8n, проанализируем результаты и сделаем вывод.
Результаты обучения моделей YOLOv5s и YOLOv8n
Для обучения нейронных сетей необходим набор данных. Такой набор данных уже готов и составляет 38365 изображений, где: 30692 (train-выборка), 3836 (test-выборка), 3836 (val-выборка), соотношение: 80%, 10%, 10%, соответственно. Среди train-выборки 720 фоновых изображений, среди val-выборки: 83. Данный набор данных был получен следующим образом: сначала разметка изображений осуществлялась вручную с помощью инструмента LabelIMG, а затем с помощью обученной модели YOLOv5s с дальнейшей проверкой корректности разметки и её корректировки, если это было необходимо.
Обучение моделей YOLOv5s и YOLOv8n проводилось в течение 300 эпох на видеокарте NVIDIA GeForce RTX 2070 SUPER (8192 МБ) с использованием Python 3.10.11, Pytorch 1.13.1, CUDA 11.6. Результаты обучения приведены в таблице 3. Запуск обученных моделей осуществлялся на видеокарте и на процессоре AMD Ryzen 7 3700X 8-Core (3.60 GHz).
Таблица № 3
Результаты обучения моделей YOLOv5s и YOLOv8n
Критерий сравнения / Модель | YOLOv5s (Small) | YOLOv8n (Nano) |
Макс. batch size | 44 | 64 |
Время обучения | ~33 часа | ~19 часов |
Обработка 1 кадра на GPU | 10.8 мс | 11.3 мс |
Обработка 1 кадра на CPU | 96.7 мс | 58.2 мс |
Размер модели | 14.4 МБ | 6.2 МБ |
mAP50-95 (val-выборка) | 0.939 | 0.94 |
mAP50-95 (38365 изображений) | 0.962 | 0.955 |
Для обучения модели YOLOv8n удалось установить размер обрабатываемого пакета (batch size) равным 64. При этом обучение заняло около 19 часов. В результате была получена модель, которая по скорости работы не уступает модели YOLOv5s и работает на процессоре даже лучше, а её итоговая эффективность, измеряемая метрикой mAP50-95, ненамного отличается от модели YOLOv5s.
Визуальное представление результатов обучения моделей YOLOv5s и YOLOv8n и примеры детекции моделью YOLOv8n представлены на рис. 3, 4 и 5.
Рис. 3. Визуальное представление результата обучения модели YOLOv5s
Рис. 4. Визуальное представление результата обучения модели YOLOv8n
Рис. 5. Примеры детекции моделью YOLOv8n
Заключение
В результате обучения моделей YOLOv5s и YOLOv8n гипотеза подтвердилась: ближайшей по эффективности моделью к модели YOLOv5s является YOLOv8n. При этом время обучения YOLOv8n в 2 раза меньше, чем у YOLOv5s. Таким образом модель YOLOv8n является оптимальной для дальнейшего использования и обучения.
Список литературы
- Васильев А.Н. Качественные доклинические исследования — необходимый этап разработки и внедрения в клиническую практику новых лекарственных препаратов. Антибиотики и Химиотерапия. – 2012. – №57(1-2). – С. 41-49.
- Доклинические исследования [Электронный ресурс] // Clinical Research Laboratory. – URL: https://crlabcro.com/doklinicheskie-issledovaniya (access date 28.06.2023).
- Кравченко С.В. Приложение для анализа видеофайлов для оценки поведения грызунов (крыс и мышей) в лабиринтах, используемых в лабораторных исследованиях / Кравченко С.В., Орлова Ю.А., Алексеев А.В. и др. // Параллельные вычислительные технологии (ПаВТ’2021) : Короткие статьи и описания плакатов. XV международная конференция, Волгоград, 30 марта – 01 апреля 2021 года. – Челябинск: Издательский центр ЮУрГУ, 2021. – С. 282.
- Home [Electronic resource] // Ultralytics YOLOv8 Docs. – URL: https://docs.ultralytics.com/ (access date 28.06.2023).
- Mehra A. Understanding YOLOv8 Architecture, Applications & Features [Electronic resource] // Labellerr. – URL: https://www.labellerr.com/blog/understanding-yolov8-architecture-applications-features/ (access date 28.06.2023).
- Brief summary of YOLOv8 model structure [Electronic resource] // Ultralytics YOLOv8 Docs. – URL: ultralytics/ultralytics#189 (access date 28.06.2023).
- Detect [Electronic resource] // Ultralytics YOLOv8 Docs. – URL: https://docs.ultralytics.com/tasks/detect/ (access date 28.06.2023).
- YOLOv5 [Electronic resource] // GitHub. – URL: https://github.com/ultralytics/yolov5 (access date 28.06.2023).
- YOLOv8 [Electronic resource] // GitHub. – URL: https://github.com/ultralytics/ultralytics (access date 28.06.2023).