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.
- Cómo evaluar la reciente eliminación de recomendaciones para usar hilo dental
- ¿Por qué los modelos de aprendizaje automático no funcionan bien cuando se usan en la predicción del mercado de valores en vivo, pero, por otro lado, funcionan muy bien sin conexión?
- ¿Qué medida de evaluación fuera de línea para los sistemas de recomendación se correlaciona mejor con los resultados de la prueba AB en línea?
- ¿Es posible conseguir un trabajo en Machine Learning sin experiencia laboral?
- ¿Cuál puede ser un buen proyecto de curso de 3 meses relacionado con el procesamiento del habla y el aprendizaje automático?
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)