△在开放网络上找到的 3D 打印枪支部件模型(图片来自作者)
幽灵枪因其可获得性和匿名性而大受欢迎。与需要背景调查和序列号的传统枪支不同,幽灵枪可以使用套件或 3D 打印部件在家中组装,从而绕过现有的枪支法规。枪支零件 3D 模型的在线资源激增,使这个问题变得更加紧迫,因为任何拥有 3D 打印机和最低限度的技术知识的人都可以制造无法追踪的武器。执法机构和政策制定者越来越受到这种新兴威胁的挑战。
在本期文章中,国外博主彼得·雷比津斯基(Peter Lebiedzinski)讨论了解决 3D 打印幽灵枪部件问题的技术方法,并提出有关实际实施的问题。
技术背景
使用传统算法处理 3D 数据非常复杂,计算成本也非常高 — 任何使用过 CAD 软件的人都明白这一点。因此,采用基于变压器的编码器的机器学习方法从 3D 模型中提取重要特征。这样就可以对枪支部件进行准确分类,而不必考虑 3D 模型的几何形状、旋转或平移是否发生变化以逃避检测。
基于 Transformer 的编码器在处理 3D 数据方面表现出色,因为它们能够学习 3D 空间中点之间的空间关系。与依赖像素的 2D 图像分类不同,3D 模型需要分析点云、网格或体素数据,这些数据本质上更为复杂。该模型对旋转和平移等对抗性变化的鲁棒性是通过在训练期间利用数据增强来实现的,确保它能够在各种输入配置中很好地推广。此外,该模型能够对嘈杂或部分模糊的数据进行分类,这使其成为现实世界中完美 3D 模型罕见的可靠工具。
△枪支部件分类的基本模型架构(作者彼得·雷比津斯基提供)
所用的机器学习模型已在超过 1000 万个 3D 模型的数据集上进行了训练,从而提供了一个能够可靠地提取有意义特征的编码器。然后,这个预先训练的模型在单个枪支部件的数据集上进行微调,以将 3D 模型分类为“枪支部件”或“非枪支部件”,置信度值为 0-100%。
结果
出于本文的目的,使用了 10,000 个随机 3D 模型作为测试数据,其中 400 个包含枪支部件,包括顶部滑套、枪管、底部框架和弹匣。我测试的第一个项目是gun的顶部滑套:
△顶部幻灯片分类结果(作者提供图片)
顶部滑盖被准确识别,置信度高达约 98.4%。我测试了不同代和不同型号gun的多个顶部滑盖,其中一些包括出于功能和外观目的的修改。接下来,我测试了gun的下部框架:
△底部框架分类结果(作者提供图片)
枪支的底部框架是受管制的部件——这意味着如果有人用 3D 打印技术打印出这个部件,然后在商店或网上购买其他部件(例如顶部滑架、枪管和弹匣),他们实际上就拥有了一支功能齐全的枪支,但无法追踪。最后,我检查了随机 10,000 个非枪支部件型号中的一个:
△随机模型分类结果(作者提供图片)
这个特定示例对于 ML 模型来说并不难正确分类。接下来,我分析了本文中包含的所有 10,000 个示例的结果:
△输出10,000 个示例的对数(图片来自作者)
如上图所示,ML 模型生成的枪支部件值与非枪支部件值线性可分。在对数据集较小子集进行初步训练时,我在正确分类枪支部件方面取得了 96.4% 的准确率。所有错误分类都来自弹匣或枪管等部件,而不是枪支的下框架。单独检测下框架时,该模型的准确率为 100%。
对抗性案例(例如玩具枪或与枪支部件相似但无功能的 3D 模型)代表着一项独特的挑战。虽然该模型在区分功能性枪支部件方面非常有效,但它可能难以区分欺骗性输入,例如 Nerf 枪架或无功能的道具枪。
合理性
用人工智能检测枪支部件是一回事,但实际可行性和实施又是另一回事。实施这样的人工智能系统带来了一个主要挑战:分布。也就是说,我们如何以安全有效的方式将该系统集成到 3D 打印流程中?我将对这个问题持开放态度,同时专注于实际应用的技术方面。
该 ML 模型既可以在云端(可通过API 访问)运行,也可以在 Raspberry Pi 4B 等边缘设备上运行。由于整个行业都在向 Klipper 和 RepRap 等固件系统过渡,Raspberry Pi 在 3D 打印机 OEM 中越来越受欢迎。然而,在撰写本文时,该模型还无法在 3D 打印机主板中常见的小型处理器上运行。通过修改架构、微调、修剪和量化,该模型最终可以在几乎所有 3D 打印机的主板上运行。
将这款系统集成到 3D 打印流程中引发了道德责任问题。一种方法是将模型直接嵌入到流行 3D 打印机的固件更新中,确保枪支组件在打印前得到标记。然而,这引起了 3D 打印爱好者的隐私担忧,他们重视开源原则和设备自主权。行业领导者、监管机构和制造商社区之间的协作努力对于在公共安全和用户自由之间取得平衡至关重要。此外,必须采取保护措施,防止滥用这项技术,例如错误地标记良性对象或针对特定用户群。
文章来源:Peter Lebiedzinski
|