Bienvenido a Schema.org
Este es el repositorio del proyecto Schema.org. Contiene todos los esquemas, ejemplos y software utilizados para publicar esquema.org. Para el sitio en sí, consulte Schema.org.
Nota: Gran parte del software de soporte se importa desde un submódulo: 'sdopythonapp'
Los problemas y propuestas son gestionados aquí por los colaboradores del proyecto, especialmente los participantes del Grupo Comunitario Schema.org del W3C. Si está interesado en participar, únase al grupo del W3C, preséntese y busque o presente aquí los problemas que despierten su interés. Si es nuevo en Git y GitHub, hay una introducción útil a GitHub en la Wiki del W3C.
También hay pruebas de integración continua para verificar las solicitudes de extracción entrantes.
El número 1 de GitHub es un punto de entrada para la planificación de lanzamientos. Debe proporcionar una descripción general del trabajo futuro, en términos de temas generales, cuestiones específicas e hitos de lanzamiento. El número 1 se vinculará a los puntos de entrada por lanzamiento o navegará por los problemas a través de una etiqueta o un hito dentro de GitHub.
Cada cambio en el sitio se produce a través de discusiones aquí. Los cambios sustanciales se registran en nuestras notas de la versión. Puede encontrar una vista previa del borrador de las nuevas notas de la versión como parte del sitio de prueba para nuestra próxima versión. Aproximadamente cada mes, después de la revisión final por parte del Grupo Directivo de Schema.org y la comunidad en general, hacemos un comunicado formal.
Con respecto a las licencias CC y de código abierto para documentos y software, consulte nuestra entrada de preguntas frecuentes.
Siempre estamos interesados en sugerencias prácticas para mejorar esquema.org, y nuestra colección de esquemas ha ido creciendo gradualmente desde nuestro lanzamiento en 2011. Intentamos priorizar correcciones simples y mejoras a nuestros esquemas, ejemplos y documentación existentes sobre la adición de nuevos. vocabulario, y es más probable que agreguemos nuevos esquemas cuando haya evidencia de que alguna aplicación consumidora (preferiblemente a gran escala) hará uso de los datos. Las aplicaciones consumidoras no tienen por qué ser motores de búsqueda; Las herramientas de software (por ejemplo, enfoques de análisis web de código abierto y enriquecidos con marcas, complementos de navegador o herramientas de nube) son áreas ricas para la exploración y la colaboración. Lo importante es que debería haber una expectativa razonable de que los consumidores de datos hagan un buen uso de los cambios. No basta con justificar las adiciones basándose en que los motores de búsqueda generalmente intentan utilizar datos estructurados basados en Schema.org. Los cambios más pequeños y los cambios compatibles con versiones anteriores son más fáciles de incorporar.
Nota: Schema.org no intenta capturar todos los detalles del contenido web; es necesariamente una simplificación de una realidad más compleja. Esto significa que habrá muchos casos en los que será posible agregar más detalles a Schema.org. Sin embargo, con el fin de mantener Schema.org simple y utilizable para editores y webmasters, a menudo optaremos por no agregar dichos detalles.
Schema.org utiliza estándares web como JSON-LD, Microdata y RDFa para permitir extensiones independientes (por ejemplo, consulte el vocabulario de GS1).
También es muy poco probable que emprendamos reorganizaciones a gran escala de la terminología de Schema.org, si están motivadas únicamente por consideraciones de elegancia, "modelado adecuado", pureza ontológica o unificación conceptual. Aunque los fundadores y el equipo del proyecto están familiarizados con (y respetan) las tradiciones detrás de tales preocupaciones, la escala, el alcance y la naturaleza de Schema.org nos han requerido cambiar la elegancia y la coherencia global por una noción algo más desaliñada de evolución incremental y una visión pragmática. tolerancia hacia un estilo que estaría fuera de lugar en una ontología formal. Las propuestas para unificar estructuras de conocimiento basadas en lógica entre dominios pueden ser mejor recibidas, por ejemplo, en la comunidad Ontolog.
A veces introducimos tipos sin asociaciones de propiedad dedicadas, simplemente por razones de usabilidad del marcado. En una ontología formal, esto a menudo se considera un modelado deficiente. Sin embargo, las estructuras lógicamente equivalentes pueden dar lugar a muchos más errores por parte de editores/webmasters que no estén familiarizados con los conceptos formales subyacentes detrás de JSON-LD o RDF/S.
Schema.org no es un sistema cerrado y otras iniciativas (por ejemplo, Wikidata o GS1) han definido muchos otros términos que pueden combinarse con los que definimos en Schema.org. También nos esforzamos por alinear nuestros diseños con estándares e iniciativas externos relevantes, incluso cuando esto reduce la elegancia global de Schema.org considerada por sí sola. Por ejemplo, en un contexto bibliográfico o de patrimonio cultural, podemos estar influenciados por iniciativas como MARC, BibFrame y FRBR, mientras que para el comercio electrónico colaboramos con Good Relations y GS1. Los términos relacionados con las noticias de Schema.org se vieron fuertemente influenciados por la incorporación del diseño rNews de IPTC, junto con colaboraciones con verificadores de datos, Trust Project y otros. Nuestros vocabularios relacionados con la televisión y la música están fuertemente influenciados por el trabajo con la BBC y la Unión Europea de Radiodifusión, junto con la ontología musical y MusicBrainz; Nuestros esquemas reflejan estos diseños anteriores. Preferimos colaborar de esta manera, mejorando Schema.org de forma incremental y trabajando para pulir, integrar y combinar dichos diseños en lugar de producir nuestro propio modelo puro de forma aislada. El resultado puede carecer de elegancia global, pero alinea nuestro trabajo con esfuerzos relacionados en todo el mundo.
Siempre damos la bienvenida a los problemas que rastrean problemas de usabilidad y legibilidad, pero fomentamos un enfoque en situaciones concretas (por ejemplo, cómo describir eventos repetidos) en lugar de preocupaciones filosóficas globales (por ejemplo, si una Reserva o Acción es "realmente" un Evento). Priorizamos la coherencia local (tener formas sensatas de describir muchas situaciones comunes) sobre la elegancia global (tener una teoría global en la que todo tiene un lugar sensato). Esto no significa que nunca tengamos limpiezas, pero se equilibran con otras consideraciones (y a menudo se ven superadas por ellas).
Cuando agregamos términos, a menudo en el área "Pendiente", recomendamos encarecidamente recibir comentarios que adopten una perspectiva global: cómo se relaciona un nuevo término con otros, cómo podría usarse junto con patrones preexistentes, etc. Los cambios que hacemos durante Esta fase de integración refleja tales consideraciones, pero generalmente se expresan a través de modestas reformulaciones, ejemplos o ajustes a la documentación de los vínculos tipo/propiedad, en lugar de a través de una reestructuración importante.
Ver más sobre "Cómo trabajamos"
Para la mayoría de los colaboradores, todo lo que necesitan saber sobre el software es cómo ejecutarlo. El objetivo del software es crear una copia estática del sitio Schema.org, incluidos posibles cambios locales, para inspeccionarla y ejecutarla detrás de un servidor web simple en un sistema local para realizar pruebas. De la misma manera que se implementa una versión de producción en un servidor en la nube, su versión local podría implementarse en una máquina virtual usando gcloud para permitir la colaboración con otros.
Las instrucciones completas están disponibles en SOFTWARE_README.md que explican cómo crear la copia local inicial para trabajar y luego evolucionar para probar los cambios. Básicamente, necesitará tener un entorno similar a Linux (incluido Mac) cargado con la versión 3.6 de Python o superior. Luego puede hacer que las compilaciones de prueba de Schema.org que se ejecutan en su propia máquina sean accesibles como http://localhost:8080/ o publicarlas en appspot.com para colaborar. Consulta la documentación de Appengine para obtener detalles sobre los comandos de gcloud relevantes.
Información más detallada sobre el software y su uso está disponible en SOFTWARE_README.md. Vea también las notas en la wiki: https://github.com/schemaorg/schemaorg/wiki/Contributing
Todos los esquemas y ejemplos están en datos/en archivos codificados en utf-8.
El archivo de esquemas principal es data/schema.ttl (utf-8).
Al desarrollar esquemas, puede resultar útil utilizar data/sdo-somethinghere-schema.ttl.
El formato se basa en W3C RDFS en formato RDF/Turtle.
Los ejemplos se almacenan en data/examples.txt (utf-8) y otros archivos .txt.
Al igual que con los esquemas, también se leerá data/examples.txt. Puede resultar útil desarrollar utilizando archivos separados.
Cuando el vocabulario finalmente se integre en el repositorio principal, los datos del esquema se fusionarán en esquema.org. Sin embargo, los ejemplos permanecerán en archivos separados, ya que esto funciona mejor con la maquinaria de comparación de archivos de git.
La jerarquía datos/versiones/ está reservada para instantáneas de versiones (consulte https://schema.org/version/).
La jerarquía ext// está reservada para extensiones (consulte https://schema.org/docs/extension.html).
Ya no utilizamos ramas de github para trabajos en progreso. La rama principal/es nuestro último candidato. No se garantiza que esté en un estado conceptualmente consistente, pero debe estabilizarse antes de la circulación de una versión candidata para su revisión.
Esta documentación se refiere a la base del código del software y no al propio esquema.org. Sin embargo, tenga en cuenta que las etiquetas, los comentarios y la documentación deben utilizar inglés estadounidense (en el código y los esquemas), si es necesario elegir entre variantes en inglés. Por favor, trate de hablar inglés internacional siempre que sea posible.
Ver también: https://twitter.com/schemaorg_dev
Ejemplo:
`
Licencia Apache-2.0
Tabla de contenido
Marco de detección de objetos Darknet y YOLO
Papeles
Información general
Versión de la red oscura
Pesas preentrenadas MSCOCO
Edificio
colaboración de google
Método CMake de Linux
Método CMake de Windows
Usando la red oscura
CLI
Capacitación
Otras herramientas y enlaces
Hoja de ruta
Metas a corto plazo
Metas a medio plazo
Metas a largo plazo
Marco de detección de objetos Darknet y YOLO
Logotipos de darknet y hank.ai
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.
Lea cómo Hank.ai está ayudando a la comunidad Darknet/YOLO
Anuncio de Darknet V3 "Jazz"
Consulte el sitio web Darknet/YOLO
Lea las preguntas frecuentes sobre Darknet/YOLO
Únase al servidor de discordia Darknet/YOLO
Papeles
Papel YOLOv7
Escala de papel-YOLOv4
Papel YOLOv4
Papel YOLOv3
Información general
El marco Darknet/YOLO sigue siendo más rápido y preciso que otros marcos y versiones de YOLO.
Este marco es completamente gratuito y de código abierto. Puede incorporar Darknet/YOLO en proyectos y productos existentes, incluidos los comerciales, sin necesidad de licencia ni pago de una tarifa.
Darknet V3 ("Jazz") lanzado en octubre de 2024 puede ejecutar con precisión los 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, redimensiona y procesa cada cuadro de video en 1 milisegundo o menos.
Únase al servidor Darknet/YOLO Discord si necesita ayuda o desea hablar sobre Darknet/YOLO: https://discord.gg/zSq8rtW
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 una GPU compatible con CUDA de NVIDIA.
Se sabe que Darknet/YOLO funciona en Linux, Windows y Mac. Consulte las instrucciones de construcción a continuación.
Versión de la red oscura
La herramienta Darknet original escrita por Joseph Redmon entre 2013 y 2017 no tenía un número de versión. Consideramos esta versión 0.x.
El siguiente repositorio popular de Darknet mantenido por Alexey Bochkovskiy entre 2017 y 2021 tampoco tenía un número de versión. Consideramos esta versión 1.x.
El repositorio Darknet patrocinado por Hank.ai y mantenido por Stéphane Charette a partir de 2023 fue el primero con un comando de versión. Desde 2023 hasta finales de 2024, devolvió la versión 2.x "OAK".
El objetivo era intentar romper la menor cantidad de funcionalidad existente mientras se familiarizaba con el código base.
Reescribimos los pasos de compilación para que tengamos una forma unificada de compilar usando CMake tanto en Windows como en Linux.
Convirtió el código base para usar el 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 que lleva entrenar una red.
La última rama de este código base es la versión 2.1 en la rama v2.
La siguiente fase de desarrollo comenzó a mediados de 2024 y se lanzó en octubre de 2024. El comando de versión ahora devuelve 3.x "JAZZ".
Siempre puede realizar un pago de la rama v2 anterior si necesita ejecutar uno de estos comandos. Háganos saber para que podamos investigar cómo volver a agregar los comandos que faltan.
Se eliminaron muchos comandos antiguos y no mantenidos.
Muchas optimizaciones de rendimiento, tanto durante el entrenamiento como durante la inferencia.
Se modificó la API C heredada; las aplicaciones que utilizan la API Darknet original necesitarán 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
Se entrenaron previamente varias versiones populares de YOLO para mayor comodidad en el conjunto de datos MSCOCO. Este conjunto de datos tiene 80 clases, que se pueden 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. Consulte las preguntas frecuentes de Darknet/YOLO para obtener más detalles.
Los pesos previamente entrenados de MSCOCO se pueden descargar desde varias ubicaciones diferentes y también están disponibles para descargar desde este repositorio:
YOLOv2, noviembre de 2016
YOLOv2-diminuto
YOLOv2-completo
YOLOv3, mayo de 2018
YOLOv3-diminuto
YOLOv3-completo
YOLOv4, mayo de 2020
YOLOv4-diminuto
YOLOv4-completo
YOLOv7, agosto de 2022
YOLOv7-diminuto
YOLOv7-completo
Las pesas previamente entrenadas de MSCOCO se proporcionan únicamente con fines de demostración. Los archivos .cfg y .names correspondientes a MSCOCO se encuentran en el directorio cfg. Comandos de ejemplo:
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
Tenga en cuenta que se espera que las personas capaciten sus propias redes. MSCOCO normalmente se utiliza para confirmar que todo funciona correctamente.
Edificio
Los diversos métodos de compilación disponibles en el pasado (antes de 2023) se han fusionado en una única solución unificada. Darknet requiere C++ 17 o posterior, OpenCV, y usa CMake para generar los archivos de proyecto necesarios.
No necesita saber C++ para construir, instalar ni ejecutar Darknet/YOLO, de la misma manera que no necesita ser mecánico para conducir un automóvil.
colaboración de google
linux
ventanas
Tenga cuidado si sigue tutoriales antiguos con pasos de compilación más complicados o pasos de compilación que no coinciden con lo que se encuentra en este archivo Léame. Los nuevos pasos de construcción que se describen a continuación comenzaron en agosto de 2023.
Se anima a los desarrolladores de software a visitar https://darknetcv.ai/ para obtener información sobre los aspectos internos del marco de detección de objetos Darknet/YOLO.
colaboración de google
Las instrucciones de Google Colab son las mismas que las de Linux. Hay varios cuadernos de Jupyter disponibles que muestran cómo realizar determinadas tareas, como entrenar una nueva red.
Consulte los cuadernos en el subdirectorio colab y/o siga las instrucciones de Linux a continuación.
Método CMake de Linux
Tutorial de compilación de Darknet para Linux
Opcional: si tiene una GPU NVIDIA moderna, puede instalar CUDA o CUDA+cuDNN en este punto. Si está instalado, Darknet utilizará su GPU para acelerar el procesamiento de imágenes (y videos).
Debe eliminar el archivo CMakeCache.txt de su directorio de compilación Darknet para obligar a CMake a volver a encontrar todos los archivos necesarios.
Recuerde reconstruir Darknet.
Darknet puede ejecutarse sin él, pero si desea entrenar una red personalizada, entonces se requiere CUDA o CUDA+cuDNN.
Visite https://developer.nvidia.com/cuda-downloads para descargar e instalar CUDA.
Visite https://developer.nvidia.com/rdp/cudnn-download o https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview para descargar e instale cuDNN.
Una vez que instale CUDA, asegúrese de poder ejecutar nvcc y nvidia-smi. Es posible que tengas que modificar tu variable PATH.
Si instala CUDA o CUDA+cuDNN más adelante, o actualiza a una versión más reciente del software NVIDIA:
Estas instrucciones asumen (¡pero no requieren!) un sistema que ejecuta Ubuntu 22.04. Adáptese según sea necesario si está utilizando una distribución diferente.
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-VERSIÓN.deb
Si está utilizando una versión anterior de CMake, deberá actualizar CMake antes de poder ejecutar el comando cmake anterior. La actualización de CMake en Ubuntu se puede realizar con los siguientes comandos:
sudo apt-get purge cmake sudo snap install cmake --classic
Si usa bash como su shell de comandos, querrá reiniciar su shell en este punto. Si utiliza pescado, debe tomar inmediatamente el nuevo camino.
Usuarios avanzados:
Si desea crear un archivo de instalación RPM en lugar de un archivo DEB, consulte las líneas relevantes en CM_package.cmake. Antes de ejecutar el paquete make -j4 necesitarás editar estas dos líneas:
ESTABLECER (CPACKGENERATOR "DEB")# ESTABLECER (CPACKGENERATOR "RPM")
Para distribuciones como Centos y OpenSUSE, deberás cambiar esas dos líneas en CM_package.cmake para que sean:
CONFIGURAR (CPACKGENERATOR "DEB") CONFIGURAR (CPACKGENERATOR "RPM")
Para instalar el paquete de instalación una vez que haya terminado de compilarse, utilice el administrador de paquetes habitual para su distribución. Por ejemplo, en sistemas basados en Debian como Ubuntu:
sudo dpkg -i darknet-2.0.1-Linux.deb
La instalación del paquete .deb copiará los siguientes archivos:
/usr/bin/darknet es el ejecutable habitual de Darknet. Ejecute la versión de darknet desde la CLI para confirmar que esté instalada correctamente.
/usr/include/darknet.h es la API Darknet para desarrolladores de C, C++ y Python.
/usr/include/darknet_version.h contiene información de la versión para desarrolladores.
/usr/lib/libdarknet.so es la biblioteca con la que se vinculan los desarrolladores de C, C++ y Python.
/opt/darknet/cfg/... es donde se almacenan todas las plantillas .cfg.
¡Ya has terminado! Darknet ha sido construido e instalado en /usr/bin/. Ejecute esto para probar: versión darknet.
Si no tienes /usr/bin/darknet entonces esto significa que no lo instalaste, ¡solo lo compilaste! Asegúrese de instalar el archivo .deb o .rpm como se describe arriba.
Método CMake de Windows
Estas instrucciones asumen una nueva instalación de Windows 11 22H2.
Abra una ventana normal del símbolo del sistema cmd.exe y ejecute los siguientes comandos:
instalación de Winget Git.Git instalación de Winget Kitware.CMake instalación de Winget nsis.nsis instalación de Winget Microsoft.VisualStudio.2022.Community
En este punto necesitamos modificar la instalación de Visual Studio para incluir soporte para aplicaciones C++:
Haga clic en el menú "Inicio de Windows" y ejecute "Visual Studio Installer".
haga clic en modificar
seleccione Desarrollo de escritorio con C++
haga clic en Modificar en la esquina inferior derecha y luego haga clic en Sí. Una vez que todo esté descargado e instalado, haga clic en el menú "Inicio de Windows" nuevamente y seleccione Símbolo del sistema del desarrollador para VS 2022. No use PowerShell para estos pasos, ejecutará ¡En problemas!
Usuarios avanzados:
En lugar de ejecutar el símbolo del sistema del desarrollador, puede usar un símbolo del sistema normal o ssh en el dispositivo y ejecutar manualmente "Archivos de programa Microsoft Visual Studio2022 CommunityCommon7ToolsVsDevCmd.bat".
Una vez que tenga el símbolo del sistema del desarrollador ejecutándose como se describe anteriormente (¡no PowerShell!), ejecute los siguientes comandos para instalar Microsoft VCPKG, que luego se usará para compilar OpenCV:
cd c:mkdir c:srccd c:src git clone https://github.com/microsoft/vcpkgcd vcpkg bootstrap-vcpkg.bat .vcpkg.exe integrar instalar .vcpkg.exe integrar powershell.vcpkg.exe instalar opencv[contrib, dnn,freetype,jpeg,openmp,png,webp,mundo]:x64-windows
Tenga paciencia en este último paso, ya que puede tardar mucho en ejecutarse. Necesita descargar y construir muchas cosas.
Usuarios avanzados:
Tenga en cuenta que hay muchos otros módulos opcionales que quizás desee agregar al crear OpenCV. Ejecute .vcpkg.exe y busque opencv para ver la lista completa.
Opcional: si tiene una GPU NVIDIA moderna, puede instalar CUDA o CUDA+cuDNN en este punto. Si está instalado, Darknet utilizará su GPU para acelerar el procesamiento de imágenes (y videos).
Debe eliminar el archivo CMakeCache.txt de su directorio de compilación Darknet para obligar a CMake a volver a encontrar todos los archivos necesarios.
Recuerde reconstruir Darknet.
Darknet puede ejecutarse sin él, pero si desea entrenar una red personalizada, entonces se requiere CUDA o CUDA+cuDNN.
Visite https://developer.nvidia.com/cuda-downloads para descargar e instalar CUDA.
Visite https://developer.nvidia.com/rdp/cudnn-download o https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows para descargar e instalar cuDNN.
Una vez que instale CUDA, asegúrese de poder ejecutar nvcc.exe y nvidia-smi.exe. Es posible que tengas que modificar tu variable PATH.
Una vez que descargue cuDNN, descomprima y copie los directorios bin, include y lib en C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[versión]/. Es posible que necesites sobrescribir algunos archivos.
Si instala CUDA o CUDA+cuDNN más adelante, o actualiza a una versión más reciente del software NVIDIA:
CUDA debe instalarse después de Visual Studio. Si actualiza Visual Studio, recuerde reinstalar CUDA.
Una vez que todos los pasos anteriores hayan finalizado con éxito, deberá clonar Darknet y compilarlo. Durante este paso, también debemos indicarle a CMake dónde se encuentra vcpkg para que pueda encontrar OpenCV y otras dependencias:
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
Si recibe un error sobre algunas DLL CUDA o cuDNN que faltan, como cublas64_12.dll, copie manualmente los archivos CUDA .dll en el mismo directorio de salida que Darknet.exe. Por ejemplo:
copie "C:Archivos de programaNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
(¡Ese es un ejemplo! Verifique qué versión está ejecutando y ejecute el comando apropiado para lo que ha instalado).
Una vez que se hayan copiado los archivos, vuelva a ejecutar el último comando msbuild.exe para generar el paquete de instalación de NSIS:
msbuild.exe /property:Platform=x64;Configuration=Versión PACKAGE.vcxproj
Usuarios avanzados:
Tenga en cuenta que la salida del comando cmake es un archivo de solución normal de Visual Studio, Darknet.sln. Si es un desarrollador de software que utiliza habitualmente la GUI de Visual Studio en lugar de msbuild.exe para crear proyectos, puede ignorar la línea de comandos y cargar el proyecto Darknet en Visual Studio.
Ahora debería tener este archivo que puede ejecutar: C:srcDarknetbuildsrc-cliReleasedarknet.exe. Ejecute esto para probar: C:srcDarknetbuildsrc-cliReleasedarknet.exe versión.
Para instalar correctamente Darknet, las bibliotecas, los archivos de inclusión y las DLL necesarias, ejecute el asistente de instalación de NSIS que se creó en el último paso. Consulte el archivo darknet-VERSION.exe en el directorio de compilación. Por ejemplo:
darknet-2.0.31-win64.exe
La instalación del paquete de instalación de NSIS:
Cree un directorio llamado Darknet, como C:Program FilesDarknet.
Instale la aplicación CLI, darknet.exe y otras aplicaciones de muestra.
Instale los archivos .dll de terceros necesarios, como los de OpenCV.
Instale los archivos Darknet .dll, .lib y .h necesarios para usar darknet.dll desde otra aplicación.
Instale los archivos .cfg de plantilla.
¡Ya has terminado! Una vez que el asistente de instalación haya finalizado, Darknet se habrá instalado en C:Program FilesDarknet. Ejecute esto para probar: C: Archivos de programa Darknetbindarknet.exe versión.
Si no tiene C:/Program Files/darknet/bin/darknet.exe, entonces esto significa que no lo instaló, ¡solo lo creó! Asegúrese de revisar cada panel del asistente de instalación de NSIS en el paso anterior.
Usando la red oscura
CLI
La siguiente no es la 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 a Darknet/YOLO. La CLI de DarkHelp también tiene varias funciones avanzadas que no están disponibles directamente en Darknet. Puede utilizar tanto la CLI de Darknet como la CLI de DarkHelp juntas, no son mutuamente excluyentes.
Para la mayoría de los comandos que se muestran a continuación, necesitará el archivo .weights con los archivos .names y .cfg correspondientes. Puede entrenar su propia red (¡muy recomendable!) o descargar una red neuronal que alguien ya haya entrenado y puesto a disposición de forma gratuita en Internet. Ejemplos de conjuntos de datos previamente entrenados incluyen:
LEGO Gears (buscar objetos en una imagen)
Rolodex (buscar texto en una imagen)
MSCOCO (detección de objetos estándar de clase 80)
Los comandos para ejecutar incluyen:
Enumere algunos comandos y opciones posibles para ejecutar:
ayuda de la red oscura
Consulta la versión:
versión de la red oscura
Predecir usando una imagen:
V2: prueba del detector de red oscura cars.data cars.cfg cars_best.weights image1.jpg
V3: darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp: DarkHelp cars.cfg cars.cfg cars_best.weights imagen1.jpg
Coordenadas de salida:
V2: prueba del detector de red oscura animales.datos animales.cfg animalesbest.weights -extoutput dog.jpg
V3: darknet01inference_images animales perro.jpg
DarkHelp: DarkHelp --json animales.cfg animales.nombres animales_mejores.pesos perro.jpg
Trabajar con vídeos:
V2: demostración del detector de red oscura animales.datos animales.cfg animalesbest.weights -extoutput test.mp4
V3: darknet03display_videos animales.cfg prueba.mp4
DarkHelp: DarkHelp animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
Leyendo desde una cámara web:
V2: demostración del detector de red oscura animales.data animales.cfg animales_best.weights -c 0
V3: darknet08display_webcam animales
Guardar resultados en un vídeo:
V2: demostración del detector de red oscura animales.datos animales.cfg animalesbest.pesos prueba.mp4 -outfilename res.avi
V3: darknet05processvideosmultithreaded animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
DarkHelp: DarkHelp animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
JSON:
V2: demostración del detector de red oscura animales.datos animales.cfg animalesbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3: darknet06imagestojson animales image1.jpg
DarkHelp: DarkHelp --json animales.nombres animales.cfg animales_mejor.pesos imagen1.jpg
Ejecutando en una GPU específica:
V2: demostración del detector de red oscura animales.data animales.cfg animales_best.weights -i 1 test.mp4
Para comprobar la precisión de la red neuronal:
Mapa del detector de darknet conducción.datos conducción.cfg conducción_mejor.pesos ... Id. Nombre AvgPrecision TP FN FP TN Precisión ErrorRate Precisión Recuperación Especificidad FalsePosRate -- ---- ------------ ---- -- ------ ------ ------ -------- --------- --------- ---- -- ----------- ------------ 0 vehículo 91.2495 32648 3903 5826 65129 0.9095 0.0905 0.8486 0.8932 0.9179 0.0821 1 motocicleta 80.4499 2936 513 569 5393 0.8850 0,8377 0,8513 0,9046 0,0954 2 bicicleta 89,0912 570 124 104 3548 0,9475 0,0525 0,8457 0,8213 0,9715 0,0285 3 persona 76,7937 7072 1727 2574 27523 0,8894 0,7332 0,8037 0,9145 0,0855 4 muchos vehículos 64,3089 1068 509 733 11288 0,9087 0,0913 0,5930 0,6772 0,9390 0,0610 5 luz verde 86,8118 1969 239 10 4116 0,8904 0,1096 0,7943 0,8918 0,8898 0,1102 6 luz amarilla 82,0390 126 38 30 1239 0,9525 0,0475 0,8077 0,7683 0,9764 0,0236 7 luz roja 94,1033 3449 17 451 4643 0,9237 0,0763 0,8844 0,9408 0,9115 0,0885
Para comprobar la precisión mAP@IoU=75:
Mapa del detector de darknet animales.datos animales.cfg animalesbest.weights -iouthresh 0,75
La mejor manera de volver a calcular los anclajes es en DarkMark, ya que se ejecutará 100 veces consecutivas y seleccionará los mejores anclajes de todos los que se calcularon. Pero si quieres ejecutar la versión anterior en Darknet:
detector de red oscura calcanchors animales.data -numof_clusters 6 -ancho 320 -alto 256
Entrene una nueva red:
detector de red oscura -map -dont_show train animales.data animales.cfg (consulte también la sección de capacitación a continuación)
Capacitación
Enlaces rápidos a secciones relevantes de las preguntas frecuentes de Darknet/YOLO:
¿Cómo debo configurar mis archivos y directorios?
¿Qué archivo de configuración debo usar?
¿Qué comando debo usar al entrenar mi propia red?
La forma más sencilla de anotar y entrenar es mediante el uso de DarkMark para crear todos los archivos Darknet necesarios. Esta es definitivamente la forma recomendada de entrenar una nueva red neuronal.
Si prefiere configurar manualmente los distintos archivos para entrenar una red personalizada:
Cree una nueva carpeta donde se almacenarán los archivos. Para este ejemplo, se creará una red neuronal para detectar animales, por lo que se crea el siguiente directorio: ~/nn/animals/.
Copie uno de los archivos de configuración de Darknet que desee utilizar como plantilla. Por ejemplo, consulte cfg/yolov4-tiny.cfg. Colóquelo en la carpeta que creó. Para este ejemplo, ahora tenemos ~/nn/animals/animals.cfg.
Cree un archivo de texto animales.names en la misma carpeta donde colocó el archivo de configuración. Para este ejemplo, ahora tenemos ~/nn/animals/animals.names.
Edite el archivo animales.names con su editor de texto. Enumere las clases que desea utilizar. Debe tener exactamente 1 entrada por línea, sin líneas en blanco ni comentarios. Para este ejemplo, el archivo .names contendrá exactamente 4 líneas:
perro gato pájaro caballo
Cree un archivo de texto animales.data en la misma carpeta. Para este ejemplo, el archivo .data contendrá:
clases = 4 tren = /home/username/nn/animals/animalstrain.txt valid = /home/username/nn/animals/animalsvalid.txt nombres = /home/username/nn/animals/animals.names backup = /home/ nombre de usuario/nn/animales
Crea una carpeta donde almacenarás tus imágenes y anotaciones. Por ejemplo, esto podría ser ~/nn/animals/dataset. Cada imagen necesitará un archivo .txt correspondiente que describa las anotaciones de esa imagen. El formato de los archivos de anotaciones .txt es muy específico. No puede crear estos archivos a mano ya que 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.
Cree los archivos de texto "entrenamiento" y "válido" nombrados en el archivo .data. Estos dos archivos de texto deben enumerar individualmente todas las imágenes que Darknet debe usar para entrenar y validar al calcular el% de mAP. Exactamente una imagen por línea. La ruta y los nombres de los archivos pueden ser relativos o absolutos.
Modifique su archivo .cfg con un editor de texto.
Asegúrese de que el lote = 64.
Tenga en cuenta las subdivisiones. Dependiendo de las dimensiones de la red y la cantidad de memoria disponible en su GPU, es posible que necesite aumentar las subdivisiones. El mejor valor para usar es 1, así que comience con eso. Consulte las preguntas frecuentes de Darknet/YOLO si 1 no funciona para usted.
Nota maxbatches=.... Un buen valor para usar al comenzar es 2000 x el número de clases. Para este ejemplo, tenemos 4 animales, por lo que 4 * 2000 = 8000. Lo que significa que usaremos maxbatches=8000.
Tenga en cuenta los pasos =.... Esto debe establecerse en 80% y 90% de los lotes máximos. Para este ejemplo usaríamos pasos=6400,7200 ya que maxbatches se configuró en 8000.
Tenga en cuenta ancho=... y alto=.... Estas son las dimensiones de la red. Las preguntas frecuentes de Darknet/YOLO explican cómo calcular el mejor tamaño a utilizar.
Busque todas las instancias de la línea clases=... y modifíquela con el número de clases en su archivo .names. Para este ejemplo, usaríamos clases=4.
Busque todas las instancias de la línea filters=... en la sección [convolucional] antes de cada sección [yolo]. El valor a usar es (número de clases + 5) 3. Es decir, para este ejemplo, (4 + 5) 3 = 27. Entonces usaríamos filtros = 27 en las líneas apropiadas.
¡Empieza a entrenar! Ejecute los siguientes comandos:
cd ~/nn/animals/ detector darknet -map -dont_show train animales.data animales.cfg
Ser paciente. Los mejores pesos se guardarán como animales_best.weights. Y el progreso del entrenamiento se puede observar viendo el