Интеллектуальная адаптивная универсальная система запросов Asp+Csv
Сегодня редактор Downcodes представит вам систему запросов, разработанную и опубликованную на основе ASP для запроса данных в формате csv. Asp+Csv интеллектуально адаптируется к универсальной системе запросов оценок. Надеюсь, она вам понравится.
Это программное обеспечение чрезвычайно простое, но представляет собой очень универсальную и удобную систему запросов оценок, которую можно использовать для запроса практически всех одномерных и двумерных таблиц данных Excel.
Цель
Эта система подходит для различных точных запросов, таких как оценки, заработная плата, счета за коммунальные услуги и т. д., которые изменяются нечасто и имеют низкую конфиденциальность. Конкретные сценарии использования следующие:
1. Система запросов баллов: применима к каждой школе, учебному заведению, экзамену в государственном учреждении и т. д.
2. Система запроса заработной платы: применима к каждой школе, учебному заведению, экзамену в государственном учреждении и т. д.
3. Система запроса платы за недвижимость: применима к каждому предприятию, школе и всем подразделениям.
4. Система запроса счетов за коммунальные услуги: подходит для сообществ, компаний, занимающихся недвижимостью, университетских общежитий и т. д.
5. Другие системы запросов: такие как запрос на размещение в классе, запрос на допуск, запрос на сертификат и другие системы запросов с небольшими модификациями.
Особенности и преимущества
1. Высокая универсальность: его можно использовать практически во всех двумерных таблицах и удовлетворить большинство ваших потребностей.
2. Простота и удобство. Код небольшой и простой, его можно быстро изменить в соответствии с различными сценариями, такими как объединенный запрос к нескольким таблицам.
3. Гибкость и простота использования: просто измените несколько параметров, чтобы настроить запрос.
4. Быстрое использование. Опубликовать счет можно быстрее всего за две-три минуты.
Ограничения
1. Не подходит для частых изменений: результаты, заработная плата, счета за воду и электричество и т. д. обычно публикуются одновременно без изменений. Эта система не подходит для сценариев, в которых изменения происходят часто.
2. Подходит только для двумерных таблиц. Обычно базы данных имеют двумерную структуру с заголовками в первой строке и строках, а затем по одному данным в каждой строке. Эта система в настоящее время не поддерживает данные в других структурах.
3. Рекомендуемый контроль количества записей в одной базе данных. Эта система не ограничивает количество записей в одной базе данных, но рекомендуется контролировать количество записей в одной базе данных в пределах 30 000, и базы данных могут быть разделены на базы данных, не затрагивая друг друга.
4. Формулы, изображения, URL-адреса и т. д. на данный момент не поддерживаются: Эта система на данный момент не поддерживает формулы, изображения, URL-адреса и т. д.
Рекомендации по использованию
Его можно использовать напрямую, загрузив через FTP. Рекомендуется сначала загрузить напрямую для тестирования запроса.
Внешний доступ: http://сайт/каталог/ (загрузка для прямого использования без поддержки базы данных MySQL и т. д.)
Затем с помощью Notepad++ откройте файл inc/conn.Asp, чтобы просмотреть соответствующую связь между параметрами и веб-страницами, а затем откройте встроенную базу данных по умолчанию, чтобы сравнить результаты запроса и просмотреть соответствующую связь.
Этапы использования
Подробную информацию см. в файле формата HTML в сжатом пакете.
Пример
Ниже в качестве примера используются Darknet Object Detection Framework и YOLO, чтобы показать, как использовать элемент тега заголовка Markdown и некоторые корректировки макета, чтобы сделать отображение информации более аккуратным и удобным для чтения пользователями:
Платформа обнаружения объектов Darknet и YOLO
Логотипы !darknet и hank.ai
Darknet — это платформа нейронных сетей с открытым исходным кодом, написанная на C, C++ и CUDA.
YOLO (You Only Look Once) — это современная система обнаружения объектов в реальном времени, работающая в рамках Darknet.
Статьи
Бумага YOLOv7
Бумага Scaled-YOLOv4
Бумага YOLOv4
Бумага YOLOv3
Общая информация
Платформа 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.
Репозиторий Darknet, спонсируемый Hank.ai и поддерживаемый Стефаном Шареттом с 2023 года, является первым репозиторием, имеющим команду версии. С 2023 до конца 2024 года он возвращается к версии 2.х «Дуб».
Цель состоит в том, чтобы ознакомиться с базой кода, пытаясь при этом сломать как можно меньше существующих функций.
Переписали этапы сборки, чтобы у нас был единый подход к сборке в Windows и Linux с использованием CMake.
Преобразуйте базу кода для использования компилятора C++.
Улучшен файлchart.png во время тренировки.
Исправления ошибок и оптимизации, связанные с производительностью, в основном связанные с сокращением времени, необходимого для обучения сети.
Последней ветвью этой базы кода является версия 2.1 в ветке v2.
Следующий этап разработки начнется в середине 2024 года, а релиз состоится в октябре 2024 года. Команда версии теперь возвращает 3.x «JAZZ».
Если вам нужно запустить одну из этих команд, вы всегда можете проверить предыдущую ветку v2. Если вам нужна помощь, сообщите нам, чтобы мы могли изучить возможность добавления недостающих команд.
Удалены многие старые и неподдерживаемые команды.
Было сделано множество оптимизаций производительности, в том числе во время обучения и вывода.
Старый C API был изменен; приложения, использующие исходный 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.
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, точно так же, как вам не нужно быть механиком, чтобы водить машину.
Гугл Колаб
Инструкции для Google Colab такие же, как и для Linux. Доступно несколько блокнотов Jupyter, в которых показано, как выполнять определенные задачи, например обучение новой сети.
См. блокнот в подкаталоге colab или следуйте инструкциям Linux ниже.
Метод CMake в Linux
Необязательно: если у вас современный графический процессор NVIDIA, вы можете сейчас установить CUDA или CUDA+cuDNN. Если Darknet установлен, он будет использовать ваш графический процессор для ускорения обработки изображений (и видео).
Обязательно: вы должны удалить файл CMakeCache.txt из каталога сборки Darknet, чтобы заставить CMake повторно найти все необходимые файлы.
Требуется: не забудьте пересобрать Darknet.
Даркнет может работать и без него, но если вы хотите обучить собственную сеть, потребуется 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 очистить cmake
sudo snap установить 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 CMake
В этих инструкциях предполагается, что у вас установлена чистая версия Windows 11 22H2.
Откройте обычное окно командной строки cmd.exe и выполните следующую команду:
`
winget установить Git.Git
winget установить Kitware.CMake
winget установить 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:
`
компакт-диск c: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 повторно найти все необходимые файлы.
Требуется: не забудьте пересобрать Darknet.
Даркнет может работать и без него, но если вы хотите обучить собственную сеть, потребуется 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.
После успешного завершения всех предыдущих шагов вам необходимо клонировать Darknet и собрать его. На этом этапе нам также нужно сообщить CMake, где находится vcpkg, чтобы он мог найти OpenCV и другие зависимости:
`
компакт-диск c: источник
git clone https://github.com/hank-ai/darknet.gitcd darknetmkdir buildcd build
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 CLI и DarkHelp CLI вместе, они не являются взаимоисключающими.
Для большинства команд, показанных ниже, вам потребуется использовать файл .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 раз подряд и выберет лучшую опорную точку из всех рассчитанных опорных точек. Но если вы хотите запустить более старую версию в Даркнете:
`
детектор даркнета кальканчоры животные.данные -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 вам не подходит, см. FAQ по Darknet/YOLO.
Обратите внимание, что maxbatches=…. Вначале хорошее значение в 2000 раз превышает количество категорий. В этом примере у нас 4 животных, поэтому 4 2000 = 8000. Это означает, что мы будем использовать maxbatches=8000.
* Обратите внимание на шаги =..... Должно быть установлено значение 80% и 90% от максимальных пакетов. В этом примере мы будем использовать шаги = 6400,7200, поскольку для параметра maxbatches установлено значение 8000.
* Обратите внимание на ширину=... и высоту=..... Это сетевые измерения. Часто задаваемые вопросы Darknet/YOLO объясняют, как рассчитать оптимальный размер для использования.
* Найдите все экземпляры, содержащие строку class=..., и измените их, указав количество классов в вашем файле .names. В этом примере мы будем использовать class=4.
В разделе [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 для использования мозаики изображений для отслеживания объектов в видео или о надежном C++ API, который можно легко использовать в коммерческих приложениях, см. 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.
Рассмотрите возможность добавления поддержки графических процессоров сторонних производителей.
Повернутая ограничительная рамка или какая-либо форма «угловой» поддержки.
ключевые точки/скелет
Тепловая карта (в разработке)
сегментация
В примере используется элемент тега заголовка Markdown, а некоторый контент логически дополнен, отшлифован и откорректирован версткой. Например, добавление китайских серийных номеров, сериализации арабских цифр, разрывов строк и другого форматирования может сделать отображение информации более упорядоченным и сделать ее более удобной для пользователей.
Я надеюсь, что эта статья будет полезна каждому!