二维码纹身的科学 — 为什么几年后就扫不出来
二维码纹身的流行与现实
把二维码纹在身上的做法,据称从 2010 年代后半开始在世界各地出现。扫一下就会显示自己的社交账号资料、作品集网站,或是留给伴侣的一段话,这种「活着的链接」在亲近科技的年轻一代中间尤其受欢迎。
然而,据说在纹身完成的两三年之后,仍然能保持可扫描状态的二维码纹身其实并不算多见。纹身师之间已经形成一种共识:二维码纹身是拿来欣赏视觉冲击的,不该指望它的功能性。为什么二维码纹身会读不出来?原因不在纹身师的手艺,而在人的皮肤这种「印刷媒介」自身的性质上:它会伸缩、会代谢,还会在几年之间慢慢改变形状。
皮肤的伸缩与模块的变形
二维码要被正确读取,前提是模块(黑白的最小单元)排成一个精确的网格。读取端以三个角上的定位图案为基准推算网格的位置,再逐个判定每个模块是黑还是白。
人的皮肤在不同部位的伸缩率差别很大。关节附近(肘、膝、手腕)每天都在大幅度伸缩,体重增减也会改变皮肤的绷紧程度。这种伸缩会让纹身上模块之间的间距变得不均匀,读取端于是无法正确推算网格的位置。一旦推算出的网格与实际的模块错开半格,判定结果就会连锁性地全盘出错。
皮肤的硬度(弹性模量)因部位而异;1980 年发表的活体测量研究(Agache 等)报告称,过了 30 岁皮肤的弹性就会下降,杨氏模量随年龄增长而翻倍。纹上去的那一刻还是完美网格的模块,几年后变得歪歪扭扭,从皮肤的物理性质来看是躲不开的。
墨水的扩散 — 「洇开」的物理学
纹身的墨水注入的是皮肤的真皮层(表皮之下,约 1 ~ 2 毫米的深度)。刚注入时墨水颗粒密集地聚在一处,但随着时间推移,颗粒会向周围组织扩散,线条随之洇开。这个现象叫作「纹身晕散」,在由细线构成的图案上表现得尤其明显。
而二维码恰恰是一个「细线的集合体」。模块的尺寸越小,越容易被墨水扩散影响。相邻黑模块的墨水扩散出去、侵入白模块的地盘,读取端就分不清黑白的边界了。
纹身墨水的扩散速度取决于颗粒直径、注入深度、皮肤的含水量、受紫外线照射的量等因素。纹身墨水的颗粒直径因颜色而异,2011 年发表的颗粒直径调查(Høgsberg 等)报告称,黑色颜料的大部分是 100 纳米以下的纳米颗粒。颗粒越小越容易扩散。想延长二维码纹身的寿命,理论上可以选颗粒较大的墨水、把模块尺寸做大、避免紫外线,但即便如此也保证不了长久可读。
纠错能力能救回多少
二维码的纠错级别 H,按开发方电装 DENSO WAVE 公开的规格,最多可以复原约 30% 码字的损伤。放在纹身这件事上,这 30% 的余量必须同时应付「皮肤伸缩造成的变形」和「墨水扩散造成的洇开」两件事。
麻烦之处在于,这两种劣化是均匀地发生在整个码面上的。普通的脏污或破损属于局部性质(只有码的一部分受损),而皮肤的伸缩和墨水的扩散会影响整块码。里德-所罗门码的特点是:对局部损伤很强韧,对整体性的变形却很脆弱。所有模块都轻微错位的状态,对读取端来说比 30% 的局部损伤更难办。
更要紧的是,一旦定位图案(三个角上的位置检测图案)变形,读取端连「这是一个二维码」都认不出来。定位图案不在纠错的覆盖范围内,这里一塌,就没有任何复原的余地——数据区域即便完好无损,也不会被读取。
如果还是想纹二维码
在理解了这些科学限制之后仍然想纹,那么有几条做法值得遵守。
- 部位的选择:挑伸缩小的部位(上臂外侧、两块肩胛骨之间、小腿外侧)。避开关节附近和腹部
- 把尺寸做大:至少留出 8 厘米见方以上。模块越大,对墨水扩散和皮肤伸缩的耐受力越强
- 纠错级别选 H:直接用最高一级的纠错,把应付劣化的余量拉到最大
- 用动态二维码:使用可以更换跳转目标的动态二维码,即使链接指向的服务将来关停,也能改跳到另一个网址
- 链接要短:存的数据量越少,模块数就越少,每个模块也就能做得越大。可以借助短链接服务
不过,即便这些措施都做到了,要保证五年以上仍可读取依然很难。把二维码纹身看成「能玩一段时间的互动艺术」,而不是「永远有效的链接」,才是符合现实的态度。