深度学习的浪潮正在全世界漫延,而深度学习对图像的识别训练需要大量的样本和算力支持,普通人从无到有搭建一个图像识别系统需要大量的时间,幸运的是互联网巨头为我们提供了云服务,在云端为我们训练好了识别系统,我们只需要支付低廉的费用就可以调用API实现高精度的图像识别。
这里我们使用百度云提供的图像识别接口。首先,在百度云注册账号进入控制台新建一个图像识别应用,可以看到图像识别包括图像主体检测、logo商标识别、菜品识别、车型识别、动物识别和植物识别六个类别。
我们新建一个应用,然后在管理应用界面可以看到API Key和Secret Key,记录下这两个值。百度云的鉴权认证机制需要使用这两个值获取Access Token。
API Key和Secret Key百度云提供了bash、PHP、JAVA、Python、C++和C#六种语言接口,这里我是用了Python3。官方文档给的Python示例基于Python2,所以我们需要对其进行一些修改。例如Python3中urllib和urllib2已经被合并,urllib2的功能被urllib.request所替代,整体获取Access Token的代码如下。
Access Token我们在获取到的json文件头就可以看到我们所需的Access Token值,将其记录下来。接下来以车辆识别为例,去网上下载一张车辆图片,将图片路径和Access Token填入下列代码。这里与官方例程不同的是,Python3中发送和接收数据需要使用utf-8来编码和解码。
车型识别最终我们将如下图片上传,返回的JSON显示这辆车有0.985的概率是一辆法拉利599。
车辆测试图如果要对植物、动物或其他种类图像进行识别只需要相应修改request_url即可。百度云每天提供500次免费识别,并且在百度云控制台可以获得相应的流量统计。
参考文档https://ai.baidu.com/docs#/ImageClassify-API/top
代码已上传至https://github.com/HaoHuaqing/BaiduImageAPI
网友评论