Red de conocimiento informático - Material del sitio web - Cómo utilizar el programa de entrenamiento de clasificadores en cascada propio de OpenCV para entrenar un clasificador

Cómo utilizar el programa de entrenamiento de clasificadores en cascada propio de OpenCV para entrenar un clasificador

Lo primero a tener en cuenta es que el entrenamiento de haar de OpenCV extrae características de haar. El clasificador es un clasificador en cascada AdaBoost (si necesita comprender el algoritmo Adaboost, visite .NET Framework 2.0). El llamado clasificador en cascada consiste en conectar algunos clasificadores de componentes simples (pueden entenderse como clasificadores ordinarios) en secuencia. Los resultados finales de detección y clasificación deben pasar la detección y clasificación de todos los clasificadores de componentes antes de que puedan considerarse efectivos. resultados. De lo contrario, se considerará que no hay ningún objetivo que debamos encontrar en el área de detección actual.

Para utilizar el programa de entrenamiento de pelo propio de OpenCV para entrenar a un clasificador, debe seguir los siguientes pasos:

(1) Recopilar muestras de entrenamiento:

El Las muestras de entrenamiento incluyen muestras positivas y negativas. En términos sencillos, las muestras positivas son imágenes que contienen solo el objetivo que necesita. La imagen de muestra negativa solo necesita no contener el objetivo. Pero cabe señalar que las muestras negativas no se seleccionan al azar. Por ejemplo, si el objetivo a detectar es un automóvil, entonces la muestra positiva debe ser una imagen que contenga solo automóviles, mientras que la muestra negativa obviamente no puede ser algunas imágenes que contengan el cielo, el océano o el paisaje. Esto se debe a que, en última instancia, se desea entrenar un clasificador para que detecte automóviles, y los automóviles deben estar en la carretera. En otras palabras, las imágenes finalmente detectadas por el clasificador deben ser imágenes que contengan carreteras, señales de tráfico, edificios, vallas publicitarias, automóviles, motocicletas, triciclos, peatones, bicicletas, etc. Obviamente, las muestras negativas aquí deberían incluir motocicletas, triciclos, bicicletas, peatones, carreteras, arbustos, flores, señales de tráfico, vallas publicitarias, etc.

Además, debe recordarse que el método adaboost también es un algoritmo clásico en el aprendizaje automático, y el requisito previo del algoritmo de aprendizaje automático es que la muestra de prueba y la muestra de entrenamiento sean independientes y estén distribuidas de manera idéntica. La llamada distribución independiente e idéntica puede entenderse simplemente como: las muestras de entrenamiento deben ser muy cercanas o consistentes con la aplicación final. De lo contrario, los algoritmos basados ​​en aprendizaje automático no pueden garantizar la eficacia del algoritmo. Además, suficientes muestras de entrenamiento (al menos miles de muestras positivas y miles de muestras negativas) también son un requisito previo para garantizar la eficacia del algoritmo de entrenamiento.