Google人体图像分割模型Bodypix再次更新,针对Coral开发板优化,720p/30fps流畅运行

给谷歌自家边缘AI用的模型

晓查 发自 凹非寺
量子位 报道 | 公众号 QbitAI

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开发板上,即使以1280×720分辨率运行,也可以达到30fps,总算是兑现了当初的诺言。

开源地址:

https://github.com/google-coral/project-bodypix

版权所有,未经授权不得以任何形式转载及使用,违者必究。