Tabla de contenido:

Crear clasificadores de imágenes OpenCV usando Python: 7 pasos
Crear clasificadores de imágenes OpenCV usando Python: 7 pasos

Video: Crear clasificadores de imágenes OpenCV usando Python: 7 pasos

Video: Crear clasificadores de imágenes OpenCV usando Python: 7 pasos
Video: DETECCION Y CLASIFICACION DE MANOS con Python y OpenCV | Clasificador de Imágenes con Tensorflow 2024, Mes de julio
Anonim
Crear clasificadores de imágenes OpenCV usando Python
Crear clasificadores de imágenes OpenCV usando Python

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

Creación de muestras positivas en OpenCV
Creación de muestras positivas en OpenCV
Creación de muestras positivas en OpenCV
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

Crear archivo de vector positivo
Crear 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

Entrenando al clasificador
Entrenando al clasificador
Entrenando al clasificador
Entrenando al clasificador
Entrenando al clasificador
Entrenando al 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: