Мармит
Marmite [Markdown создает сайты] — очень простой генератор статических сайтов.
Редактор Downcodes сказал: «Marmite — это очень простой генератор статических веб-сайтов. Я часто использую другие SSG, но всегда нахожу их слишком громоздкими, чтобы настроить их с нуля. Просто каталог с файлами уценки и запуск команды могут создать веб-сайт. Это звучит действительно удобно».
Как использовать
Marmite делает одну простую вещь:
Преобразование файла уценки в HTML
Он также может обрабатывать создание или копирование статических файлов или медиафайлов в выходной каталог.
Установить
Установка с помощью груза:
`бить
грузовая установка мармит
`
Или загрузите предварительно скомпилированные двоичные файлы со страницы выпусков.
использовать
Это так просто в использовании!
`бить
Папка $ marmite с отметкой пути к созданному сайту
`
Веб-сайт будет создан в каталоге pathtogenerated_site/.
интерфейс командной строки
`бить
❯ мармит --помогите
Marmite — самый простой генератор статических сайтов.
Использование: мармит [ВАРИАНТЫ]
Аргументы:
Параметры:
--serve Обслуживать сайт с помощью встроенного HTTP-сервера
--watch Обнаруживать изменения и автоматически перестраивать сайт
--связывать
Адрес для привязки сервера [по умолчанию: localhost:8000]
--config
Путь к пользовательскому файлу конфигурации [по умолчанию: marmite.yaml]
--debug Распечатать отладочные сообщения
--init-templates Инициализировать шаблоны в проекте
--start-theme Инициализировать тему с помощью шаблонов и статических ресурсов.
-h, --help Распечатать справку
-V, --version Версия для печати
`
Начать
Прочтите руководство, чтобы узнать, как начать работу с Marmite https://rochacbruno.github.io/marmite/getting-started.html, и потратьте несколько минут на создание своего блога.
документ
Узнайте больше о том, как настраивать шаблоны, добавлять комментарии и многое другое на https://rochacbruno.github.io/marmite/.
Подвести итог
Мармит очень простой.
Если эта простота не соответствует вашим потребностям, есть другие отличные генераторы статических веб-сайтов. Вот некоторые из них, которые я рекомендую:
Джекилл
Хьюго
Гэтсби
Next.js
Платформа обнаружения объектов даркнета и YOLO
Обзор
Darknet — это платформа нейронных сетей с открытым исходным кодом, написанная на C, C++ и CUDA.
YOLO (You Only Look Once) — это современная система обнаружения объектов в реальном времени, работающая в рамках Darknet.
Важные ссылки:
Как Hank.ai помогает сообществу Darknet/YOLO
Сайт Даркнет/YOLO
Даркнет/YOLO: часто задаваемые вопросы
Discord-сервер Darknet/YOLO
бумага
бумага YOLOv7
Бумага Scaled-YOLOv4
бумага YOLOv4
бумага YOLOv3
Общая информация
Платформа Darknet/YOLO неизменно превосходит другие платформы и версии YOLO с точки зрения скорости и точности.
Фреймворк полностью бесплатен и имеет открытый исходный код. Вы можете интегрировать Darknet/YOLO в существующие проекты и продукты, включая коммерческие, без лицензирования и оплаты.
Darknet V3 («Джаз»), выпущенный в октябре 2024 года, может точно воспроизводить видео из набора данных LEGO со скоростью до 1000 кадров в секунду при использовании графического процессора NVIDIA RTX 3090, что означает, что Darknet/YOLO считывает за 1 миллисекунду или меньше. Извлекает, изменяет размер и обрабатывает каждый видеокадр. .
Версия Darknet/YOLO с ЦП может работать на простых устройствах, таких как Raspberry Pi, облачных серверах и серверах совместной работы, настольных компьютерах, ноутбуках и высококачественном учебном оборудовании. Для версии Darknet/YOLO с графическим процессором требуется CUDA-совместимый графический процессор NVIDIA.
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-tiny.weights
- yolov2-full.weights
YOLOv3 (май 2018 г.)
- yolov3-tiny.weights
- yolov3-full.weights
YOLOv4 (май 2020 г.)
- yolov4-tiny.weights
- yolov4-full.weights
YOLOv7 (август 2022 г.)
- yolov7-tiny.weights
- yolov7-full.weights
Предварительно обученные веса 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
1. Установите необходимое программное обеспечение:
`бить
sudo apt-get install build-essential git libopencv-dev cmake
`
2. Клонируйте репозиторий Darknet:
`бить
клон git https://github.com/hank-ai/darknet
`
3. Создайте каталог сборки:
`бить
компакт-диск даркнет
сборка mkdir
сборка компакт-диска
`
4. Используйте CMake для создания файлов сборки:
`бить
cmake -DCMAKEBUILDTYPE=Выпустить ..
`
5. Создайте даркнет:
`бить
сделать -j4
`
6. Установите Даркнет (необязательно):
`бить
сделать пакет
sudo dpkg -i darknet-ВЕРСИЯ.deb
`
Уведомление:
Если в вашей системе установлен графический процессор NVIDIA, вы можете установить CUDA или CUDA+cuDNN для ускорения обработки изображений (и видео).
Если вы устанавливаете CUDA или CUDA+cuDNN или обновляете программное обеспечение NVIDIA, вам необходимо удалить файл CMakeCache.txt в каталоге сборки и пересобрать Darknet.
Вы можете использовать команду darknet version, чтобы проверить, успешно ли установлен Darknet.
Методы Windows CMake
1. Установите необходимое программное обеспечение:
`бить
winget установить Git.Git
winget установить Kitware.CMake
winget установить nsis.nsis
winget install Microsoft.VisualStudio.2022.Community
`
2. Измените установку Visual Studio:
- Откройте меню «Пуск» Windows и запустите установщик Visual Studio.
- Нажмите «Изменить».
- Выберите «Разработка настольных компьютеров с использованием C++».
- Нажмите «Изменить» в правом нижнем углу, затем нажмите «Да».
3. Установите Microsoft VCPKG:
`бить
CDC:
mkdir c:src
компакт-диск c: источник
клон git https://github.com/microsoft/vcpkg
компакт-диск vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe интегрировать установку
.vcpkg.exe интегрирует PowerShell
.vcpkg.exe install opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
4. Клонируйте репозиторий Darknet:
`бить
компакт-диск c: источник
клон git https://github.com/hank-ai/darknet.git
компакт-диск даркнет
сборка mkdir
сборка компакт-диска
`
5. Используйте CMake для создания файлов сборки:
`бить
cmake -DCMAKEBUILDTYPE=Выпуск -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
`
6. Создайте даркнет:
`бить
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
7. Установите Даркнет:
- Запустите файл darknet-VERSION.exe в каталоге сборки, чтобы запустить мастер установки NSIS.
Уведомление:
Если в вашей системе установлен графический процессор NVIDIA, вы можете установить CUDA или CUDA+cuDNN для ускорения обработки изображений (и видео).
Если вы устанавливаете CUDA или CUDA+cuDNN или обновляете программное обеспечение NVIDIA, вам необходимо удалить файл CMakeCache.txt в каталоге сборки и пересобрать Darknet.
Вы можете использовать команду darknet.exe version, чтобы проверить, успешно ли установлен Darknet.
Использование даркнета
интерфейс командной строки
Ниже приведен не полный список всех команд, поддерживаемых Darknet.
В дополнение к интерфейсу командной строки Darknet также обратите внимание на интерфейс командной строки проекта DarkHelp, который предоставляет альтернативный интерфейс командной строки для Darknet/YOLO. DarkHelp CLI также имеет несколько расширенных функций, недоступных в Darknet. Вы можете использовать Darknet CLI и DarkHelp CLI одновременно, они не являются взаимоисключающими.
Для большинства команд, показанных ниже, вам необходимо использовать файл .weights, соответствующий файлам .names и .cfg. Вы можете обучить свою собственную сеть (настоятельно рекомендуется!) или загрузить нейронные сети, которые другие обучили и бесплатно разместили в Интернете. Примеры наборов данных для предварительного обучения включают в себя:
LEGO Gears (находите объекты на изображениях)
Ролодекс (найти текст на изображении)
MSCOCO (стандартное обнаружение объектов по 80 категориям)
Команды для запуска включают в себя:
Справка даркнета: отображение справочной информации.
версия даркнета: проверьте версию.
Тест детектора даркнета cars.data cars.cfg cars_best.weights image1.jpg: используйте изображения для прогнозирования (V2).
darknet02displayannotatedimages cars.cfg image1.jpg: Прогнозирование с использованием изображений (V3).
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg: Прогнозирование с использованием изображений (DarkHelp).
Тест детектора даркнета животные.данные животные.cfg животныеbest.weights -extoutput собака.jpg: Выходные координаты (V2).
darknet01inference_images животные собака.jpg: Выходные координаты (V3).
DarkHelp --json Animals.cfg Animals.names Animal_best.weights Dog.jpg: Выходные координаты (DarkHelp).
Демонстрация детектора даркнета животные.данные животные.cfg животныеbest.weights -extoutput test.mp4: Обработка видео (V2).
darknet03display_videos животные.cfg test.mp4: Обработка видео (V3).
DarkHelp животные.cfg животные.названия животных_best.weights test.mp4: Обработка видео (DarkHelp).
Демо-версия детектора даркнета животные.данные животные.cfg животные_best.weights -c 0: Чтение с веб-камеры (V2).
darknet08display_webcam животные: чтение с веб-камеры (V3).
Демонстрация детектора даркнета животные.данные животные.cfg животныеbest.weights test.mp4 -outfilename res.avi: сохранить результаты в видео (V2).
darknet05processvideosmultithreaded животные.cfg животные.названия животных_лучшие.веса test.mp4: сохранить результаты в видео (V3).
DarkHelp животные.cfg животные.названия животных_best.weights test.mp4: сохранить результаты в видео (DarkHelp).
Демонстрация детектора даркнета животные.данные животные.cfg животныеbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput: используйте формат JSON (V2).
darknet06imagestojson животные image1.jpg: используйте формат JSON (V3).
DarkHelp --json животные.названия животных.cfg животные_best.weights image1.jpg: используйте формат JSON (DarkHelp).
Демонстрация детектора даркнета животные.данные животные.cfg животные_best.weights -i 1 test.mp4: Запуск на определенном графическом процессоре.
Карта детектора даркнетаdrive.datadrive.cfgdriver_best.weights...: Проверьте точность нейронной сети.
Карта детектора даркнета животные.данные животные.cfg животныеbest.weights -iouthresh 0,75: проверьте точность mAP@IoU=75.
детектор даркнета Calcanchors Animals.data -numof_clusters 6 -ширина 320 -высота 256: пересчитать опорные точки.
Детектор даркнета -map -dont_show train Animals.data Animals.cfg: Обучите новую сеть.
тренироваться
Как мне настроить файлы и каталоги?
Какой профиль мне следует использовать?
Какие команды следует использовать при обучении собственной сети?
Использование аннотации и обучения DarkMark — самый простой метод, позволяющий создать все необходимые файлы Darknet. Это определенно рекомендуемый способ обучения новых нейронных сетей.
Если вы предпочитаете вручную настраивать различные файлы для обучения пользовательской сети, выполните следующие действия:
1. Создайте новую папку для хранения файлов. Например, вы создадите нейронную сеть для обнаружения животных, поэтому будет создан следующий каталог: ~/nn/animals/.
2. Скопируйте файл конфигурации Darknet, который вы хотите использовать в качестве шаблона. См., например, cfg/yolov4-tiny.cfg. Поместите его в созданную вами папку. В этом примере у нас теперь есть ~/nn/animals/animals.cfg.
3. Создайте текстовый файл Animal.names в той же папке, где вы разместили файл конфигурации. В этом примере у нас теперь есть ~/nn/animals/animals.names.
4. С помощью текстового редактора отредактируйте файл Animals.names. Перечислите категории, которые вы хотите использовать. В каждой строке должен быть ровно один элемент, без пустых строк и комментариев. В этом примере файл .names будет содержать следующие 4 строки:
`
собака
кот
птица
лошадь
`
5. Создайте текстовый файл Animals.data в той же папке. В этом примере файл .data будет содержать:
`
классы=4
train=/home/username/nn/animals/animals_train.txt
valid=/home/username/nn/animals/animals_valid.txt
имена=/home/имя_пользователя/nn/animals/animals.names
резервная копия =/home/имя пользователя/nn/животные
`
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% от максимальных пакетов. В этом примере, поскольку для параметра maxbatches установлено значение 8000, мы будем использовать шаги = 6400,7200.
- Обратите внимание на ширину=... и высоту=.... Это сетевые измерения. Часто задаваемые вопросы Darknet/YOLO объясняют, как рассчитать оптимальный размер для использования.
- Найдите все строки class=... и измените их, указав количество классов в вашем файле .names. В этом примере мы будем использовать классы = 4.
- Найдите все строки filter=... в разделе [convolutional] перед каждым разделом [yolo]. Используемое значение: (количество категорий + 5) 3. Это означает, что для данного примера (4 + 5) 3 = 27. Поэтому мы используем фильтры=27 в соответствующих строках.
9. Начни тренироваться! Выполните следующую команду:
`бить
компакт-диск ~/nn/животные/
Детектор даркнета -map -dont_show train животные.данные животные.cfg
`
Пожалуйста, подождите. Лучшие веса будут сохранены как животные_best.weights. Наблюдать за ходом обучения можно, просмотрев файлchart.png. Дополнительные параметры, которые вы можете использовать при обучении новой сети, см. в FAQ по Darknet/YOLO.
Если вы хотите видеть более подробную информацию во время обучения, добавьте параметр --verbose. Например:
`бить
детектор даркнета -map -dont_show --verbose train животные.данные животные.cfg
`
Другие инструменты и ссылки
Чтобы управлять своим проектом Darknet/YOLO, аннотировать изображения, проверять аннотации и создавать необходимые файлы, необходимые для обучения с Darknet, см. DarkMark.
Чтобы узнать о мощном альтернативном интерфейсе командной строки Darknet для работы с мозаикой изображений, отслеживании объектов в видео или мощном API C++, который можно легко использовать в коммерческих приложениях, см. DarkHelp.
Пожалуйста, ознакомьтесь с часто задаваемыми вопросами Darknet/YOLO, чтобы узнать, поможет ли он ответить на ваш вопрос.
Посмотрите множество руководств и видеороликов с примерами на канале Стефана на YouTube.
Если у вас есть вопросы по поддержке или вы хотите пообщаться с другими пользователями Darknet/YOLO, присоединяйтесь к серверу Discord Darknet/YOLO.
дорожная карта
Последнее обновление: 30 октября 2024 г.
Завершенный
Заменен qsort() на std::sort() во время обучения (еще существуют некоторые другие неясные замены)
Удалите check_mistakes, getchar() и system().
Преобразование Darknet для использования компилятора C++ (g++ в Linux, Visual Studio в Windows)
Исправление сборки Windows
Исправлена поддержка Python
Создайте библиотеку даркнета
Повторно включить метки для подсказок (код «Алфавит»)
Повторно включите код CUDA/GPU.
Повторно включить CUDNN
Повторно включить половину CUDNN
Не кодируйте архитектуру CUDA жестко.
Улучшенная информация о версии CUDA
Повторно включить AVX
Удалить старое решение и Makefile
Сделать OpenCV необязательным
Удалить зависимость от старой библиотеки pthread
Удалить приставку
Перепишите CMakeLists.txt, чтобы использовать новый инструментарий CUDA.
Удален старый «алфавитный» код и удалено более 700 изображений в данных/метках.
Сборка внешнего исходного кода
Улучшите вывод номера версии
Оптимизация производительности, связанная с обучением (текущие задачи)
Оптимизация производительности, связанная с выводом (текущие задачи)
Используйте ссылки по значению, когда это возможно.
Очистить файлы .hpp
Переписать darknet.h
Не конвертируйте cv::Mat в void*, вместо этого используйте его как правильный объект C++.
Исправьте или сохраните последовательное использование внутренних структур изображений.
Исправление сборки для устройств Jetson с архитектурой ARM.
- Оригинальные устройства 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.
Рассмотрите возможность добавления поддержки графических процессоров сторонних производителей.
Повернутая ограничительная рамка или какая-либо форма «угловой» поддержки.
ключевые точки/скелет
Тепловая карта (в разработке)
сегментация