我正在研究AR应用程序,其中标记是具有复杂形状的3d对象,所以我试图将基于cad的识别系统作为第一步。
据我所知,从一组图像构建3d模型的主要步骤是: 1 - 循环图像并提取其功能。 2 - 执行成对匹配 3 - 计算每个图像的3d点及其相应的描述符和相机参数。
现在我的第一个问题是我应该如何确定每个3d点的描述符,因为我们知道3d点是从一组类似的2d特征中提取的,这意味着每个特征都有许多相似的描述符其中对应于2d点,我们应该选择哪些描述符?它们并不完全相同,而是彼此略有不同。
我的另一个问题是: 基于OpenCV提供的本教程Real Time pose estimation of a textured object ,要求模型采用.yaml格式,网格采用.ply格式。 我需要知道如何将我的3D结构存储到这些类型的文件中? 是否有任何可以帮助这样做的步骤或工具?
提前致谢
答案 0 :(得分:1)
快速回答,这些是您应该需要的:
solvePnPRansac()
的鲁棒方法(RANSAC)估计对象姿势:3D对象点是在训练步骤中保存的3D对象坐标,2D图像点是当前检测到的关键点的2D图像坐标和匹配教程应该或多或少地做类似的事情。
"棘手"部分应该是计算给定2D图像点和相机姿势的对象3D点的坐标:
对于2D图像点(例如一个关键点位置),我会做什么(可能与教程代码有点不同):
z=1
),请参阅undistortPoints()