Tengo una nube de puntos y necesito hacerla coincidir con un modelo CAD en una base de datos de ~ 500 modelos. ¿Qué algoritmos podría usar?

Probablemente desee hacer una búsqueda de varios pasos, ya que las comparaciones masivas serán muy lentas. En cada pasada, desea encontrar una manera de crear un hash para todos los objetos geométricos y verificar los hash (en lugar de hacer millones de comparaciones de vertical a vertical).

Los cuadros delimitadores serían un primer paso obvio, puede cuantificar los valores del cuadro delimitador a una tolerancia dada para tener en cuenta los epsilones flotantes, etc. Probablemente debería traducir todos los cuadros delimitadores para que compartan mínimos comunes (es decir, la esquina más pequeña del límite todas las cajas deben ser (0,0,0).

Sin embargo, si no sabe que su nube de puntos está alineada con los modelos, no puede usar cuadros delimitadores; consulte el siguiente paso.

En una segunda pasada, si tienes más de un golpe, deberás crear nuevos hashes. Si su nube de puntos proviene de datos CAD, es decir, si debe coincidir con el vértice -para-vértice, solo necesita hacer un hash. Si se escanean sus datos, es decir, si tiene un escaneo 3D y una colección de modelos cad, probablemente debería comparar los cascos convexos. Use algo como QHull para generar cascos convexos a partir de la nube de puntos y todas las piezas en su búsqueda. Puede hacer un rechazo rápido descartando muestras con recuentos de vértices de casco convexo muy diferentes (de nuevo, es posible que desee cuantificar las muestras de casco convexo para ocultar pequeños errores).

Si todavía tiene múltiples candidatos, use las diferencias punto a punto más largas en los cascos convexos para generar un eje mayor y otro menor para que pueda rotar los modelos en alineación (eje largo a largo, segundo eje a segundo y vector cruzado de esos para cruzar) . Use las diferencias de volumen entre los cascos convexos como una métrica para similitud.

Si eso no te acerca lo suficiente, las cosas se ponen más difíciles. Si está haciendo comparaciones de la nube de puntos con el modelo de cad, puede intentar voxelizar la nube de puntos y los datos de cad y compararlos (utilizando las rotaciones de la operación anterior)

More Interesting

¿Cuál es el mejor libro sobre Support Vector Machines?

¿Hay algún otro enfoque para resolver el sobreajuste además de la deserción y la normalización por lotes en el aprendizaje profundo?

¿Las PGM son esenciales para el aprendizaje profundo?

¿Las estadísticas necesitan un cambio de marca en respuesta a la ciencia de datos y el aprendizaje automático, que están superando las estadísticas en términos de relevancia? ¿Por qué o por qué no?

¿Le resulta aburrido resolver los problemas de aprendizaje automático tipo kaggle intelectualmente aburrido (en comparación con la programación competitiva, por ejemplo)?

Cómo discriminar una señal del ruido en la última investigación y desarrollo de AI / ML

¿Qué nuevas empresas están buscando actualmente científicos de datos?

Cómo crear rápidamente un prototipo de una aplicación de reconocimiento de imágenes utilizando el aprendizaje automático y la red neuronal

¿Qué es la regresión logística?

¿El trabajo de finanzas corporativas será reemplazado por aprendizaje automático?

No tengo dinero para comprar una computadora poderosa, ¿cómo puedo aprender en la GPU?

¿La asignación de Dirichlet latente es un modelo paramétrico o no paramétrico?

Cómo construir un sistema de recomendación de itinerario basado en las preferencias del usuario

Quiero hacer aplicaciones de visión por computadora. ¿Dónde empiezo?

¿Por qué el libro de Murphy dice en el clasificador generativo que no tenemos que volver a entrenar el modelo cuando agregamos más clases?