◆版權聲明:本文出自胖喵~的博客,轉載必須注明出處。
轉載請注明出處: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
沒錯,我給它的圖片就是:
哈哈,技術真的在一天天改變我們的生活。
