Платформа обнаружения объектов Darknet и YOLO
Редактор Downcodes даст вам более глубокое понимание Darknet, среды нейронных сетей с открытым исходным кодом, написанной на C, C++ и CUDA, а также усовершенствованной системы обнаружения целей в реальном времени YOLO (You Only Look Once), работающей на платформе Darknet. .
Платформа Darknet/YOLO работает быстрее и точнее, чем другие платформы и версии YOLO. Эта платформа полностью бесплатна и имеет открытый исходный код. Вы можете интегрировать Darknet/YOLO в существующие проекты и продукты, включая коммерческие проекты, без лицензий и комиссий.
Darknet V3 («Джаз»), выпущенный в октябре 2024 года, может точно воспроизводить видео набора данных LEGO со скоростью до 1000 кадров в секунду при использовании графического процессора NVIDIA RTX 3090, что означает, что каждый видеокадр занимает 1 миллисекунду или меньше. Внутреннее считывание, изменение размера и обработка с помощью Darknet/ ЙОЛО.
Если вам нужна помощь или вы хотите обсудить Darknet/YOLO, присоединяйтесь к серверу 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.
Следующая популярная даркнет-библиотека, которую поддерживал Алексей Бочковский в 2017-2021 годах, также не имела номера версии. Мы считаем, что это версия 1.x.
Начиная с 2023 года, библиотека Darknet, спонсируемая Hank.ai и поддерживаемая Стефаном Шареттом, станет первой библиотекой, имеющей команду версии. С 2023 до конца 2024 года он возвращается к версии 2.х «Дуб».
Цель — ознакомиться с базой кода, сводя к минимуму нарушение существующей функциональности.
Перепишите шаги сборки, чтобы у нас был один унифицированный способ сборки с использованием CMake в Windows и Linux.
Преобразуйте базу кода для использования компилятора C++.
Chart.png во время усиленной тренировки.
Исправления ошибок и оптимизации, связанные с производительностью, в основном связанные с сокращением времени, необходимого для обучения сети.
Последняя ветвь этой кодовой базы — версия 2.1 в ветке v2.
Следующий этап разработки начнется в середине 2024 года, а релиз состоится в октябре 2024 года. Команда версии теперь возвращает 3.x «JAZZ».
Если вам нужно запустить одну из этих команд, вы всегда можете проверить предыдущую ветку v2. Сообщите нам, чтобы мы могли изучить вопрос о добавлении недостающих команд.
Удалены многие старые и неподдерживаемые команды.
В ходе обучения и вывода было сделано множество оптимизаций производительности.
Изменения в устаревшем API C; приложения, использующие исходный API Darknet, требуют незначительных изменений: 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.
Для удобства несколько популярных версий 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, точно так же, как вам не нужно быть механиком, чтобы водить машину.
Инструкции для Google Colab такие же, как и для Linux. Предоставляется несколько блокнотов Jupyter, показывающих, как выполнять определенные задачи, например обучение новой сети.
Пожалуйста, проверьте блокнот в подкаталоге colab или следуйте инструкциям Linux ниже.
Руководство по сборке Darknet в Linux
Необязательно: если у вас современный графический процессор NVIDIA, вы можете сейчас установить CUDA или CUDA+cuDNN. Если Darknet установлен, он будет использовать ваш графический процессор для ускорения обработки изображений (и видео).
Вам необходимо удалить файл CMakeCache.txt из каталога сборки Darknet, чтобы заставить CMake повторно найти все необходимые файлы.
Не забудьте восстановить Даркнет.
Даркнет может работать и без него, но если вы хотите обучить собственную сеть, вам понадобится CUDA или CUDA+cuDNN.
Посетите https://developer.nvidia.com/cuda-downloads, чтобы загрузить и установить CUDA.
Посетите https://developer.nvidia.com/rdp/cudnn-download или https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview, чтобы загрузить. и установите cuDNN.
После установки CUDA убедитесь, что nvcc и nvidia-smi работают. Возможно, вам придется изменить переменную PATH.
Если вы установите CUDA или CUDA+cuDNN позже или обновитесь до более новой версии программного обеспечения NVIDIA:
Эти инструкции предполагают (но не требуют!) систему под управлением Ubuntu 22.04. Если вы используете другой дистрибутив, внесите необходимые изменения.
`
sudo apt-get install build-essential git libopencv-dev cmake
mkdir ~/srccd ~/src
git клон https://github.com/hank-ai/darknetcd даркнет
сборка mkdir buildcd
cmake -DCMAKEBUILDTYPE=Выпустить ..
сделать пакет -j4
sudo dpkg -i darknet-ВЕРСИЯ.deb
`
Если вы используете более старую версию CMake, вам необходимо обновить CMake перед запуском приведенной выше команды cmake. CMake можно обновить в Ubuntu с помощью следующей команды:
`
sudo apt-get purge cmakesudo snap install cmake --classic
`
Если вы используете bash в качестве командной оболочки, на этом этапе вам необходимо перезапустить оболочку. Если вы используете рыбу, она должна немедленно выбрать новый путь.
Продвинутые пользователи:
Если вы хотите создать установочный файл RPM вместо файла DEB, см. соответствующие строки в CM_package.cmake. Перед запуском пакета make -j4 вам необходимо отредактировать эти две строки:
`
SET (CPACKGENERATOR "DEB")# SET (CPACKGENERATOR "RPM")
`
Для таких дистрибутивов, как Centos и OpenSUSE, вам необходимо переключить эти две строки в CM_package.cmake на:
`
КОМПЛЕКТ (CPACKGENERATOR "DEB")SET (CPACKGENERATOR "RPM")
`
После сборки установочного пакета вы можете использовать общий менеджер пакетов дистрибутива для его установки. Например, в системе на базе Debian, такой как Ubuntu:
`
sudo dpkg -i darknet-2.0.1-Linux.deb
`
При установке пакета .deb будут скопированы следующие файлы:
/usr/bin/darknet — это широко используемый исполняемый файл Darknet. Запустите версию darknet из CLI, чтобы убедиться, что она установлена правильно.
/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/. Для проверки выполните следующую команду: версия даркнета.
Если у вас нет /usr/bin/darknet, это означает, что вы его не устанавливали, а только что собрали! Обязательно установите файл .deb или .rpm, как описано выше.
Эти инструкции предполагают чистую установку Windows 11 22H2.
Откройте обычное окно командной строки cmd.exe и выполните следующую команду:
`
winget установить Git.Git
winget установить Kitware.CMake
winget установить nsis.nsis
winget install Microsoft.VisualStudio.2022.Community
`
На этом этапе нам необходимо изменить установку Visual Studio, чтобы включить поддержку приложений C++:
1. Щелкните меню «Пуск» Windows и запустите «Установщик Visual Studio».
2. Нажмите «Изменить».
3. Выберите разработку настольных компьютеров с использованием C++.
4. Нажмите «Изменить» в правом нижнем углу, затем нажмите «Да».
После того, как все будет загружено и установлено, снова нажмите меню «Пуск» Windows и выберите командную строку разработчика для VS 2022. Не используйте PowerShell для этих действий, у вас возникнут проблемы!
Продвинутые пользователи:
Вместо запуска командной строки разработчика вы также можете использовать обычную командную строку или SSH для подключения к устройству и вручную запустить «Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat».
После запуска командной строки разработчика, указанной выше (не PowerShell!), выполните следующую команду для установки Microsoft VCPKG, который затем будет использоваться для сборки OpenCV:
`
CDC:
mkdir c:srccd c:src
git-клон https://github.com/microsoft/vcpkgcd vcpkg
bootstrap-vcpkg.bat .vcpkg.exe интегрировать
установить .vcpkg.exe интегрировать powershell.vcpkg.exe установить opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
Будьте терпеливы на этом последнем этапе, так как его выполнение может занять много времени. Это требует загрузки и создания большого количества вещей.
Продвинутые пользователи:
Обратите внимание, что существует множество других дополнительных модулей, которые вы можете добавить при сборке OpenCV. Запустите .vcpkg.exe search opencv, чтобы просмотреть полный список.
Необязательно: если у вас современный графический процессор NVIDIA, вы можете сейчас установить CUDA или CUDA+cuDNN. Если Darknet установлен, он будет использовать ваш графический процессор для ускорения обработки изображений (и видео).
Вам необходимо удалить файл CMakeCache.txt из каталога сборки Darknet, чтобы заставить CMake повторно найти все необходимые файлы.
Не забудьте восстановить Даркнет.
Даркнет может работать и без него, но если вы хотите обучить собственную сеть, вам понадобится CUDA или CUDA+cuDNN.
Посетите https://developer.nvidia.com/cuda-downloads, чтобы загрузить и установить CUDA.
Посетите https://developer.nvidia.com/rdp/cudnn-download или https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows, чтобы загрузить и установить cuDNN.
После установки CUDA убедитесь, что вы можете запускать nvcc.exe и nvidia-smi.exe. Возможно, вам придется изменить переменную PATH.
После загрузки cuDNN разархивируйте его и скопируйте каталоги bin, include и lib в C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[версия]/. Возможно, вам придется перезаписать некоторые файлы.
Если вы установите CUDA или CUDA+cuDNN позже или обновитесь до более новой версии программного обеспечения NVIDIA:
CUDA должен быть установлен после Visual Studio. Если вы обновляете Visual Studio, не забудьте переустановить CUDA.
После того, как все предыдущие шаги выполнены успешно, вам необходимо клонировать Даркнет и собрать его. На этом этапе нам также нужно сообщить CMake, где находится vcpkg, чтобы он мог найти OpenCV и другие зависимости:
`
компакт-диск c: источник
git клон https://github.com/hank-ai/darknet.gitcd даркнет
сборка mkdir buildcd
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
`
Если вы получаете сообщение об отсутствующей DLL CUDA или cuDNN (например, cublas64_12.dll), вручную скопируйте файл CUDA .dll в тот же выходной каталог, что и Darknet.exe. Например:
`
скопировать «C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll» src-cliRelease
`
(Это пример! Проверьте, какую версию вы используете, и выполните соответствующую команду для того, что вы установили.)
После копирования файлов повторно запустите последнюю команду msbuild.exe, чтобы сгенерировать установочный пакет NSIS:
`
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.
Чтобы правильно установить Darknet, библиотеки, включаемые файлы и необходимые библиотеки DLL, запустите мастер установки 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.
Если у вас нет C:/Program Files/darknet/bin/darknet.exe, это означает, что вы его не устанавливали, а только что собрали! Обязательно заполните каждую панель мастера установки NSIS на предыдущем шаге.
Ниже приведен не полный список всех команд, поддерживаемых Darknet.
В дополнение к интерфейсу командной строки Darknet также обратите внимание на интерфейс командной строки проекта DarkHelp, который предоставляет другой интерфейс командной строки, чем Darknet/YOLO. DarkHelp CLI также имеет несколько расширенных функций, недоступных напрямую в Darknet. Вы можете использовать как интерфейс командной строки Darknet, так и интерфейс командной строки DarkHelp, они не являются взаимоисключающими.
Для большинства команд, показанных ниже, вам понадобится файл .weights и соответствующие файлы .names и .cfg. Вы можете обучить сеть самостоятельно (настоятельно рекомендуется!) или загрузить сеть, которую обучили другие и которая находится в свободном доступе в Интернете. Примеры наборов данных для предварительного обучения включают в себя:
LEGO Gears (находите объекты на изображениях)
Ролодекс (найти текст на изображении)
MSCOCO (стандартное обнаружение целей категории 80)
Команды, которые можно выполнить, включают:
Перечислите некоторые команды и параметры, которые можно запустить:
`
помощь в даркнете
`
Проверьте версию:
`
даркнет-версия
`
Используйте изображения, чтобы делать прогнозы:
`
V2: тест детектора даркнета cars.data cars.cfg cars_best.weights image1.jpg
V3: darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp: DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
`
Выходные координаты:
`
V2: тест детектора даркнета животные.данные животные.cfg животныеbest.weights -extoutput собака.jpg
V3: darknet01inference_images животные собака.jpg
DarkHelp: DarkHelp --json животные.cfg животные.названия животных_лучшие.веса собаки.jpg
`
Используйте видео:
`
V2: демо-версия детектора даркнета животные.данные животные.cfg животныеbest.weights -extoutput test.mp4
V3: darknet03display_videos животные.cfg test.mp4
DarkHelp: DarkHelp животные.cfg животные.названия животных_лучшие.веса test.mp4
`
Чтение с веб-камеры:
`
V2: демо-версия детектора даркнета животные.данные животные.cfg животные_best.weights -c 0
V3: darknet08display_webcam животные
`
Сохраните результаты на видео:
`
V2: демо-версия детектора даркнета животные.данные животные.cfg животныеbest.weights test.mp4 -outfilename res.avi
V3: darknet05processvideosmultithreaded животные.cfg животные.названия животных_лучшие.весовой тест.mp4
DarkHelp: DarkHelp животные.cfg животные.названия животных_лучшие.веса test.mp4
`
JSON:
`
V2: демо-версия детектора даркнета животные.данные животные.cfg животныеbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3: darknet06imagestojson животные image1.jpg
DarkHelp: DarkHelp --json животные.названия животных.cfg животные_best.weights image1.jpg
`
Запуск на конкретном графическом процессоре:
`
V2: демо-версия детектора даркнета животные.данные животные.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 0,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,5930 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 0,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 раз подряд и выбирает лучшую опорную точку из всех рассчитанных опорных точек. Однако, если вы хотите запустить более старую версию в Darknet, используйте следующую команду:
`
детектор даркнета кальканчоры животные.данные -numof_clusters 6 -ширина 320 -высота 256
`
Обучите новую сеть:
`
детектор даркнета -map -dont_show train Animals.data Animals.cfg (см. также раздел обучения ниже)
`
Быстрые ссылки на соответствующие разделы FAQ по Darknet/YOLO:
Как мне настроить файлы и каталоги?
Какой профиль мне следует использовать?
Какую команду мне следует использовать при обучении собственной сети?
Самый простой способ комментировать и тренироваться с помощью DarkMark — создать все необходимые файлы Darknet. Это определенно рекомендуемый способ обучения новых нейронных сетей.
Если вы хотите вручную настроить различные файлы для обучения пользовательской сети:
1. Создайте новую папку для хранения этих файлов. В этом примере вы создадите нейронную сеть, которая обнаруживает животных, поэтому будет создан следующий каталог: ~/nn/animals/.
2. Скопируйте один из файлов конфигурации Darknet, который вы хотите использовать в качестве шаблона. Например, см. cfg/yolov4-tiny.cfg. Поместите его в созданную вами папку. В этом примере у нас теперь есть ~/nn/animals/animals.cfg.
3. В той же папке, куда вы поместили файл конфигурации, создайте текстовый файл Animals.names. В этом примере у нас теперь есть ~/nn/animals/animals.names.
4. С помощью текстового редактора отредактируйте файл Animals.names. Перечислите категории, которые вы хотите использовать. Вам нужна ровно одна запись в строке, без пустых строк и комментариев. В этом примере файл .names будет содержать ровно 4 строки:
`
собака
кот
птица
лошадь
`
5. Создайте текстовый файл 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. В этих двух текстовых файлах необходимо отдельно перечислить все изображения, которые Darknet должен использовать для обучения и проверки, чтобы рассчитать процент mAP. В каждой строке ровно одно изображение. Пути и имена файлов могут быть относительными или абсолютными.
8. Воспользуйтесь текстовым редактором, чтобы изменить файл .cfg.
* Убедитесь, что партия = 64.
* Обратите внимание на подразделения. В зависимости от размера сети и объема памяти, доступной на графическом процессоре, вам может потребоваться увеличить количество подразделений. Оптимальное значение — 1, поэтому начните с 1. Если вы не можете использовать 1, прочтите FAQ по Darknet/YOLO.
Обратите внимание, что оптимальное значение для maxbatches=.... для начала в 2000 раз превышает количество классов. В этом примере у нас 4 животных, поэтому 4 2000 = 8000. Это означает, что мы будем использовать maxbatches=8000.
* Обратите внимание, шаги=.... Должно быть установлено значение 80% и 90% от максимального количества пакетов. В этом примере мы будем использовать шаги = 6400,7200, поскольку для параметра maxbatches установлено значение 8000.
* Обратите внимание, что ширина=... и высота=.... Это размеры сети. Часто задаваемые вопросы Darknet/YOLO объясняют, как рассчитать оптимальный размер для использования.
* Найдите строку классы=... в разделе [convolutional] и измените ее перед каждым разделом [yolo], чтобы включить количество классов из файла .names. В этом примере мы будем использовать классы = 4.
Найдите строку filter=... в разделе [convolutional] перед каждым разделом [yolo]. Используемое значение: (количество категорий + 5) 3. Это означает, что для данного примера (4 + 5) * 3 = 27. Поэтому мы используем фильтры=27 в соответствующих строках.
9. Начни тренироваться! Выполните следующую команду:
`
компакт-диск ~/nn/животные/
Детектор даркнета -map -dont_show train животные.данные животные.cfg
`
Потерпи. Лучшие веса будут сохранены как животные_best.weights. А наблюдать за ходом обучения можно, просмотрев файлchart.png. Дополнительные параметры, которые вы можете использовать при обучении новой сети, см. в FAQ по Darknet/YOLO.
Если вы хотите видеть более подробную информацию во время обучения, добавьте параметр --verbose. Например:
`
детектор даркнета -map -dont_show --verbose train животные.данные животные.cfg
`
Чтобы управлять своим проектом Darknet/YOLO, комментировать изображения, проверять свои аннотации и создавать необходимые файлы для обучения с помощью Darknet, см. раздел DarkMark.
Чтобы получить мощный альтернативный интерфейс командной строки Darknet, использовать мозаику изображений, отслеживать объекты в своих видео или использовать мощный API C++, который можно легко использовать в коммерческих приложениях, см. DarkHelp.
Пожалуйста, ознакомьтесь с часто задаваемыми вопросами Darknet/YOLO, чтобы узнать, поможет ли он ответить на ваш вопрос.
Посмотрите множество руководств и видеороликов с примерами на канале Стефана на YouTube.
Если у вас есть вопросы по поддержке или вы хотите пообщаться с другими пользователями Darknet/YOLO, присоединяйтесь к серверу Discord Darknet/YOLO.
Последнее обновление: 30 октября 2024 г.
Заменен qsort(), используемый во время обучения, на std::sort() (еще существуют некоторые другие, менее известные)
Избавьтесь от check_mistakes, getchar() и system().
Преобразование Darknet для использования компилятора C++ (g++ в Linux, Visual Studio в 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.
* Поскольку NVIDIA больше не поддерживает оригинальные устройства Jetson, их исправление вряд ли будет (нет компилятора C++17).
* Новое устройство Jetson Orin уже работает.
Исправить API Python в версии 3.
* Нужна лучшая поддержка Python (есть ли разработчики Python, готовые помочь?)
Замените printf() на std::cout (в разработке)
Изучаем поддержку старой камеры Zed
Улучшенный и более последовательный анализ командной строки (в разработке)
Удалите все коды символов и замените их на std::string.
Не скрывать предупреждения и очищать предупреждения компилятора (работа продолжается)
Лучше использовать cv::Mat вместо пользовательских структур изображений в C (работа в стадии разработки)
Замените старые функции списка на std::vector или std::list.
Исправлена поддержка одноканальных изображений в оттенках серого.
Добавить поддержку N-канальных изображений, где N > 3 (например, изображения с дополнительной глубиной или тепловыми каналами).
Текущая очистка кода (в процессе)
Исправьте проблемы CUDA/CUDNN для всех графических процессоров.
Перепишите код CUDA+cuDNN.
Рассмотрите возможность добавления поддержки графических процессоров сторонних производителей.
Повернутая ограничительная рамка или какая-то «угловая» опора.
ключевые точки/скелет
Тепловая карта (в разработке)
сегментация