
Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:40

Los clasificadores de Haar en python y opencv son una tarea bastante complicada pero fácil.
A menudo nos enfrentamos a problemas en la detección y clasificación de imágenes. la mejor solución es crear tu propio clasificador. Aquí aprendemos a hacer nuestros propios clasificadores de imágenes con unos pocos comandos y programas de Python largos pero simples.
La clasificación requiere un gran número de imágenes negativas y positivas, los negativos no contienen el objeto requerido mientras que las positivas son las que contienen el objeto a detectar.
Se requieren alrededor de 2000 negativos y positivos. El programa Python convierte la imagen a escala de grises y un tamaño adecuado para que los clasificadores tomen el tiempo óptimo para crear.
Paso 1: Software requerido
Necesita los siguientes softwares para la creación de su propio clasificador
1) OpenCV: la versión que utilicé es 3.4.2. la versión está fácilmente disponible en Internet.
2) Python: La versión que se utiliza es 3.6.2. Puede descargarse de python.org
Además, necesita una cámara web (por supuesto).
Paso 2: descargar las imágenes
El primer paso es tomar una imagen clara del objeto a clasificar.
El tamaño no debe ser muy grande, ya que la computadora tarda más en procesar. Tomé el tamaño de 50 por 50.
A continuación descargamos las imágenes negativas y positivas. Puedes encontrarlos en línea. Pero usamos el código Python para descargar imágenes de 'https://image-net.org'
A continuación, convertimos las imágenes a escala de grises y a tamaño normal. Esto está también implementado en el código. El código también elimina cualquier imagen defectuosa
A estas alturas, su directorio debería contener la imagen del objeto, por ejemplo, watch5050-j.webp
Si no se crea la carpeta de datos, hágalo manualmente
El código de Python se proporciona en el archivo.py
Paso 3: creación de muestras positivas en OpenCV


Ahora vaya al directorio opencv_createsamples y agregue todo el contenido mencionado anteriormente
en el símbolo del sistema, vaya a C: / opencv342 / build / x64 / vc14 / bin para encontrar las aplicaciones opencv_createsamples y opencv_traincascade
ahora ejecuta los siguientes comandos
opencv_createsamples -img watch5050-j.webp
Este comando es para crear las muestras positivas del objeto 1950 para ser exactos Y el archivo de descripción info.lst de las imágenes positivas la descripción debe ser así 0001_0014_0045_0028_0028-j.webp
Ahora la carpeta contiene
información
carpeta de imágenes neg
archivo bg.txt
carpeta de datos vacía
Paso 4: Creación de un archivo de vector positivo

Ahora cree el archivo de vector positivo que proporciona la ruta a las imágenes positivas el archivo de descifrado
Usa el siguiente comando
opencv_createsamples -info info / info.lst -num 1950 -w 20 -h 20 -vec positives.vec
Por ahora, el contenido del directorio debe ser el siguiente:
--neg
---- negimages.jpg
--opencv
--info
--datos
--positives.vec
--bg.txt
--watch5050-j.webp
Paso 5: Entrenamiento del clasificador



Ahora entrenemos la cascada de haar y creemos el archivo xml
Usa el siguiente comando
opencv_traincascade -data data -vec positives.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20
Las etapas son 10 Aumentar las etapas requiere más procesamiento, pero el clasificador es mucho más eficiente.
Ahora se crea haarcascade Se tarda unas dos horas en completar Abra la carpeta de datos allí encontrará cascade.xml Este es el clasificador que se ha creado
Paso 6: Prueba del clasificador
La carpeta de datos contiene los archivos como se muestra en la imagen de arriba.
Después de la creación del clasificador, vemos si el clasificador está funcionando o no ejecutando el programa object_detect.py. No olvide colocar el archivo classifier.xml en el directorio de Python.
Paso 7: agradecimiento especial
Me gustaría agradecer a Sentdex aquí, que es un gran programador de Python.
Tiene un nombre de youtube con el nombre mencionado anteriormente y el video que me ayudó mucho tiene este enlace
La mayor parte del código se ha copiado de sentdex. Aunque recibí mucha ayuda de sentdex, aún me enfrenté a muchos problemas. Solo quería compartir mi experiencia.
Espero que este intructable te haya ayudado !!! Mantente sintonizado para más.
BR
Tahir Ul Haq
Recomendado:
Escáner de código QR usando OpenCV en Python: 7 pasos

Escáner de código QR que usa OpenCV en Python: En el mundo actual, vemos que el código QR y el código de barras se utilizan en casi todas partes, desde el empaque del producto hasta los pagos en línea, y hoy en día vemos códigos QR incluso en el restaurante para ver el menú. Dudo que sea el gran pensar ahora. Pero alguna vez has
Detección de color en Python usando OpenCV: 8 pasos

Detección de color en Python usando OpenCV: ¡Hola! Este instructivo se usa para guiar sobre cómo extraer un color específico de una imagen en Python usando la biblioteca openCV. Si eres nuevo en esta técnica, no te preocupes, al final de esta guía podrás programar tu propio color
Reconocimiento e identificación facial - Face ID de Arduino usando OpenCV Python y Arduino .: 6 pasos

Reconocimiento e identificación facial | Arduino Face ID usando OpenCV Python y Arduino .: El reconocimiento facial AKA face ID es una de las características más importantes de los teléfonos móviles en la actualidad. Entonces, tenía una pregunta " ¿puedo tener una identificación de rostro para mi proyecto Arduino " y la respuesta es sí … Mi viaje comenzó de la siguiente manera: Paso 1: Acceso a nosotros
Cómo crear mapas estilizados personalizados usando OpenStreetMap: 7 pasos (con imágenes)

Cómo crear mapas estilizados personalizados usando OpenStreetMap: En este instructivo, describiré un proceso mediante el cual puede generar sus propios mapas estilizados personalizados. Un mapa estilizado es un mapa donde el usuario puede especificar qué capas de datos se visualizan, así como definir el estilo con el que cada capa es v
Crear imágenes gráficas estéreo en Excel: 8 pasos (con imágenes)

Crear imágenes gráficas estéreo en Excel: las imágenes gráficas estéreo pueden agregar profundidad a los gráficos 3D