“图像识别技术”的一次实践体验

  ◆版权声明:本文出自胖喵~的博客,转载必须注明出处。

  转载请注明出处:http://www.cnblogs.com/by-dream/p/7610228.html 

  这个时代大数据、人工智能火的一塌糊涂,趁着自己还有精力,体验体验这NB的技术,先选图像识别来玩。

  简单看了下市面上,图像识别比较全的是百度家滴,这是链接:https://cloud.baidu.com/product/imagerecognition


  可以看到在“图像识别”这个大分类里又分了一些小分类,例如动物识别、logo识别、植物识别、还有菜品识别。

  对于正在长胖想减肥的我来说,菜品识别比较有趣,能够让我知道每天摄入了多少卡路里,好督促我不要吃多,控制体重。^_^

   好了不废话了,直接看接入吧。

  点击菜品立即使用后,我们进入了百度云的管理页面

  可以看到每天500次的免费机会,对应一款个人应用足够了。

  首先我们创建一个应用,创建完成后可以看到,我们的 App ID、Key、Secret Key:

  接下来我们看下API文档:https://cloud.baidu.com/doc/IMAGERECOGNITION/ImageClassify-API.html#.E8.BF.94.E5.9B.9E.E6.A0.BC.E5.BC.8F

  这里调用的鉴权方式有两种,我们先使用第一种。第一种提到了必须获取 Access_token,而这个就是就需要刚才注册App时候生成的Key和Secret Key。获取方法在这里:http://ai.baidu.com/docs#/Auth/top

import urllib, urllib2, sys
import ssl

# client_id 为官网获取的App Key, client_secret 为官网获取的Secret Key
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
request = urllib2.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib2.urlopen(request)
content = response.read()
if (content):
    print(content)

  上述python代码运行后(直接get请求就可以拿到信息,但是官方建议post请求。),我们会得到一个返回的json字符串:


  我们关心的参数只有这两个:

access_token:要获取的Access Token;
expires_in:Access Token的有效期(秒为单位,一般为1个月);


  接着我们直接看菜品识别这个接口吧

  先用postman简单的试试:

  从返回的报错信息来看,我们的tocken是有效的,请求方式也是对的,看了就只剩把图片转为base64了。

  随便找一个把图片转为base64的在线网站(例如:http://imgbase64.duoshitong.com/ )我们试试看。 
  记得取之前需要把图中红框选中的这些头信息去掉


  这时候我们再请求一次:

  可以看到已经返回结果了。
  默认是返回5个结果,一般第一个的置信度是最高的,可以看到识别出来的是鸡翅,每100g的卡路里含量为194

  没错,我给它的图片就是:

  哈哈,技术真的在一天天改变我们的生活。

原文地址:https://www.cnblogs.com/by-dream/p/7610228.html