使用摄影测量方法3D扫描反光物体

2023-08-14 10:36:52 来源:个人图书馆-半天早晨

打印 放大 缩小
用摄影测量3D扫描反光物体

原文:/blog/3d-scanning-reflective-objects?mc_cid=671d18fd46&mc_eid=af5af06d1c作者:詹姆斯·巴斯比


(资料图片仅供参考)

我看到一次又一次浮出的一个问题是“如何使用摄影测量法扫描闪亮或反光的物体”答案是,你不能,使用摄影测量法扫描/透明/反射或非常闪亮的物体,在没有某种表面处理或复杂的投影技术的情况下是不可能的。摄影测量通过定义给定表面上的参考点的精确位置来工作。因此,像我们将要用于此示例的玻璃碗这样的物体是几乎没有表面细节供软件使用的。那里的任何东西都会被玻璃表面内的反射和折射混淆。一些人认为在相机镜头上使用偏光滤镜会有所帮助,虽然它有助于去除不需要的反射,但表面仍然只包含很少或没有细节,因此不能很好地扫描。在本教程中,我将向您展示一种快速且相对非破坏性的方法来扫描几乎任何反射表面。

解决这个问题只有一个方法,那就是在表面上涂上可以扫描的东西。我意识到本教程中的技术可能不适用于所有物体,例如所有者可能不会采用喷涂哑光粉或历史文物的高价值物品。但是这是使用摄影测量法从这样的物体真正获得良好扫描数据的唯一方法。对于这个例子,我选择了最难的主题。一个高度抛光的透明玻璃碗,摄影测量的梦魇,如果有的话。

那么,首先准备需要的工具和设备。

相机

任何相机都可以,但如果你想要最好的结果,手动曝光ISO和光圈控制的数码单反相机是最好的,至少手动控制拍摄。在本教程中,我使用的是带有35mm定焦镜头的佳能100d。

3D涂层喷涂

大卫提供的这种非常细的颗粒粉末会粘在大多数表面上,但更重要的是可以在扫描后轻松去除。还有其他涂料喷雾剂,但我们发现这是最容易涂抹和后期去除的。链接到这里喷雾

墨水面漆(面部彩绘)

对于这个例子,我使用“Snazaroo经典颜色”黑色面漆,因为它的PH中性,很容易被删除。链接面漆

牙刷

任何类型都可以,只要它有刷毛,以后就不要再用它刷牙了。

软件

您需要AGI photoscan, Reality Capture的授权,或者如果您的预算不适合它们,可以用Autodesk Remake的免费版本。对于本教程,我将使用Reality capture,因为它是我目前选择的软件,但相同的原理适用于上述所有内容。

方法步骤1准备表面进行扫描

我们要做的第一件事就是准备碗的表面进行扫描,正如我们前面所讨论的,捕获像这样的物体的唯一方法是将表面从无特征和反射的东西转换为更有利于扫描的东西。即大量具有哑光表面的特征。

将物体放在一块木头/厚卡片或表面上,您可以轻松地拾取和移动而不会打扰主体。这样做的原因是我们即将喷涂涂层粉末,并且很可能,你不会想要在捕获图像的同一位置进行喷涂。我建议在通风良好的大房间或阴凉处外面这样做,这有非常小的风。

使用3D涂层喷雾在整个物体上涂抹均匀的表面,确保不会错过任何悬垂直区域,角落或缝隙。

让喷雾干燥大约10分钟,首先,表面可能看起来没有变成无光泽但是当喷雾干燥成粉末时会变得越来越无光泽。您应该得到类似于下图的内容 。

现在到了有趣的部分,拿起你的牙刷,将其浸入一杯水中,使其变得美观和湿润,然后将刷毛擦在面漆上,直到它们粘起大量的黑色油漆。就像你在小学时学到的那样,用拇指刷过牙刷顶部,同时将它指向物体表面。你会立刻看到表面上出现10000个微小的油漆泼溅物,为整个物体做这件事。这是我们为了重建良好的3D扫描所需的细节,因此请记住扫描越多点越多。你应该得到类似下面图像的东西。

等待面漆干燥,至少5分钟,我们完成了。扫描后,面漆和涂层喷雾都可以轻松洗掉。

步骤2摄像头和位置设置

确保您的相机设置为尽可能最快的快门速度,本例中使用最低ISO。我使用的是F8,ISO 200和1/100秒的快门速度。如果您担心运动模糊,可以使用三脚架,但如果您在室外拍摄,请注意天气和光线变化。我在这里使用的设置,即1/100秒的速度不够快,无法实现无模糊的手持拍摄,而F8则会有相当浅的景深。我这样做是因为我想要展示什么是可以实现的,不仅低质量的相机邻接相对低质量的图像,并不是每个人都会在第一时间做到正确,我想我会让自己变得困难。如果你想要非常清晰的图像,我会说1/200的最小快门速度和F11的最小光圈,

对于这个例子,我将拍摄外面的图像,我们有一个工作室,但我希望本教程与适用于所有人,而不仅仅是那些可以访问专业照明设置的人。在拍摄时,选择天空阴天或没有阳光直射的地方非常重要,在阴凉处拍摄明亮的一天可以像我在这里一样。以下是从此拍摄中拍摄的图像的示例。

第3步拍摄

围绕拍摄对象以圆柱形动作拍摄照片。我在这里使用的技术是一个非常简单的经过试验和测试的。我要在物体周围挑8点,所以每隔45度左右。在第一点从膝盖向下开始,我从同一位置拍摄3张照片,相机移动约10厘米左右,然后在每次拍摄之间向上移动。然后我绕着物体移动大约45度并再次做同样的事情。一旦你完成了下环的拍摄,我就会移动到蹲伏,这样下一个环就会稍微高一点并再次做同样的记忆,每次拍摄3张图像,每张图像大约有10cm的偏移量。

我无法表达足够重叠图像的重要性,因为你拍摄的每张照片应至少在最后一张照片中可见的相同区域的1/3。当从相同位置拍摄三张照片时,您应该仅将实际取景偏移几厘米。

在这个例子中,我以RAW格式拍摄了大约345张图像,但是为了本教程的目的,我将它们转换为JPG,因为不是每个人都有一个拍摄RAW的相机。

步骤4将图像转换为几何图形

好的,这就是扫描部分,非常简单。我现在要做的是向您展示如何构建干净并组合您刚刚拍摄的扫描,以便为我们的反射物体创建高分辨率扫描。

我将使用Reality Capture,您可以使用 AGI photoscan或任何其他解决方案,但这是我们选择的软件,但AGI,对齐,构建,导出的步骤大致相同。

我们要做的第一件事就是将所有图像加载到Reality Capture(简称RC)中,只需点击“对齐图像”按钮,根据计算机的速度,您将在10分钟内获得稀疏点云,如图所示下面。这决定了摄像机的位置,以便为高细节构建做准备。正如你在这里看到的,我的所有344个图像完美对齐。

对齐完成后,我们可以单击“高细节”按钮开始密集点云生成。这可能需要很长时间,我们的20核Xeon机器需要大约2.5小时来生成这个网格,所以请耐心等待。一些较慢的机器可能需要长达10个小时。最好的办法是让它一夜之间醒来,醒来一个漂亮的网状物。您可以在下面的图像中看到密集点云

因为这个点云大约是一个高密度多边形,所以我们需要在导出前简化它。单击重建选项卡中的“简化”,然后输入所需的多边形数。在这个例子中,我使用了1500万个多边形。它是一个相当大的网格,但我可以很容易地将它加载到ZBrush并从那里进一步简化它。尝试尝试简化程度,找到最适合您的设置。下图显示了我们将要导出的简化点云。

点击重建选项卡中的“导出网格”按钮,然后选择一个位置来保存文件。我作为OBJ导出与Zbrush兼容。

第5步Zbrush清理

因为我用100秒/秒的相当低的快门速度向外拍摄,而且只有F8,所以图像的焦点部分相当多,并且由于手抖动,并非所有镜头都完全聚焦。这是没有三脚架在外面拍摄的问题之一。无论如何,其结果是存在覆盖整个物体的一定量的高频表面噪点。我不打算详细介绍如何在Zbrush中删除它,因为这将是另一个教程的主题。但是如果你按照几个简单的步骤操作就很容易了。

将网格简化到大约200k个多边形,这将增加三角形的大小,同时仍然保持网格的形状,结果是它在去除任何高频噪点方面做得相当不错。

一旦简化完成,复制图层并将模型细分2次,然后在复制图层上执行Zremesh,滑块设置为20左右。

-将新的Zremeshed对象细分5次并使用投影工具将细节从第一个抽取的细分网格投影回新的Zremeshed对象。

用一个小的光滑刷子进入并小心地去除任何剩余的噪波区域,Clay buildup工具特别有助于填充可能已经遮挡的区域。

最后,我们将对清理后的重新网格扫描进行一次简化,以便将其导出到您选择的渲染软件中,对我来说就是Modo。我想要使用大约750的设置,这将给我一个750,000多边形物体,小到足以轻松加载到modo但足够大以保留所有细节。我们可以沿着使用位移和法线贴图导出低分辨率网格的路线,但是为了本教程的目的,我将使用最快速和最简单的技术。

第6步渲染

我将在Modo中渲染这个模型,原因很简单,只需很少的努力即可快速轻松地获得惊人的结果。对于这个渲染场景,我还使用前面描述的相同技术扫描了一些橙子,但没有表面涂层,橙色有足够的表面细节可以轻松扫描。

首先是导入模型文件>导入。我将橘子放在Zbrush中并以相同的方式将它们导入场景中。

接下来,我加载了预设浏览器并为背景导入了“工作室照明扫描曲线”。

对于照明,我只是删除了场景灯并从预设面板加载了Kitchen 01 HDR。

为了制作玻璃,我只需将“玻璃燧石最重”表面从预设浏览器拖到物体上。确保在材料属性面板中打开双面。

-对于橙子的表面,我使用标准着色器,对镜面反射度略有蓝色调,使用颜色贴图作为凹凸贴图,在这种情况下非常简单但有效。

这就是它真的,如果你发现这很有用,请通过在Facebook,Twitter上分享它,帮助我们,无论你喜欢使用什么。您可以使用页面底部的链接下载Modo场景文件和所有支持模型。

最终渲染 - 点击放大
关键词:

责任编辑:ERM523

相关阅读