Yolov7 — новейшая версия Yolo, но что такое Yolo? Yolo — эффективный алгоритм распознавания объектов в реальном времени. Yolo обнаруживает и распознает объекты и рисует вокруг них ограничивающие рамки. Область использования Yolo очень разнообразна и широка. Из Медицинского А.И. продукты для ИИ. в транспорте.

В этой истории я покажу, как написать пользовательскую функцию, которая подсчитывает объекты на видео или изображении, но прежде всего давайте посмотрим на производительность yolov7.

Как видите, новейшая Yolo намного лучше, чем другие версии Yolo. Давайте проверим, насколько хорош вывод изображений:

Вывод Йоло выглядит идеально. Я думаю, что теперь мы можем начать создавать нашу пользовательскую функцию для подсчета объектов. Чтобы построить нашу функцию, нам нужно хорошо понимать, как файл detect.py (который является файлом выдачи результатов Yolo)

В detect.py есть часть, которая дает нам информацию об обнаруженных объектах.

Если мы напечатаем «n» и «s», мы получим:

n — количество обнаруженных классов.

(det[:,-1]==c).sum()

«c» здесь argmax класса обнаружения. Здесь я использую набор данных кокоса, и у меня есть 80 классов. Когда мы используем приведенную выше строку, она дает нам индекс класса, после чего мы можем найти имя класса по индексу, используя:

names[int(c)]

Для своей функции я решил хранить имя и количество классов. Мы можем хранить оба одновременно, используя словарь. Итак, давайте создадим словарь:

С этого момента я могу заполнить свой словарь именами классов и их количеством обнаружений.

Я думаю, у нас есть то, что мы просим. Время создать функцию. Я прокручиваю страницу и запускаю код. Перед определением определения мы создадим нашу функцию

Итак, теперь я беру свой словарь found_classes и im0, чтобы вывести на экран наши числа обнаружения. С помощью «align=im0.shape» я выровняю свои тексты на экране и выберу для этого правый низ. Это будет выглядеть великолепно.

В этом цикле for я выберу один за другим каждый элемент из моего словаря, а затем назначу свой класс и их номера «a». Последний шаг — вывести на экран текст, содержащий наши числа и их классы.

В функции cv2.putText мы упорядочиваем координаты с помощью (align_right,(int(align_bottom))).Кроме того, нам нужно обновить allign_bottom, чтобы избежать путаницы на экране, иначе все линии будут друг к другу.

Красиво :D Мы готовы идти. Последнее, что нужно сделать, это использовать функцию подсчета в функции обнаружения определения.

Посмотрим, как хорошо работает:

Это работает отлично. Готово, теперь у нас есть счетчик объектов на yolov7. Вы можете применить этот счетчик к любому изображению или видео. Вот пример видео:

Вы можете получить доступ к исходному коду здесь: MyGithub и My LinkedIn. Если вам нравится эта история, не забудьте подписаться. Вы также можете увидеть другие мои проекты, такие как Minecraft A.I. помощник