Анзибль
Ansible — удивительно простая система автоматизации ИТ. Он умело управляет конфигурацией, развертыванием приложений, предоставлением облака, выполнением специальных задач, автоматизацией сети и оркестровкой нескольких узлов. Ansible позволяет вам легко выполнять сложные изменения, такие как непрерывные обновления с нулевым временем простоя с помощью балансировщиков нагрузки. Погрузитесь глубже в возможности Ansible на их официальном сайте.
Принципы проектирования
1. Используйте Ansible
Вы можете легко установить выпущенную версию Ansible с помощью pip или предпочитаемого вами менеджера пакетов. Подробные инструкции для различных платформ можно найти в нашем подробном руководстве по установке.
2. Расширение возможностей опытных пользователей и разработчиков
Для опытных пользователей и разработчиков ветка разработки предоставляет доступ к новейшим функциям и исправлениям. Несмотря на то, что в целом эта ветка стабильна, важно учитывать возможность внесения критических изменений при использовании этой ветки. Мы настоятельно рекомендуем сотрудничать с сообществом Ansible, если вы решите работать с веткой разработки.
Коммуникация
Присоединяйтесь к оживленному форуму Ansible, чтобы общаться с сообществом, обращаться за помощью и задавать вопросы. Дополнительные каналы связи можно найти в нашем специальном руководстве по подключению к сообществу Ansible.
Внесите свой вклад в Ansible
Рекомендации по кодированию
Мы тщательно документируем наши рекомендации по кодированию в Руководстве для разработчиков. Мы настоятельно рекомендуем вам просмотреть следующие разделы:
1. Информация о филиале
2. Дорожная карта
На основе ценных отзывов команды и сообщества для каждой основной или второстепенной версии (например, 2.7, 2.8) публикуется первоначальный план действий. Страница Ansible Roadmap описывает наши планы и предоставляет возможности влиять на наше направление.
Авторы
Первоначально Ansible был задуман Майклом ДеХааном, и в нем приняли участие более 5000 пользователей (и их количество продолжает расти). Спасибо всем, кто внес свой вклад!
Ansible спонсируется Red Hat, Inc.
Лицензия
Стандартная общественная лицензия GNU v3.0 или новее. Полный текст лицензии см. в разделе КОПИРОВАНИЕ.
Платформа обнаружения объектов Darknet и YOLO
Логотипы !darknet и hank.ai
Darknet — это платформа нейронных сетей с открытым исходным кодом, разработанная на C, C++ и CUDA.
YOLO (You Only Look Once) представляет собой передовую систему обнаружения объектов в режиме реального времени, работающую в рамках Darknet.
Узнайте, как Hank.ai вносит свой вклад в сообщество Darknet/YOLO: https://darknetcv.ai/
Посетите официальный сайт Darknet/YOLO: https://pjreddie.com/darknet/
Ознакомьтесь с подробным FAQ по Darknet/YOLO: https://pjreddie.com/darknet/yolo/.
Присоединяйтесь к активному серверу Discord Darknet/YOLO: https://discord.gg/zSq8rtW
Статьи
1. Документ YOLOv7: https://arxiv.org/abs/2207.02696.
2. Документ Scaled-YOLOv4: https://arxiv.org/abs/2102.12074.
3. Документ YOLOv4: https://arxiv.org/abs/2004.10934.
4. Документ YOLOv3: https://arxiv.org/abs/1804.02769.
Общая информация
Платформа Darknet/YOLO продолжает превосходить другие платформы и версии YOLO как по скорости, так и по точности.
Его полная свобода и природа с открытым исходным кодом позволяют легко интегрировать Darknet/YOLO в существующие проекты и продукты, в том числе коммерческие, без лицензионных ограничений и сборов.
Darknet V3 («Джаз»), выпущенный в октябре 2024 года, демонстрирует свое мастерство, обрабатывая видео набора данных LEGO со впечатляющей скоростью 1000 кадров в секунду при использовании графического процессора NVIDIA RTX 3090. Это соответствует времени обработки каждого видеокадра в 1 миллисекунду или меньше, что демонстрирует исключительную эффективность.
Для получения любой помощи или обсуждений, связанных с Darknet/YOLO, присоединяйтесь к выделенному серверу Discord: 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 «ДУБ».
Цели разработки были сосредоточены на минимизации нарушения существующей функциональности при одновременном ознакомлении с кодовой базой.
Ключевые улучшения в версии 2.x:
1. Унифицированный процесс сборки. Переписаны этапы сборки для единого подхода с использованием CMake как в Windows, так и в Linux.
2. Переход на C++: преобразование кодовой базы для использования компилятора C++.
3. Улучшенная визуализация обучения: улучшена визуализация файлаchart.png во время обучения.
4. Оптимизация производительности: устранены ошибки и реализованы оптимизации, связанные с производительностью, в первую очередь направленные на сокращение времени обучения.
Версия 2.1 представляет собой последнюю ветвь этой кодовой базы, доступную в ветке v2.
Следующий этап разработки начался в середине 2024 года и завершился выпуском версии 3.x «JAZZ» в октябре 2024 года.
У вас сохраняется возможность проверить предыдущую ветку версии 2, если вам требуется доступ к определенным командам из этой версии. Если вы обнаружите какие-либо недостающие команды, сообщите нам для расследования и возможной повторной интеграции.
Значительные изменения в версии 3.x:
1. Сокращение команд: удалены многочисленные устаревшие и неподдерживаемые команды.
2. Повышенная производительность: реализована обширная оптимизация производительности как во время обучения, так и во время вывода.
3. Модификации API. Устаревший API C претерпел изменения; приложения, использующие исходный API Darknet, потребуют незначительных корректировок. Дополнительные сведения см. в обновленной документации: https://darknetcv.ai/api/api.html.
4. Введение нового API: представлен новый API Darknet V3 C и C++: https://darknetcv.ai/api/api.html.
5. Расширенный пример кода: добавлены новые приложения и пример кода в каталоге 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 г.):
йолов3-крошечный
йолов3-полный
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 для создания необходимых файлов проекта.
Создание Darknet/YOLO не требует знаний C++; аналогично вождению автомобиля, вам не нужно быть механиком, чтобы им пользоваться.
Разработчикам программного обеспечения рекомендуется посетить https://darknetcv.ai/, чтобы получить представление о внутренней работе системы обнаружения объектов Darknet/YOLO.
Гугл Колаб
Инструкции Google Colab отражают инструкции Linux. Несколько блокнотов Jupyter демонстрируют конкретные задачи, например обучение новой сети.
Изучите блокноты в подкаталоге colab или следуйте инструкциям Linux, приведенным ниже.
Метод CMake в Linux
1. Основное программное обеспечение:
Основы сборки: sudo apt-get install build-essential git libopencv-dev cmake
2. Клонирование репозитория:
Создайте исходный каталог: mkdir ~/srccd ~/src.
Клонируйте репозиторий: git clone https://github.com/hank-ai/darknetcd darknet
3. Каталог сборки:
Создайте каталог сборки: mkdir buildcd build
4. Конфигурация CMake:
Настройте CMake: cmake -DCMAKEBUILDTYPE=Release ..
5. Создайте даркнет:
Сборка: make -j4
6. Установка пакета:
Создайте пакет: пакет
Установите пакет: sudo dpkg -i darknet-VERSION.deb
Необязательно: установка CUDA или CUDA+cuDNN.
Для ускоренной обработки изображений и видео вы можете дополнительно установить CUDA или CUDA+cuDNN.
Установка CUDA:
Посетите https://developer.nvidia.com/cuda-downloads, чтобы загрузить и установить CUDA.
Установка cuDNN:
Посетите 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:
Удалите файл CMakeCache.txt из каталога сборки Darknet, чтобы заставить CMake повторно найти необходимые файлы.
Восстановить Даркнет.
Обновление версии CMake (при необходимости):
Очистить существующий CMake: sudo apt-get purge cmake
Установите последнюю версию CMake: sudo snap install cmake --classic
Перезапустите оболочку (bash) или убедитесь, что новый путь распознан (рыба).
Продвинутые пользователи:
Чтобы создать установочный файл RPM вместо DEB, измените соответствующие строки в CM_package.cmake. Перед запуском пакета make -j4 настройте следующие строки:
`cmake
НАБОР (CPACK_GENERATOR «DEB»)
НАБОР (CPACK_GENERATOR «ОБ/МИН»)
`
Для таких дистрибутивов, как CentOS и OpenSUSE, измените эти строки:
`cmake
НАБОР (CPACK_GENERATOR «DEB»)
НАБОР (CPACK_GENERATOR «ОБ/МИН»)
`
После сборки установочного пакета установите его с помощью менеджера пакетов вашего дистрибутива. Например, в системах на базе Debian, таких как Ubuntu:
`ударить
sudo dpkg -i darknet-2.0.1-Linux.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/. Чтобы проверить, запустите версию даркнета.
Метод Windows CMake
1. Предпосылки:
Установите следующее с помощью Winget:
- Git: установка winget Git.Git
- CMake: установка winget Kitware.CMake
- NSIS: установка winget nsis.nsis
- Сообщество Visual Studio 2022: установка winget Microsoft.VisualStudio.2022.Community
2. Конфигурация Visual Studio:
Откройте «Установщик Visual Studio» в меню «Пуск» Windows.
Нажмите «Изменить».
Выберите «Разработка настольных компьютеров с помощью C++».
Нажмите «Изменить» в правом нижнем углу, а затем «Да».
3. Командная строка разработчика:
Откройте меню «Пуск» Windows и выберите «Командная строка разработчика для VS 2022». Не используйте PowerShell для этих действий.
4. Установка Microsoft VCPKG (для OpenCV):
Перейдите к C:: cd c:
Создайте каталог src: mkdir c:src.
Клон VCPKG: cd c:src git clone https://github.com/microsoft/vcpkg
Bootstrap VCPKG: cd vcpkg bootstrap-vcpkg.bat
Интегрируйте VCPKG: .vcpkg.exe интегрируйте установку
Установите OpenCV (включая зависимости): .vcpkg.exe install opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
5. Необязательно: установка CUDA или CUDA+cuDNN (Windows).
Для ускоренной обработки изображений и видео вы можете дополнительно установить CUDA или CUDA+cuDNN.
Установка CUDA:
Посетите https://developer.nvidia.com/cuda-downloads, чтобы загрузить и установить CUDA.
Установка cuDNN:
Посетите https://developer.nvidia.com/rdp/cudnn-download или https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows, чтобы загрузить и установить cuDNN.
Установка после CUDA:
Убедитесь, что вы можете выполнить nvcc.exe. Возможно, вам придется изменить переменную PATH.
Разархивируйте загруженный файл cuDNN и скопируйте каталоги bin, include и lib в C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[версия]/. Возможно, вам придется перезаписать некоторые файлы.
Обновление CUDA или CUDA+cuDNN:
CUDA должен быть установлен после Visual Studio. Переустановите CUDA, если вы обновите Visual Studio.
6. Клонирование и создание даркнета:
Перейдите в исходный каталог: cd c:src.
Клонируйте репозиторий: git clone https://github.com/hank-ai/darknet.git.
Создайте каталог сборки: cd darknetmkdir build
Настройте CMake с помощью VCPKG: cd build cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
Создайте решение: msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
Создайте установочный пакет NSIS: msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj.
7. Обработка отсутствующих библиотек DLL CUDA/cuDNN:
Если вы столкнулись с ошибками, связанными с отсутствием библиотек DLL CUDA или cuDNN (например, cublas64_12.dll), вручную скопируйте соответствующие файлы CUDA .dll в тот же выходной каталог, что и Darknet.exe. Например:
`ударить
скопировать «C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll» src-cliRelease
`
Измените номер версии в команде в соответствии с вашей установкой.
Повторно запустите команду msbuild.exe, чтобы создать установочный пакет NSIS.
Продвинутые пользователи:
Команда cmake создает файл решения Visual Studio (Darknet.sln). Если вы предпочитаете графический интерфейс Visual Studio, вы можете загрузить проект Darknet в Visual Studio вместо использования инструментов командной строки.
Проверка после сборки:
Убедитесь, что C:srcDarknetbuildsrc-cliReleasedarknet.exe существует. Запустите версию C:srcDarknetbuildsrc-cliReleasedarknet.exe для подтверждения.
Установка:
Запустите мастер установки NSIS (например, darknet-VERSION.exe в каталоге сборки), чтобы установить Darknet, библиотеки, включаемые файлы и необходимые библиотеки DLL.
Проверка после установки:
Убедитесь, что C:/Program Files/darknet/bin/darknet.exe существует. Запустите версию C:/Program Files/darknet/bindarknet.exe для подтверждения.
Использование Даркнета
интерфейс командной строки
Этот список не охватывает все команды Darknet.
В дополнение к интерфейсу командной строки Darknet рассмотрите возможность использования интерфейса командной строки проекта DarkHelp, который предлагает альтернативный и более продвинутый интерфейс. Оба интерфейса командной строки можно использовать вместе.
Для большинства команд вам понадобится файл .weights вместе с соответствующими файлами .names и .cfg. Вы можете обучить свою собственную сеть или загрузить предварительно обученные сети.
Предварительно обученные наборы данных:
LEGO Gears: обнаружение объектов на изображениях.
Rolodex: обнаружение текста на изображениях.
MSCOCO: стандартное обнаружение объектов класса 80.
Общие команды CLI:
1. Помощь: помощь в даркнете
2. Версия: версия даркнета
3. Прогнозирование изображения (V2):
Тест детектора даркнета cars.data cars.cfg cars_best.weights image1.jpg
4. Прогнозирование изображения (V3):
darknet02displayannotatedimages cars.cfg image1.jpg
5. Прогнозирование изображения (DarkHelp):
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
6. Выходные координаты (V2):
Тест детектора даркнета животные.данные животные.cfg животныеbest.weights -extoutput собака.jpg
7. Выходные координаты (V3):
darknet01inference_images животные собака.jpg
8. Выходные координаты (DarkHelp):
DarkHelp --json животные.cfg животные.названия животных_лучшие.веса собаки.jpg
9. Обработка видео (V2):
Демонстрация детектора даркнета животные.данные животные.cfg животныеbest.weights -extoutput test.mp4
10. Обработка видео (V3):
darknet03display_videos животные.cfg test.mp4
11. Обработка видео (DarkHelp):
DarkHelp животные.cfg животные.имена животных_лучшие.веса test.mp4
12. Обработка веб-камеры (V2):
Демонстрация детектора даркнета животные.данные животные.cfg животные_лучшие.веса -c 0
13. Обработка веб-камеры (V3):
darknet08display_webcam животные
14. Сохранение видео (V2):
Демонстрация детектора даркнета животные.данные животные.cfg животныеbest.weights test.mp4 -outfilename res.avi
15. Сохранение видео (V3):
darknet05processvideosmultithreaded животные.cfg животные.имена животных_лучшие.тест веса.mp4
16. Сохранение видео (DarkHelp):
DarkHelp животные.cfg животные.имена животных_лучшие.веса test.mp4
17. Вывод JSON (V2):
Демонстрация детектора даркнета животные.данные животные.cfg животныеbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
18. Вывод JSON (V3):
darknet06imagestojson животные image1.jpg
19. Вывод JSON (DarkHelp):
DarkHelp --json животные.названия животных.cfg животные_лучшие.веса image1.jpg
20. Выбор графического процессора (V2):
Демонстрация детектора даркнета животные.данные животные.cfg животные_лучшие.веса -i 1 test.mp4
21. Проверка точности сети:
Карта детектора даркнета вождение.данные вождение.cfg вождение_best.weights ...
22. Проверка точности (mAP@IoU=75):
Карта детектора даркнета животные.данные животные.cfg животныеbest.weights -iouthresh 0.75
23. Перерасчет якоря (рекомендуется DarkMark):
детектор даркнета кальканчоры животные.данные -numof_clusters 6 -ширина 320 -высота 256
24. Обучение новой сети:
детектор даркнета -map -dont_show train Animals.data Animals.cfg (см. раздел обучения ниже)
Обучение
Быстрые ссылки на соответствующие разделы часто задаваемых вопросов Darknet/YOLO:
Настройка: https://pjreddie.com/darknet/yolo/
Выбор файла конфигурации: https://pjreddie.com/darknet/yolo/
Тренировочная команда: https://pjreddie.com/darknet/yolo/
Самый рациональный подход к аннотированию и обучению предполагает использование DarkMark. Это рекомендуемый метод обучения новой нейронной сети.
Ручная настройка обучения:
1. Создайте папку проекта: например, ~/nn/animals/.
2. Скопируйте шаблон конфигурации:
Выберите файл конфигурации (например, cfg/yolov4-tiny.cfg).
Поместите его в папку проекта.
Теперь у вас есть ~/nn/animals/animals.cfg.
3. Создайте файл Animal.names:
Создайте текстовый файл с именем Animals.names в папке проекта.
Отредактируйте этот файл, указав нужные классы.
Убедитесь, что каждый класс находится на отдельной строке, без пустых строк и комментариев.
Например:
`
собака
кот
птица
лошадь
`
4. Создайте файл Animal.data:
Создайте текстовый файл с именем животные.данные в папке проекта.
Содержание должно напоминать:
`
занятия = 4
поезд = /home/имя пользователя/nn/animals/animals_train.txt
действительный = /home/имя пользователя/nn/animals/animals_valid.txt
имена = /home/имя_пользователя/nn/animals/animals.names
резервная копия = /home/имя пользователя/nn/animals
`
5. Создайте папку набора данных:
Создайте папку для хранения изображений и аннотаций. Например, ~/nn/animals/dataset.
Для каждого изображения требуется соответствующий файл .txt, в котором определяются его аннотации.
Вы не можете вручную создать эти файлы .txt; DarkMark или аналогичные инструменты необходимы для аннотирования ваших изображений и создания этих файлов.
Обратитесь к FAQ по Darknet/YOLO, чтобы узнать о формате аннотаций YOLO.
6. Создайте файлы Animalstrain.txt и Animalvalid.txt:
Создайте эти текстовые файлы, как указано в файле Animals.data.
В этих файлах перечислены все изображения, которые будут использоваться для обучения и проверки соответственно.
По одному изображению в строке с использованием относительных или абсолютных путей.
7. Измените файл конфигурации (animals.cfg):
Пакет: Установите пакет = 64.
Подразделения: Начните с подразделения = 1. При необходимости отрегулируйте его в зависимости от размеров сети и памяти графического процессора.
Максимальное количество пакетов. Хорошее начальное значение — maxbatches=2000 * количество классов. В этом примере maxbatches=8000 (4 животных).
Шаги: Установите значения 80% и 90% от max_batches. В этом примере шаги = 6400,7200.
Ширина и высота: определение размеров сети. Дополнительные сведения см. в FAQ по Darknet/YOLO.
Классы: установите классы=... в соответствии с количеством классов в вашем файле .names (4 в этом примере).
Фильтры. В каждом сверточном слое перед желтым слоем установите для filter=... значение (numberofclasses + 5) * 3. В этом примере filter=27.
8. Начните обучение:
Перейдите в папку вашего проекта: cd ~/nn/animals/
Начать обучение: детектор даркнета -map -dont_show train Animals.data Animals.cfg
Потерпи. Лучшие веса будут сохранены как животные_best.weights.
Наблюдайте за ходом обучения, просматривая файлchart.png.
Дополнительную информацию о дополнительных параметрах обучения можно найти в FAQ по Darknet/YOLO.
Для получения более подробных результатов обучения добавьте флаг --verbose:
`ударить
детектор даркнета -map -dont_show --verbose train животные.данные животные.cfg
`
Другие инструменты и ссылки
DarkMark: для управления проектами Darknet/YOLO, аннотирования изображений, проверки аннотаций и создания обучающих файлов. https://darknetcv.ai/darkmark/
DarkHelp: надежная альтернатива интерфейсу командной строки Darknet, мозаике изображений, отслеживанию объектов и удобному для коммерческого использования C++ API. https://darknetcv.ai/darkhelp/
Часто задаваемые вопросы по Darknet/YOLO: ответы на распространенные вопросы. https://pjreddie.com/darknet/yolo/
Канал Стефана на YouTube: обучающие материалы и примеры видеороликов. https://www.youtube.com/@stephane-charette
Сервер Discord Darknet/YOLO: для вопросов поддержки и обсуждений в сообществе. https://discord.gg/zSq8rtW
Дорожная карта
Последнее обновление: 30 октября 2024 г.
Завершенный
Заменен qsort() на std::sort() во время обучения.
Удалены check_mistakes, getchar() и system().
Даркнет перенесен на компилятор 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 Orin работоспособны.
Решены проблемы API Python в версии 3.
Краткосрочные цели
Замените printf() на std::cout (в процессе).
Изучите поддержку старых камер Zed.
Улучшение синтаксического анализа командной строки для обеспечения согласованности (в процессе).
Среднесрочные цели
Удалите весь код char* и замените его на std::string.
Устраните скрытые предупреждения и исправьте предупреждения компилятора (в процессе).
Расширьте использование cv::Mat вместо пользовательской структуры образа C (в разработке).
Замените старую функциональность списка на std::vector или std::list.
Исправлена поддержка одноканальных изображений в оттенках серого.
Добавьте поддержку N-канальных изображений, где N > 3 (например, изображения с глубинными или тепловыми каналами).
Продолжить очистку кода (в процессе).
Долгосрочные цели
Устраните проблемы CUDA/CUDNN на всех графических процессорах.
Перепишите код CUDA+cuDNN.
Изучите поддержку графических процессоров сторонних производителей.
Реализуйте вращающиеся ограничивающие рамки или угловую поддержку.
Представьте ключевые точки/скелетоны.
Добавить поддержку тепловых карт (в разработке).
Включите сегментацию.