Red de conocimiento informático - Material del sitio web - Cómo usar doppia para la detección de rostros

Cómo usar doppia para la detección de rostros

doppia a **** proporciona tres métodos de detección de rostros, a saber, DPM, HeadHunter y HeadHunter_baseline. No hay diferencia en el uso entre los dos últimos, pero los modelos seleccionados son diferentes y DPM puede considerarse lo opuesto en toda la parte de doppia. del contenido, se ejecuta usando el compilador matlab. Esta sección explica principalmente cómo usar HeadHunter, cómo usar doppia, cómo usar doppia, cómo usar doppia y cómo usar doppia. Esta sección se centrará en el uso de HeadHunter.

El módulo de detección de rostros está en src/applications/objects_detection/. Si la compilación es exitosa, puede ver el archivo ejecutable object_detection. El programa admite una variedad de detecciones de objetivos. Lo que desea detectar depende principalmente. En su archivo de configuración, el archivo de configuración utilizado para la detección de rostros es eccv2014_face_detection_pascal.config.ini. Podemos usarlo como plantilla y modificarlo según la situación. Primero, hablemos de algunas modificaciones.

Save_detections = true se establece en true para guardar los resultados

process_folder = /opt/wangchao/new-fddb/ Este es el directorio donde Las imágenes se guardan. Tenga en cuenta que aquí solo se admite un único directorio. Si la imagen se guarda en otro directorio bajo este directorio, no se puede leer.

method = gpu_channels Aquí puede configurar y seleccionar cpu o gpu, etc. Elegimos gpu

model = ..../.../.../data/trained_models/face_detection/headhunter.proto.bin Mencioné antes los métodos HeadHunter y HeadHunter_baseline, la diferencia radica en selección aquí Los modelos son diferentes. Seleccionamos HeadHunter, si usamos otro modelo, simplemente señalemos la ruta a ese modelo.

score_threshold = 0,5 Este es un umbral; si se reduce, la recuperación aumentará y la precisión disminuirá en consecuencia; consulte el documento sobre el impacto de diferentes umbrales en los resultados.

Hay algunas otras opciones que no podemos fijar en este momento pero que podemos dejar en sus valores predeterminados.

Además, ejecute ./objects_detection --help para ver más opciones de configuración y luego ejecute el siguiente comando para iniciar el programa:

./objects_detection -c eccv2014_face_detection_pascal.config. ini --gui .disable true --gpu.device_id 1

Aquí podemos ver dos opciones adicionales. --gui.disable y --gpu.device_id, el programa estipula que las opciones externas tienen mayor prioridad que el archivo de configuración, lo que significa que podemos modificar una de las opciones externamente para facilitar las pruebas mientras usamos el mismo archivo de configuración, y aquí El dos opciones son opciones comunes, -gui.disable se usa para elegir si habilitar la interfaz gráfica de usuario, porque estamos ejecutando en un host en la nube, así que seleccione verdadero para deshabilitar la interfaz gráfica de usuario -gpu.device_id se usa para elegir si desea habilitar la interfaz gráfica de usuario, porque se ejecutan en la nube Ejecutar en el host, así que seleccione verdadero para deshabilitar la interfaz gráfica de usuario. device_id se usa para seleccionar el dispositivo gpu. Nuestra máquina tiene dos tarjetas. Elegimos la segunda tarjeta, por lo que está configurada en 1 y el valor predeterminado es 0.

Después de que se inicie el programa, se imprimirán muchos comandos. Si tiene cuidado, puede encontrar el siguiente mensaje de error:

Error al analizar el formato del texto doppia_protobuf.DetectorModel: 2: 2: Tipo de mensaje "doppia_protobuf. DetectorModel "Ningún campo llamado 'E'.

No preste atención a este mensaje de error, no afectará la ejecución del programa. El desarrollador dijo que el error se informa aquí porque protobuf está seleccionando una expresión y, cuando falla, lo hará. seleccione otra expresión disponible (eso es probablemente lo que significa), significa que su programa se está ejecutando normalmente.

Al final del programa, se generará una carpeta llamada 2015_09_18_79659_recordings en el directorio actual, que contiene la secuencia de datos de detección (detections.data_sequence). Esto es exactamente lo que estamos buscando, pero obviamente lo hacemos. También necesitan procesamiento adicional.

El script tools/objects_detection/detections_to_caltech.py ​​​​en el directorio raíz de doppia se utiliza para ayudarnos a convertir .data_sequence en contenido que podamos entender. Tiene dos opciones -i y -o, que especifican. data_sequence respectivamente y directorio de salida.

Después de ejecutar, generará un archivo txt con el nombre del nombre de la imagen en el directorio de salida, que almacena las coordenadas y la probabilidad de confianza de la cara interceptada, de modo que usemos doppia para completar el programa de detección de caras y obtuvimos los resultados que queríamos.

Aquí se proporcionan dos scripts, a saber, el script de detección modificado_too_caltech.py ​​​​y el script de interceptación de rostros. El detects_to_caltech.py ​​​​modificado almacenará todas las fotos en un archivo txt en el formato especificado, y el script de interceptación de rostros leerá el archivo txt para extraer rostros de las fotos correspondientes.