Sistema de consulta de puntuación universal adaptativo inteligente Asp+Csv
Hoy, el editor de Downcodes les presentará un sistema de consulta desarrollado y publicado basado en ASP para consultar datos en formato csv. Asp + Csv se adapta inteligentemente al sistema de consulta de puntuación universal.
Este software es extremadamente simple pero es un sistema de consulta de puntuación muy versátil y conveniente que se puede utilizar para consultar casi todas las tablas de datos bidimensionales y unidimensionales de Excel.
Objetivo
Este sistema es adecuado para diversas consultas precisas, como calificaciones, salarios, facturas de servicios públicos de propiedad, etc., que se modifican con poca frecuencia y tienen baja confidencialidad. Los escenarios de uso específicos son los siguientes:
1. Sistema de consulta de puntuación: aplicable a cada escuela, institución educativa, examen de institución pública, etc.
2. Sistema de consulta de salarios: aplicable a todos los colegios, instituciones educativas, exámenes de instituciones públicas, etc.
3. Sistema de consulta de tarifas de propiedad: aplicable a todas las empresas, escuelas y todas las unidades.
4. Sistema de consulta de facturas de servicios públicos: adecuado para comunidades, empresas inmobiliarias, residencias universitarias, etc.
5. Otros sistemas de consulta: como consulta de colocación en clase, consulta de admisión, consulta de certificados y otros sistemas de consulta con pocas modificaciones.
Características y ventajas
1. Alta versatilidad: se puede utilizar en casi todas las mesas bidimensionales y puede satisfacer la mayoría de sus necesidades.
2. Simple y conveniente: el código es pequeño y simple, y se puede modificar rápidamente para adaptarse a diversos escenarios, como consultas conjuntas de varias tablas.
3. Flexible y fácil de usar: simplemente modifique algunos parámetros para personalizar la consulta.
4. Uso rápido: publicar una puntuación se puede resolver en dos o tres minutos como máximo.
Limitaciones
1. No apto para modificaciones frecuentes: los resultados, salarios, facturas de agua y electricidad, etc. generalmente se publican al mismo tiempo sin modificaciones. Este sistema no es adecuado para escenarios donde las modificaciones son frecuentes.
2. Solo apto para tablas bidimensionales: generalmente, las bases de datos adoptan una estructura bidimensional, con encabezados en la primera fila y en las filas, y un dato por fila a partir de entonces. Este sistema actualmente no admite datos en otras estructuras.
3. Control recomendado del número de registros en una sola base de datos: este sistema no limita el número de registros en una sola base de datos, pero se recomienda que el número de registros en una sola base de datos se controle dentro de 30,000, y las bases de datos pueden dividirse en bases de datos sin afectarse entre sí.
4. Las fórmulas, imágenes, URL, etc. no son compatibles por el momento: este sistema no admite fórmulas, imágenes, URL, etc. por el momento.
Sugerencias de uso
Se puede utilizar directamente cargándolo a través de FTP. Se recomienda cargarlo directamente para realizar pruebas de consulta.
Acceso front-end: http://sitio web/directorio/ (carga para uso directo sin soporte de base de datos mysql, etc.)
Luego use notepad ++ para abrir inc/conn.Asp para ver la relación correspondiente entre los parámetros y las páginas web, y luego abra la base de datos integrada predeterminada para comparar los resultados de la consulta y ver la relación correspondiente.
Pasos de uso
Para obtener más información, consulte el archivo en formato html en el paquete comprimido.
Ejemplo
A continuación se toma el marco de detección de objetos Darknet y YOLO como ejemplo para mostrar cómo usar el elemento de etiqueta de título de Markdown y algunos ajustes de diseño para que la información se muestre de manera más ordenada y más conveniente para que los usuarios la lean:
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.
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.
El marco es completamente gratuito y de código abierto. Puede utilizar Darknet/YOLO en proyectos y productos existentes, incluidos productos comerciales, sin licencia 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 lee, redimensiona y procesa cada cuadro de video en 1 milisegundo o menos. /YOLO en segundos.
Si necesita ayuda o quiere hablar sobre Darknet/YOLO, únase al servidor Darknet/YOLO Discord: 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 la GPU compatible con CUDA de NVIDIA.
Se sabe que 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 esta es la versión 0.x.
El próximo repositorio popular de Darknet mantenido por Alexey Bochkovskiy entre 2017 y 2021 tampoco tiene un número de versión. Creemos que esta es la versión 1.x.
El repositorio Darknet patrocinado por Hank.ai y mantenido por Stéphane Charette a partir de 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 familiarizarse con la base del código mientras se intenta romper la menor cantidad posible de funcionalidad existente.
Se reescribieron los pasos de compilación para que tengamos un enfoque unificado para 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. Si necesita ayuda, háganoslo saber para que podamos investigar cómo agregar los comandos que faltan.
Se eliminaron muchos comandos antiguos y no mantenidos.
Se realizaron muchas optimizaciones de rendimiento, incluso durante el entrenamiento y la inferencia.
La antigua API C ha sido modificada; las aplicaciones que utilizan la API Darknet original requerirá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
Para mayor comodidad, varias versiones populares de YOLO están preentrenadas en el conjunto de datos MSCOCO. El 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. 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 o desde este repositorio:
YOLOv2, noviembre de 2016
*YOLOv2-pequeño
*YOLOv2-completo
YOLOv3, mayo de 2018
* YOLOv3-pequeño
*YOLOv3-completo
YOLOv4, mayo de 2020
* YOLOv4-pequeño
*YOLOv4-completo
YOLOv7, agosto de 2022
* YOLOv7-pequeño
*YOLOv7-completo
Las pesas previamente entrenadas de MSCOCO tienen fines de demostración únicamente. Los archivos .cfg y .names correspondientes a MSCOCO se encuentran en el directorio cfg. Comando 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.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 suele utilizar para confirmar que todo funciona correctamente.
Edificio
Varios métodos de compilación proporcionados en el pasado (antes de 2023) se han fusionado en una solución unificada. Darknet requiere C++ 17 o posterior, OpenCV, y usa 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 para Google Colab son las mismas que para Linux. Hay varios cuadernos de Jupyter disponibles 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
Opcional: si tiene una GPU NVIDIA moderna, puede instalar CUDA o CUDA+cuDNN en este momento. Si está instalado, Darknet utilizará su GPU para acelerar el procesamiento de imágenes (y videos).
Requerido: 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.
Requerido: Recuerde reconstruir Darknet.
Darknet puede ejecutarse sin él, pero si desea entrenar una red personalizada, 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 CUDA esté instalado, asegúrese de poder ejecutar nvcc y nvidia-smi. Es posible que deba modificar su variable PATH.
Si instaló CUDA o CUDA+cuDNN más adelante, o actualizó a una versión más reciente del software NVIDIA:
Estas instrucciones asumen (¡pero no necesariamente requieren!) que el sistema ejecuta Ubuntu 22.04. Si está utilizando otra distribución, ajuste según sea necesario.
`
sudo apt-get install build-essential git libopencv-dev cmake
mkdir ~/srccd ~/src
clon de git https://github.com/hank-ai/darknetcd red oscura
mkdir buildcd construir
cmake -DCMAKEBUILDTYPE=Lanzar ..
hacer -j4
paquete
sudo dpkg -i darknet-VERSIÓN.deb
`
Si está utilizando una versión anterior de CMake, debe actualizar CMake antes de ejecutar el comando cmake anterior. Para actualizar CMake en Ubuntu, puede usar el siguiente comando:
`
sudo apt-get purga cmake
sudo snap instalar cmake --classic
`
Si usa bash como su shell de comandos, es posible que necesite reiniciar su shell. Si utiliza pescado, debería seguir el nuevo camino inmediatamente.
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, debes editar estas dos líneas:
`
ESTABLECER (CPACKGENERATOR "DEB")# ESTABLECER (CPACKGENERATOR "RPM")
`
Para distribuciones como Centos y OpenSUSE, necesitas cambiar estas dos líneas en CM_package.cmake a:
`
CONFIGURAR (CPACKGENERATOR "DEB") CONFIGURAR (CPACKGENERATOR "RPM")
`
Para instalar el paquete de instalación, una vez compilado, utilice el administrador de paquetes habitual de su distribución. Por ejemplo, en un sistema basado 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 una biblioteca para que los desarrolladores de C, C++ y Python se vinculen.
/opt/darknet/cfg/... es donde se almacenan todas las plantillas .cfg.
¡Ahora ya terminaste! Darknet ha sido construido e instalado en /usr/bin/. Ejecute el siguiente comando para probar: versión darknet.
Si no tienes /usr/bin/darknet, eso significa que no lo instalaste, ¡simplemente lo compilaste! Asegúrese de instalar el archivo .deb o .rpm como se describe arriba.
Método CMake de Windows
Estas instrucciones asumen que tiene una instalación limpia de Windows 11 22H2.
Abra una ventana normal del símbolo del sistema cmd.exe y ejecute el siguiente comando:
`
instalación de alas Git.Git
Instalación de Winget Kitware.CMake
instalación de alas nsis.nsis
Winget instala 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, luego haga clic en Sí.
Una vez que todo esté descargado e instalado, haga clic nuevamente en el menú "Inicio de Windows" y seleccione Símbolo del sistema para desarrolladores para VS 2022. ¡No utilice PowerShell para realizar estos pasos, tendrá 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 haya seguido las instrucciones anteriores y haya ejecutado el símbolo del sistema del desarrollador (¡no PowerShell!), ejecute el siguiente comando para instalar Microsoft VCPKG, que se utilizará para compilar OpenCV:
`
cd c:mkdir c:srccd c:src
clon de git 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,world]:x64-windows
`
Tenga paciencia con este último paso, ya que puede tardar mucho en ejecutarse. Requiere descargar y crear 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 momento. Si está instalado, Darknet utilizará su GPU para acelerar el procesamiento de imágenes (y videos).
Requerido: 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.
Requerido: Recuerde reconstruir Darknet.
Darknet puede ejecutarse sin él, pero si desea entrenar una red personalizada, 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 CUDA esté instalado, asegúrese de poder ejecutar nvcc.exe y nvidia-smi.exe. Es posible que deba modificar su 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 instaló CUDA o CUDA+cuDNN más adelante, o actualizó 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 se hayan completado con éxito, deberá clonar Darknet y compilarlo. En este paso también necesitamos decirle a CMake dónde se encuentra vcpkg para que pueda encontrar OpenCV y otras dependencias:
`
cdc:src
clon de git https://github.com/hank-ai/darknet.gitcd darknetmkdir buildcd build
cmake -DCMAKEBUILDTYPE=Versión -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=Versión PACKAGE.vcxproj
`
Si recibe errores sobre algunas DLL CUDA o cuDNN que faltan, como cublas64_12.dll, copie manualmente el archivo 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
`
(¡Este es un ejemplo! Verifique qué versión está ejecutando y ejecute el comando apropiado para la versión que ha instalado).
Una vez copiados 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 con frecuencia la GUI de Visual Studio en lugar de msbuild.exe para crear proyectos, puede ignorar la línea de comando y cargar el proyecto Darknet en Visual Studio.
Ahora debería tener este archivo que puede ejecutar: C:srcDarknetbuildsrc-cliReleasedarknet.exe. Ejecute el siguiente comando para probar: C:srcDarknetbuildsrc-cliReleasedarknet.exe versión.
Para instalar correctamente Darknet, bibliotecas, archivos de inclusión y DLL necesarios, ejecute el asistente de instalación de NSIS integrado 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, por ejemplo 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 el archivo de plantilla .cfg.
¡Ahora ya terminaste! Una vez que se complete el asistente de instalación, Darknet se instalará en C: Archivos de programa Darknet. Ejecute el siguiente comando para probar: C: Archivos de programa Versión Darknetbindarknet.exe.
Si no tiene C:/Program Files/darknet/bin/darknet.exe, eso significa que no lo instaló, ¡simplemente lo creó! Asegúrese de revisar cada panel del asistente de instalación de NSIS como se describe en el paso anterior.
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 a Darknet/YOLO. DarkHelp CLI también tiene algunas funciones avanzadas que no están disponibles directamente en Darknet. Puede utilizar Darknet CLI y DarkHelp CLI juntos; no se excluyen mutuamente.
Para la mayoría de los comandos que se muestran a continuación, necesitará utilizar el archivo .weights para los archivos .names y .cfg correspondientes. Puede entrenar su propia red (¡muy recomendable!) o descargar redes neuronales de Internet que han sido entrenadas por otros y están disponibles gratuitamente. 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 objetivos estándar de 80 categorías)
Los comandos para ejecutar incluyen:
Enumere algunos comandos y opciones que se pueden ejecutar:
`
ayuda de la red oscura
`
Verificar versión:
`
versión de la red oscura
`
Utilice imágenes para hacer predicciones:
`
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
`
Usar vídeo:
`
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 la 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 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
`
Ejecutar en GPU específica:
`
V2: demostración del detector de red oscura animales.data animales.cfg animales_best.weights -i 1 test.mp4
`
Verifique 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,1150 0,8377 0,8513 0,9046 0,0954
2 bicicletas 89,0912 570 124 104 3548 0,9475 0,0525 0,8457 0,8213 0,9715 0,0285
3 personas 76,7937 7072 1727 2574 27523 0,8894 0,1106 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 510 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 217 451 4643 0,9237 0,0763 0,8844 0,9408 0,9115 0,0885
`
Verifique la precisión mAP@IoU=75:
`
Mapa del detector de darknet animales.datos animales.cfg animalesbest.weights -iouthresh 0,75
`
Es mejor volver a calcular los puntos de anclaje en DarkMark, ya que lo ejecutará 100 veces seguidas y seleccionará el mejor punto de anclaje de todos los puntos de anclaje calculados. Pero si deseas ejecutar una 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
Enlace rápido a la sección correspondiente de las preguntas frecuentes de Darknet/YOLO:
* ¿Cómo configuro mis archivos y directorios?
* ¿Qué perfil debo utilizar?
* ¿Qué comandos debo usar al entrenar mi propia red?
Utilice DarkMark para crear todos los archivos Darknet necesarios, que es la forma más sencilla de realizar anotaciones y entrenar. Esta es definitivamente la forma recomendada de entrenar nuevas redes neuronales.
Si desea configurar manualmente los distintos archivos para entrenar una red personalizada:
1. Cree una nueva carpeta para almacenar los archivos. En este ejemplo, se creará una red neuronal para detectar animales, por lo que se creará el siguiente directorio: ~/nn/animals/.
2. 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ó. En este ejemplo, ahora tenemos ~/nn/animals/animals.cfg.
3. En la misma carpeta donde colocó el archivo de configuración, cree un archivo de texto animales.nombres. En este caso, 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. Debe tener exactamente una entrada por línea, sin líneas en blanco ni comentarios. En este ejemplo, el archivo .names contendrá exactamente 4 líneas:
`
perro
gato
pájaro
caballo
`
5. Cree un archivo de texto animales.data en la misma carpeta. En este ejemplo, el archivo .data contendrá:
`
clases = 4
tren = /home/nombre de usuario/nn/animals/animals_train.txt
válido = /home/nombre de usuario/nn/animals/animals_valid.txt
nombres = /home/nombredeusuario/nn/animals/animals.nombres
copia de seguridad = /home/nombre de usuario/nn/animals
`
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 con anotaciones que describen 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. Hay exactamente una imagen por fila. 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 su GPU, es posible que necesite aumentar las subdivisiones. El mejor valor para usar es 1, así que comience con eso. Si 1 no funciona para usted, consulte las preguntas frecuentes de Darknet/YOLO.
Tenga en cuenta que maxbatches=…. Al principio, un buen valor es 2000 veces el número de categorías. En 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. En este ejemplo, usaremos pasos = 6400,7200 ya que maxbatches está configurado en 8000.
* Preste atención a 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 instancias que contengan la línea clases=... y modifíquelas con el número de clases en su archivo .names. En este ejemplo usaremos clases = 4.
En la sección [convolucional] antes de cada sección [yolo], busque todas las instancias que contengan la línea filters=... . El valor a utilizar es (número de categorías + 5) 3. Esto significa en este caso, (4 + 5) * 3 = 27. Entonces usaremos filtros = 27 en las líneas apropiadas.
9. ¡Empieza a entrenar! Ejecute el siguiente comando:
`
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:
`
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 CLI alternativa sólida a Darknet para usar el mosaico de imágenes para el seguimiento de objetos en video, o una API C++ sólida que se puede usar fácilmente en aplicaciones comerciales, consulte DarkHelp.
Consulte las preguntas frecuentes de Darknet/YOLO y vea si ayuda a responder su pregunta.
Mire 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() usado durante el entrenamiento con std::sort() (aún existen otros menos comunes)
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 predicciones (código "alfabeto")
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
Vuelva a escribir CMakeLists.txt para utilizar la nueva detección CUDA
Se eliminó el antiguo código "alfabeto" y se eliminaron más de 700 imágenes en datos/etiquetas.
Construya más allá del código fuente
Tiene 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 envíe cv::Mat a void, en su lugar utilícelo como un objeto C++ adecuado
Reparar o mantener las estructuras de imágenes internas utilizadas de manera consistente
Corrección de compilación para dispositivos Jetson basados en ARM
* Dado que NVIDIA ya no admite dispositivos Jetson originales, es poco probable que se solucionen (no hay compilador C++17)
* Nuevo dispositivo Jetson Orin ahora funcionando
Reparar la API de Python en V3
Se necesita un mejor soporte para Python (¿algún desarrollador de Python quiere ayudar con esto?)
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 de caracteres y reemplácelos con std::string
No oculte las advertencias, limpie las advertencias del compilador (trabajo en progreso)
Es mejor usar 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 1 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 para 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
En el ejemplo, se utiliza el elemento de etiqueta de título Markdown y parte del contenido se complementa, pule y ajusta la tipografía de manera lógica. Por ejemplo, agregar números de serie chinos, serialización de números arábigos, saltos de línea y otros formatos pueden hacer que la información se muestre más ordenada y sea más conveniente para los usuarios verificarla.
¡Espero que este artículo pueda ser útil para todos!