AI开发板果然是各大厂商的必争之地。树莓派4刚发布8GB版,快被遗忘的谷歌Coral开发板就迎来新的机器学习模型,登上了近日GitHub开源热榜。
去年谷歌发布了识别人体24个部位的Bodypix 2.0模型,现在谷歌把它移植到了Coral设备上,而且针对这款硬件的API做了特殊优化。
Coral BodyPix有很多种用法,除了最基础的对人体不同部位的识别与分割,还能实现匿名人流量统计。
当然这也仅仅是官方GitHub上列出的两种应用,实际的用法更多。
什么是Bodypix
Bodypix最早是谷歌在2019年2月发布的人体分割AI模型。
BodyPix能将图像分割为属于人的和不属于人的像素,属于人的部分可以进一步分类为24个身体部位之一。24个身体部位包括头部、右上臂、左小腿、躯干等等。
去年11月,谷歌发布了它的升级2.0版,加入了对多人图像的支持,还增加了基于ResNet-50的模型、新的API、权重量化以及对不同尺寸图像的支持。
作为一个Tensorflow.Js项目,Bodypix可以在浏览器端运行,即使在手机上也很流畅。谷歌官方实测,Bodypix模型可以在iPhone X上以21fps流畅运行。
现在,经过谷歌官方的优化,即使是硬件规格更低的Coral开发板也能流畅使用了,帧率甚至不输iPhone。
安装与使用
BodyPix依赖于最新版本的Coral API,而对于Coral开发板,则需要安装最新的Mendel OS。然后运行项目中的install_requirements.sh来安装其他依赖项。
python3 bodypix.py
以上命令还可以加入不同选项进行更细化的操作,比如加入—width和—height来控制输入图像的分辨率,这样就可以在运行的速度和精度之间进行取舍。
python3 bodypix.py --width 480 --height 360# fast but low res
python3 bodypix.py --width 640 --height 480# default
python3 bodypix.py --width 1280 --height 720# slower but high res
除了更改分辨率外,项目中还包含MobileNet和ResNet两种模型供用户选择。
如果你面对显示器,想制造镜像的效果,则可以加入参数:
python3 bodypix.py --mirror
另外还能对输入帧的编码格式进行定义:
python3 bodypix.py --h264
python3 bodypix.py --jpeg
还有我们开头提到的匿名模式,加入参数—anonymize,就可以不显示人物的身体特征和骨架,仅仅显示外部轮廓。
python3 bodypix.py --anonymize
关于谷歌Coral
谷歌在2019年初在TensorFlow开发者大会上推出的一系列边缘AI设备,不仅有类似于树莓派的开发板,还有AI加速计算棒。它们都内置了边缘TPU,比树莓派更适合做AI运算。
当时谷歌宣称,Coral开发板能够以每秒30帧的速度在高分辨率视频上运行深度神经网络。
现在,谷歌发布的Coral Bodypi针对Coral开发板上的iMX8MQ GPU和VPU进行优化,可以在平台上进行实时处理和渲染。
在项目主页中,谷歌表示优化后的Bodypix在Coral开发板上,即使以1280x720分辨率运行,也可以达到30fps,总算是兑现了当初的诺言。