Алгоритм обнаружения объектов YOLO (You Look Only Once) в большинстве случаев является успешной. YOLO был одним из самых быстрых алгоритмов обнаружения объектов со значительно хорошими результатами. Хотя есть загвоздка!

Формат данных обучения / проверки.

Набор для обучения / проверки состоит из следующих компонентов:

  • Изображения с объектами (которые необходимо обнаружить)
  • Текстовый файл, соответствующий каждому изображению, имеет следующий состав:

«Label_ID X_CENTER Y_CENTER WIDTH HEIGHT»

Давайте сначала расшифруем это

  • Label_ID - это числовой идентификатор, присвоенный различным классам, которые должны быть определены для начала с 0, т.е. если необходимо определить 3 класса, кошек, собак и обезьян, идентификаторы могут быть 0,1,2.
  • X_CENTER - координата X центра объекта, который должен быть обнаружен / Image_width
  • Y_CENTER - координата Y центра объекта, который должен быть обнаружен / Image_height
  • WIDTH - это ширина обнаруживаемого объекта / Image_width.
  • HEIGHT - высота обнаруживаемого объекта / Image_height

Следовательно, все значения (кроме ID) находятся в диапазоне 0–1.

Если изображение содержит более 1 объекта, текстовый файл должен иметь вид

«Label_ID_1 X_CENTER Y_CENTER WIDTH HEIGHT»

«Label_ID_2 X_CENTER Y_CENTER WIDTH HEIGHT»

«Label_ID_3 X_CENTER Y_CENTER WIDTH HEIGHT»

т.е. новая строка для каждого объекта в том же текстовом файле. Имя должно совпадать с именем изображения, за исключением расширения. Пример: если изображение - abc.jpg, текстовый файл - abc.txt.

Теперь для создания таких этикеток / текстовых файлов лучший инструмент - это YOLO_Mark от разработчиков самой YOLO, поддерживающий такой вывод после того, как пользователь аннотирует изображение.

Примечание. Теперь, чтобы использовать YOLO, вам нужно использовать локальный компьютер, поскольку его установка на сервере не предоставит вам поддержку с графическим интерфейсом.

Выполните следующие шаги:

  • Клонируйте это: https://github.com/AlexeyAB/Yolo_mark.git
  • Выполните следующие шаги (я бы рассмотрел Linux для дальнейших шагов)
  • Не забудьте запустить chmod + x * .sh

Если выполнение описанных выше шагов сработает за вас, вы попадете в число счастливых 5% людей, так как большинству людей может потребоваться дополнительная помощь.

В большинстве случаев вы можете увидеть некоторую ошибку, связанную с OpenCV, при выполнении {cmake.} Или {make}, как это, даже если у вас есть OpenCV в вашей системе.

Не удалось найти файл конфигурации пакета, предоставленный «OpenCV» с любым из следующих имен:

OpenCVConfig.cmake
opencv-config.cmake

Чтобы решить эту проблему, вам необходимо выполнить еще пару шагов:

  • Git clone: ​​https://github.com/opencv/opencv.git (убедитесь, что вы клонируете последнюю версию)
  • Запустите приведенные ниже коды в каталоге OpenCV после клонирования git.

Вы также можете проверить, опуская параметры -D в CMake в случае возникновения каких-либо проблем.

Ошибка не должна появляться сейчас (надеюсь !!)

Теперь, чтобы отметить ваши изображения:

  • Возьмите папку с изображениями и переместите ее в Yolo_mark / x64 / Release / data и переименуйте папку как 'img'. У вас есть выбор оставить имя папки как есть, но это потребует некоторых изменений в yolo_mark.cmd и в избегайте этих накладных расходов, мы переименуем его.
  • Внесите изменения в файл obj.data и obj.names в соответствии с проблемой.

obj.names: сюда входят названия ярлыков, каждый ярлык вводится с новой строки. Помните, что присвоенные идентификаторы зависят от порядка имен меток, упомянутых в obj.names

obj.data: содержит информацию о Number_of_classes, обучении и действительном местоположении данных (относительно каталога darknet) и местоположении папки резервных копий (где сохраняются веса после обучения на yolo). Возможно, вам не понадобится создавать train.txt, поскольку Yolo_Mark создает его самостоятельно.

  • вам следует добавить {cmake.}, {make} & {./linux_mark.sh} для запуска Yolo_mark. Не забудьте сделать linux_mark.sh исполняемым с помощью {chmod + x * .sh}

Вы должны увидеть что-то вроде этого

Аннотируйте изображения в соответствии с вашими требованиями, а затем

Ты на день молодец !!!

Некоторые моменты, о которых следует помнить:

  • Каждая команда выполняется в командной строке
  • Эта установка совместима с Python 3
  • {} обозначает команды интерфейса командной строки.

Еще немного ниже !!