УДК 004.85; 004.932

ИСПОЛЬЗОВАНИЕ НЕЙРОННОЙ СЕТИ YOLOV8 ДЛЯ ДЕТЕКТИРОВАНИЯ НА ИЗОБРАЖЕНИИ ЛАБОРАТОРНОГО ГРЫЗУНА (КРЫСЫ ИЛИ МЫШИ) В УСТАНОВКЕ «КВАДРАТНОЕ ОТКРЫТОЕ ПОЛЕ»

№43,

Технические науки

Гринин Игорь Леонидович
Кравченко Сергей Вячеславович
Чумаков Артем Владимирович
Тарасов Александр Сергеевич


Ключевые слова: НЕЙРОННАЯ СЕТЬ; ДЕТЕКТИРОВАНИЕ ОБЪЕКТА; ДЕТЕКТИРОВАНИЕ ЛАБОРАТОРНОГО ГРЫЗУНА; УСТАНОВКА «ОТКРЫТОЕ ПОЛЕ; ПОВЕДЕНИЕ; ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ; NEURAL NETWORK; YOLOV8; YOLOV5; OBJECT DETECTION; DETECTION OF LABORATORY RODENT; INSTALLATION «OPEN FIELD; BEHAVIOR; ARTIFICIAL INTELLIGENCE.


Аннотация: В данной статье приводятся экспериментальные результаты обучения нейронной сети YOLOv5 и нейронной сети YOLOv8 для решения задачи детектирования лабораторного грызуна (крысы или мыши) в установке «Квадратное открытое поле». По результатам обучения проводится сравнительный анализ обученных моделей и выбирается оптимальная для дальнейшего использования и обучения модель.

Введение

Доклинические исследования играют ключевую роль в разработке лекарственных препаратов. На этом этапе изучаются фармакологические свойства препарата: фармакокинетика, фармакодинамика, общая токсичность, а также оценивается его эффективность и безопасность. Основной целью доклинических исследований является получение результатов и выводов о возможности или невозможности проведения в дальнейшем клинических исследований – исследований лекарственного препарата на человеке [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 является оптимальной для дальнейшего использования и обучения.


Список литературы

  1. Васильев А.Н. Качественные доклинические исследования — необходимый этап разработки и внедрения в клиническую практику новых лекарственных препаратов. Антибиотики и Химиотерапия. – 2012. – №57(1-2). – С. 41-49.
  2. Доклинические исследования [Электронный ресурс] // Clinical Research Laboratory. – URL: https://crlabcro.com/doklinicheskie-issledovaniya (access date 28.06.2023).
  3. Кравченко С.В. Приложение для анализа видеофайлов для оценки поведения грызунов (крыс и мышей) в лабиринтах, используемых в лабораторных исследованиях / Кравченко С.В., Орлова Ю.А., Алексеев А.В. и др. // Параллельные вычислительные технологии (ПаВТ’2021) : Короткие статьи и описания плакатов. XV международная конференция, Волгоград, 30 марта – 01 апреля 2021 года. – Челябинск: Издательский центр ЮУрГУ, 2021. – С. 282.
  4. Home [Electronic resource] // Ultralytics YOLOv8 Docs. – URL: https://docs.ultralytics.com/ (access date 28.06.2023).
  5. 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).
  6. Brief summary of YOLOv8 model structure [Electronic resource] // Ultralytics YOLOv8 Docs. – URL: ultralytics/ultralytics#189 (access date 28.06.2023).
  7. Detect [Electronic resource] // Ultralytics YOLOv8 Docs. – URL: https://docs.ultralytics.com/tasks/detect/ (access date 28.06.2023).
  8. YOLOv5 [Electronic resource] // GitHub. – URL: https://github.com/ultralytics/yolov5 (access date 28.06.2023).
  9. YOLOv8 [Electronic resource] // GitHub. – URL: https://github.com/ultralytics/ultralytics (access date 28.06.2023).