Este es un problema extremadamente difícil. Fui parte de un equipo que trabajó en él durante varios años, y después de haber desarrollado y apoyado otras aplicaciones similares durante mucho tiempo, puedo decir que la detección de abolladuras es un problema particularmente complicado y mucho más difícil de lo que parece al principio.
Hacer que un algoritmo funcione en condiciones de laboratorio o en imágenes conocidas es una cosa; El desarrollo de un sistema que sea preciso y robusto para imágenes "naturales" como los automóviles vistos en un estacionamiento probablemente requeriría un equipo que trabaje durante varios años. Además del problema central de crear el algoritmo, existen muchas otras dificultades de ingeniería.
El código de muestra que probó no es un mal comienzo. Si pudiera encontrar los bordes alrededor del lado derecho oscuro de la abolladura, podría comparar el mapa de bordes del automóvil con el ding con un mapa de bordes de un automóvil bueno conocido fotografiado desde el mismo ángulo con la misma iluminación. Controlar la iluminación ayudará bastante.
Los problemas a considerar incluyen los siguientes:
- Iluminación (mucho más difícil de lo que parece al principio)
- Superficie 3D esperada del panel exterior ensamblado (por ejemplo, a partir de datos CAD)
- Criterios que caracterizan una abolladura: área, profundidad, perfil, etc.
- Criterios para falsos negativos y falsos positivos
- Medios para guardar datos de abolladuras y / o abolladuras de mapa en un modelo del automóvil (o diseño de mariposa)
- Metodología y dispositivo para medir características de abolladuras "verdaderas": profundidad, área, etc.
- Amplia base de datos de abolladuras de una muestra aleatoria de vehículos
- Manejo de diferentes colores y acabados de pintura.
1. Iluminación
Como Martin B señaló correctamente arriba, la iluminación correcta es crítica para este problema. Incluso con una buena iluminación estructurada, tendrá grandes dificultades para detectar abolladuras pequeñas cerca de líneas características, espacios entre paneles, manijas, etc.
La entrada de Wikipedia para la iluminación estructurada es un poco delgada, pero es un comienzo para entender el principio:
http://en.wikipedia.org/wiki/Structured_light
Se pueden usar franjas de luz para detectar entradas (abolladuras) y salidas (espinillas). Para ver un ding, necesitará un movimiento relativo entre la fuente de luz y el automóvil. O bien la luz + cámara se mueven juntas en relación con el automóvil, o el automóvil se mueve más allá de la luz + cámara.
Aunque las entradas y salidas tienen apariencias características cuando se ven en el borde de una franja clara, la detectabilidad de una abolladura determinada depende del tamaño y la profundidad de la abolladura en relación con el ancho de la franja clara. La curvatura de un automóvil es compleja, por lo que es bastante difícil presentar una franja de luz constante a la cámara. A medida que la franja de luz se mueve a través de la carrocería del automóvil, la curvatura e incluso la intensidad de la franja de luz variarán.
Una solución parcial es garantizar que la cámara y la franja de luz siempre estén en un ángulo consistente con respecto a la normal (la perpendicular 3D) de la parte de la superficie que se está inspeccionando. En la práctica, se requeriría un robot para mover la cámara con precisión en relación con la superficie del cuerpo. Mover el robot con precisión requiere conocer la postura (posición y ángulos 3D) de la carrocería del automóvil, lo cual es un problema desagradable en sí mismo.
Para cualquier inspección para aplicaciones automotrices, debe controlar completamente la iluminación. Eso significa no solo colocar luces de su elección en lugares conocidos, sino también bloquear todas las demás luces. Esto significará un recinto bastante grande. Como los paneles del automóvil están curvados hacia afuera (casi como una superficie esférica), reflejarán la luz de las fuentes a su alrededor. Para simplificar en gran medida este problema, puede usar una barra fluorescente de alta frecuencia dentro de un recinto cubierto con terciopelo negro. Muy a menudo es necesario ir a extremos como ese para las aplicaciones de inspección.
2. Superficie 3D La superficie
exterior de un automóvil está compuesta de curvas complejas. Para saber si un lugar sospechoso es una falla, debe comparar ese lugar con las características conocidas del automóvil. Eso significa que necesitaría hacer coincidir la imagen 2D de una cámara con un modelo 3D visto en cierto ángulo. Este no es un problema resuelto rápidamente, y es lo suficientemente difícil de hacer bien como para que algunas compañías se especialicen en él.
3. Caracterización de defectos
Para la investigación académica o las pruebas de laboratorio, puede ser suficiente desarrollar un algoritmo que promete o mejora un método existente. Para resolver adecuadamente este problema para uso comercial o industrial real, debe tener una especificación altamente detallada para las abolladuras de tamaño que desea detectar.
Cuando abordamos este problema, no había estándares razonables de la industria o nacionales para abolladuras (deformaciones 3D). Es decir, no había una técnica acordada para caracterizar una abolladura por su área, profundidad y forma. Acabamos de recibir muestras que, según los expertos de la industria, eran malas, no demasiado malas y marginales en términos de gravedad. Definir la "profundidad" de un ding también es complicado, ya que un ding es una muesca 3D en (típicamente) una superficie 3D que se curva hacia afuera.
Las abolladuras más grandes son más fáciles de detectar, pero también son menos comunes. Un trabajador automotriz experimentado puede escanear la carrocería de un automóvil rápidamente, mucho más rápido que un observador no capacitado, y encontrar abolladuras superficiales del tamaño de su dedo meñique rápidamente. Para justificar el costo de un sistema automatizado, es probable que tenga que igualar la capacidad de un observador experimentado.
4. Criterios para errores de detección
Al principio, debe establecer criterios para falsos negativos y falsos positivos aceptables. Incluso si solo está estudiando este problema como un proyecto de I + D y no tiene la intención de desarrollar un producto, intente definir sus criterios de detección.
falso negativo: abolladura presente, pero no detectada falso positivo: área intacta identificada como abolladura
Por lo general, hay una compensación: aumente la sensibilidad y encontrará más dings (disminuya los falsos negativos), pero también encontrará más dings que no están allí (aumente los falsos positivos). Es bastante fácil convencerse de que un algoritmo funciona mejor de lo que realmente lo hace: nuestro sesgo natural es notar defectos detectados por el algoritmo y explicar los que no ha detectado. Realizar pruebas ciegas y automatizadas. Si es posible, haga que otra persona mida los golpes y asigne gravedad para que no sepa cuáles son las medidas reales.
5. Guardar datos y / o mapearlos
Una abolladura se caracteriza por su gravedad y su ubicación en la carrocería del automóvil. Para conocer su ubicación, debe resolver el problema de correspondencia 2D a 3D mencionado anteriormente.
6. Determinar la forma "verdadera" de las abolladuras Las
abolladuras son difíciles de medir. Una abolladura afilada y una abolladura redondeada de la misma superficie y profundidad aparecerán diferentes. La medición de abolladuras por medios mecánicos conduce a juicios subjetivos, y también es bastante tedioso usar medidores de profundidad, reglas, etc., cuando es probable que tengas que medir docenas si no más.
Este es uno de los problemas de ingeniería más difíciles de resolver para cualquier proyecto de detección de defectos para la fabricación: ¿cómo se mide un defecto y se lo caracteriza? Si hay una norma para hacerlo, ¿se correlaciona bien con algo que mide el sistema de inspección? si el sistema de inspección no encuentra un ding que "debería haber" encontrado, ¿quién tiene la culpa?
Dicho esto, si un sistema de inspección funciona lo suficientemente bien para una muestra de defectos conocidos, los usuarios pueden llegar a confiar en él y el sistema en sí se convierte en el estándar para definir la gravedad del defecto.
7. Amplia base de datos de abolladuras
Idealmente, tendría cientos, si no miles, de imágenes de muestra de abolladuras de diferentes severidades en diferentes ubicaciones en vehículos de fabricantes difíciles. Si está interesado en encontrar abolladuras causadas por accidentes durante el proceso de ensamblaje, podría tomar mucho tiempo recopilar ese tipo de datos. Las abolladuras causadas durante el proceso de ensamblaje no son comunes.
Si solo está interesado en encontrar abolladuras causadas por accidentes o daños ambientales, entonces ese es un asunto diferente. Los tipos de abolladuras serán diferentes de los causados por golpes accidentales dentro de una planta de ensamblaje automático.
8. Manejo de diferentes colores de pintura
Es cierto que los detectores de bordes pueden ser razonablemente robustos para detectar bordes en imágenes de diferentes niveles de contraste, pero puede ser bastante desalentador ver lo que realmente significa "diferentes niveles de contraste" para diferentes pinturas y acabados automotrices. . Una franja ligera que se ve muy bien en un automóvil negro brillante podría ser apenas detectable en un automóvil blanco con pintura vieja.
La mayoría de las cámaras tienen un rango dinámico relativamente limitado, por lo que es difícil lograr un buen contraste tanto para las superficies negras brillantes como para las superficies opacas blancas. Es muy probable que tenga que controlar automáticamente la intensidad de la iluminación. Eso también es difícil.