
# AirCode：用于数字制造的隐蔽式物理标签

李定泽宇

阿维纳什·S·奈尔

什里·K·奈亚尔

哥伦比亚大学，纽约州纽约市

郑昌熙

{dli,nayar,cxz}@cs.columbia.edu,<mailto:asn2129@columbia.edu>

![Image](images/5214fd9c030f4be37fc5bfde9514bbf0930e0dee2e67d390c91f2a3189407116.jpg)

<div style="text-align: center;">Figure 1. (a) AirCode tagging tool takes as inputs a mesh, a user-specified region, and embedded data. (b) It first determines the air pocket parameters, including the depth d and thickness h, for a fabrication material. (c) An AirCode tag is embedded inside the object, without changing its geometry or appearance. (d) The fabricated tag is invisible under environmental lighting. (e) Using our imaging system that separates out the global scattering effects, the user detects the embedded tag and retrieve the data. “Moai” by gravityisweak / CC BY 3.0 / modified from original.</div>

## 摘要

我们提出了AirCode技术，该技术允许用户为实体制造的物品添加指定信息的标签。AirCode标签由一组精心设计的、置于物体表面之下的气腔组成。这些气腔在物体制造过程中即可轻松生成，无需额外材料或后续加工。同时，这些气腔仅会影响物体表面之下的光线散射传输，因此肉眼很难察觉。不过，借助计算成像方法就能检测到这些标签。我们开发了一款工具，可自动为用户设计用于编码信息的气腔。AirCode系统还允许用户通过强大的解码算法从拍摄的图像中读取信息。我们通过元数据嵌入、机器人抓取以及物体功能提示等应用场景来展示这一标签技术。

## 作者关键词

数字制造；3D打印；隐蔽式标签；气腔；传感

## ACM分类关键词

I.2.10 视觉与场景理解：物理属性的建模与恢复；J.6 计算机辅助工程：计算机辅助设计（CAD）；H.5.m. 信息界面与呈现（如人机交互）：杂项

## 引言

无论我们是乘坐飞机、从图书馆借书，还是在杂货店排队结账，我们都能受益于一种常见的细节——光学标签。这种标签是印在物体表面的机器可读黑白图案，用于存储该物体的相关信息。如今，光学标签已成为日常生活的技术标配，它在物理表面与数字信息之间建立了“超链接”。

在本文中，我们拓展了超链接的概念，提出了面向3D打印物体的AirCode隐蔽式标签系统。3D打印具备制造定制化、独一无二零部件的前所未有的能力，这就需要能够携带个性化信息的标签。例如，在制造多个形状相似的待组装零部件时，给每个零部件贴上标签有助于实现正确装配。物理标签还能在实体制造物品与数字计算系统之间建立关联：机器人通过读取附着在物体上的标签，就能更好地识别3D打印物体及其姿态，以便进行操控。

在为3D打印开发实用的标签系统时，有几个重要要求值得关注。(i) 标签需在3D打印过程中嵌入，而非作为单独的后续加工步骤。这是因为后续加工不仅会增加额外成本，还需要先区分各个物体——而这一步本身就需要标签来辅助。(ii) 标签需能用现有的3D打印机打印出来。理想情况下，即使是单材料打印机也应能完成带标签的制造。(iii) 标签不能影响3D打印物体的形状和外观。

据我们所知，现有解决方案均无法满足上述要求。例如，传统的光学标签就达不到要求。

---

![Image](images/6ef508c15f8a8df7444a64ca86b09086c9e24068a094426e9fc8ac3872008f70.jpg)

<div style="text-align: center;">Figure 2. Key observation: Most plastic 3D printing materials exhibit strong subsurface scattering. Light rays (green) that are reflected by the surface represent the direct component; rays (orange) that enter the surface and are scattered within before leaving the surface result in the global component. A structured change in the material that lies beneath the surface only affects the global component of a captured image.</div>

关于(i)和(iii)，射频识别（RFID）标签会破坏(i)和(ii)。

AirCode满足了上述所有要求。我们的核心思路很简单：在3D打印物体的表面下方制造空气囊。无需额外材料或后期处理，大多数3D打印机就能轻松生成空气囊。同时，空气的光学特性与3D打印材料截然不同，会改变光线穿透材料表面后的散射方式。

大多数塑料类3D打印材料，即便是那些被认为是不透明的材料，也会散射光线，但穿透并散射的光线量往往很弱；大部分光线会在表面直接反射。因此，空气囊对物体外观的影响肉眼难以察觉。不过用户可以通过仅需普通相机和投影仪的计算成像方法分离出物体内部散射的光线，进而放大空气囊的光传输效果。我们证明，通过精心设计物体内部的空气囊，就能将信息隐藏在肉眼不可见但机器可读取的标签中。

我们开发了一款设计工具，可确定物体内部空气囊的形状和位置，以编码用户指定的信息。我们的系统还能让用户利用计算成像技术[^29]将全局光照的光传输与直射光分离开来。直射光成分由物体表面反射的光线构成，因此不受物体内部空气囊的影响；全局光成分则由穿透表面后散射的光线主导（见图2），它会受到空气囊的影响，从而携带嵌入的信息。同时，它不受镜面高光等直射光效应的影响，而这些效应往往会干扰机器视觉系统。因此，我们读取物体内部标签的方法对物体姿态和相机角度的变化具有鲁棒性。

## 相关工作

快速制造工具的出现使用户能够为个人物品制作原型[^13]。近期，人机交互领域的研究人员开发了多种设计工具来简化设计流程[^4] [^27] [^37] [^38]。例如，On-the-fly Printing能在建模阶段实现增量式打印[^32]；ChronoFab这款3D建模工具可用于创建动态雕塑[^21]。个人制造的物品尺寸范围很广，小到毛发纤维[^23]、手掌大小的部件[^28] [^19]，大到房间大小的物体[^1]。为了便于与这些定制物品交互，需要不显眼的物理标签来将物理物体与数字系统关联起来。

要为实体物体添加标签，最常见的选择或许就是传统的光学条形码，比如一维线性条形码和二维二维码。光学条形码已被广泛应用于多种场景，包括增强现实标记、人机交互以及情境感知手势交互 [^11] [^42] [^5]。尽管它们在数字显示屏或印刷材料上应用简便，但仍存在一些局限性。首先，条形码较为显眼，有时甚至会分散注意力，因为它们会占据一定表面区域且肉眼可见。其次，解码过程通常需要清晰锐利的图像；一旦将条形码嵌入物体表面之下，成像结果就会变得模糊、有噪点且对比度低（见图8）。我们的Air-Code系统虽借鉴了现有条形码的原理，但经过专门优化以实现稳健的解码。

射频识别技术也常用于标签识别，但通常需要在物体内部安装射频识别电路这一后续处理步骤 [^35]。相比之下，我们提出的方法无需后续处理。若需要完全自动化的流程——即物体在制造完成后能立即被机器人系统操控，这种特性便显得尤为理想。近期关于电子元件三维打印的研究 [^10] 为制造内置射频识别标签的物体带来了希望，但该技术尚未普及，且制造成本也高于我们仅利用普通三维打印机的方法。本质上属于光学代码的AirCode可补充射频识别标签的不足；例如，利用光学代码很容易估算物体的朝向，而射频识别标签则难以做到这一点。

另一种方法是使用在紫外光下可见的隐形墨水进行打印 [^18]。这类方法需要在制造完成后额外对物体进行上色处理以使用紫外可见墨水。此外，紫外墨水在直接光照下会褪色，或与用户及其他物体长时间接触后也会磨损，而AirCode标签所用的空气囊则能被很好地隐藏在物体表面之下。

近期研究还探索了其他标签机制，比如在音频信号的时间序列或声频谱中编码 [^16] [^22] [^24] [^33]。例如，声学条形码 [^16] 通过物体表面的结构化凹槽来编码二进制标识符，通过分析滑动这些凹槽时产生的声音即可读取标识符。这类方法在添加标签时需要改变物体的形状，而且读取标签时必须进行物理接触；而我们只需通过摄像系统就能检测到AirCode标签，无需接触物体，也无需知晓其确切位置。

Willis等人 [^40] 的研究与我们目标相似，他们利用太赫兹成像设备扫描三维打印物体的内部结构。虽然取得了令人鼓舞的成果，但这类方法需要昂贵的成像设备，且

---

受限于相对较低的空间成像分辨率（例如，如 $30\times30$ 中所报告的 [^40]）。相比之下，AirCode标签可被普通的低成本摄像系统捕捉，并能生成高分辨率的标签图像。

随着先进的3D打印机的出现，次表面散射技术近期被应用于外观制造领域[^17] [^31]。作为真实感渲染领域的开创性研究，Jensen等人[^20]利用偶极子近似方法对双向散射表面反射分布函数（BSSRDF）进行建模。基于这些近似模型，为了制造出所需的半透明外观，Hašan等人[^17]通过复合分层材料来在3D打印物体中获得用户指定的BSSRDF。相比之下，我们的工作并非旨在物理复现特定的材料外观，而是旨在保留物体的外观的同时在其内部嵌入信息。

## 方法概述

我们为AirCode提供支持的框架利用次表面光散射技术来设计肉眼不可见但可被机器读取的标签。该系统包含三个主要步骤。

## 预处理：确定空气腔参数

给定一种制造材料后，系统首先确定空气腔的几何参数——即描述次表面空气腔大小和深度的参数（图1-b），这些空气腔需对人眼不可见，同时能在全局分量图像上产生足够清晰的特征以便于可靠读取标签。为了确定这些参数，我们会测量材料的次表面散射特性，进而分析空气腔对材料表面外观的影响。对于指定的制造材料而言，这一步骤仅需执行一次。

## AirCode设计

当用户指定一段信息（以比特串形式表示）以及用于制造的3D模型后，系统会在不改变3D模型表面形状的前提下，在模型表面下方生成空气腔布局。该布局中的每个空气腔均采用预处理阶段估算出的参数来构建。空气腔布局具有两大作用：(i) 它能使读取算法在全局分量图像上精准定位AirCode标签；(ii) 它能嵌入指定的信息。这一阶段的输出是嵌入了空气腔的3D模型，可直接用于物理制造。

## AirCode读取

我们读取嵌入在物理物体中的AirCode标签的方法基于一种计算成像技术[^29]。该成像技术会生成直接分量图像和全局分量图像，其中全局分量图像反映了次表面空气腔的影响。由于次表面散射效应，全局分量图像会模糊且对比度低，而3D打印过程中产生的瑕疵（如打印头运动痕迹）还会进一步引入图像噪声。系统会利用多尺度椭圆检测器在全局分量图像上定位标签，随后通过实时训练的SVM分类器提取嵌入的信息。

![Image](images/256936a4ba9ef3b6709ac89ad91667e8a5aabc456f232e051fbe43c23cc55a6b.jpg)

<div style="text-align: center;">Figure 3. Multiple AirCode tags are embedded in a triangular drawer (top) and a mug (bottom). These tags are unique from each other. As long as one of the tags can be viewed by the camera system from a view angle, the object can be recognized and its pose can be estimated.</div>

## 应用示例

AirCode提供了一种将用户指定的信息嵌入物理物体的隐蔽方式，且标签可在制造过程中直接生成，无需后续处理。AirCode不仅可应用于快速原型制作（如3D打印），还能用于许多批量生产的产品中。下文我们将介绍几种基于AirCode标签的应用案例，相关演示可观看补充视频了解详情。

## 在物理物体中嵌入元数据

许多数字产品都包含元数据，这是一种无法直接感知但可被提取以提供更多资源和数字标识的信息 [^15]。其中最著名的或许要数嵌入照片中的元数据，它们提供了诸如拍摄日期、曝光时间、焦距、GPS位置和版权等信息。

AirCode提供了一种嵌入类似元数据的方法，不过是针对实体物体。它可以作为元数据的载体，为3D打印物体提供额外信息、资源、版权及数字标识。例如，艺术家在设计好一件艺术雕像后，可以在制作前将关于该雕像背景的介绍网页链接、艺术家的个人网站或版权声明等信息嵌入到雕像中。之后，当客户收到雕像时，通过读取嵌入的AirCode标签，就能了解到有关雕像及艺术家的更多信息和资源。

我们在图1中展示了使用AirCode制作的摩艾雕像实例。用户指定一个区域，在输入模型中嵌入指向雕像网页的链接。带有这种AirCode标签的雕像随后会被3D打印出来。由于标签被嵌入雕像表面之下，因此不会改变雕像的几何形状或外观。不过，利用我们的全局组件成像系统，就能检测到这些嵌入的标签并获取对应的网页内容。

## 机器人抓取

AirCode标签还能帮助机器人操作器与人造物体进行交互。在机器人抓取任务中，识别物体、估算其姿态并确定抓取位置是一项颇具挑战性的问题。大多数机器人系统依赖图像摄像头和/或深度传感器来推断物体的形状和姿态，进而规划抓取动作。然而，如果物体的关键部位（如杯子的把手）被遮挡住……

---

![Image](images/8a018b202f339448666955056d2ba04e83a8167b4b42871f2844762bba2c1d57.jpg)

<div style="text-align: center;">Figure 4. Robotic grasping with occlusion. We have demonstrated the use of our subsurface codes for recognizing objects and determining their pose from the affine deformation of the detected code in the image. This enables a robot to not only identify the object but also plan the best grasping strategy needed to pick it up. Note that since multiple codes are embedded in the object, the identity and pose of the object is determined irrespective of its position and orientation.</div>

一旦传感器的视野中被遮挡，机器人便很难甚至无法识别出遮挡区域内的抓取点。

如果物体中嵌入了AirCode标签，机器人操作器的摄像系统就能通过读取这些标签来识别物体并获取其完整的3D模型。更令人称奇的是，正如我们在“AirCode设计与读取”部分将要介绍的那样，定位到AirCode标签后，系统还能估算出物体相对于摄像机的姿态（即位置和方向）。掌握了物体的3D模型和姿态信息后，机器人便能完整地规划抓取动作。我们还注意到，由于AirCode标签是在物体制造过程中生成的，机器人系统可以在物体制造完成后立即识别并操控它，无需后续添加光学条形码或RFID标签。这对于自动化生产流水线（如自动化装配线）而言极具价值。

我们通过两个物体进行了演示（见图3）。在三角形抽屉（图3-a）中，我们在抽屉的各侧面嵌入了三种不同的AirCode标签；在杯子（图3-b）中，我们在杯子的曲面下方嵌入了六个标签。这些标签彼此之间具有唯一性。只要成像系统能捕捉并读取其中一个标签，机器人操作器就能识别该物体并估算其姿态。

AirCode标签使机器人机械臂能够避开基于视觉的识别难题，直接识别出物体。因此，机器人机械臂可以抓取那些完全被摄像头遮挡的把手（见图4及补充视频）。对于基于视觉的抓取方法而言，这是一种极具挑战性的情况，因为从直接拍摄的图像中很难推断出被摄像头遮挡的部分。

## 传递物体的功能属性

物体的功能属性是指“行为者或一组行为者感知和使用物体的特定方式”[^14] [^26]。例如，茶壶上的把手就具备明显的便于握持的功能属性。有些物体可以被解读出不同的用途，而许多定制化的物体可能并不具备易于理解的功能属性。比如，图5展示了来自3D模型分享网站Thingiverse的三件物品。这些模型在设计时考虑了各种预期的功能用途，同时具备独特的外观美感。然而，艺术化的设计形状可能会掩盖其功能性——例如，猫形模型（图5-a）经过精心设计，其质量分布可使iPhone稳定放置，但用户很难直观理解这种预期用途。

AirCode标签提供了一种不显眼的方式，能够在设计阶段将有关物体功能属性的信息嵌入物体本身。例如，设计师可以嵌入指向说明物体用法的网页链接，而不会破坏物体的外观或艺术化设计造型。随后用户便可提取该链接并了解物体的功能属性。此外，嵌入的标签还能让机器人系统知晓如何精准操控物体。随着定制化3D模型在网上普及，我们设想AirCode标签能更顺畅地传达它们的来源和用途。

## 拓展：纸张水印技术

利用空气间隙来改变图像的全局分量从而嵌入信息的思路，可拓展到3D打印物体或塑料材料之外。一般来说，只要材料不是完全不透明的，就可以利用次表面光传输来实现标记。为了展示将AirCode标签应用于其他材料的可能性，我们在此通过堆叠几层薄纸来在纸张上嵌入水印。我们在其中一层纸上刻制图案，再将其夹在其他纸张之间，最后把所有薄纸粘在一起。

具体而言，这种纸张水印由四层薄纸构成。最上层印刷有常规的可见文字或数据；第二层用模板刻制出隐藏信息；最后两层为空白纸张。如图6及视频所示，在正常光照条件下隐藏信息不可见，但利用我们的成像方法就能检测到它。在这种情况下，表面纹理（即印刷文字）也会影响图像的全局分量。我们利用仅包含表面纹理的直接分量图像来为印刷文字创建遮罩。借助该遮罩，我们可以使用基于PatchMatch的图像修复算法（如Adobe Photoshop中的功能）去除全局分量图像中的印刷文字。我们设想未来这项技术可作为产品包装和书籍上的不显眼编码或防伪标签。

![Image](images/02871af73161e58da8fc4f6bc39d30a4f618cd75ab3318ca96e955cde74e1fdc.jpg)

<div style="text-align: center;">Figure 5. Three artistically designed objects for supporting an iPhone, holding cables, and storing mechanical tools respectively are shown here. While aesthetically attractive, the affordances of these designs might not be intuitively interpretable for an ordinary user. Embedding AirCode tags in these objects can help convey the affordances. "Tool Carousel" by mbeyerle116 and "Kitty Phone Holder" by Tinyeyes / CC BY-SA 3.0; "Cable management Hive" by Filar3D / CC BY-NC 3.0.</div>

---

![Image](images/907885ba8d05ec038a45174705d70a76834ca47c5a836d5e15acea70542579e6.jpg)

<div style="text-align: center;">Figure 6. Paper Watermarking. AirCode tags can also be embedded within sheets of paper. (a) A sheet of paper is constructed from multiple thinner sheets where some of the sheets have cut-outs that serve as air pockets. (b) A conventional image of a sheet with text printed on it. (c) The global-component image recovered by the imaging system reveals a hidden message. See text for details on how the global-component image is processed to remove the effects of the printed seen text in (b).</div>

## AIRCODE的设计与读取

现在我们介绍系统的核心算法组件——AirCode的生成与读取。AirCode标签的基本元素是在物体表面下方设置的空气囊。我们将在“确定空气囊参数”一节中对其几何参数进行分析估算。本节重点探讨空气囊的布局：首先介绍一种能编码用户提供信息的地下空气囊结构生成方法；随后描述从物体的全局成分图像中提取嵌入信息的方法。

图7展示了表面下方有三个空气囊的3D打印模型的横截面及其全局成分图像。虽然从全局成分图像中能够辨认出这三个空气囊，但图像被3D打印丝材的纹理所干扰。由于次表面散射效应，空气囊的形状变得模糊，且图像各处的亮度也不均匀。基于这些观察结果，我们寻求一种能抵御此类成像伪影的标签生成算法。

我们的AirCode生成算法与能够将光的全局照明与定向照明区分开的成像方法协同工作。我们将在下一节详细介绍成像细节，但此处先指出全局成分成像带来的挑战，以便解释我们在标签设计中做出的算法选择。

## 编码

利用空气囊结构进行编码时，我们借鉴了最流行的二维条形码——二维码的设计思路。二维码的设计包含两个关键部分：(i) 位于左上、右上和左下角的同心正方形，以及(ii) 每个代表0/1比特的黑白单元格。我们将前者称为标记，后者称为比特。标记有助于在捕获的图像中定位二维码；它们的位置构成了比特所在的网格，而比特则承载特定信息。

## 标记设计

我们最初的尝试是利用空气囊精确拼出二维码图案。但由于成像伪影的影响，使用标准二维码解码算法无法识别所捕获的图案（见图8）。因此，我们在地下代码设计中采用了标记与比特的概念，同时寻找新的空气囊结构以适应全局成分解码的需求。对于标记，我们选择……

![Image](images/8a5bd7914bc521baa930bca96c7ae2ccf1b8abdac68da6e0c0a0ee7effe8688e.jpg)

<div style="text-align: center;">Figure 7. Challenges in global-component imaging: (a) A printed object with three air pockets within it. (b) The global-component image measured by the imaging system. (c) A cross-sectional view of the object which reveals the actual shapes of the air pockets.</div>

采用同心圆形结构的空气囊（见图9），这一选择源于以下几点观察：与二维码标记依赖相对清晰图像中黑白像素间的过渡来检测不同，我们需要在模糊且嘈杂的图像中检测标记。同心圆形空气囊具有独特特征，即便图像模糊，从全局成分图像中也能轻易识别出圆形。我们将在本节后续部分介绍可靠的标记检测算法。

## 代码生成

接下来，我们生成一个包含标记和比特的气囊结构。这些气囊被组织在地下方形区域内，其几何参数将在本文后续部分进行估算。地下方形的布局如图9所示。四个同心圆形标记被放置在紫色区域中，这些标记的中心位置构成了单元格网格。在每个单元格中，我们放置一个方形气囊来表示1，或者填充实心打印材料来表示0。此外，在拍摄的图像中，整个方形区域可能会发生旋转；为了消除这种旋转，我们在右下角标记周围的单元格中放置气囊（即图9中的绿色单元格）。更值得一提的是，我们还放置了几个已知比特：蓝色单元格始终填充打印材料以表示比特1，而橙色单元格则填充气囊来表示比特0。这些比特分散在网格上，以便为我们的解码算法提供实时监督训练（详见后续的解码步骤）。

其余的单元格则用于承载用户指定的信息。在实际应用中，我们采用纠错方案（如里德-所罗门编码）[^25]，在提供的比特串中添加冗余数据，从而进一步提升解码步骤的鲁棒性。我们还需指出，网格分辨率可由用户调节：分辨率越高，能容纳的比特数越多，但对噪声的敏感度也越高。在结果章节中，我们将通过实验验证不同分辨率下的性能。

![Image](images/fd079665aa049b89282b138da479b752a1c31e9612a26abd6a0af53aee6eb9da.jpg)

<div style="text-align: center;">input binary QR code</div>

![Image](images/6409cc075303ee2ecf4e41bc6c1d3f1ff45ce9a2a2d246dcd5e06677e0d412fc.jpg)

<div style="text-align: center;">crosssection view</div>

![Image](images/7f1708fd0dc34b011e2fa88c25c2e04760b98ba1cee02924d991fd150203d2c6.jpg)

<div style="text-align: center;">global component</div>

<div style="text-align: center;">Figure 8. We experiment a naive placement of a QR code pattern (left) beneath an object surface. The cross section of a printed piece is shown in the middle. But the QR code pattern on the global-component image (right) is too noisy to be decoded.</div>

---

![Image](images/086497cb0db4ebd331c6968f868cde32cce969af9891213f74562cd64bd2b694.jpg)

<div style="text-align: center;">Figure 9. The structural layout of a subsurface optical code (left) and the corresponding parts in a captured global-component image (right).</div>

在我们的示例中，AirCode标签的物理尺寸约为$2\,cm \times 2\,cm$，能够容纳约106个比特。但与二维码类似，其比特数量具有可扩展性。如果需要更大的信息容量，用户可以增大标签尺寸以存储更多比特。例如，如补充文档中所示，一个$5\,cm \times 5\,cm$尺寸的标签可存储约500个比特。

## 标记检测

椭圆检测器从全局成分图像中定位各个标记。由于成像和打印过程中的干扰，全局成分图像可能存在强度不均和噪声问题。我们首先通过减去拟合捕获物体的二维二次多项式来消除强度差异。我们还观察到，当代码未正对摄像头时，同心圆形气囊会变得模糊甚至变形。因此，我们采用椭圆检测器[^30]来识别图像中的椭圆。该方法利用椭圆的双圆锥曲线表示法，通过图像梯度来估算椭圆参数，无需检测椭圆的边缘点。这一特性尤其适合我们的问题，因为由于地下散射效应，标记的边界往往对比度低且模糊。

在解码阶段，我们先对物理物体进行成像，再处理全局成分图像以获取嵌入的标签。这一过程的第一步是检测标记，包含三个子步骤（该算法的伪代码详见补充文档中的算法1）。

我们采用多尺度方式应用椭圆检测器以提高其鲁棒性。我们构建图像的高斯金字塔，并在每个尺度上检测椭圆。随后根据长轴与短轴长度之比的阈值对检测到的椭圆进行筛选（实际中我们将阈值设为1.8）。在此阶段末尾，若椭圆中心之间的距离小于$\tau$（实际中为$\tau \approx 5$像素），则将它们归为一组，并计算每组的平均中心位置。

标记剪枝进一步筛选剩余的椭圆中心，从而识别出真正的标记。我们利用了这样一个事实：这四个标记必然构成平面正方形的四个顶点。不过在图像平面上，由于相机的透视投影作用，它们的位置可能会发生畸变。但如果这四个中心确实是标记，那么就必然存在一种透视变换（即相机投影的逆变换），能够将这四个中心还原为正方形的顶点。

我们将这一观察结果转化为RANSAC风格（随机样本一致性）的算法 [^12]。在迭代过程中，我们选取三个椭圆中心，用它们的二维坐标表示为 $\boldsymbol{u}_1$、$\boldsymbol{u}_2$ 和 $\boldsymbol{u}_3$。由于至少需要四个点才能计算出完整的投影变换，因此我们假定该变换可以用仿射变换来近似。接着我们通过求解以下方程，计算出一个仿射变换，用以将四个正方形顶点中的三个与所选中心对齐。

 $$ \begin{bmatrix}\boldsymbol{u}_{1}&\boldsymbol{u}_{2}&\boldsymbol{u}_{3}\\ 1&1&1\end{bmatrix}=\begin{bmatrix}\mathsf{A}&\boldsymbol{b}\\ 0&1\end{bmatrix}\begin{bmatrix}\boldsymbol{v}_{1}&\boldsymbol{v}_{2}&\boldsymbol{v}_{3}\\ 1&1&1\end{bmatrix}, $$

其中 $\mathbf{A}$ 是一个用于描述旋转和缩放的 $2 \times 2$ 矩阵，$\mathbf{b}$ 则表示平移量。$\mathbf{v}_{1}, \mathbf{v}_{2}$ 和 $\mathbf{v}_{3}$ 是正方形的三个顶点（即 $\mathbf{v}_{1} = [0, 0]^{T}$、$\mathbf{v}_{2} = [1, 0]^{T}$ 和 $\mathbf{v}_{3} = [1, 1]^{T}$）。求解该 $6 \times 6$ 方程组后，就能得到 $\mathbf{A}$ 和 $\mathbf{b}$，再将它们应用于第四个顶点 $\mathbf{v}_{4} = [0, 1]$。我们重复这一迭代过程，直到发现另一个椭圆中心 $\mathbf{u}_{4}$ 与变换后的顶点 $\eta$ 之间的距离小于阈值 $\mathbf{A}\mathbf{v}_{4} + \mathbf{b}$。此时，$\mathbf{u}_{1..4}$ 就被确定为这四个标记。通常，RANSAC风格的算法会随机选择点来拟合模型，并重复预定次数的迭代。幸运的是，第一阶段结束后剩余的椭圆数量不多（通常为8到12个），因此我们可以遍历所有三个椭圆中心的组合，直到找到标记的位置。

姿态估计属于可选步骤，只有当用户除了解码信息外还想估算3D物体的姿态时才会用到。由于我们事先已知标记在物体上的精确位置，且标记检测过程建立了物体上标记与图像中标记之间的对应关系，因此我们可以通过求解计算机视觉中的经典四点透视问题 [^36]，来估算物体相对于相机的姿态（包括旋转和平移）。在我们的实验结果中，将展示这种姿态估计在机器人抓取应用中的使用情况。

## 解码

确定四个标记后，我们便可以校正图像的透视畸变、建立网格，进而识别各个单元格中的比特值。这种识别过程还需要克服细丝图案、噪声以及光照不均带来的挑战。尤其是由于网格单元格的尺寸远小于标记（参见图9），它更容易受到伪影的干扰。因此，仅根据每个单元格的平均像素值进行简单的二值化处理很容易出错。

我们选择采用监督学习方法将网格单元分类为0/1比特。与传统监督学习需要预先准备好的训练数据不同，我们采用实时训练的方式。具体而言，我们选用支持向量机（SVM），因为它体积小且易于实现。我们利用编码阶段设置的已知比特来训练分类器。这些在图9中显示为橙色和蓝色单元格的比特构成了SVM的实时训练集$\mathcal{T} = \{(\mathbf{x}_1, y_1), (\mathbf{x}_2, y_2), \ldots\}$，其中下标表示具有已知比特的单元格编号，$y_i$代表该单元格的0/1值，而$\mathbf{x}_i$则是训练特征向量。向量$x_{ij}$中的每个元素$\mathbf{x}_i$存储的是距离单元格i中心j个像素处的像素平均值。实际应用中，向量$\mathbf{x}_i$的长度被设定为覆盖以i为中心的$7 \times 7$个单元格所需的像素数。每个特征向量都会经过归一化处理，以适应局部强度变化。在分类阶段，未知比特的特征向量也按相同方式构建。

---

![Image](images/baab34841d8df9f9c36a0529b9d78b1ec5fa93b5ce72c116f003ee0cd5a8d77a.jpg)

<div style="text-align: center;">Figure 10. Imaging setup. Our imaging system includes an off-the-shelf camera and a projector.</div>

关于定位用于训练的已知比特这一细节值得注意。在采集的图像中，单元格布局可能与图9所示有所不同。为了消除这种旋转影响，需记住只有右下角的标记其周围单元格均充满空气隙。因此，在图像中我们会寻找周围像素平均值最低的标记，并将其作为右下角标记。

## 成像方法

为了读取AirCode标签，我们利用计算成像方法[^29]，通过投影仪投射的结构光图案来分离光的全局成分与直接成分。该方法仅需普通的相机和投影仪，且计算速度很快。具体来说，我们多次投影错位的棋盘格照明图案，每次投影都会生成一幅图像。在一系列图像中，系统会计算每个像素的最大值和最小值，从而得到两幅图像$L^+$和$L^-$。Nayar及其合作者证明，利用$L^+$和$L^-$可以通过以下关系式估算出直接成分与全局成分图像。

 $$ {\cal L}_{d}={\cal L}^{+}-\frac{\alpha}{1-\alpha}{\cal L}^{-}\mathrm{a n d}{\cal L}_{g}=\frac{{\cal L}^{-}}{1-\alpha}, $$

其中$\alpha$表示扫描过程中激活的投影仪像素所占百分比。对于我们使用的棋盘格图案而言，$\alpha = 0.5$。关于公式(1)的详细推导过程可参考他们的论文；针对本问题的特定需求，我们也做了相应补充：

## 波长选择

从微观角度看，次表面散射是由光波与材料内部不规则结构（如多晶固体中的晶界）相互作用引起的。因此，散射行为取决于光的波长[^3]：光波长越长，在特定材料中发生散射的可能性就越小。

基于这一原理，我们充分利用对投影仪的完全控制权，用最长波长的红光照射物体。这是因为红光散射较少，能更深地穿透物体，从而生成模糊程度更低的全局成分图像。如图11所示，我们比较了分别用红光、绿光和蓝光照射所得的全局成分图像，显然红光生成的图像中次表面结构最为清晰。除非另有说明，我们在所有成像实验中均采用红光。

![Image](images/421fc5517875aeee6061c4b315e8d1c457203eda446e8fed6869a6f8411f55ad.jpg)

<div style="text-align: center;">Figure 11. The effect of wavelength on the detection of the global component. A longer wavelength in effect results in a longer mean free path within the scattering medium. As a result, the global-component image for red light is sharper, making the code detection and recognition easier.</div>

## 偏振

许多3D打印物体（实际上大多数物体都是如此）在光照下会产生镜面高光（见图12-a）。虽然镜面高光是由反射引起的，主要对图像的直接分量产生影响，但实际上它们也会影响全局分量图像，因为公式(1)作为对全局分量和直接分量的估算，无法将它们完全区分开来。我们通过在投影仪和相机镜头前放置线性偏振器来减轻镜面光的负面影响[^41] [^6]。由于镜面反射能保留大部分偏振特性，而次表面散射会使光线去偏振，因此我们将两个相位错开的偏振器放置在一起，以最大程度地消除镜面光。结合偏振器与全局-直接分量分离方法，我们的成像方法即便在存在镜面高光的情况下也能检测并识别AirCode标签（见图12）。

## 确定气穴参数

现在我们将介绍用于确定气穴参数的理论分析，解答气穴应有多大、在表面下应多深才能做到人眼不可见但机器可读取的问题。对于特定的制造材料而言，这一分析只需进行一次。

为了确定这些参数，我们首先分析引入次表面气穴后材料表面对比度的变化，并结合人类对表面对比度的感知研究。我们的目的是了解两个设计参数，即气穴深度d和厚度h（图13-a）。由于人类对表面对比度的敏感度尚未被精确量化，我们不指望该分析能给出确切的设计参数，而是确定一个可供选择的参数范围。

我们的分析源于次表面散射光传输模型。在本节中，我们仅介绍关键步骤。

![Image](images/8184878ee772bbf36925c3f286181aa3aca3de927283b9cbf208830d57ac7bda.jpg)

<div style="text-align: center;">Figure 12. Using the global-direct separation together with the polarizers, our imaging system is robust to specular highlights. (left) A specular highlight is viewed in a conventional image, washing out most of the details on the image. After separating the direct and global components, most of the specular highlight remains in the direct-component image (middle). As a result, we can detect and recognize the AirCode tags from the global component image.</div>

---

t $^{1}$ 的$\underset{\cdot}{n}$文档-

## 气穴的次表面散射

考虑一层3D打印材料。当光线照射到其顶面位置时，部分光线会穿透表面并被物质散射。最终，一些光线会从顶面射出材料，另一些则从底面逸出（图13-b）。

从定量角度来看，3D打印材料的次表面散射特性[^9]由其反射和透射曲线来描述。反射曲线$R(\mathbf{x}_i, \mathbf{x}_o)$描述了在$\mathbf{x}_o$处表面反射的辐射出射度（光能）与$\mathbf{x}_i$处入射通量的比值（图13-b）；透射曲线$T(\mathbf{x}_i, \mathbf{x}_t)$的定义类似，描述的是透过材料层的辐射出射度。

遵循用于建模3D打印材料次表面散射时成功应用的假设[^17]，我们考虑一层横向无限大且均匀的材质，假设光照几乎均匀，并忽略菲涅尔效应。在这种情况下，反射和透射曲线与入射和出射位置无关，仅取决于它们之间的距离。因此，$R(\boldsymbol{x}_i, \boldsymbol{x}_o)$和$T(\boldsymbol{x}_i, \boldsymbol{x}_t)$都可以表示为一维函数，即$R(r) = R(||\boldsymbol{x}_i - \boldsymbol{x}_o||)$和$T(r) = T(||\boldsymbol{x}_i - \boldsymbol{x}_t||)$。

$^{i}$来说，$R(r)$和$T(r)$分别表示了反射和透射的方式——

运动被分布在表面。它们会—

材料层。但我们能够测量—

程度，按照该方法进行

某一位置的剖面

“参见补充资料—”

## 空气层的散射剖面

现在，考虑一个厚度为h、横向无限大的空气层。虽然3D打印材料的散射剖面可以被测量，但据我们所知，空气层的散射剖面尚未被明确建模。正如[^20]中所提到的，散射剖面通常是通过假设材料具有光扩散特性来建模的。然而，空气绝非扩散性材料；光在空气中沿直线传播，根本不会发生散射。在补充文档中，我们推导出了空气层的透射剖面$T_{a}(r)$，并得到如下结果：

 $$ T_{\mathrm{a}}(r)=\frac{1}{A}\cdot\frac{h}{(h^{2}+r^{2})^{3/2}},~\mathrm{w h e r e}~A=2\pi\int_{0}^{\infty}\frac{h r}{(h^{2}+r^{2})^{3/2}}\mathrm{d}r. $$

这里的常数A用于对$T_{a}(r)$进行归一化处理，以体现空气层不会吸收任何光这一事实。需要注意的是，空气层的反射剖面$R_{a}(r)$始终为零，因为空气层在其边界处不会反射光。

## 空气层与散射层的组成

确定了散射材料层和空气层的剖面后，我们就可以将不同层组合在一起，进而计算出有效的散射剖面。我们尤其关注三层复合结构的散射剖面。如图13-c所示，顶层是薄薄的散射材料层；第二层是空气层；

![Image](images/7097652d8e89893bbfba3837a955de0e08285eb040ba9f0ac28fe54c0fa13d8a.jpg)

![Image](images/204cb3f2a80c900199070b0221ef4636b107b012b25f333a9476035ab8060c33.jpg)

<div style="text-align: center;">Figure 13. Notation used for the analysis of the scattering profiles of multi-layered materials.</div>

第三层则是由散射材料制成的厚基底。这种复合结构的有效散射剖面$R_{c}(r)$和$T_{c}(r)$可以通过对各层剖面进行卷积来数值计算。详细的推导过程和公式我们在补充文档中给出。

## 有限尺寸空气腔的散射剖面

迄今为止的分析都是基于横向无限大的空气层。实际上，空气腔的横向尺寸总是有限的。为了建模空气腔上方表面的反射剖面（图13-a），我们采用了Song等人提出的近似方法[^34]（此前的材料制造研究也采用过该方法[^17]）。该表示方法在表面点$P_x(r)$处定义了一个局部剖面$\boldsymbol{x}$，从而将反射剖面分解为$R(\boldsymbol{x}_i, \boldsymbol{x}_o) \approx \sqrt{P_{x_i}(r)P_{x_o}(r)}$，其中$r = \|\boldsymbol{x}_i - \boldsymbol{x}_o\|$。没有空气层时，均匀厚材料体的局部剖面$P_x(r)$为$R_0(r)$。当存在横向无限大的空气层时，局部剖面$P_x(r)$就是前述三层材料结构的剖面$R_c(r)$（参见图13-c）。当空气区域的横向尺寸有限时，空气腔边界处的反射剖面可近似为$R(\boldsymbol{x}_i, \boldsymbol{x}_o) \approx \sqrt{R_0(r)R_c(r)}$，其中$\boldsymbol{x}_o$位于空气腔上方，而$\boldsymbol{x}_i$则处于固体材料区域内（图13-a）。

## 空气腔参数的估算

我们现在来估算用于构建肉眼不可见的空气腔的有效参数范围。为此，我们借鉴了视觉感知科学中的心理物理学研究成果。

## 人类视觉敏感度

我们设计AirCode标签时，特别参考了关于模糊斑点对比敏感度的感知研究[^2] [^39]，因为内部的空气囊会产生表面辐射度的差异，而次表面散射又会模糊它们的形状。Bijl及其合作者[^2]通过一系列心理物理学实验发现：(i) 当观察角度大于20角分（即$0.333^\circ$）且至少达到$10^\circ$时，人类对类高斯斑点的敏感度与斑点直径无关；(ii) 在此范围内，大致恒定的对比敏感度阈值为5%。对比度定义为$(L_{\max} - L_{\min})/L_{\min}$，其中$L_{\max}$和$L_{\min}$分别为斑点的最大和最小强度。

在我们的研究中，AirCode标签的尺寸通常约为2厘米。当从正常距离（例如约75厘米）观察时，代码所占的视角约为100角分。利用[^2]的研究结果，我们选择了合适的空气囊尺寸和深度，以使产生的对比度（或表面辐射度的变化）控制在5%以内。这样一来，按照设计，这些空气囊对人眼而言是不可见的（如结果部分所示）。

## 顶层厚度

我们现在来估算顶层厚度d的范围。首先，所有半透明材料都会吸收光线，尽管有些材料的吸收作用非常微弱。

---

如果顶层太厚，大部分光线在到达空气囊之前就会被吸收。随着d的增大，空气囊对散射光的影响也会减弱。对于厚度为d的材料层，能够透过的光量由其透射反照率$\alpha(d)$来衡量，该值是通过对旋转拉伸后的二维平面上的透射剖面$T_d(r)$进行积分得到的（即$\alpha(d) = 2\pi \int_0^{\infty} T_d(r)rdr$）。此处$T_d(r)$中的下标d是为了强调其与厚度d的相关性。$T_d(r)$可以通过测量的散射剖面来计算（详见补充文档）。透射反照率$\alpha(d)$表明：如果顶层厚度为d，那么空气囊对表面辐射度的影响上限为$\alpha(d)$。因此，我们选择一个$d_{\max}$，使得$\alpha(d_{\max}) \geq \tau$满足基于人类视觉灵敏度的阈值要求（实际应用中取$\tau = 20\%$）。对于我们使用的3D打印材料而言，这对应着$d_{\max} = 3mm$。

另一方面，由于材料的机械强度限制，顶层厚度也有下限。如果d太小，顶层就会变得易碎。在实际操作中，由于$d_{\max}$本身已经很小，我们通过经验测试确定了多个符合条件的d值（满足$d < d_{\max}$），并最终设定$d_{\min} = 1\,\mathrm{mm}$。我们还需指出，目前已有许多应力分析方法可用于评估3D打印模型的结构强度（例如参见[^7]）。

## 空气囊厚度

为了估算空气囊的厚度h，我们假设入射光几乎均匀分布。此时，表面点$\mathbf{x}_o$处的辐射度（出射光的强度）与表面积分$c(\mathbf{x}_o) = \int_A R(\mathbf{x}_i, \mathbf{x}_o) \, \mathrm{d}\mathbf{x}_i$成正比，其中$R(\mathbf{x}_i, \mathbf{x}_o)$为反射剖面。随着距离$R(\mathbf{x}_i, \mathbf{x}_o)$的增加，$\|\mathbf{x}_i - \mathbf{x}_o\|_2$会迅速减小，因此我们可以通过对局部平坦区域积分来近似计算$c(\mathbf{x}_o)$。

假设将一个厚度为h、横向尺寸为s的气囊放置在距离d处（见图13-a）。在气囊上方的表面点$\mathbf{x}_o$处，我们利用有限尺寸气囊的反射特性来估算其辐射度$c(\mathbf{x}_o)$。另一方面，当不存在气囊时，表面辐射度$c_0$大致等于固体厚材料的反射反照率。根据人类视觉敏感性研究[^2]，我们将对比度定义为$(c(\mathbf{x}_o)-c_0)/c_0$，其值需处于人类视觉对比度阈值($\approx 5\%$)之内，才能形成人眼无法察觉的气囊。实际应用中，我们采用上限值$(c(\mathbf{x}_o)-c_0)/c_0 = 0.05$来估算气囊厚度，因为较大的对比度更便于机器识别这些编码。详细的推导过程和示意图请参阅补充文档。在下一节中，我们将验证这种估算方法确实能生成既不可见又可被机器读取的标签。

## 结果与验证

现在我们展示为测试和验证AirCode标签系统所进行的实验。关于AirCode标签的使用演示，请参阅补充视频。

## 制造与成像设置

我们使用Stratasys Eden260VS这台PolyJet 3D打印机来制造带有地下气囊标签的物体，该打印机在Z方向的层厚精度可达16微米，XY平面的平面精度为200微米。我们选用白色不透明材料（VeroWhitePlus，RGD835）以及水溶性支撑材料（SUP707）。

![Image](images/a7802d0868ce3b963bddb40238c88a2a5671eb7e16cca88148cc5fd2fc36e315.jpg)

<div style="text-align: center;">Figure 14. Arbitrarily choosing depth d and thickness h leads to unsatisfactory results. In each of the four pieces shown here, below the illustration, left side is the contrast-enhanced global-component image; right side is the photo under regular lighting. When the depth is too small or the thickness is too large, we can detect the air pockets, but they are also visible to our eyes under normal lighting. When depth is too large or the thickness is too small, the signal is too weak to be detected.</div>

这台打印机无法直接打印空洞。因此，我们分别打印顶层和底层，再洗掉支撑材料。为了组装方便，我们在两侧添加了圆柱形连接件（见图3第二列）。反射和透射特性曲线（$R(r)$和$T(r)$）是通过一块厚度为2毫米的3D打印件来测量的，具体方法参见[^17]。需要注意的是，虽然我们使用了白色不透明材料，但我们的分析方法同样适用于其他均匀材料，比如其他颜色的打印材料。也可以用其他打印材料替代气囊，针对气囊参数的分析依然适用。

在进行整体组件成像时，我们使用三菱PK20 DLP投影仪（分辨率为800×600）投射棋盘格照明图案。图像由Point Grey Grasshopper3单色线阵相机（分辨率为2048×1536）捕获。我们选用单色相机是为了避免拜耳去马赛克处理，因为我们只考虑单一波长下的散射现象。图10展示了我们的成像设置。在低光照条件下，该相机传感器的输出信号噪声较大，因此我们对每种投影的棋盘格图案会采集16张图像取平均值。

## 验证

我们验证了关于气囊参数的理论估算结果。首先，我们制造了气囊厚度和深度未经优化的样品。如图14所示，这些随意设定的参数要么导致成像系统接收到的信号较弱，要么使气囊肉眼可见。我们对参数的估算旨在确保成像系统能够检测到气囊，同时这些气囊对肉眼来说仍不可见。在补充文档的图18中，我们展示了采用估算出的气囊参数制成的标签，即使在不同光照条件和角度下也依然不可见。

接下来，我们制作了四种具有不同气穴宽度的测试样品，分别为0.5毫米、1毫米、1.5毫米和2毫米，但它们的厚度和深度相同。如“确定气穴参数”一节所示，较小的气穴宽度会导致表面辐射度变化更小。一方面，较小的单元格尺寸能够容纳更多比特，从而编码更多信息；另一方面，全局分量中对比度的降低会使解码过程更加困难。我们发现，当单元格尺寸约为1毫米时（图16），单元格分辨率提升与解码鲁棒性下降之间达到了平衡。为了演示我们的表面编码的应用，我们选择了1.5毫米的单元格尺寸。

---

![Image](images/27b0064ed3e536313efdf35bde7fc3c081a1685e717c211590767216f9cbe4a2.jpg)

<div style="text-align: center;">Figure 15. The thickness of the top material layer increases from left to right. For each thickness, the optimal thickness of the air pocket computed using our model is used. In all cases, the model ensures that the contrast produced by the code is within the imperceptible range for the human eye.</div>

该尺寸可扩展至2毫米。在实际应用中，我们还会采用里德-所罗门码为编码后的比特添加40%的冗余。

此外，我们选取了不同的表层厚度值，并根据模型估算出相应的气层厚度h，以使表面辐射度对比度达到约5%。结果如图15所示。在所有样品中，亚表面编码确实不可见，而它们的全局分量图像均能显示出标签且可被机器读取。

为了验证该方法在方向适应性上的鲁棒性，我们将制作的样品放置在旋转盘上，测试了不同物体方向下的成像和解码算法。图17显示，对于相对于相机视角的$[-40^{\circ}, 40^{\circ}]$范围内的旋转，我们的方法仍能读取亚表面编码。我们注意到这一方向范围比许多放射成像技术要宽得多。例如，正如[^40]中所指出的，太赫兹成像系统只能对$\pm11^{\circ}$范围内的物体进行成像。此外，我们利用亚表面标记物测量了姿态估计的精度（回顾“标记检测”一节中的最后阶段）。结果显示，我们能够以小于$2^{\circ}$的误差估算出物体的旋转角度。

## 讨论与未来工作

我们提出了一种在数字制造过程中为物理物体添加用户指定信息的标记方法。这些不显眼的标记肉眼无法察觉，但计算机却能识别。这是通过在3D打印物体的表面下方放置精心设计的气穴结构来实现的。

尽管我们已经证明全局分量图像对各种因素具有鲁棒性，但采集过程仍需耗时

![Image](images/22e006b95ce6b9f701170409d675219451490aced14005f17fab8621d7d5db6b.jpg)

<div style="text-align: center;">Figure 16. As the bit size (the width of each air pocket) reduces from 2mm to 0.5mm. As expected, the accuracy of the bit classification decreases with the bit size. We stopped at 0.5mm before the quality is approaching the printer's limit.</div>

![Image](images/4500527c27bd15d83f5665644b72b63022937c4dec5a98f2a8ed1969ea853e68.jpg)

<div style="text-align: center;">Figure 17. The code detection algorithm works over a wide range of camera viewing angle (or object pose variation). Here we see the code being successfully detected over a  $\pm40$ degree range of code orientation with respect to the camera.</div>

3到4分钟。这是因为扫描棋盘格图案大约需要10秒。为了减少成像噪声，我们会进行多次扫描并取平均值。如果使用传感器噪声更低的相机，或者采用红外投影仪和相机，就能缩短成像时间。随着民用相机成像质量的不断提升，我们预计未来AirCode标签的阅读时间将会进一步缩短。此外，我们发现通过投射具有交叉偏振特性的红色图像，能够有效去除大量表面伪影和镜面高光。不过，要恢复全局分量，仍需要多次扫描棋盘格图案。减少读取AirCode标签所需的图像采集次数将是一项有趣的未来研究方向。

我们的分析假设3D打印材料在整体上具有均匀性和半透明性。虽然这一假设对于使用塑料材料的许多3D打印系统来说是成立的，但其他打印机无法生产出近乎均匀的材料。例如，许多熔融沉积建模（FDM）打印机使用的打印丝相对较粗，因此打印出的物体并不均匀。此外，对3D打印物体表面进行喷漆是一种常见的后期处理工艺。尽管我们的方法能够考虑半透明油漆的影响，但如果油漆完全不透明，该方法就会失效。另一个局限性在于：与传统光学码不同，AirCode标签在物体打印完成后无法更新，因为它们已嵌入物体的几何结构中。不过有时这正是人们所期望的特性，以防止标签被篡改。

我们可以将AirCode标签放置在平缓弯曲的表面之下（如图4中所示的杯子把手处）。但对于形状高度弯曲的物体而言，气泡设计会面临挑战。在这种情况下，若仅在表面下方固定高度处设置固定深度的气泡，并不总能生成可识别的标签。我们打算探索其他计算方法，以生成复杂的深度场，从而实现所需的全局组件效果。

## 致谢

我们感谢匿名审稿人的宝贵意见。我们感激Arthur Autz在3D打印设施方面的支持，感谢Daniel Miau和Brian A. Smith在写作上的建议，感谢Henrique Teles Maia的校对与讲解，感谢Yonghao Yue和Shuang Zhao提供的渲染建议，感谢Klint Qinami和Anne Fleming对初稿的校对，感谢Daniel Sims对硬件设备的管理，以及Jason Hollaway在成像与硬件方面的建议。本研究部分得到了NSF奖项CAREER-1453101的支持。Dingzeyu Li的研究部分得到了Adobe研究奖学金的资助。

---

## 参考文献

1. Harshit Agrawal、Udayan Umapathi、Robert Kovacs、Johannes Fronhofen、Hsiang-Ting Chen、Stefanie Müller和Patrick Baudisch。2015年。Protopiper：按比例真实绘制房间大小物体的物理草图。发表于UIST 2015。DOI: <http://dx.doi.org/10.1145/2807442.2807505>

[^2]: P Bijl, JJ Koenderink, and A Toet. 1989. Visibility of blobs with a Gaussian luminance profile. Vision research 29, 4 (1989), 447–456.

[^3]: Craig F Bohren and Donald R Huffman. 2008.

小颗粒对光的吸收与散射。

约翰·威利父子出版社。

4. Varun Perumal C和Daniel J. Wigdor。2016年。Foldem：通过选择性消融多材料薄片来制造异质物体。发表于CHI 2016。DOI: <http://dx.doi.org/10.1145/2858036.2858135>

5. Li-Wei Chan、Yi-Ling Chen、Chi-Hao Hsieh、Rong-Hao Liang和Bing-Yu Chen。2015年。CyclopsRing：通过鱼眼环实现全手操作及上下文感知交互。发表于UIST 2015。DOI: <http://dx.doi.org/10.1145/2807442.2807450>

6. Tongbo Chen、Hendrik P. A. Lensch、Christian Fuchs和Hans-Peter Seidel。2007年。利用偏振与相移技术对半透明物体进行3D扫描。发表于CVPR 2007。DOI: <http://dx.doi.org/10.1109/CVPR.2007.383209>

[^7]: Xiang Chen, Changxi Zheng, and Kun Zhou. 2016. Example-Based Subspace Stress Analysis for Interactive Shape Design. PP, 99 (2016).

[^8]: Frédéric Cortat. 2004. The Kubelka-Munk theory, applications and modifications. Presentation for the graduate course on Optical properties of Paper, Linkoping University (2004).

9. Craig Donner和Henrik Wann Jensen。2005年。多层半透明材料中的光扩散现象。ACM Trans. Graph.（2005）。DOI: <http://dx.doi.org/10.1145/1073204.1073308>

[^10]: David Espalin, Danny W Muse, Eric MacDonald, and Ryan B Wicker. 2014. 3D Printing multifunctionality: structures with electronics. The International Journal of Advanced Manufacturing Technology 72, 5-8 (2014), 963–978.

11. Mark Fiala。2005年。ARTag：一种基于数字技术的基准标记系统。发表于CVPR 2005。DOI: <http://dx.doi.org/10.1109/CVPR.2005.74>

[^12]: Martin A Fischler and Robert C Bolles. 1981. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography. Commun. ACM 24, 6 (1981), 381–395.

[^13]: Neil Gershenfeld. 2008. Fab: the coming revolution on your desktop—from personal computers to personal fabrication. Basic Books.

[^14]: James J Gibson. 2014. The ecological approach to visual perception: classic edition. Psychology Press.

[^15]: Jane Greenberg. 2005. Understanding metadata and metadata schemes. Cataloging & classification quarterly 40, 3-4 (2005), 17–36.

16. Chris Harrison、Robert Xiao和Scott E. Hudson。2012年。声学条形码：一种被动式、耐用且廉价的带槽识别标签。发表于UIST 2012。DOI: <http://dx.doi.org/10.1145/2380116.2380187>

17. Miloš Hašan、Martin Fuchs、Wojciech Matusik、Hanspeter Pfister和Szymon Rusinkiewicz。2010年。具有指定次表面散射特性的材料的物理复现。《ACM图形学汇刊》（2010年）。DOI: <http://dx.doi.org/10.1145/1833351.1778798>

[^18]: Haibo Hu, Jian Tang, Hao Zhong, Zheng Xi, Changle Chen, and Qianwang Chen. 2013. Invisible photonic printing: computer designing graphics, UV printing and shown by a magnetic field. Scientific reports 3 (2013).

19. Alexandra Ion、Johannes Frohnhofen、Ludwig Wall、Robert Kovacs、Mirela Alistar、Jack Lindsay、Pedro Lopes、Hsiang-Ting Chen和Patrick Baudisch。2016年。超材料机构。收录于UIST 2016会议论文集。DOI: <http://dx.doi.org/10.1145/2984511.2984540>

20. Henrik Wann Jensen、Stephen R Marschner、Marc Levoy和Pat Hanrahan。2001年。一种实用的次表面光传输模型。收录于SIGGRAPH 2001会议论文集。DOI: <http://dx.doi.org/10.1145/383259.383319>

21. Rubaiat Habib Kazi、Tovi Grossman、Cory Mogk、Ryan M. Schmidt和George W. Fitzmaurice。2016年。ChronoFab：用于制造运动部件的技术。收录于CHI 2016会议论文集。DOI: <http://dx.doi.org/10.1145/2858036.2858138>

22. Gierad Laput、Eric Brockmeyer、Scott E. Hudson和Chris Harrison。2015a。声学仪器：用于手持设备的被动式声驱动交互控件。收录于CHI 2015会议论文集。DOI: <http://dx.doi.org/10.1145/2702123.2702414>

[^23]: Gierad Laput, Xiang ‘Anthony’ Chen, and Chris Harrison. 2015b. 3D Printed Hair: Fused Deposition Modeling of Soft Strands, Fibers, and Bristles. In UIST 2015.

24. Dingzeyu Li、David I.W. Levin、Wojciech Matusik和Changxi Zheng。2016年。声学体素：模块化声学滤波器的计算优化。《ACM图形学汇刊》（2016年）。DOI: <http://dx.doi.org/10.1145/2897824.2925960>

[^25]: Shu Lin and Daniel J Costello. 2004. Error control coding. Pearson Education India.

26. Pedro Lopes、Patrik Jonell和Patrick Baudisch。2015年。Affordance++：让物体能够传递动态使用信息。收录于CHI 2015会议论文集。DOI: <http://dx.doi.org/10.1145/2702123.2702128>

---

27. James McCrae、Nobuyuki Umetani和Karan Singh。2014年。FlatFitFab：基于平面截面的交互式建模技术。收录于UIST 2014会议论文集。DOI: <http://dx.doi.org/10.1145/2642918.2647388>

28. Stefanie Mueller、Tobias Mohr、Kerstin Guenther、Johannes Frohnhofen和Patrick Baudisch。2014年。faBrickation：通过集成积木组件实现功能性物体的快速3D打印。收录于CHI 2014会议论文集。DOI: <http://dx.doi.org/10.1145/2556288.2557005>

29. Shree K. Nayar、Gurunandan Krishnan、Michael D. Grossberg和Ramesh Raskar。2006年。利用高频照明快速分离场景中的直接光与全局光成分。《ACM图形学汇刊》（2006年）。DOI: <http://dx.doi.org/10.1145/1141911.1141977>

[^30]: Jean-Nicolas Ouellet and Patrick Hébert. 2009. Precise ellipse estimation without contour point extraction. Mach. Vis. Appl. 21, 1 (2009), 59–67.

31. Marios Papas、Christian Regg、Wojciech Jarosz、Bernd Bickel、Philip Jackson、Wojciech Matusik、Steve Marschner和Markus H. Gross。2013年。利用连续颜料混合物制造半透明材料。《ACM图形学汇刊》（2013年）。DOI: <http://dx.doi.org/10.1145/2461912.2461974>

32. Huaishu Peng、Rundong Wu、Steve Marschner和François Guimbretière。2016年。On-The-Fly Print：建模过程中同步进行增量式打印。收录于CHI 2016会议论文集。DOI: <http://dx.doi.org/10.1145/2858036.2858106>

33. Valkyrie Savage、Andrew Head、Björn Hartmann、Dan B. Goldman、Gautham J. Mysore和Wilmot Li。2015年。Lamello：用于实体输入组件的被动式声学传感技术。收录于CHI 2015会议论文集。DOI: <http://dx.doi.org/10.1145/2702123.2702207>

[^34]: Ying Song, Xin Tong, Fabio Pellacini, and Pieter Peers. 2009. SubEdit: a representation for editing measured heterogeneous subsurface scattering. ACM Trans.

《图形学汇刊》（2009年）。DOI: <http://dx.doi.org/10.1145/1531326.1531337>

35. Andrew Spielberg、Alanson P. Sample、Scott E. Hudson、Jennifer Mankoff和James McCann。2016年。RapID：一种利用RFID标签制造低延迟交互式物体的框架。收录于CHI 2016会议论文集。DOI: <http://dx.doi.org/10.1145/2858036.2858243>

[^36]: Richard Szeliski. 2010. Computer vision: algorithms and applications. Springer Science & Business Media.

37. Alexander Teibrich、Stefanie Müller、François Guimbretière、Robert Kovacs、Stefan Neubert和Patrick Baudisch。2015年。实体物体的修补技术。收录于UIST 2015会议论文集。DOI: <http://dx.doi.org/10.1145/2807442.2807467>

38. Tatyana Vasilevitsky和Amit Zoran。2016年。Steel-Sense：通过增材制造将机械元件与传感器集成。收录于CHI 2016会议论文集。DOI: <http://dx.doi.org/10.1145/2858036.2858309>

[^39]: RJ Watt and MJ Morgan. 1983. The recognition and representation of edge blur: evidence for spatial primitives in human vision. Vision research 23, 12 (1983), 1465–1477.

40. Karl D. D. Willis和Andrew D. Wilson。2013年。InfraStruts：在物理物体内部制造信息以实现太赫兹区域的成像。《ACM图形学汇刊》（2013年）。DOI: <http://dx.doi.org/10.1145/2461912.2461936>

41. L. B. Wolff。1989年。利用偏振分离反射分量。收录于1989年CVPR会议论文集。DOI: <http://dx.doi.org/10.1109/CVPR.1989.37873>

42. Shengdong Zhao、Koichi Nakamura、Kentaro Ishii和Takeo Igarashi。2009年。Magic Cards：一种用于隐式机器人控制的纸质标签界面。收录于2009年CHI会议论文集。DOI: <http://dx.doi.org/10.1145/1518701.1518730>

---

## 补充文档

## 次表面散射背景介绍

当光线照射到材料表面时，其中一部分会穿透表面并在物质内部发生散射，随后再从材料中射出。次表面散射通常通过双向次表面散射反射率分布函数（BSSRDF）来建模，这是一个八维函数，记为$S(\boldsymbol{x}_i, \omega_i, \boldsymbol{x}_o, \omega_o)$，它用于确定在表面点$L(\boldsymbol{x}_o, \omega_o)$处沿方向$\boldsymbol{x}_o$的出射辐射度$\omega_o$。

 $$ L(\boldsymbol{x}_{o},\omega_{o})=\int_{A}\int_{\Omega^{+}}L(\boldsymbol{x}_{i},\omega)S\left(\boldsymbol{x}_{i},\omega_{i},\boldsymbol{x}_{o},\omega_{o}\right)\cos\theta_{i}\mathrm{d}\omega_{i}\mathrm{d}\boldsymbol{x}_{i}, $$

其中，$L(\boldsymbol{x}_i, \omega_i)$表示从方向$\boldsymbol{x}_i$入射到表面点$\omega_i$的入射辐射度，而$\theta_i$则是表面法线方向与$\omega_i$之间的夹角。遵循在次表面散射材料制备中成功应用的假设[^17]，我们假设材料是均匀的且照明几乎均匀，同时忽略菲涅尔效应。此时，BSSRDF可简化为一维径向函数$S(r) = S(\|\boldsymbol{x}_0 - \boldsymbol{x}_i\|)$。此外，我们采用反射和透射轮廓的概念[^9]，分别记为$R(r)$和$T(r)$。$R(r)$是指表面反射的辐射出射度与入射通量的比值，而$T(r)$的定义类似，但针对的是透过材料体积的辐射出射度。$R(r)$和$T(r)$通过$S(r)$和$R(r) = \pi S^+(r)$与$T(r) = \pi S^-(r)$相关联，其中“+”和“-”分别表示入射点和出射点位于材料体积的同一侧还是相反侧。

基于这些概念，我们可以用各单层组件的轮廓来表示多层材料的反射和透射轮廓。考虑两块厚度恒定的横向无限大平板（见图13-b）。设$R_i$和$T_i$（$i = 1, 2$）分别表示这两块平板的轮廓。将第二块平板贴合在第一块平板的底面，就会得到一块新的平板，其散射轮廓通过卷积运算与$R_i$和$T_i$相关联[^9]。简而言之，新平板的散射轮廓为

 $$ \mathcal{R}_{12}=\mathcal{R}_{1}+\frac{\mathcal{T}_{1}\mathcal{R}_{1}\mathcal{T}_{1}}{1-\mathcal{R}_{1}\mathcal{R}_{2}}\mathrm{a n d}\mathcal{T}_{12}=\frac{\mathcal{T}_{1}\mathcal{T}_{2}}{1-\mathcal{T}_{1}\mathcal{T}_{2}}, $$

其中，$\mathcal{R}$和$\mathcal{T}$分别是R和T的汉克尔变换——即径向对称函数的傅里叶变换等价形式[^17]。在没有歧义的情况下，我们也将$\mathcal{R}$和$\mathcal{T}$称为反射和透射轮廓。

## 计算透射轮廓$T_{D}(R)$

我们依据Kubelka-Munk理论来计算厚度为d的无限大平板材料的透射曲线$T_{d}(r)$ [^8] [^17]。我们测量厚度为D的平板的反射与透射曲线$R_{D}(r)$和$T_{D}(r)$，并计算它们的汉克尔变换$R_{D}$和$T_{D}$。随后，便可计算出任意厚度d对应的透射曲线$R_{d}$和$T_{d}$。

 $$ \mathcal{R}_{d}=\frac{S\left(d\right)}{\alpha S\left(d\right)+\beta C(d)}\mathrm{\quad a n d\quad }\mathcal{T}_{d}=\frac{\beta}{\alpha S\left(d\right)+\beta C(d)}, $$

其中，$S(d) = \sinh(\gamma d)$和$C = \cosh(\gamma d)$为双曲函数，且

 $$ \alpha=1+\frac{\mathcal{K}}{C},\beta=\sqrt{\alpha^{2}-1},\gamma=\sqrt{\mathcal{K}(\mathcal{K}+2\mathcal{S})}. $$

此处S和K均为常量，其数值通过以下方式计算得出：

 $$ \mathcal{S}=\operatorname*{l i m}_{d\to0}\frac{\mathcal{R}_{d}}{d}\quad\mathrm{a n d}\quad\mathcal{K}=\operatorname*{l i m}_{d\to0}\frac{1-\mathcal{R}_{d}-\mathcal{T}_{d}}{d}. $$

上述极限值可通过反复将厚度d减半（从$\mathcal{R}_{D}$和$\mathcal{T}_{D}$开始）并利用关系式(2)来求得。

## 标记检测的伪代码

```pseudo
// Algorithm 1: Marker Detection
1: procedure MARKER DETECTION
2: Pre-Process the image
3: for each scale in scale_range do
4:     Detect ellipses
5:     Append ellipse centers to candidate pool end for
6:     Group duplicates from the candidate pool
7:     for every combination of 3 ellipses $(nC_{3})$ do
8:         Compute affine transform
9:         Apply transform to  $4^{th}$ corner marker
10:        Search candidate pool for match
11:         if match found then
12:             Compile detected marker centers
13:             break;
14:     end for
15:     if valid markers found then
16:             Compute projective transform using all 4 markers
17:             Rectify image using the transform
18:     Estimate object pose
```

19:

## 更多实验分析

图18展示了所提出的AirCode在极端光照条件下仍具备不可见性。

![Image](images/2f1f7bf10d0547c6eb89cd2054c61363ee64314da038468f7ac911bbb5cdd6ca.jpg)

<div style="text-align: center;">Figure 18. Under different extreme lighting, the embedded AirCode tags remain invisible. We capture these photos while moving a strong light source around the statue and the mug. The light source we use is a 45W photography light bulb at 6500K.</div>

---

![Image](images/c50963f8fa85af87be0f0a882e623e170ddd47572258b23012dbe1548425aff7.jpg)

<div style="text-align: center;">3.2mm/9.27% 2.4mm/7.71% 1.6mm/5.79% 0.8mm/3.33% 0.2mm/0.95%</div>

<div style="text-align: center;">Figure 21. Visibility of embedded codes as a function of the thickness of the air pocket. The thickness of the air pocket decreases from left to right, while the thickness of the top material layer remains unchanged. The number on the left of each column indicates the air pocket thickness, while the number of the right indicates surface radiosity contrast computed using our model.</div>

![Image](images/29eb7b644d715cf65373a33c732a757a3f24067d5eaf84b5385a6a00ffe6d175.jpg)

<div style="text-align: center;">Figure 19. AirCode with larger capacity. On the left is fabricated piece and on the right is the imaging global-component image.</div>

![Image](images/fc57040509dba30ec8b8d6f3af6da4f794992a69668c431388c54c7fb932a69f.jpg)

![Image](images/1b512472448b381beeabb57f59d2588d2d528114b39ab59f095623f73e471ea6.jpg)

<div style="text-align: center;">Figure 20. (a) The transmissive albedo of a scattering material (the 3D printing material we used) as a function of its thickness d. (b) The contrast between a surface point above an air pocket with respect to a surface point without one, plotted as a function of the thickness h of the air pocket. The three curves are plotted for different thickness d of top material layer.</div>

正如正文中所提及的，AirCode可自然扩展以支持更高的数据容量，这与二维码的设计思路类似。在图19中，我们设计并打印了一个更大的标签；该5厘米×5厘米的AirCode标签中编码了超过500比特的数据。

为了定量分析其可见性，我们制备了具有不同空气囊厚度与深度的样品。结果表明：随着空气层厚度的减小，空气层的透射曲线$T_{a}(r)$也会随之改变。因此，如图21所示，空气囊的可见性会降低。若空气囊过薄（0.2毫米），由于信噪比过低，算法便无法检测到由此产生的对比度差异。

透射反照率$\alpha(d)$为我们确定d的最大值提供了依据：它表明若顶层的厚度为d，则空气囊对表面辐射度的影响上限由$\alpha(d)$决定。因此，我们选取一个$d_{max}$，使得$\alpha(d_{max}) \geq \tau$满足人类视觉敏感度的阈值要求（实际应用中该值为$\tau = 20\%$）。以我们使用的3D打印材料为例，由此得出的结果为$d_{max} = 3mm$。在图20-b中，我们考虑了一个横向尺寸为$s = 4mm$的空气囊，并可视化了对比度值随h和d的变化情况。
