Google黑科技:USB Accelerator —— EDGE TPU CORROCESSOR
最近玩了玩google的一个“黑科技”,名字叫:Edge TPU Accelerator(边缘TPU加速器)
。一个支持TensorFlow Lite,有USB Type-C连接器的神经网络协处理器。其目标是让更多人能学习、探索并体验人工智能,感受AI带来的乐趣。
关于这个小东西,搜狐网上有新闻进行介绍: 1. 谷歌开发Edge TPU是为了什么?;2. 太狠了!谷歌这款AI芯片让英特尔这几年白干了!
这个所谓的神经网络协处理器究竟有什么用呢?下面我们跟随着官网的信息来一步一步了解,并用它做一些有趣的事情。
官网地址:https://coral.withgoogle.com/
售价:$74.99
外观
它的外观其实非常小巧,轻薄(可以从下图的Type-C接口的大小,推测出它本身有多小),另外一面是内部的芯片结构
前期环境的安装
其实只需要按照网站中的:Get started with the USB Accelerator 步骤,一步一步走基本就可以了。具体需要的环境是Linux系统,近期的版本都可以,Python要求是3.5以上即可。
我自己测试的实际安装环境如下(用的是较远古的电脑进行尝试):
- Ubuntu 16.04
- 内存:4G
- 处理器:Intel® Core™ i5-4590 CPU @ 3.30GHz × 4
- 显卡: NV106
- Python版本:3.5.2
具体步骤如下:
1. 安装 Edge TPU 依赖的 Python 库
这里需要注意,你的Python版本必须要3.5以上,不然的话会报错。
cd ~/
wget https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz -O edgetpu_api.tar.gz --trust-server-names
tar xzf edgetpu_api.tar.gz
cd edgetpu_api
bash ./install.sh
另外,这里有个坑,使用wget
时可能连接不上网络,后面使用测试案例同样会遇到类似的问题。这里我将配置所需的文件全部都自己下载下来了,大家需要使用直接可以在后面的百度网盘中下载即可(版权还是google的)。
- 链接:https://pan.baidu.com/s/16WmCHZedJYitHylODck11Q
- 提取码:owpb
若使用下载好的文件,直接将里面的edgetpu_api_1.9.2.tar.gz
存到cd
到的路径下,然后运行tar xzf edgetpu_api_1.9.2.tar.gz
及后面的语句即可。之后会有提示再输入Y
即可。到这里相当于将环境全部配置完成了。
下面我们就使用案例图片对图像的分类与识别进行测试。
测试
1. 图像分类
我们以下述的鹦鹉进行测试
代码如下:
1)先下载相关的测试图像,类别标签,网络权重信息:
cd ~/Downloads
# Download files for classification demo:
curl -O https://storage.googleapis.com/cloud-iot-edge-pretrained-models/canned_models/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \
-O http://storage.googleapis.com/cloud-iot-edge-pretrained-models/canned_models/inat_bird_labels.txt \
-O https://coral.withgoogle.com/static/images/parrot.jpg
# Download files for object detection demo:
curl -O https://storage.googleapis.com/cloud-iot-edge-pretrained-models/canned_models/mobilenet_ssd_v2_face_quant_postprocess_edgetpu.tflite \
-O https://coral.withgoogle.com/static/images/face.jpg
这里同样可能连不上网,我这里也将相应的图片下好了:
- 链接:https://pan.baidu.com/s/16WmCHZedJYitHylODck11Q
- 提取码:owpb
2)cd
到我们的路径,这里注意,根据你的Python版本来定,我是Python3.5,所以这里是需要进行相应的修改
# If using the Dev Board:
cd /usr/lib/python3/dist-packages/edgetpu/demo
# If using the USB Accelerator with Debian/Ubuntu:
cd /usr/local/lib/python3.6/dist-packages/edgetpu/demo
# If using the USB Accelerator with Raspberry Pi:
cd /usr/local/lib/python3.5/dist-packages/edgetpu/demo
3)cd
到图像、标签、权重的路径(注意自己进行修改),然后输入如下语句,记得一定要一行一行输入,输入一行回车一行,再输入下一行。
python3 classify_image.py \
--model /home/hadoop/下载/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \
--label /home/hadoop/下载/inat_bird_labels.txt \
--image /home/hadoop/下载/parrot.jpg
之后我们就能够得到我们的预测结果以及得分了:
Ara macao (Scarlet Macaw):绯红金刚鹦鹉
2. 目标检测
示例图:
python3 object_detection.py \
--model /home/hadoop/下载/mobilenet_ssd_v2_face_quant_postprocess_edgetpu.tflite \
--input /home/hadoop/下载/face.jpg \
--output /home/hadoop/下载/detection_results.jpg
结果:
除了上述候选框信息与得分,同时会存出一张新的图片(还是很准的):
下面我们试一试别的图片:
结果:
效果还是非常之秀!
性能提升
如果你的电脑只有集显,并且经常使用cpu来跑代码,那么还是非常推荐你使用这个Edge TPU的,速度提升还是比较明显。
上图来源:https://coral.withgoogle.com/docs/edgetpu/faq/