本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
通过帅气的手势,操控投影在眼前的电子成像,这不就是科幻片里的基础配置嘛。
现在,有人把它从科幻电影中带入了现实。动动手指,实现对眼前世界的掌控。
热衷于制作智能小物件的油管博主Teemu Laurila,利用树莓派DIY了一副可识别自定义手势的AR眼镜。
将自己想设置的手势录入装置,即可实现炫酷操作。
我有了一个大胆的想法!
自制AR眼镜中的世界
先开始表演吧!
捏住手指上下拉,就可以完成调整亮度指令。(这是你的第一人称视角)
对手势识别,叠加显示在镜头成像中。
再来一个更直观点的视角,通过眼镜看看效果。
DIY过程
AR眼镜本身就充满了科技感,让现实世界充满赛博朋克的味道。
那不如更炫酷一点。打个响指,就能运行命令,这不必博人传燃?
说干就干,首先需要设计出,装置会包含有哪些部分。
除了本体眼镜框架,硬件部分还包括了透镜组,0.6 mm PETG投影镜片,配件部分由聚乳酸材料3D打印制成。
毕竟它是智能装置的DIY,怎么可以不请万能迷你电脑树莓派出场。
而软件部分,手势识别程序依赖于python开源项目MediaPipe。
除此之外,Teemu Laurila还写了两个程序脚本。
一个是通过捏手指控制亮度的应用示例,另一个是捕获实时视频中的手势传送到电脑进行处理,并通过智能眼镜叠加显示。
条件都齐了,那么动手组装起来试试。
经历多次调整,各部分零件最终组合成如下装置。
想让程序在装置上可用,首先,需要一个树莓派作为程序支持。
随后设置好内存、驱动、运行环境、多媒体接口、网络等条件,让整个装置超频运行。
硬件软件环境都准备好以后,调试应用程序。
应用程序功能的核心——手势识别模型由3个框架组成,包括手掌识别模型BlazePalm(用于识别手的整体框架和方向)、Landmark模型(识别立体手部节点)、手势识别模型(将识别到的节点分类成一系列手势)。
识别算法的训练过程中,BlazePalm模型识别手掌初始位置,对移动端的实时识别进行优化。
在BlazePalm识别到的手掌范围内,Landmark模型识别其中21个立体节点坐标。
手势识别模型则在此基础上,根据关节角度识别每根手指状态,将状态映射到预定义的手势上,预测基础静态手势。
通过树莓派Zero W,对手势信息捕获。图像信息传输到电脑中,由手势识别AI进行处理。之后再传达给装置,发出对应的手势命令,并同步在投影图像中。
它的前世今生
等一下,有摄像头,有微型投影仪,还有电脑处理器,并且还是一侧投影显示。这样的AR眼镜好像在哪里见过。
没错,就连用到的手势识别代码也都是谷歌开源的。
虽然没有谷歌智能眼镜类似智能手机的功能,但是相比其语音控制和触控功能,Teemu Laurila的智能眼镜选择了使用自定义手势触发命令,更多一分黑科技的味道。
另外,谷歌眼镜摄像头只用来拍照录像,Teemu Laurila的摄像头还承担了接受手势指令、传达指令功能。同时,投影也选择了更大尺寸的方形镜片,方便视野观察。
这款装置已经是Teemu Laurila完成的第二版智能眼镜,在外观和性能上均有优化。
材料的选择上,采用了0.6mm厚度投影镜片替代1mm厚度;以聚乳酸材料代替丙烯酸;增加了螺栓固定支架,弃用胶水。
最重要的优化是,照相机使用方形透镜让画面更清晰。
Teemu Laurila将自己补充的两段代码,分享在了GitHub平台,供感兴趣的观众自己复刻。
参考链接:
https://www.tomshardware.com/news/raspberry-pi-smart-glasses-recognize-hand-gestures
https://www.youtube.com/watch?v=60Os5Iqdbsw
https://www.youtube.com/watch?v=Gu4oOYo38rQ
GitHub链接:
https://github.com/Teneppa/CameraStream
https://github.com/Teneppa/HandTrackingBrightnessControl