Добро пожаловать на Schema.org
Это репозиторий проекта Schema.org. Он содержит все схемы, примеры и программное обеспечение, использованное для публикации на сайте Schema.org. Информацию о самом сайте см. на Schema.org.
Примечание. Большая часть вспомогательного программного обеспечения импортируется из подмодуля: «sdopythonapp».
Вопросы и предложения решаются здесь сотрудниками проекта, особенно участниками группы сообщества W3C Schema.org. Если вы заинтересованы в участии, присоединяйтесь к группе W3C, представьтесь и найдите или сообщите здесь о проблемах, которые вас интересуют. Если вы новичок в Git и GitHub, в W3C Wiki есть полезное введение в GitHub.
Существуют также тесты непрерывной интеграции для проверки входящих запросов на включение.
Проблема №1 в GitHub — это отправная точка для планирования выпуска. В нем должен быть представлен обзор предстоящей работы с точки зрения широких тем, конкретных проблем и этапов выпуска. Проблема №1 будет связана с точками входа для каждого выпуска, а также позволит перемещаться по проблемам с помощью метки или контрольной точки в GitHub.
Каждое изменение на сайте происходит через обсуждения здесь. Существенные изменения записаны в наших примечаниях к выпуску. Предварительный просмотр черновых примечаний к новому выпуску можно найти на тестовом сайте нашего следующего выпуска. Примерно раз в месяц, после окончательной проверки Руководящей группой Schema.org и более широким сообществом, мы делаем официальный релиз.
Информация о лицензиях CC и opensource на документы и программное обеспечение приведена в разделе часто задаваемых вопросов.
Нас всегда интересуют практические предложения по улучшению сайта Schema.org, и наша коллекция схем постепенно пополняется с момента нашего запуска в 2011 году. Мы стараемся отдавать приоритет простым исправлениям и улучшениям наших существующих схем, примеров и документации, а не добавлению новых. словарь, и мы, скорее всего, добавим новые схемы, когда есть свидетельства того, что какое-то (предпочтительно крупномасштабное) приложение-потребитель будет использовать данные. Приложения-потребители не обязательно должны быть поисковыми системами; программные инструменты (например, открытый исходный код, подходы к веб-аналитике, основанные на разметке, надстройки браузера или облачные инструменты) — все это богатые области для исследования и сотрудничества. Важно то, что должны быть разумные ожидания того, что потребители данных будут эффективно использовать изменения. Недостаточно оправдать дополнения тем, что поисковые системы обычно пытаются использовать структурированные данные на основе Schema.org. Меньшие изменения и обратно совместимые изменения легче внедрить.
Примечание. Schema.org не пытается охватить все детали веб-контента; это обязательно упрощение более сложной реальности. Это означает, что во многих случаях будет возможно добавить больше деталей в Schema.org. Однако, чтобы сохранить Schema.org простым и удобным для издателей и веб-мастеров, мы часто предпочитаем не добавлять такие подробности.
Schema.org использует веб-стандарты, такие как JSON-LD, Microdata и RDFa, для обеспечения независимого расширения (например, см. словарь GS1).
Мы также вряд ли возьмемся за крупномасштабную реорганизацию терминологии Schema.org, если она будет мотивирована исключительно соображениями элегантности, «правильного моделирования», онтологической чистоты или концептуальной унификации. Хотя основатели проекта и команда знакомы с традициями, лежащими в основе таких проблем, и уважают их, масштаб, объем и характер Schema.org потребовали от нас пожертвовать элегантностью и глобальной согласованностью в пользу несколько более неряшливого понятия постепенной эволюции и прагматичного подхода. терпимость к стилю, который был бы неуместен в формальной онтологии. Предложения по унификации междоменных структур знаний на основе логики могут быть лучше восприняты, например, в сообществе Ontolog.
Иногда мы вводим типы без специальных ассоциаций свойств просто из соображений удобства использования разметки. В формальной онтологии это часто считается плохим моделированием. Однако логически эквивалентные структуры могут привести к гораздо большему количеству ошибок со стороны издателей/веб-мастеров, незнакомых с формальными концепциями, лежащими в основе JSON-LD или RDF/S.
Schema.org не является закрытой системой, и другие инициативы (например, Wikidata или GS1) определили множество других терминов, которые можно смешивать с теми, которые мы определяем на Schema.org. Мы также прилагаем усилия, чтобы привести наши проекты в соответствие с соответствующими внешними стандартами и инициативами, даже если это снижает глобальную элегантность Schema.org, рассматриваемую отдельно. Например, в контексте библиографического или культурного наследия на нас могут повлиять такие инициативы, как MARC, BibFrame и FRBR, а в сфере электронной коммерции мы сотрудничаем с Good Relations и GS1. На термины Schema.org, связанные с новостями, сильное влияние оказало использование дизайна rNews IPTC, а также сотрудничество с специалистами по проверке фактов, Trust Project и другими. На наши словари, связанные с телевидением и музыкой, большое влияние оказала работа с BBC и Европейским вещательным союзом, а также онтология музыки и MusicBrainz; наши схемы отражают эти предыдущие разработки. Мы предпочитаем сотрудничать таким образом, постепенно совершенствуя Schema.org и работая над полировкой, интеграцией и объединением таких проектов, а не создавая собственную чистую модель изолированно. Результату может не хватать глобальной элегантности, но он приводит нашу работу в соответствие с соответствующими усилиями во всем мире.
Мы всегда приветствуем выпуски, которые отслеживают проблемы с удобством использования и читабельностью, но призываем сосредоточиться на конкретных ситуациях (например, как описать повторяющиеся события), а не на глобальных философских проблемах (например, является ли резервирование или действие «действительно» событием). Мы отдаем предпочтение локальной связности (наличию разумных способов описания многих распространенных ситуаций) над глобальной элегантностью (наличием глобальной теории, в которой всему есть разумное место). Это не означает, что у нас никогда не бывает очисток, но они сбалансированы (и часто перевешиваются) другими соображениями.
Когда мы добавляем термины, часто в область «Ожидание», мы настоятельно поощряем обратную связь, которая учитывает глобальную перспективу: как новый термин соотносится с другими, как его можно использовать вместе с уже существующими шаблонами и т. д. Изменения, которые мы вносим во время этот этап интеграции отражает такие соображения, но обычно выражается посредством скромных переформулировок, примеров или корректировок документации по связям типа/свойства, а не посредством серьезной реструктуризации.
Подробнее читайте в разделе «Как мы работаем»
Большинству сотрудников все, что вам нужно знать о программном обеспечении, — это как его запустить. Целью программного обеспечения является создание статической копии сайта Schema.org, включая возможные локальные изменения, для проверки и запуска на простом веб-сервере в локальной системе для тестирования. Точно так же, как производственная версия развертывается на облачном сервере, ваша локальная версия может быть затем развернута на виртуальной машине с помощью gcloud, чтобы обеспечить совместную работу с другими.
Полные инструкции доступны в SOFTWARE_README.md, объясняющие, как создать первоначальную локальную копию для работы, а затем развивать ее для тестирования любых изменений. По сути, вам потребуется среда, подобная Linux (включая Mac), с загруженной Python версии 3.6 или выше. Затем вы можете сделать тестовые сборки Schema.org, работающие на вашем компьютере, доступными по адресу http://localhost:8080/ или опубликовать их на appspot.com для совместной работы. Подробную информацию о соответствующих командах gcloud см. в документации Appengine.
Более подробная информация о программном обеспечении и его использовании доступна в SOFTWARE_README.md. См. также примечания в вики: https://github.com/schemaorg/schemaorg/wiki/Contributing.
Все схемы и примеры находятся в файлах data/ в кодировке utf-8.
Основной файл схемы — data/schema.ttl (utf-8).
При разработке схем может оказаться полезным использование data/sdo-somethinghere-schema.ttl.
Формат основан на W3C RDFS в формате RDF/Turtle.
Примеры хранятся в data/examples.txt (utf-8) и других файлах .txt.
Как и в случае со схемами, также будет прочитан файл data/examples.txt. Может быть полезно разрабатывать с использованием отдельных файлов.
Когда словарь будет окончательно интегрирован в основной репозиторий, данные схемы будут объединены в Schema.org. Однако примеры останутся в отдельных файлах, поскольку это лучше работает с механизмом сравнения файлов git.
Иерархия data/releases/ зарезервирована для снимков выпуска (см. https://schema.org/version/).
Иерархия ext// зарезервирована для расширений (см. https://schema.org/docs/extension.html).
Мы больше не используем ветки GitHub для незавершенной работы. Основной/филиал — наш последний кандидат. Концептуально согласованное состояние не гарантируется, но оно должно стабилизироваться до распространения кандидата на выпуск для рассмотрения.
Эта документация касается базы кода программного обеспечения, а не самого сайта Schema.org. Однако обратите внимание, что метки, комментарии и документация должны использовать английский язык США (в коде и схемах), если необходим выбор между английскими вариантами. Пожалуйста, стремитесь к международному английскому, где это возможно.
См. также: https://twitter.com/schemaorg_dev.
Пример:
`
Лицензия Апач-2.0
Оглавление
Платформа обнаружения объектов Darknet и YOLO
Статьи
Общая информация
Даркнет-версия
MSCOCO Предварительно обученные веса
Здание
Гугл Колаб
Метод CMake в Linux
Метод Windows CMake
Использование даркнета
интерфейс командной строки
Обучение
Другие инструменты и ссылки
Дорожная карта
Краткосрочные цели
Среднесрочные цели
Долгосрочные цели
Платформа обнаружения объектов Darknet и YOLO
Логотипы даркнета и hank.ai
Darknet — это платформа нейронных сетей с открытым исходным кодом, написанная на C, C++ и CUDA.
YOLO (You Only Look Once) — это современная система обнаружения объектов в режиме реального времени, работающая в рамках Darknet.
Узнайте, как Hank.ai помогает сообществу Darknet/YOLO
Анонсируем Darknet V3 «Джаз»
Посетите веб-сайт Darknet/YOLO.
Пожалуйста, прочтите FAQ по Darknet/YOLO.
Присоединяйтесь к дискорд-серверу Darknet/YOLO
Статьи
Бумага YOLOv7
Бумага Scaled-YOLOv4
Бумага YOLOv4
Бумага YOLOv3
Общая информация
Платформа Darknet/YOLO по-прежнему работает быстрее и точнее, чем другие платформы и версии YOLO.
Эта платформа полностью бесплатна и имеет открытый исходный код. Вы можете включить Darknet/YOLO в существующие проекты и продукты, в том числе коммерческие, без лицензии и оплаты.
Darknet V3 («Джаз»), выпущенный в октябре 2024 года, может точно воспроизводить видео набора данных LEGO со скоростью до 1000 кадров в секунду при использовании графического процессора NVIDIA RTX 3090, что означает, что каждый видеокадр считывается, изменяется размер и обрабатывается Darknet/YOLO за 1 миллисекунду или меньше.
Присоединяйтесь к серверу Discord Darknet/YOLO, если вам нужна помощь или вы хотите обсудить Darknet/YOLO: https://discord.gg/zSq8rtW
Версия Darknet/YOLO для ЦП может работать на простых устройствах, таких как Raspberry Pi, облачных серверах и серверах совместной работы, настольных компьютерах, ноутбуках и высокопроизводительных учебных установках. Для версии Darknet/YOLO с графическим процессором требуется графический процессор NVIDIA с поддержкой CUDA.
Известно, что Darknet/YOLO работает на Linux, Windows и Mac. См. инструкции по сборке ниже.
Даркнет-версия
Оригинальный инструмент Darknet, написанный Джозефом Редмоном в 2013–2017 годах, не имел номера версии. Мы считаем эту версию 0.x.
Следующий популярный репозиторий Darknet, который вел Алексей Бочковский в 2017–2021 годах, также не имел номера версии. Мы рассматриваем эту версию 1.x.
Репозиторий Darknet, спонсируемый Hank.ai и поддерживаемый Стефаном Шареттом с 2023 года, был первым репозиторием с командой версий. С 2023 до конца 2024 года возвращалась версия 2.x «ДУБ».
Целью было попытаться как можно меньше сломать существующую функциональность, одновременно знакомясь с кодовой базой.
Переписали этапы сборки, чтобы у нас был один унифицированный способ сборки с использованием CMake как в Windows, так и в Linux.
Преобразовал кодовую базу для использования компилятора C++.
Улучшен файлchart.png во время тренировки.
Исправления ошибок и оптимизация, связанная с производительностью, в основном связанная с сокращением времени, необходимого для обучения сети.
Последняя ветвь этой кодовой базы — версия 2.1 в ветке v2.
Следующий этап разработки начался в середине 2024 года и был выпущен в октябре 2024 года. Команда версии теперь возвращает 3.x «JAZZ».
Вы всегда можете проверить предыдущую ветку v2, если вам нужно запустить одну из этих команд. Сообщите нам, чтобы мы могли изучить вопрос о добавлении недостающих команд.
Удалены многие старые и неподдерживаемые команды.
Множество оптимизаций производительности как при обучении, так и во время вывода.
Legacy 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. Ави
Обратите внимание: ожидается, что люди будут обучать свои собственные сети. MSCOCO обычно используется для подтверждения того, что все работает правильно.
Здание
Различные методы сборки, доступные в прошлом (до 2023 г.), были объединены в одно унифицированное решение. Для Darknet требуется C++17 или новее, OpenCV, и он использует CMake для создания необходимых файлов проекта.
Вам не нужно знать C++ для сборки, установки и запуска Darknet/YOLO, точно так же, как вам не нужно быть механиком, чтобы водить машину.
Гугл Колаб
Линукс
Окна
Будьте осторожны, если вы следуете старым руководствам с более сложными шагами сборки или шагами сборки, которые не соответствуют тому, что указано в этом файле ознакомительных сведений. Новые этапы сборки, описанные ниже, начались в августе 2023 года.
Разработчикам программного обеспечения рекомендуется посетить https://darknetcv.ai/, чтобы получить информацию о внутреннем устройстве системы обнаружения объектов Darknet/YOLO.
Гугл Колаб
Инструкции Google Colab такие же, как инструкции Linux. Доступно несколько блокнотов Jupyter, показывающих, как выполнять определенные задачи, например обучение новой сети.
Посмотрите блокноты в подкаталоге colab и/или следуйте инструкциям Linux ниже.
Метод CMake в Linux
Руководство по сборке Darknet для Linux
Необязательно: если у вас современный графический процессор 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 clone https://github.com/hank-ai/darknetcd darknet mkdir buildcd build cmake -DCMAKEBUILDTYPE=Release .. make -j4 package sudo dpkg -i darknet-ВЕРСИЯ.deb
Если вы используете более старую версию CMake, вам необходимо обновить CMake, прежде чем вы сможете запустить указанную выше команду cmake. Обновление CMake в Ubuntu можно выполнить с помощью следующих команд:
sudo apt-get purge cmake sudo 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 CMake
Эти инструкции предполагают новую установку Windows 11 22H2.
Откройте обычное окно командной строки cmd.exe и выполните следующие команды:
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#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 и другие зависимости:
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
Если вы получаете сообщение об отсутствующих 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 также имеет несколько расширенных функций, которые недоступны непосредственно в 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.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 5 393 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 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 раз подряд и выберет лучшие якоря из всех рассчитанных. Но если вы хотите запустить старую версию в Даркнете:
детектор даркнета кальканчоры животные.данные -numof_clusters 6 -ширина 320 -высота 256
Обучите новую сеть:
детектор даркнета -map -dont_show train Animals.data Animals.cfg (также см. раздел обучения ниже)
Обучение
Быстрые ссылки на соответствующие разделы FAQ по Darknet/YOLO:
Как мне настроить файлы и каталоги?
Какой файл конфигурации мне следует использовать?
Какую команду мне следует использовать при обучении собственной сети?
Самый простой способ аннотировать и обучать — использовать DarkMark для создания всех необходимых файлов Darknet. Это определенно рекомендуемый способ обучения новой нейронной сети.
Если вы предпочитаете вручную настраивать различные файлы для обучения пользовательской сети:
Создайте новую папку, в которой будут храниться файлы. В этом примере будет создана нейронная сеть для обнаружения животных, поэтому будет создан следующий каталог: ~/nn/animals/.
Скопируйте один из файлов конфигурации Darknet, который вы хотите использовать в качестве шаблона. Например, см. cfg/yolov4-tiny.cfg. Поместите это в созданную вами папку. В этом примере у нас теперь есть ~/nn/animals/animals.cfg.
Создайте текстовый файл Animal.names в той же папке, куда вы поместили файл конфигурации. В этом примере у нас теперь есть ~/nn/animals/animals.names.
Отредактируйте файл Animal.names в текстовом редакторе. Перечислите классы, которые вы хотите использовать. В каждой строке должно быть ровно 1 запись, без пустых строк и комментариев. В этом примере файл .names будет содержать ровно 4 строки:
собака кошка птица лошадь
Создайте текстовый файл Animals.data в той же папке. В этом примере файл .data будет содержать:
классы = 4 поезд = /home/username/nn/animals/animalstrain.txt valid = /home/username/nn/animals/animalsvalid.txt имена = /home/username/nn/animals/animals.names резервная копия = /home/ имя пользователя/nn/животные
Создайте папку, в которой вы будете хранить изображения и аннотации. Например, это может быть ~/nn/animals/dataset. Каждому изображению потребуется соответствующий файл .txt, описывающий аннотации к этому изображению. Формат файлов аннотаций .txt очень специфичен. Вы не можете создать эти файлы вручную, поскольку каждая аннотация должна содержать точные координаты аннотации. См. DarkMark или другое подобное программное обеспечение для аннотирования ваших изображений. Формат аннотации YOLO описан в FAQ по Darknet/YOLO.
Создайте «обучающие» и «действительные» текстовые файлы, указанные в файле .data. В этих двух текстовых файлах необходимо индивидуально перечислить все изображения, которые Даркнет должен использовать для обучения и проверки при расчете процента mAP. Ровно одно изображение в строке. Путь и имена файлов могут быть относительными или абсолютными.
Измените файл .cfg с помощью текстового редактора.
Убедитесь, что пакет = 64.
Обратите внимание на подразделения. В зависимости от размеров сети и объема памяти, доступной на вашем графическом процессоре, вам может потребоваться увеличить количество подразделений. Лучшее значение — 1, поэтому начните с него. См. FAQ по Darknet/YOLO, если 1 вам не подходит.
Обратите внимание: maxbatches=.... Хорошее значение для начала — 2000 x количество классов. В этом примере у нас 4 животных, поэтому 4 * 2000 = 8000. Это означает, что мы будем использовать maxbatches=8000.
Обратите внимание, шаги =.... Должно быть установлено значение 80% и 90% от максимального количества пакетов. В этом примере мы будем использовать шаги = 6400,7200, поскольку для параметра maxbatches установлено значение 8000.
Обратите внимание на ширину=... и высоту=.... Это размеры сети. Часто задаваемые вопросы Darknet/YOLO объясняют, как рассчитать лучший размер для использования.
Найдите все экземпляры строки class=... и измените ее, указав количество классов в вашем файле .names. В этом примере мы бы использовали классы = 4.
Найдите все экземпляры строкового фильтра =... в разделе [convolutional] перед каждым разделом [yolo]. Используемое значение: (число классов + 5) 3. В этом примере это означает (4 + 5) 3 = 27. Поэтому мы будем использовать фильтры = 27 в соответствующих строках.
Начни тренироваться! Выполните следующие команды:
cd ~/nn/animals/ darknet детектор -map -dont_show train Animals.data Animals.cfg
Потерпи. Лучшие веса будут сохранены как животные_best.weights. А за ходом обучения можно наблюдать, просматривая