Cómo mejorar la velocidad de detección de texto de escena en opencv3Publicado desde: Problemas que puede encontrar: 1. Si ejecuta un clasificador, no habrá respuesta ni se mostrará durante varias horas. Porcentaje de entrenamiento. Esto se debe a que su número de muestras negativas es demasiado pequeño o el tamaño de las muestras negativas es demasiado pequeño. Todas las muestras negativas en el clasificador han sido RECHAZADAS y el programa no puede ingresar al siguiente ciclo y darse por vencido de manera decisiva. La solución es hacer que la muestra negativa sea lo más grande posible. Por ejemplo, mi muestra positiva es 40*15, ***300 y la muestra negativa es 640*480, ***500. o argumento demasiado grande de la función CvAlloc, Internet dice que este error es Debido a que la asignación de memoria de una única imagen ip proporcionada por opencv no puede exceder los 10,000, y el tamaño de cada una de mis muestras negativas no excederá este tamaño, la razón específica no está clara. Posteriormente reduje el número de muestras negativas y aumenté el tamaño, y el problema quedó solucionado. Recientemente tuve que hacer un proyecto de reconocimiento de género. Utilicé el entrenamiento de cabello OPENCV para la detección de rostros y el posicionamiento de rasgos faciales. En los últimos dos días, aprendí aquí cómo usar opencv para entrenar mi propio clasificador. Durante estos dos días de estudio, encontré muchos problemas, pero conocí a varios héroes de buen corazón que me ayudaron a resolver muchos problemas, especialmente a Wuji. Aquí me gustaría agradecerle nuevamente por su ayuda. I. Introducción El método de detección de objetivos fue propuesto originalmente por Paul Viola [Viola01] y luego mejorado por Rainer Lienhart [Lienhart02]. Los pasos básicos de este método son: primero, utilizar la función Hash de las muestras (alrededor de varios cientos de imágenes de muestra) para entrenar un clasificador para obtener un clasificador potenciador en cascada. El término "cascada" en clasificadores se refiere a que el clasificador final es una cascada de múltiples clasificadores simples. En la detección de imágenes, la ventana detectada pasa por cada nivel del clasificador por turno, de modo que la mayoría de las áreas candidatas quedan excluidas en las capas de detección anteriores, y todas las áreas detectadas por cada nivel del clasificador son áreas objetivo. Una vez entrenado el clasificador, se puede aplicar a la detección de regiones de interés en la imagen de entrada. La salida del clasificador es 1 si se detecta la región objetivo y 0 en caso contrario. Para detectar la imagen completa, la ventana de búsqueda se puede mover alrededor de la imagen para detectar posibles objetivos. Para buscar objetos objetivo de diferentes tamaños, el clasificador está diseñado para cambiar el tamaño, lo cual es más efectivo que cambiar el tamaño de la imagen a detectar. Por lo tanto, para detectar objetos de destino de tamaño desconocido en la imagen, el programa de escaneo generalmente necesita escanear la imagen varias veces usando ventanas de búsqueda de diferentes proporciones. Actualmente existen cuatro técnicas de impulso que admiten dichos clasificadores: impulso discreto (DiscreteAdaboost), impulso real (RealAdaboost), impulso suave (GentleAdaboost) y impulso lógico (Logitboost). El llamado "impulso" significa que cada capa del clasificador en cascada puede elegir un algoritmo de impulso (votación ponderada) y obtenerlo mediante el autoentrenamiento del clasificador básico. Según el análisis anterior, la detección de objetivos se divide en tres pasos: 1. Crear muestras 2. Entrenar al clasificador 3. Usar el clasificador entrenado para la detección de objetivos; 2. Cree muestras. Las muestras de entrenamiento se dividen en muestras positivas y muestras negativas. Las muestras positivas se refieren a las muestras objetivo que se van a detectar y las muestras negativas se refieren a cualquier otra imagen. Muestras negativas Las muestras negativas pueden provenir de cualquier imagen, pero estas imágenes no pueden contener características de destino. Las muestras negativas se describen mediante archivos de descripción de fondo. El perfil de fondo es un archivo de texto en el que cada línea contiene el nombre de archivo de la imagen negativa (según la ruta relativa al perfil). El proceso de creación de archivos es el siguiente: Utilice el comando Dos para generar un archivo de descripción de muestra.
El método específico es ingresar su directorio de imágenes en Dos, por ejemplo, mis imágenes están en D: \ face \ posdata, luego: presione Ctrl R para abrir el programa en ejecución de Windows, ingrese cmd para abrir la ventana de comandos de DOS, ingrese d: negdata.dat, y luego Genere un archivo negdata.dat en la ruta de la imagen. Después de abrir el archivo, elimine la última línea de negdata.dat, generando así un archivo de descripción de muestra negativa. Los resultados de la ventana de comando DOS son los siguientes: Muestras positivas Para muestras positivas, el enfoque habitual es cortar todas las muestras positivas y regularizar sus tamaños (es decir, escalar a un tamaño específico), como se muestra en la siguiente figura: Para muestras positivas. , el enfoque habitual es cortar todas las muestras positivas y regularizar sus tamaños (es decir, escalarlas a un tamaño específico), como se muestra en la siguiente figura. Para muestras positivas, el enfoque habitual es cortar todas las muestras positivas y regularizarlas (es decir, escalarlas a un tamaño específico), como se muestra en la siguiente figura: Dado que las muestras positivas ingresadas a HaarTraining son todas archivos vec, debe usar CreateSamples programa que viene con OpenCV (en el opencv\bin al que está prestando atención, si no, debe compilar el archivo .dsw en opencv\apps\HaarTraining\make. Preste atención a la necesidad de compilar su archivo .dsw, y preste atención para compilar la versión de lanzamiento). ¿Las muestras preparadas se convertirán en archivos vec? Los pasos de conversión son los siguientes: 1) Cree un archivo de descripción de muestra positiva, que se utiliza para describir el nombre del archivo de muestra positiva (incluida la ruta absoluta o la ruta relativa), el número de muestras positivas y la posición y el tamaño de cada muestra positiva. en la imagen. Un archivo de descripción de muestra de película positiva típico es el siguiente: posdata/1(10).bmp1112323 posdata/1(11).bmp1112323 posdata/1(12).bmp1112323 Sin embargo, también puede colocar el archivo de descripción en la ruta posdata (que es decir, la ruta de muestra de película positiva) A continuación, no es necesario agregar la ruta relativa anterior. El mismo método también se puede utilizar para generar el archivo de descripción de muestra negativa. Finalmente, use la herramienta de reemplazo de texto para reemplazar todos los "bmp" con "bmp1112323". deja de responder. Puede copiar el contenido de la palabra reemplazada y luego volver a copiarlo. Los cinco números después de bmp representan el número de imágenes, la posición inicial del objetivo y su ancho y alto. Esto genera un archivo de descripción de muestra positiva posdata.dat. 2) Ejecute el programa CreateSamples. Si lo ejecuta directamente en el entorno VC, puede configurar los parámetros de ejecución en la columna Programarguments de la página de propiedades Project\Settings\Debug. El siguiente es un ejemplo de parámetros en ejecución: -infoD:\face\posdata\posdata.dat-vecD:\face\pos.vec-num50-w20-h20 significa que hay 50 muestras, el ancho de la muestra es 20 y la altura es 20, y la descripción de la muestra positiva El archivo es posdata.dat y los resultados se envían a pos.vec. O ingrese "D:\ProgramFiles\OpenCV\bin\createsamples.exe" -info "posdata\posdata.dat" -vecdata\pos.vec-num50-w20-h20 Después de ejecutar, se ubicará en d: \face \data bajo. Genere un archivo *.vec. Este archivo contiene el número de muestra positivo, el ancho y el alto, y todos los datos de la imagen de muestra. Los resultados se muestran en la siguiente figura: Parámetros de la línea de comando para crear el programa de muestra: Parámetros de la línea de comando: -vec El nombre del archivo de salida de la muestra positiva de entrenamiento. -img imagen de destino de origen (como el icono de la empresa) -bg archivo de descripción de fondo.