HmacManager
Краткое содержание
Редактор Downcodes предоставляет вам HmacManager, инструмент аутентификации HMAC для приложений ASP.NET Core, обеспечивающий плавную интеграцию и надежную безопасность ваших приложений.
Функции
Аутентификация HMAC. HmacManager обеспечивает аутентификацию HMAC, позволяя вам добавить уровень безопасной аутентификации в ваш ASP.NET Core API.
Простая настройка. Благодаря простым параметрам конфигурации вы можете быстро интегрировать аутентификацию HMAC в свои приложения.
Параметры настройки: HmacManager предоставляет параметры настройки, позволяющие настроить его в соответствии со своими потребностями.
Повышенная безопасность. Аутентификация HMAC повышает безопасность вашего API за счет использования алгоритма хеширования HMAC для аутентификации запросов.
Установка
HmacManager доступен на NuGet.
`бить
dotnet добавить пакет HmacManager
`
Ресурсы
Дополнительная литература: Официальная документация.
Пример кода: репозиторий GitHub
Платформа обнаружения объектов Darknet и YOLO
Логотипы !darknet и hank.ai
Darknet — это платформа нейронных сетей с открытым исходным кодом, написанная на C, C++ и CUDA.
YOLO (You Only Look Once) — это усовершенствованная система обнаружения целей в реальном времени, работающая в рамках Darknet.
1. Документы
YOLOv7: Ссылка на бумагу
Scaled-YOLOv4: Ссылка на бумагу
YOLOv4: Ссылка на бумагу
YOLOv3: Ссылка на бумагу
2. Общая информация
Платформа Darknet/YOLO продолжает превосходить другие платформы и версии YOLO по скорости и точности.
Фреймворк полностью бесплатен и имеет открытый исходный код. Вы можете интегрировать Darknet/YOLO в существующие проекты и продукты, включая коммерческие, без лицензирования и оплаты.
Darknet V3 («Джаз»), выпущенный в октябре 2024 года, может точно воспроизводить видео набора данных LEGO со скоростью до 1000 кадров в секунду при использовании графического процессора NVIDIA RTX 3090, что означает, что каждый видеокадр занимает 1 миллисекунду или меньше. Чтение, изменение размера и обработка Darknet. /ЙОЛО за секунды.
Присоединяйтесь к серверу Discord Darknet/YOLO: https://discord.gg/zSq8rtW
Версия Darknet/YOLO для ЦП может работать на простых устройствах, таких как Raspberry Pi, облачных серверах, серверах Colab, настольных компьютерах, ноутбуках и высококлассном учебном оборудовании. Для версии Darknet/YOLO с графическим процессором требуется графический процессор с поддержкой NVIDIA CUDA.
Известно, что Darknet/YOLO хорошо работает на Linux, Windows и Mac. См. инструкции по сборке ниже.
3. Даркнет-версия
Версия 0.x: Исходный инструмент Darknet, написанный Джозефом Редмоном в 2013–2017 годах, не имеет номера версии.
Версия 1.x: Следующий популярный репозиторий Darknet, который поддерживал Алексей Бочковский в период с 2017 по 2021 год, также не имеет номера версии.
Версия 2.x («OAK»): репозиторий Darknet, спонсируемый Hank.ai и поддерживаемый Стефаном Шареттом с 2023 года, является первым, в котором есть команда версии. С 2023 до конца 2024 года он возвращается к версии 2.х «Дуб».
Версия 3.x («ДЖАЗ»): следующий этап разработки начнется в середине 2024 г., выпуск запланирован на октябрь 2024 г. Команда версии теперь возвращает 3.x «JAZZ».
4. Веса перед тренировкой 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 находятся в каталоге 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. Ави
`
Обратите внимание, что необходимо обучать свою собственную сеть. MSCOCO часто используется для подтверждения того, что все в порядке.
5. Построить
Различные методы строительства из прошлого (до 2023 года) были объединены в единое решение. Для Darknet требуется C++17 или выше, OpenCV и использование CMake для создания необходимых файлов проекта.
Вам не нужно знать C++, чтобы создать, установить или запустить Darknet/YOLO, точно так же, как вам не нужно быть механиком, чтобы водить машину.
5.1 Google Колаб
Инструкции Google Colab такие же, как инструкции Linux. В нескольких блокнотах Jupyter показано, как выполнять определенные задачи, например обучение новой сети.
См. блокнот в подкаталоге colab или следуйте инструкциям Linux ниже.
5.2 Метод CMake в Linux
Руководство по сборке Darknet в Linux
`бить
sudo apt-get install build-essential git libopencv-dev cmake mkdir ~/srccd ~/src git clone https://github.com/hank-ai/darknetcd darknet mkdir buildcd build cmake -DCMAKEBUILDTYPE=Release .. make -j4 package sudo dpkg -i darknet-ВЕРСИЯ.deb
`
5.3 Метод Windows CMake
Эти инструкции предполагают новую установку Windows 11 22H2.
`бить
winget install Git.Git winget install Kitware.CMake winget install nsis.nsis winget install Microsoft.VisualStudio.2022.Community
`
Затем нам нужно изменить установку Visual Studio, чтобы включить поддержку приложений C++:
* Щелкните меню «Пуск» Windows и запустите установщик Visual Studio.
* Нажмите «Изменить».
* Выберите «Разработка для настольных компьютеров с использованием C++».
* Нажмите «Изменить» в правом нижнем углу, затем нажмите «Да».
После того, как все будет загружено и установлено, снова нажмите меню «Пуск» Windows и выберите «Командная строка разработчика для VS 2022». Не используйте PowerShell для выполнения этих действий, иначе у вас возникнут проблемы!
Продвинутые пользователи:
* Помимо запуска командной строки разработчика, вы также можете использовать обычную командную строку или SSH для подключения к устройству и вручную запустить «Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat».
После того, как вы выполните приведенные выше инструкции и запустите командную строку разработчика (не PowerShell!), выполните следующую команду для установки Microsoft VCPKG, которая затем будет использоваться для сборки OpenCV:
`бить
cd c:mkdir c:srccd c:src git clone https://github.com/microsoft/vcpkgcd vcpkg bootstrap-vcpkg.bat .vcpkg.exe интегрировать установку .vcpkg.exe интегрировать powershell.vcpkg.exe install opencv[contrib, dnn,freetype,jpeg,openmp,png,webp,мир]: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#cudnn-package-manager-installation-overview, чтобы загрузить. и установите 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.
После успешного завершения всех предыдущих шагов вам необходимо клонировать Darknet и собрать его. На этом этапе нам также нужно сообщить CMake, где находится vcpkg, чтобы он мог найти OpenCV и другие зависимости:
`бить
cd c:src git clone https://github.com/hank-ai/darknet.gitcd darknetmkdir buildcd 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 msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
Если вы столкнулись с ошибками, связанными с отсутствием какой-либо библиотеки 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 на предыдущем шаге.
6. Используйте даркнет
6.1 Интерфейс командной строки
Ниже приведен не полный список всех команд, поддерживаемых Darknet.
В дополнение к интерфейсу командной строки Darknet также обратите внимание на интерфейс командной строки проекта DarkHelp, который представляет собой альтернативу интерфейсу командной строки Darknet/YOLO. DarkHelp CLI также имеет некоторые улучшения, которых нет в Darknet. Вы можете использовать интерфейс командной строки Darknet и интерфейс командной строки DarkHelp вместе, они не являются взаимоисключающими.
Для большинства команд, показанных ниже, вам понадобится файл .weights с соответствующими файлами .names и .cfg. Вы можете обучить сеть самостоятельно (настоятельно рекомендуется!) или скачать нейронные сети, обученные другими и находящиеся в свободном доступе в Интернете. Примеры наборов данных для предварительного обучения включают в себя:
* LEGO Gears (находите объекты на изображениях)
* Rolodex (найти текст на изображении)
* MSCOCO (стандартное обнаружение целей категории 80)
Команды для запуска включают в себя:
* Перечислите некоторые возможные команды и параметры, которые можно запустить:
`бить
помощь в даркнете
`
* Проверьте версию:
`бить
даркнет-версия
`
* Используйте изображения для прогнозирования:
`бить
V2: тест детектора даркнета cars.data cars.cfg cars_best.weights image1.jpg
V3: darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp: DarkHelp 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
`
* Проверьте точность нейронной сети:
`бить
карта детектора даркнетаdrive.datadrive.cfgdrive_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 93 0,8850 0,11 50 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 5 10 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 2 17 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
`
* Обучить новую сеть:
`бить
cd ~/nn/animals/ darknet детектор -map -dont_show train Animals.data Animals.cfg
`
6.2 Обучение
Быстрые ссылки на соответствующие разделы часто задаваемых вопросов Darknet/YOLO:
* Как мне настроить файлы и каталоги?
* Какой профиль мне следует использовать?
* Какую команду мне следует использовать при обучении собственной сети?
Создайте все необходимые файлы Darknet с помощью DarkMark, который является самым простым способом аннотирования и обучения. Это определенно рекомендуемый способ обучения новых нейронных сетей.
Если вы хотите вручную настроить различные файлы для обучения пользовательской сети:
* Создайте новую папку для хранения файлов. В этом примере будет создана нейронная сеть для обнаружения животных, поэтому будет создан следующий каталог: ~/nn/animals/.
* Скопируйте один из файлов конфигурации Darknet, который вы хотите использовать в качестве шаблона. Например, см. cfg/yolov4-tiny.cfg. Поместите его в созданную вами папку. В этом примере у нас теперь есть ~/nn/animals/animals.cfg.
* Создайте текстовый файл Animals.names в той же папке, куда вы поместили файл конфигурации. В этом примере у нас теперь есть ~/nn/animals/animals.names.
* Используйте текстовый редактор для редактирования файла Animals.names. Перечислите категории, которые вы хотите использовать. Вам нужна ровно одна запись в строке, без пустых строк и комментариев. В этом примере файл .names будет содержать ровно 4 строки:
`
собака
кот
птица
лошадь
`
* Создайте текстовый файл Animals.data в той же папке. В этом примере файл .data будет содержать:
`
занятия = 4
поезд = /home/имя пользователя/nn/animals/animals_train.txt
действительный = /home/имя пользователя/nn/animals/animals_valid.txt
имена = /home/имя_пользователя/nn/animals/animals.names
резервная копия = /home/имя пользователя/nn/animals
`
* Создайте папку для хранения изображений и аннотаций. Например, это может быть ~/nn/animals/dataset. Для каждого изображения требуется соответствующий файл .txt, описывающий аннотации к этому изображению. Формат файлов комментариев .txt очень специфичен. Вы не можете создать эти файлы вручную, поскольку каждая аннотация должна содержать точные координаты аннотации. См. DarkMark или другое подобное программное обеспечение для аннотирования ваших изображений. Формат аннотации YOLO описан в FAQ по Darknet/YOLO.
* Создайте «поездные» и «действительные» текстовые файлы, имена которых указаны в файле .data. В этих двух текстовых файлах необходимо отдельно перечислить все изображения, которые Даркнет должен использовать для обучения и проверки при расчете процента mAP. Ровно одно изображение в строке. Пути и имена файлов могут быть относительными или абсолютными.
* Используйте текстовый редактор для изменения файла .cfg.
* Убедитесь, что партия = 64.
* Обратите внимание на подразделения. В зависимости от размера сети и объема памяти, доступной на графическом процессоре, вам может потребоваться увеличить количество подразделений. Лучшее значение — 1, поэтому начните с него. Если вы не можете использовать 1, прочтите FAQ по Darknet/YOLO.
Обратите внимание, что maxbatches=…. Хорошим значением для начала является увеличение количества категорий в 2000 раз. В этом примере у нас 4 животных, поэтому 4 2000 = 8000. Это означает, что мы будем использовать maxbatches=8000.
* Обратите внимание на шаги =..... Должно быть установлено значение 80% и 90% от максимальных пакетов. В этом примере мы будем использовать шаги = 6400,7200, поскольку для параметра maxbatches установлено значение 8000.
* Обратите внимание на ширину=... и высоту=..... Это сетевые измерения. Часто задаваемые вопросы Darknet/YOLO объясняют, как рассчитать оптимальный размер для использования.
* Найдите все экземпляры строк Class=... и измените их, указав количество классов в файле .names. В этом примере мы будем использовать классы = 4.
Ищет экземпляры всех строк filter=... в разделе [convolutional] перед каждым разделом [yolo]. Используемое значение: (количество категорий + 5) 3. Это означает, что для данного примера (4 + 5) * 3 = 27. Поэтому мы будем использовать фильтры=27 в соответствующей строке.
* Начни обучение! Выполните следующую команду:
`бить
cd ~/nn/animals/ darknet детектор -map -dont_show train Animals.data Animals.cfg
`
* Пожалуйста, подождите. Лучшие веса будут сохранены как животные_best.weights. А наблюдать за ходом обучения можно, просмотрев файлchart.png. Дополнительные параметры, которые вы можете использовать при обучении новой сети, см. в FAQ по Darknet/YOLO.
* Если вы хотите видеть более подробную информацию во время обучения, добавьте параметр --verbose. Например:
`бить
детектор даркнета -map -dont_show --verbose train животные.данные животные.cfg
`
7. Другие инструменты и ссылки
Чтобы управлять своим проектом Darknet/YOLO, комментировать изображения, проверять свои аннотации и создавать необходимые файлы для обучения с помощью Darknet, см. раздел DarkMark.
Чтобы узнать о мощной альтернативе CLI Darknet, позволяющей использовать мозаику изображений, отслеживание объектов в видео или получить мощный API C++, который можно легко использовать в коммерческих приложениях, см. DarkHelp.
Пожалуйста, ознакомьтесь с часто задаваемыми вопросами Darknet/YOLO, чтобы получить помощь в ответах на ваши вопросы.
Посмотрите множество руководств и видеороликов с примерами на канале Стефана на YouTube.
Если у вас есть вопросы по поддержке или вы хотите пообщаться с другими пользователями Darknet/YOLO, присоединяйтесь к серверу Discord Darknet/YOLO.
8. Дорожная карта
Последнее обновление 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 в версии 3.
* Нужна лучшая поддержка Python (кто-нибудь из разработчиков Python хочет помочь?)
* Краткосрочные цели
* Замените printf() на std::cout (в разработке)
* Проверьте поддержку старой камеры Zed.
* Улучшенный и более последовательный анализ командной строки (в разработке)
* Среднесрочные цели
Удалите все коды символов и замените их на std::string.
* Не скрывать предупреждения и очищать предупреждения компилятора (работа продолжается)
* Лучше использовать cv::Mat вместо пользовательских структур изображений в C (в разработке)
* Замените старую функциональность списка на std::vector или std::list.
* Исправлена поддержка одноканальных изображений в оттенках серого.
* Добавлена поддержка N-канальных изображений, где N > 3 (например, изображения с дополнительной глубиной или горячими каналами).
* Непрерывная очистка кода (в процессе)
* Долгосрочные цели
* Исправлены проблемы CUDA/CUDNN на всех графических процессорах.
* Переписать код CUDA+cuDNN.
* Рассмотрите возможность добавления поддержки графических процессоров сторонних производителей.
* Повернутая ограничивающая рамка или какая-либо форма поддержки угла.
*Ключевые точки/скелет
* Тепловая карта (в разработке)
* Расколоть