Платформа обнаружения объектов Darknet и YOLO
Логотипы !darknet и hank.ai
Darknet — это платформа нейронных сетей с открытым исходным кодом, написанная в основном на C и CUDA.
YOLO (You Only Look Once) — это система обнаружения объектов в реальном времени, работающая в рамках даркнета.
Узнайте, как Hank.ai помогает сообществу Darknet/YOLO
Анонсируем Darknet V3 «Джаз»
Посетите веб-сайт Darknet/YOLO.
Пожалуйста, прочтите FAQ по Darknet/YOLO.
Присоединяйтесь к дискорд-серверу Darknet/YOLO
Статьи
1. Бумага YOLOv7
2. Бумага Scaled-YOLOv4
3. Бумага YOLOv4
4. Бумага YOLOV3
Общая информация
Платформа Darknet/YOLO по-прежнему работает быстрее и точнее, чем другие платформы и версии YOLO.
Этот фреймворк полностью бесплатен и имеет открытый исходный код. Вы можете интегрировать Darknet/YOLO в существующие проекты и продукты, в том числе коммерческие, без лицензии и оплаты.
Darknet V3 («Джаз»), выпущенный в октябре 2024 года, может точно обрабатывать видео набора данных LEGO со скоростью до 1000 кадров в секунду при использовании графического процессора NVIDIA RTX 3090. Это означает, что каждый видеокадр считывается, изменяется размер и обрабатывается Darknet/YOLO за 1 миллисекунду или меньше.
Присоединяйтесь к серверу Discord Darknet/YOLO для получения помощи или обсуждения: https://discord.gg/zSq8rtW
Версия Darknet/YOLO для ЦП работает на различных устройствах, включая Raspberry Pi, облачные серверы и серверы совместной работы, настольные компьютеры, ноутбуки и высокопроизводительные учебные устройства. Для версии Darknet/YOLO с графическим процессором требуется графический процессор NVIDIA с поддержкой CUDA.
Известно, что Darknet/YOLO работает на Linux, Windows и Mac. См. инструкции по сборке ниже.
Даркнет-версия
Оригинальный инструмент Darknet, написанный Джозефом Редмоном в 2013–2017 годах, не имел номера версии. Мы считаем эту версию 0.x.
Следующий популярный репозиторий Darknet, который вел Алексей Бочковский в 2017–2021 годах, также не имел номера версии. Мы рассматриваем эту версию 1.x.
Репозиторий Darknet, спонсируемый Hank.ai и поддерживаемый Стефаном Шареттом с 2023 года, был первым репозиторием с командой версий. С 2023 до конца 2024 года возвращалась версия 2.x «ДУБ».
Целью было попытаться как можно меньше сломать существующую функциональность, одновременно знакомясь с кодовой базой.
Ключевые изменения в Darknet 2.x включают в себя:
Переписаны этапы сборки для единой сборки на основе CMake для Windows и Linux.
Преобразовал кодовую базу для использования компилятора C++.
Улучшена визуализация файлаchart.png во время обучения.
Исправлены ошибки и оптимизирована производительность, в первую очередь направленная на сокращение времени обучения.
Последняя ветвь этой кодовой базы — версия 2.1 в ветке v2.
Следующий этап разработки начался в середине 2024 года и был выпущен в октябре 2024 года. Команда версии теперь возвращает 3.x «JAZZ».
Вы всегда можете проверить предыдущую ветку v2, если вам нужно запустить одну из этих команд. Сообщите нам, если вы обнаружите какие-либо недостающие команды.
Ключевые изменения в Darknet 3.x включают в себя:
Удаление многих старых и неподдерживаемых команд.
Значительная оптимизация производительности как для обучения, так и для вывода.
Модификация устаревшего API C, требующая незначительных изменений для приложений, использующих исходный API Darknet. См. обновленную документацию API здесь: https://darknetcv.ai/api/api.html.
Представление нового API Darknet V3 C и C++: https://darknetcv.ai/api/api.html.
Новые приложения и примеры кода в каталоге src-examples: https://darknetcv.ai/api/files.html.
MSCOCO Предварительно обученные веса
Несколько популярных версий YOLO для удобства были предварительно обучены на наборе данных MSCOCO. Этот набор данных содержит 80 классов, которые можно найти в текстовом файле cfg/coco.names.
Для тестирования Darknet/YOLO доступно несколько других, более простых наборов данных и предварительно обученных весов, например LEGO Gears и Rolodex. Подробности смотрите в FAQ по Darknet/YOLO.
Предварительно обученные веса MSCOCO можно загрузить из разных мест, включая этот репозиторий:
YOLOv2 (ноябрь 2016 г.)
YOLOv2-крошечный
YOLOv2-полный
YOLOv3 (май 2018 г.)
YOLOv3-крошечный
YOLOv3-полный
YOLOv4 (май 2020 г.)
YOLOv4-крошечный
YOLOv4-полный
YOLOv7 (август 2022 г.)
YOLOv7-крошечный
YOLOv7-полный
Предварительно обученные веса MSCOCO предоставляются только в демонстрационных целях. Соответствующие файлы .cfg и .names для MSCOCO находятся в каталоге cfg. Примеры команд:
`
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights
darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
`
Помните, что вам рекомендуется обучать свои собственные сети. MSCOCO в первую очередь используется для подтверждения того, что все работает правильно.
Здание
Различные методы сборки, доступные в прошлом (до 2023 г.), были объединены в одно унифицированное решение. Для Darknet требуется C++17 или новее, OpenCV, и он использует CMake для создания необходимых файлов проекта.
Вам не нужно знать C++ для сборки, установки и запуска Darknet/YOLO, точно так же, как вам не нужно быть механиком, чтобы водить машину.
Будьте осторожны, если вы следуете старым руководствам с более сложными шагами сборки или шагами сборки, которые не соответствуют тому, что указано в этом файле ознакомительных сведений. Новые этапы сборки, описанные ниже, начались в августе 2023 года.
Разработчикам программного обеспечения рекомендуется посетить https://darknetcv.ai/, чтобы получить информацию о внутреннем устройстве системы обнаружения объектов Darknet/YOLO.
Гугл Колаб
Инструкции Google Colab такие же, как инструкции Linux. Доступно несколько блокнотов Jupyter, демонстрирующих такие задачи, как обучение новой сети.
Посмотрите блокноты в подкаталоге colab и/или следуйте инструкциям Linux ниже.
Метод CMake в Linux
Руководство по сборке Darknet для Linux
1. Установите необходимые пакеты:
`бить
sudo apt-get install build-essential git libopencv-dev cmake
`
2. Клонируйте репозиторий Darknet:
`бить
мкдир ~/src
компакт-диск ~/источник
клон git https://github.com/hank-ai/darknet
компакт-диск даркнет
`
3. Создайте каталог сборки и запустите CMake:
`бить
сборка mkdir
сборка компакт-диска
cmake -DCMAKEBUILDTYPE=Выпустить ..
`
4. Создайте даркнет:
`бить
сделать -j4
`
5. Необязательно: установите CUDA или CUDA+cuDNN.
Если у вас современный графический процессор NVIDIA, вы можете установить либо CUDA, либо CUDA+cuDNN. Это позволит Darknet использовать ваш графический процессор для более быстрой обработки изображений и видео.
- Загрузите и установите CUDA с https://developer.nvidia.com/cuda-downloads.
- Загрузите и установите cuDNN с https://developer.nvidia.com/rdp/cudnn-download или https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager- установка-обзор.
Важно: если вы устанавливаете CUDA или CUDA+cuDNN после сборки Darknet, вам необходимо удалить файл CMakeCache.txt в каталоге сборки и перезапустить cmake, чтобы убедиться, что CMake может найти необходимые файлы.
Примечание. Darknet может работать без CUDA, но если вы хотите обучить собственную сеть, потребуется либо CUDA, либо CUDA+cuDNN.
6. Упакуйте и установите Darknet:
`бить
сделать пакет
sudo dpkg -i darknet-ВЕРСИЯ.deb
`
Важно: Если вы используете более старую версию CMake, вам может потребоваться обновить ее перед запуском команды cmake. Обновите CMake в Ubuntu, используя:
`бить
sudo apt-get очистить cmake
sudo snap установить cmake --classic
`
Продвинутые пользователи:
- Если вы хотите создать установочный файл RPM вместо файла DEB, отредактируйте следующие две строки в CM_package.cmake перед запуском пакета make:
`cmake
# SET (CPACK_GENERATOR "DEB")
НАБОР (CPACK_GENERATOR «ОБ/МИН»)
`
- Чтобы установить установочный пакет после завершения сборки, используйте менеджер пакетов вашего дистрибутива. Например, в системах на базе Debian, таких как Ubuntu:
`бить
sudo dpkg -i darknet-2.0.1-Linux.deb
`
- При установке пакета .deb будут скопированы следующие файлы:
- /usr/bin/darknet: исполняемый файл Darknet.
- /usr/include/darknet.h: API Darknet для разработчиков C, C++ и Python.
- /usr/include/darknet_version.h: содержит информацию о версии для разработчиков.
- /usr/lib/libdarknet.so: библиотека для компоновки разработчиков C, C++ и Python.
- /opt/darknet/cfg/...: расположение всех шаблонов .cfg.
- Теперь все готово! Darknet встроен и установлен в /usr/bin/. Запустите версию darknet из CLI, чтобы подтвердить установку.
Метод Windows CMake
Эти инструкции предполагают новую установку Windows 11 22H2.
1. Установите необходимое программное обеспечение:
`powershell
winget установить Git.Git
winget установить Kitware.CMake
winget установить nsis.nsis
winget install Microsoft.VisualStudio.2022.Community
`
2. Измените установку Visual Studio:
- Откройте меню «Пуск» Windows и запустите «Установщик Visual Studio».
- Нажмите «Изменить».
- Выберите «Разработка настольных компьютеров с помощью C++».
- Нажмите «Изменить» в правом нижнем углу, а затем «Да».
3. Установите Microsoft VCPKG:
- Откройте меню «Пуск» Windows и выберите «Командная строка разработчика для VS 2022». Не используйте PowerShell для этих действий.
- Опытные пользователи: вместо запуска командной строки разработчика вы можете использовать обычную командную строку или подключиться к устройству по протоколу SSH и вручную запустить Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat.
- Выполните следующие команды:
`powershell
CDC:
mkdir c:src
компакт-диск c:src
клон git https://github.com/microsoft/vcpkg
компакт-диск vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe интегрировать установку
.vcpkg.exe интегрирует PowerShell
.vcpkg.exe install opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
- Будьте терпеливы на этом последнем этапе, так как его выполнение может занять много времени. Нужно скачать и собрать много вещей.
- Опытные пользователи: обратите внимание, что существует множество других дополнительных модулей, которые вы можете добавить при сборке OpenCV. Запустите .vcpkg.exe search opencv, чтобы просмотреть полный список.
4. Необязательно: установите CUDA или CUDA+cuDNN.
Если у вас современный графический процессор NVIDIA, вы можете установить либо CUDA, либо CUDA+cuDNN. Это позволит Darknet использовать ваш графический процессор для более быстрой обработки изображений и видео.
- Загрузите и установите CUDA с https://developer.nvidia.com/cuda-downloads.
- Загрузите и установите cuDNN с https://developer.nvidia.com/rdp/cudnn-download или https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows.
Важно: если вы устанавливаете CUDA или CUDA+cuDNN после сборки Darknet, вам необходимо удалить файл CMakeCache.txt в каталоге сборки и перезапустить cmake, чтобы убедиться, что CMake может найти необходимые файлы.
Примечание. Darknet может работать без CUDA, но если вы хотите обучить собственную сеть, потребуется либо CUDA, либо CUDA+cuDNN.
5. Клонируйте Даркнет и создайте его:
`powershell
компакт-диск c:src
клон git https://github.com/hank-ai/darknet.git
компакт-диск даркнет
сборка mkdir
сборка компакт-диска
cmake -DCMAKEBUILDTYPE=Выпуск -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
Важный:
- Установка CUDA: CUDA необходимо установить после Visual Studio. Если вы обновляете Visual Studio, не забудьте переустановить CUDA.
- Отсутствующие библиотеки DLL. Если вы столкнулись с ошибками, связанными с отсутствием библиотек DLL CUDA или cuDNN (например, cublas64_12.dll), вручную скопируйте файлы CUDA .dll в тот же выходной каталог, что и darknet.exe. Например:
`powershell
скопируйте "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
(Это пример; проверьте версию CUDA, которую вы используете, и соответствующим образом измените путь.)
- Перезапустите msbuild.exe: после копирования файлов .dll повторно запустите последнюю команду msbuild.exe, чтобы сгенерировать установочный пакет NSIS:
`powershell
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
- Опытные пользователи: обратите внимание, что выходные данные команды cmake представляют собой обычный файл решения Visual Studio (darknet.sln). Если вы регулярно используете графический интерфейс Visual Studio вместо msbuild.exe, вы можете игнорировать действия командной строки и загрузить проект Darknet в Visual Studio.
- Теперь у вас должен быть файл, который можно запустить: C:srcDarknetbuildsrc-cliReleasedarknet.exe. Запустите это, чтобы проверить: версию C:srcDarknetbuildsrc-cliReleasedarknet.exe.
6. Установите Даркнет:
- Запустите мастер установки NSIS, созданный на последнем этапе. Найдите файл darknet-VERSION.exe в каталоге сборки. Например:
`
даркнет-2.0.31-win64.exe
`
- Установочный пакет NSIS будет:
- Создайте каталог под названием Darknet, например, C:Program FilesDarknet.
- Установите приложение CLI (darknet.exe) и другие примеры приложений.
- Установите необходимые сторонние файлы .dll, например файлы OpenCV.
- Установите необходимые файлы Darknet .dll, .lib и .h, чтобы использовать darknet.dll из другого приложения.
- Установите файлы шаблонов .cfg.
- Теперь все готово! После завершения работы мастера установки Darknet будет установлен в C:Program FilesDarknet. Запустите это, чтобы проверить: версию C:Program FilesDarknetbindarknet.exe.
Использование даркнета
интерфейс командной строки
Ниже приведен не полный список всех команд, поддерживаемых Darknet.
В дополнение к интерфейсу командной строки Darknet рассмотрите также интерфейс командной строки проекта DarkHelp, который предлагает альтернативный интерфейс командной строки Darknet/YOLO с расширенными функциями, недоступными непосредственно в Darknet. Вы можете использовать как интерфейс командной строки Darknet, так и интерфейс командной строки DarkHelp вместе.
Для большинства приведенных ниже команд вам понадобится файл .weights вместе с соответствующими файлами .names и .cfg. Вы можете либо обучить свою собственную сеть (настоятельно рекомендуется!), либо загрузить предварительно обученную сеть из Интернета. Примеры предварительно обученных наборов данных включают в себя:
LEGO Gears (для поиска объектов по изображению)
Rolodex (для поиска текста на изображении)
MSCOCO (стандартное обнаружение объектов класса 80)
Команды для запуска:
Получить помощь:
`бить
помощь в даркнете
`
Проверьте версию:
`бить
даркнет-версия
`
Прогнозирование с помощью изображения:
В2:
`бить
Тест детектора даркнета cars.data cars.cfg cars_best.weights image1.jpg
`
В3:
`бить
darknet02displayannotatedimages cars.cfg image1.jpg
`
Темная помощь:
`бить
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
`
Выходные координаты:
В2:
`бить
Тест детектора даркнета животные.данные животные.cfg животныеbest.weights -extoutput собака.jpg
`
В3:
`бить
darknet01inference_images животные собака.jpg
`
Темная помощь:
`бить
DarkHelp --json животные.cfg животные.названия животных_лучшие.веса собаки.jpg
`
Работа с видео:
В2:
`бить
Демонстрация детектора даркнета животные.данные животные.cfg животныеbest.weights -extoutput test.mp4
`
В3:
`бить
darknet03display_videos животные.cfg test.mp4
`
Темная помощь:
`бить
DarkHelp животные.cfg животные.имена животных_лучшие.веса test.mp4
`
Чтение с веб-камеры:
В2:
`бить
Демонстрация детектора даркнета животные.данные животные.cfg животные_лучшие.веса -c 0
`
В3:
`бить
darknet08display_webcam животные
`
Сохраните результаты на видео:
В2:
`бить
Демонстрация детектора даркнета животные.данные животные.cfg животныеbest.weights test.mp4 -outfilename res.avi
`
В3:
`бить
darknet05processvideosmultithreaded животные.cfg животные.имена животных_лучшие.тест веса.mp4
`
Темная помощь:
`бить
DarkHelp животные.cfg животные.имена животных_лучшие.веса test.mp4
`
Вывод JSON:
В2:
`бить
Демонстрация детектора даркнета животные.данные животные.cfg животныеbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
`
В3:
`бить
darknet06imagestojson животные image1.jpg
`
Темная помощь:
`бить
DarkHelp --json животные.названия животных.cfg животные_лучшие.веса image1.jpg
`
Запуск на конкретном графическом процессоре:
В2:
`бить
Демонстрация детектора даркнета животные.данные животные.cfg животные_лучшие.веса -i 1 test.mp4
`
Проверка точности нейронной сети:
`бить
Карта детектора даркнета вождение.данные вождение.cfg вождение_best.weights ...
`
Пример вывода:
`
Имя идентификатора AvgPrecision TP FN FP TN Точность ErrorRate Специфичность повторного вызова точности FalsePosRate -- ---- ------------ ------ ------ ------ - ----- -------- --------- --------- ------ ----------- -- ---------- 0 автомобиль 91,2495 32648 3903 5826 65129 0,9095 0,0905 0,8486 0,8932 0,9179 0,0821 1 мотоцикл 80,4499 2936 513 569 5393 0,8850. 1150 0,8377 0,8513 0,9046 0,0954 2 велосипед 89,0912 570 124 104 3548 0,9475 0,0525 0,8457 0,8213 0,9715 0,0285 3 человек 76,7937 7072 1727 2574 27523 0,8894 0,1106 0,7332 0,8037 0,9145 0,0855 4 много транспортных средств 64,3089 1068 509 733 11288 0,9087 0,0913 0,593 0 0,6772 0,9390 0,0610 5 зеленый свет 86,8118 1969 239 510 4116 0,8904 0,1096 0,7943 0,8918 0,8898 0,1102 6 желтый свет 82,0390 126 38 30 1239. 9525 0,0475 0,8077 0,7683 0,9764 0,0236 7 красный свет 94,1033 3449 217 451 4643 0,9237 0,0763 0,8844 0,9408 0,9115 0,0885
`
Проверка точности mAP@IoU=75:
`бить
Карта детектора даркнета животные.данные животные.cfg животныеbest.weights -iouthresh 0.75
`
Перерасчет якорей:
Лучше всего пересчитывать якоря в DarkMark, так как он запускается 100 раз подряд и выбирает лучшие якоря. Однако, если вы хотите использовать старую версию в Даркнете:
`бить
детектор даркнета кальканчоры животные.данные -numof_clusters 6 -ширина 320 -высота 256
`
Обучение новой сети:
`бить
Детектор даркнета -map -dont_show train животные.данные животные.cfg
`
(Также см. раздел «Обучение» ниже)
Обучение
Быстрые ссылки на соответствующие разделы FAQ по Darknet/YOLO:
Как мне настроить файлы и каталоги?
Какой файл конфигурации мне следует использовать?
Какую команду мне следует использовать при обучении собственной сети?
Самый простой способ аннотировать и обучать — использовать DarkMark, который создает все необходимые файлы Darknet. Это рекомендуемый способ обучения новой нейронной сети.
Если вы предпочитаете вручную настраивать различные файлы для обучения пользовательской сети:
1. Создайте новую папку:
- Выберите папку для хранения файлов. В этом примере мы создадим нейронную сеть для обнаружения животных, поэтому каталог будет ~/nn/animals/.
2. Скопируйте файл конфигурации Darknet:
- Скопируйте файл конфигурации Darknet в качестве шаблона. Например, используйте cfg/yolov4-tiny.cfg. Поместите это в созданную вами папку. Теперь у вас должен быть файл ~/nn/animals/animals.cfg.
3. Создайте текстовый файл Animal.names:
- Создайте текстовый файл Animals.names в той же папке, что и файл конфигурации. Теперь у вас есть файл ~/nn/animals/animals.names.
4. Отредактируйте файл Animal.names:
- Отредактируйте файл Animals.names с помощью текстового редактора. Перечислите классы, которые вы хотите обнаружить, ровно по одной записи в строке, без пустых строк и комментариев. В этом примере файл .names будет содержать четыре строки:
`
собака
кот
птица
лошадь
`
5. Создайте текстовый файл Animals.data:
- Создайте текстовый файл Animals.data в той же папке. В этом примере файл .data будет содержать:
`
занятия = 4
поезд = /home/имя пользователя/nn/animals/animals_train.txt
действительный = /home/имя пользователя/nn/animals/animals_valid.txt
имена = /home/имя_пользователя/nn/animals/animals.names
резервная копия = /home/имя пользователя/nn/animals
`
6. Создайте папку для изображений и аннотаций:
- Создайте папку для хранения изображений и аннотаций. Например, это может быть ~/nn/animals/dataset.
– Для каждого изображения потребуется соответствующий файл .txt, описывающий аннотации к этому изображению. Формат этих файлов аннотаций .txt очень специфичен. Вы не сможете создать их вручную, так как каждая аннотация требует точных координат. Используйте DarkMark или подобное программное обеспечение для аннотирования ваших изображений. Формат аннотации YOLO описан в FAQ по Darknet/YOLO.
7. Создайте «поездные» и «действительные» текстовые файлы:
- Создайте «поездные» и «действительные» текстовые файлы, указанные в файле .data.
- В этих двух текстовых файлах должны быть перечислены все изображения, которые Даркнет будет использовать для обучения и проверки (для расчета mAP%).
- Каждая строка должна содержать ровно один путь к изображению и имя файла. Вы можете использовать относительные или абсолютные пути.
8. Измените файл .cfg:
- Используйте текстовый редактор, чтобы изменить файл .cfg:
- Убедитесь, что партия = 64.
- Подразделения: в зависимости от размеров сети и памяти графического процессора вам может потребоваться настроить подразделения. Начните с subdivisions=1 и обратитесь к FAQ по Darknet/YOLO, если это не работает.
- Maxbatches: установите хорошее начальное значение для maxbatches, в 2000 раз превышающее количество классов. В этом примере у нас есть 4 животных, поэтому max_batches=8000.
- Шаги: установите шаги на 80% и 90% от max_batches. В этом случае мы будем использовать шаги = 6400,7200.
- Ширина и высота: это размеры сети. Часто задаваемые вопросы Darknet/YOLO объясняют, как рассчитать лучший размер.
- Классы: найдите все экземпляры class=... и обновите его, указав количество классов в вашем файле .names. В этом примере мы бы использовали классы = 4.
- Фильтры: поиск всех экземпляров filter=... в разделах [convolutional] перед каждым разделом [yolo]. Используемое значение: (число классов + 5) 3. В этом примере (4 + 5) 3 = 27. Поэтому мы будем использовать фильтры = 27 в соответствующих строках.
9. Начать обучение:
- Перейдите в каталог ~/nn/animals/:
`бить
компакт-диск ~/nn/животные/
`
- Выполните следующую команду, чтобы начать обучение:
`бить
Детектор даркнета -map -dont_show train животные.данные животные.cfg
`
- Потерпи. Лучшие веса будут сохранены как животные_best.weights. Вы можете отслеживать прогресс обучения, наблюдая за файломchart.png. Обратитесь к FAQ по Darknet/YOLO, чтобы узнать о дополнительных параметрах, которые вы, возможно, захотите использовать во время обучения.
- Если вам нужна более подробная информация об обучении, добавьте параметр --verbose:
`бить
детектор даркнета -map -dont_show --verbose train животные.данные животные.cfg
`
Другие инструменты и ссылки
DarkMark: для управления проектами Darknet/YOLO, аннотирования изображений, проверки аннотаций и создания файлов для обучения с помощью Darknet.
DarkHelp: надежная альтернатива CLI Darknet, использующая мозаику изображений, отслеживание объектов в видео и надежный API C++, подходящий для коммерческих приложений.
Часто задаваемые вопросы по Darknet/YOLO: обширный ресурс для ответов на ваши вопросы.
Канал Стефана на YouTube: многочисленные обучающие программы и видеоролики с примерами.
Сервер Darknet/YOLO Discord: присоединяйтесь к сообществу для поддержки и обсуждений.
Дорожная карта
Последнее обновление 30 октября 2024 г.:
Завершенный:
Во время обучения заменен qsort() на std::sort() (остаются некоторые другие непонятные функции).
Удалены check_mistakes, getchar() и system().
Преобразовал Darknet для использования компилятора C++ (g++ в Linux, VisualStudio в Windows).
Исправлена сборка Windows.
Исправлена поддержка Python.
Создал даркнет-библиотеку.
Снова включены метки для прогнозов (код «Алфавит»).
Повторно включен код CUDA/GPU.
Повторно включил CUDNN.
Повторно включил половину CUDNN.
Удалена жестко закодированная архитектура CUDA.
Улучшена информация о версии CUDA.
Снова включил AVX.
Удалены старые решения и Makefile.
OpenCV сделан необязательным.
Удалена зависимость от старой библиотеки pthread.
Удален СТБ.
Переписал CMakeLists.txt, чтобы использовать новое обнаружение CUDA.
Удален старый «алфавитный» код и удалено более 700 изображений в данных/метках.
Включены сборки из исходного кода.
Улучшен вывод номера версии.
Реализована оптимизация производительности, связанная с обучением (в процессе).
Реализована оптимизация производительности, связанная с логическим выводом (в процессе).
Там, где это возможно, используется передача по ссылке.
Очистил файлы .hpp.
Переписал darknet.h.
Избегали приведения cv::Mat к void*, используя его как правильный объект C++.
Исправлена или улучшена согласованность использования внутренней структуры изображения.
Исправлены сборки для устройств Jetson на базе ARM. (Оригинальные устройства Jetson вряд ли будут исправлены, поскольку они больше не поддерживаются NVIDIA — нет компилятора C++17. Новые устройства Jetson Orin работают).
Исправлен API Python в версии V3.
Улучшена поддержка Python. (Готовы ли кто-нибудь из разработчиков Python помочь с этим?)
Краткосрочные цели
Замените printf() на std::cout (в процессе).
Изучите поддержку старых камер Zed.
Улучшите и сделайте более последовательным анализ командной строки (в разработке).
Среднесрочные цели
Удалите весь код char* и замените его на std::string.
Не скрывайте предупреждения и очищайте предупреждения компилятора (в процессе).
Улучшите использование cv::Mat вместо пользовательской структуры изображения в C (в разработке).
Замените старую функциональность списка на std::vector или std::list.
Исправлена поддержка одноканальных изображений в оттенках серого.
Добавьте поддержку N-канальных изображений, где N > 3 (например, изображения с дополнительной глубиной или тепловыми каналами).
Продолжить очистку кода (в процессе).
Долгосрочные цели
Исправьте проблемы CUDA/CUDNN со всеми графическими процессорами.
Перепишите код CUDA+cuDNN.
Рассмотрите возможность добавления поддержки графических процессоров сторонних производителей.
Добавьте повернутые ограничивающие рамки или поддержку «угла».
Реализуйте ключевые точки/скелетоны.
Добавьте тепловые карты (в процессе).
Внедрить сегментацию.