我要努力工作,加油!

python实战项目,深度学习让电脑认出菜品,调用百度人工智能 API 实现

		发表于: 2018-06-01 22:59:00 | 已被阅读: 29 | 分类于: Python
		

前言


现在人工智能,深度学习等词汇贯穿了整个互联网,各种人工智能产业也是非常火爆。人工智能也的确给我们生活带来了一些方便,比较成熟的有以人脸识别为代表的图片识别,语音识别也非常成熟。这些高大上的东西,我们平民是否能接触到呢?注意到各个巨头都已经提供了免费的api,我们这里就做一些使用示范。

首先看看百度的人工智能 API 介绍


百度人工智能 API 主要分

百度语音
视觉技术
自然语言
知识图谱
增强现实
几个子类,菜品识别自然属于
视觉技术
,我们首先看看该子类的 API 接口能力:

· 接口能力

· 请求格式

POST方式调用

注意:Content-Type为application/x-www-form-urlencoded,然后通过urlencode格式化请求体

· 返回格式

JSON格式

· 调用方式

百度给出了两种调用方式,这里只介绍一种。即通过

HTTPS POST
方式调用。 只需把图片发到这个网址即可:

https://aip.baidubce.com/rest/2.0/image-classify/v2/dish?access_token=TOKEN

这里要注意的是,

token
要事先获取。

· access_token 的获取

获取

token
需要两个 key,即
API Key(AK)
Secret Key(SK)
。得到两个 key 后,即可利用下面这个网址获取 token

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【AK】&client_secret=【SK】

注册百度AI帐号,即可免费获得

AK
SK

python 实战代码


· 获取 token

实际上就是访问带上

AK
SK
的网址,并且解析 json 数据。

文件名 token.py


# encoding:utf-8 import urllib, urllib2, sys import ssl, json AK = "TwAOxxxxxxxxxxxxxxxxxxxZn" # 官网获取的 AK SK = "nExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXF" # 官网获取的 SK host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials'\ '&client_id=%s'\ '&client_secret=%s' % (AK, SK) def GetToken(): request = urllib2.Request(host) print host request.add_header('Content-Type', 'application/json; charset=UTF-8') response = urllib2.urlopen(request) content = response.read() if (content): js = json.loads(content) return js['access_token'] return None

· 识别代码

获取到

token
后,就可以非常简单的调用 API 了,解析后就可以输出到控制台了。

测试看看效果


我们首先在代码所在目录新建文件夹 pic 用于存放图片,准备几张菜品图,和一张干扰图

· 地锅鸡识别

· 西红柿炒蛋识别

· 紫菜蛋汤识别

· 小姐姐识别

总体而言,识别结果还是非常不错的,作为干扰的小姐姐识别项也被鉴别出来了。