marmita
Marmite [Markdown crea sitios] es un generador de sitios estáticos muy simple.
El editor de Downcodes dijo: "Marmite es un generador de sitios web estáticos muy simple. A menudo uso otros SSG, pero siempre me resulta demasiado engorroso configurarlos desde cero. Solo un directorio de archivos de rebajas y ejecutar un comando puede generar un sitio web. Esto suena realmente conveniente."
como usar
Marmite hace una cosa simple:
Convertir archivo de rebajas a HTML
También puede manejar la generación o copia de archivos estáticos o archivos multimedia al directorio de salida.
Instalar
Instalar usando carga:
`golpear
instalación de carga marmite
`
O descargue los binarios precompilados desde la página de lanzamientos.
usar
¡Es tan fácil de usar!
`golpear
$ carpeta marmite con archivos de rebajas ruta al sitio generado
`
El sitio web se generará en el directorio pathtogenerated_site/.
CLI
`golpear
❯ marmita --ayuda
Marmite es el generador de sitios estáticos más sencillo.
Uso: marmita [OPCIONES]
Argumentos:
Opciones:
--serve Sirve el sitio con un servidor HTTP integrado
--watch Detecta cambios y reconstruye el sitio automáticamente
--unir
Dirección para vincular el servidor [predeterminado: localhost:8000]
--config
Ruta al archivo de configuración personalizado [predeterminado: marmite.yaml]
--debug Imprimir mensajes de depuración
--init-templates Inicializa plantillas en el proyecto
--start-theme Inicializa un tema con plantillas y activos estáticos
-h, --help Imprimir ayuda
-V, --version Versión para imprimir
`
empezar
Lea el tutorial para aprender cómo comenzar con Marmite https://rochacbruno.github.io/marmite/getting-started.html y dedique unos minutos a crear su blog.
documento
Lea más sobre cómo personalizar plantillas, agregar comentarios y más en https://rochacbruno.github.io/marmite/.
Resumir
Marmite es muy simple.
Si esta simplicidad no se adapta a sus necesidades, existen otros excelentes generadores de sitios web estáticos. Aquí hay algunos que recomiendo:
Jekyll
hugo
gatsby
Siguiente.js
Marco de detección de objetos Darknet y YOLO
Descripción general
Darknet es un marco de red neuronal de código abierto escrito en C, C++ y CUDA.
YOLO (Solo miras una vez) es un sistema de detección de objetos en tiempo real de última generación que se ejecuta en el marco Darknet.
Enlaces importantes:
Cómo ayuda Hank.ai a la comunidad Darknet/YOLO
Sitio web Darknet/YOLO
Preguntas frecuentes sobre Darknet/YOLO
Servidor de discordia Darknet/YOLO
papel
papel YOLOv7
Papel YOLOv4 escalado
papel YOLOv4
papel YOLOv3
información general
El marco Darknet/YOLO supera consistentemente a otros marcos y versiones de YOLO en términos de velocidad y precisión.
El marco es completamente gratuito y de código abierto. Puede integrar Darknet/YOLO en proyectos y productos existentes, incluidos productos comerciales, sin licencias ni tarifas.
Darknet V3 ("Jazz"), lanzado en octubre de 2024, puede ejecutar con precisión videos del conjunto de datos LEGO a hasta 1000 FPS cuando se usa una GPU NVIDIA RTX 3090, lo que significa que Darknet/YOLO lee en 1 milisegundo o menos. Recupera, cambia el tamaño y procesa cada cuadro de video. .
La versión CPU de Darknet/YOLO puede ejecutarse en dispositivos simples como Raspberry Pi, servidores en la nube y colab, computadoras de escritorio, portátiles y equipos de entrenamiento de alta gama. La versión GPU de Darknet/YOLO requiere la GPU compatible con CUDA de NVIDIA.
Darknet/YOLO se ejecuta en Linux, Windows y Mac. Consulte las instrucciones de construcción a continuación.
Versión de la red oscura
Las herramientas Darknet originales escritas por Joseph Redmon entre 2013 y 2017 no tenían números de versión. Creemos que es la versión 0.x.
El siguiente repositorio popular de Darknet mantenido por Alexey Bochkovskiy entre 2017 y 2021 tampoco tenía número de versión. Creemos que es la versión 1.x.
El repositorio Darknet patrocinado por Hank.ai y mantenido por Stéphane Charette desde 2023 es el primero en tener un comando de versión. Desde 2023 hasta finales de 2024 vuelve a la versión 2.x “OAK”.
El objetivo es romper la funcionalidad existente lo menos posible mientras nos familiarizamos con el código base.
Se reescribieron los pasos de compilación para que tengamos una forma unificada de compilar en Windows y Linux usando CMake.
Convierta el código base para utilizar un compilador de C++.
Chart.png mejorado durante el entrenamiento.
Corrección de errores y optimizaciones relacionadas con el rendimiento, principalmente relacionadas con la reducción del tiempo necesario para entrenar la red.
La última rama de este código base es la versión 2.1 en la rama v2.
La siguiente fase de desarrollo comienza a mediados de 2024 y se lanzará en octubre de 2024. El comando de versión ahora devuelve 3.x "JAZZ".
Si necesita ejecutar uno de estos comandos, siempre puede consultar la rama v2 anterior. Háganos saber para que podamos investigar cómo agregar los comandos que faltan.
Se eliminaron muchos comandos antiguos y no mantenidos.
Muchas optimizaciones de rendimiento, incluidas optimizaciones durante el entrenamiento y la inferencia.
Las aplicaciones API C antiguas modificadas que utilizan la API Darknet original requieren modificaciones menores: https://darknetcv.ai/api/api.html
Nueva API Darknet V3 C y C++: https://darknetcv.ai/api/api.html
Nuevas aplicaciones y código de muestra en src-examples: https://darknetcv.ai/api/files.html
Pesas preentrenadas MSCOCO
Para mayor comodidad, varias versiones populares de YOLO se entrenan previamente utilizando el conjunto de datos MSCOCO. Este conjunto de datos contiene 80 categorías y se puede ver en el archivo de texto cfg/coco.names.
Hay varios otros conjuntos de datos más simples y pesos previamente entrenados disponibles para probar Darknet/YOLO, como LEGO Gears y Rolodex. Para obtener más información, consulte las preguntas frecuentes sobre Darknet/YOLO.
Los pesos previamente entrenados de MSCOCO se pueden descargar desde diferentes ubicaciones o desde este repositorio:
YOLOv2 (noviembre de 2016)
- yolov2-tiny.pesos
- yolov2-pesos.completos
YOLOv3 (mayo de 2018)
- yolov3-tiny.pesos
- yolov3-pesos.completos
YOLOv4 (mayo de 2020)
- yolov4-tiny.pesos
- yolov4-pesos.completos
YOLOv7 (agosto de 2022)
- yolov7-tiny.pesos
- yolov7-pesos.completos
Las pesas previamente entrenadas de MSCOCO tienen fines de demostración únicamente. Los archivos .cfg y .names correspondientes (para MSCOCO) se encuentran en el directorio cfg. Comando de ejemplo:
`golpear
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.nombres yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
DarkHelp coco.nombres yolov4-tiny.cfg yolov4-tiny.pesos video1.avi
`
Tenga en cuenta que uno debe entrenar su propia red. MSCOCO se utiliza a menudo para confirmar que todo está bien.
Construir
Se han fusionado varios métodos de construcción del pasado (anteriores a 2023) en una solución unificada. Darknet requiere C++ 17 o superior, OpenCV y usar CMake para generar los archivos de proyecto necesarios.
No es necesario saber C++ para compilar, instalar o ejecutar Darknet/YOLO, del mismo modo que no es necesario ser mecánico para conducir un automóvil.
colaboración de google
Las instrucciones de Google Colab son las mismas que las de Linux. Se proporcionan varios cuadernos de Jupyter que muestran cómo realizar determinadas tareas, como entrenar una nueva red.
Consulte el cuaderno en el subdirectorio colab o siga las instrucciones de Linux a continuación.
Método CMake de Linux
1. Instale el software necesario:
`golpear
sudo apt-get install build-essential git libopencv-dev cmake
`
2. Clonar el repositorio Darknet:
`golpear
clon de git https://github.com/hank-ai/darknet
`
3. Cree el directorio de compilación:
`golpear
cd red oscura
compilación mkdir
compilación de cd
`
4. Utilice CMake para generar archivos de compilación:
`golpear
cmake -DCMAKEBUILDTYPE=Lanzar ..
`
5. Construya la red oscura:
`golpear
hacer -j4
`
6. Instale Darknet (opcional):
`golpear
hacer paquete
sudo dpkg -i darknet-VERSIÓN.deb
`
Aviso:
Si tiene una GPU NVIDIA instalada en su sistema, puede instalar CUDA o CUDA+cuDNN para acelerar el procesamiento de imágenes (y videos).
Si instala CUDA o CUDA+cuDNN o actualiza el software NVIDIA, debe eliminar el archivo CMakeCache.txt en el directorio de compilación y reconstruir Darknet.
Puede utilizar el comando de versión darknet para comprobar si Darknet se ha instalado correctamente.
Métodos de Windows CMake
1. Instale el software necesario:
`golpear
instalación de alas Git.Git
Instalación de Winget Kitware.CMake
instalación de alas nsis.nsis
Winget instala Microsoft.VisualStudio.2022.Community
`
2. Modifique la instalación de Visual Studio:
- Abra el menú Inicio de Windows y ejecute Visual Studio Installer.
- Haga clic en "Editar".
- Seleccione "Desarrollo de escritorio usando C++".
- Haga clic en "Editar" en la esquina inferior derecha, luego haga clic en "Sí".
3. Instale Microsoft VCPKG:
`golpear
Centros para el Control y la Prevención de Enfermedades:
mkdirc:src
cdc:src
clon de git https://github.com/microsoft/vcpkg
cd vcpkg
arranque-vcpkg.bat
.vcpkg.exe instalación integrada
.vcpkg.exe integra powershell
.vcpkg.exe instalar opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
4. Clona el repositorio Darknet:
`golpear
cdc:src
clon de git https://github.com/hank-ai/darknet.git
cd red oscura
compilación mkdir
compilación de cd
`
5. Utilice CMake para generar archivos de compilación:
`golpear
cmake -DCMAKEBUILDTYPE=Versión -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
`
6. Construya la red oscura:
`golpear
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;Configuration=Versión PACKAGE.vcxproj
`
7. Instale Darknet:
- Ejecute el archivo darknet-VERSION.exe en el directorio de compilación para iniciar el asistente de instalación de NSIS.
Aviso:
Si tiene una GPU NVIDIA instalada en su sistema, puede instalar CUDA o CUDA+cuDNN para acelerar el procesamiento de imágenes (y videos).
Si instala CUDA o CUDA+cuDNN o actualiza el software NVIDIA, debe eliminar el archivo CMakeCache.txt en el directorio de compilación y reconstruir Darknet.
Puede utilizar el comando de versión darknet.exe para comprobar si Darknet se ha instalado correctamente.
Usando la red oscura
CLI
La siguiente no es una lista completa de todos los comandos admitidos por Darknet.
Además de la CLI de Darknet, también tenga en cuenta la CLI del proyecto DarkHelp, que proporciona una CLI alternativa para Darknet/YOLO. DarkHelp CLI también tiene varias funciones avanzadas que no están disponibles en Darknet. Puede utilizar Darknet CLI y DarkHelp CLI al mismo tiempo; no se excluyen mutuamente.
Para la mayoría de los comandos que se muestran a continuación, debe utilizar el archivo .weights correspondiente a los archivos .names y .cfg. Puede entrenar su propia red (¡muy recomendable!) o descargar redes neuronales que otros han entrenado y publicado de forma gratuita en Internet. Ejemplos de conjuntos de datos previos al entrenamiento incluyen:
LEGO Gears (encuentra objetos en imágenes)
Rolodex (buscar texto en la imagen)
MSCOCO (detección de objetos estándar de 80 categorías)
Los comandos para ejecutar incluyen:
Ayuda de darknet: muestra información de ayuda.
Versión darknet: Verificar versión.
Prueba del detector darknet cars.data cars.cfg cars_best.weights image1.jpg: Utilice imágenes para la predicción (V2).
darknet02displayannotatedimages cars.cfg image1.jpg: Predicción mediante imágenes (V3).
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg: Predicción mediante imágenes (DarkHelp).
prueba del detector darknet animales.datos animales.cfg animalesbest.weights -extoutput dog.jpg: Coordenadas de salida (V2).
darknet01inference_images animales dog.jpg: Coordenadas de salida (V3).
DarkHelp --json animales.cfg animales.nombres animales_best.weights dog.jpg: Coordenadas de salida (DarkHelp).
Demostración del detector darknet animales.data animales.cfg animalesbest.weights -extoutput test.mp4: Procesamiento de vídeo (V2).
darknet03display_videos animales.cfg test.mp4: Procesamiento de vídeos (V3).
DarkHelp animales.cfg animales.nombres animales_best.weights test.mp4: Procesamiento de vídeo (DarkHelp).
Demostración del detector darknet animales.data animales.cfg animales_best.weights -c 0: Leer desde la cámara web (V2).
darknet08display_webcam animales: Leer desde la cámara web (V3).
Demostración del detector de darknet animales.datos animales.cfg animalesbest.weights test.mp4 -outfilename res.avi: guardar los resultados en vídeo (V2).
darknet05processvideosmultithreaded animales.cfg animales.nombres animales_best.weights test.mp4: Guardar resultados en vídeo (V3).
DarkHelp animales.cfg animales.nombres animales_mejores.pesos prueba.mp4: Guardar resultados en vídeo (DarkHelp).
Demostración del detector darknet animales.data animales.cfg animalesbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput: utilice el formato JSON (V2).
darknet06imagestojson animales image1.jpg: Utilice el formato JSON (V3).
DarkHelp --json animales.nombres animales.cfg animales_best.weights image1.jpg: Utilice el formato JSON (DarkHelp).
Demostración del detector darknet animales.data animales.cfg animales_best.weights -i 1 test.mp4: Ejecutar en una GPU específica.
Mapa del detector de darknet conducción.datos conducción.cfg conducción_best.weights...: comprueba la precisión de la red neuronal.
Mapa del detector de darknet animales.data animales.cfg animalesbest.weights -iouthresh 0,75: comprueba la precisión de mAP@IoU=75.
detector de red oscura calcanchors animales.data -numof_clusters 6 -ancho 320 -alto 256: recalcular los puntos de anclaje.
detector de darknet -map -dont_show train animales.data animales.cfg: Entrena una nueva red.
tren
¿Cómo configuro mis archivos y directorios?
¿Qué perfil debo utilizar?
¿Qué comandos debo usar al entrenar mi propia red?
Usar la anotación y el entrenamiento de DarkMark es el método más simple, que crea todos los archivos Darknet necesarios. Esta es definitivamente la forma recomendada de entrenar nuevas redes neuronales.
Si prefiere configurar manualmente los distintos archivos para entrenar una red personalizada, siga estos pasos:
1. Cree una nueva carpeta para almacenar los archivos. Por ejemplo, creará una red neuronal para detectar animales, por lo que se creará el siguiente directorio: ~/nn/animals/.
2. Copie un archivo de configuración de Darknet que desee utilizar como plantilla. Véase, por ejemplo, cfg/yolov4-tiny.cfg. Colóquelo en la carpeta que creó. Para este ejemplo, ahora tenemos ~/nn/animals/animals.cfg.
3. Cree un archivo de texto animales.names en la misma carpeta donde coloca el archivo de configuración. Para este ejemplo, ahora tenemos ~/nn/animals/animals.names.
4. Utilice un editor de texto para editar el archivo animales.nombres. Enumere las categorías que desea utilizar. Cada línea debe tener exactamente un elemento, sin líneas en blanco ni comentarios. Para este ejemplo, el archivo .names contendrá las siguientes 4 líneas:
`
perro
gato
pájaro
caballo
`
5. Cree un archivo de texto animales.data en la misma carpeta. Para este ejemplo, el archivo .data contendrá:
`
clases=4
tren=/home/nombre de usuario/nn/animals/animals_train.txt
valid=/home/nombre de usuario/nn/animals/animals_valid.txt
nombres=/home/nombredeusuario/nn/animals/animals.nombres
copia de seguridad=/home/nombre de usuario/nn/animales
`
6. Cree una carpeta para almacenar sus imágenes y anotaciones. Por ejemplo, esto podría ser ~/nn/animals/dataset. Cada imagen requiere un archivo .txt correspondiente que describe las anotaciones de esa imagen. El formato de los archivos de comentarios .txt es muy específico. No puede crear estos archivos manualmente porque cada anotación debe contener las coordenadas exactas de la anotación. Consulte DarkMark u otro software similar para anotar sus imágenes. El formato de anotación de YOLO se describe en las preguntas frecuentes de Darknet/YOLO.
7. Cree archivos de texto "entrenables" y "válidos" nombrados en el archivo .data. Estos dos archivos de texto deben enumerar todas las imágenes que Darknet debe usar para entrenamiento y validación (al calcular mAP%) respectivamente. Una imagen por línea. Las rutas y los nombres de archivos pueden ser relativos o absolutos.
8. Utilice un editor de texto para modificar su archivo .cfg.
- Asegúrese de que el lote sea = 64.
- Presta atención a las subdivisiones. Dependiendo de las dimensiones de la red y la cantidad de memoria disponible en la GPU, es posible que necesites aumentar las subdivisiones. El valor óptimo es 1, así que empieza con eso. Si 1 no funciona para usted, consulte las preguntas frecuentes de Darknet/YOLO.
- Nota maxbatches=…. Un buen valor para empezar es el número de categorías multiplicado por 2000. Para este ejemplo, tenemos 4 animales, entonces 4 * 2000 = 8000. Esto significa que usaremos maxbatches=8000.
- Nota pasos=…. Esto debe establecerse en 80 % y 90 % de los lotes máximos. Para este ejemplo, dado que maxbatches está configurado en 8000, usaremos pasos = 6400,7200.
- Nota ancho=... y alto=.... Estas son dimensiones de la red. Las preguntas frecuentes de Darknet/YOLO explican cómo calcular el tamaño óptimo a utilizar.
- Busque todas las clases=... líneas y modifíquelas con el número de clases en su archivo .names. Para este ejemplo usaremos clases=4.
- Encuentra todos los filtros =... líneas en la sección [convolucional] antes de cada sección [yolo]. El valor a utilizar es (número de categorías + 5) 3. Esto significa que para este ejemplo, (4 + 5) 3 = 27. Por lo tanto, usamos filtros = 27 en las líneas correspondientes.
9. ¡Empieza a entrenar! Ejecute el siguiente comando:
`golpear
cd ~/nn/animales/
detector de red oscura -mapa -dont_show entrenar animales.datos animales.cfg
`
Espere por favor. Los mejores pesos se guardarán como animales_best.weights. Puede observar el progreso del entrenamiento viendo el archivo chart.png. Consulte las preguntas frecuentes de Darknet/YOLO para conocer parámetros adicionales que quizás desee utilizar al entrenar una nueva red.
Si desea ver más detalles durante el entrenamiento, agregue el parámetro --verbose. Por ejemplo:
`golpear
detector de red oscura -map -dont_show --verbose train animales.data animales.cfg
`
Otras herramientas y enlaces
Para administrar su proyecto Darknet/YOLO, anotar imágenes, validar sus anotaciones y generar los archivos necesarios para entrenar con Darknet, consulte DarkMark.
Para obtener una potente CLI alternativa a Darknet para trabajar con mosaicos de imágenes, seguimiento de objetos en vídeo o una potente API de C++ que se puede utilizar fácilmente en aplicaciones comerciales, consulte DarkHelp.
Consulte las preguntas frecuentes de Darknet/YOLO para ver si pueden ayudar a responder su pregunta.
Consulte los numerosos tutoriales y vídeos de ejemplo en el canal de YouTube de Stéphane.
Si tiene preguntas de soporte o desea chatear con otros usuarios de Darknet/YOLO, únase al servidor Darknet/YOLO Discord.
hoja de ruta
Última actualización: 2024-10-30
Terminado
Se reemplazó qsort() con std::sort() durante el entrenamiento (aún existen algunos otros reemplazos oscuros)
Eliminar check_mistakes, getchar() y system()
Convierta Darknet para usar un compilador de C++ (g++ en Linux, Visual Studio en Windows)
Reparar la compilación de Windows
Reparar el soporte de Python
Construir biblioteca darknet
Volver a habilitar etiquetas en las predicciones (código "alfabético")
Volver a habilitar el código CUDA/GPU
Volver a habilitar CUDNN
Vuelva a habilitar la mitad CUDNN
No codifique la arquitectura CUDA
Mejor información de la versión CUDA
Vuelva a habilitar AVX
Eliminar la solución anterior y Makefile
Hacer que OpenCV no sea opcional
Eliminar la dependencia de la antigua biblioteca pthread
Eliminar STB
Reescriba CMakeLists.txt para usar la nueva instrumentación CUDA
Se eliminó el antiguo código "alfabeto" y se eliminaron más de 700 imágenes en datos/etiquetas.
Construir código fuente externo
Tener una mejor salida del número de versión
Optimizaciones del rendimiento relacionadas con la formación (tareas continuas)
Optimizaciones de rendimiento relacionadas con la inferencia (tareas en curso)
Utilice referencias por valor siempre que sea posible.
Limpiar archivos .hpp
Reescribir darknet.h
No convierta cv::Mat a void*, en su lugar utilícelo como un objeto C++ correcto
Reparar o mantener las estructuras de imágenes internas utilizadas de manera consistente
Corrección de compilación para dispositivos Jetson con arquitectura ARM
- Es poco probable que los dispositivos Jetson originales se reparen ya que NVIDIA ya no los admite (sin compilador C++17)
- Nuevo dispositivo Jetson Orin funcionando
Reparar la API de Python en V3
- Necesita una mejor compatibilidad con Python (¿hay algún desarrollador de Python dispuesto a ayudar con este problema?)
objetivos a corto plazo
Reemplace printf() con std::cout (trabajo en progreso)
Consulte el soporte de la antigua cámara Zed
Análisis de línea de comando mejor y más consistente (trabajo en progreso)
objetivos a medio plazo
Elimine todos los códigos char* y reemplácelos con std::string
No oculte advertencias y limpie las advertencias del compilador (trabajo en progreso)
Mejor uso de cv::Mat en lugar de estructuras de imágenes personalizadas en C (trabajo en progreso)
Reemplace las funciones de lista antiguas con std::vector o std::list
Se corrigió el soporte para imágenes en escala de grises de un solo canal.
Agregue soporte para imágenes de N canales donde N > 3 (por ejemplo, imágenes con profundidad adicional o canales térmicos)
Limpieza de código en curso (en progreso)
objetivos a largo plazo
Solucionar problemas de CUDA/CUDNN relacionados con todas las GPU
Reescribir el código CUDA+cuDNN
Considere agregar soporte para GPU que no sean NVIDIA
Cuadro delimitador girado o alguna forma de soporte de "ángulo"
puntos clave/esqueleto
Mapa de calor (trabajo en progreso)
segmentación