最近公司在開發一個垃圾知識分類的小程序,須要用到的一個功能就是,讓用戶手機拍照便可識別出這個垃圾屬於哪一個分類,好比是幹垃圾仍是溼垃圾?javascript
這個咱們用到的識別圖片的接口就是百度的圖像識別,具體你們能夠參考下他的官方文檔,咱們就直接上代碼了,和你們 分享下開發中的一些過程。php
https://ai.baidu.com/docs#/ImageClassify-API/top 這個是百度圖像識別接口前端
須要注意的是,百度提供的sdk裏是使用的圖片路徑而後解析成base64圖片內容,再進行識別。java
可是小程序裏是有一個接口能夠直接獲取圖片的base64內容,這樣就不須要將圖片上傳到服務器,而後獲取圖片路徑地址,獲取到路徑地址之後再解析base64內容。小程序
直接用微信的接口獲取圖片的base64內容,而後直接識別,這樣速度就能夠快不少了。後端
具體你們看代碼了。api
第一步是本身去百度註冊開發者帳號,而後填寫本身的appid apikey等信息,要注意的是,百度如今提供天天500次的免費識別,超過五百次天天之後才收費。服務器
$client = new AipImageClassify($confset['APP_ID'], $confset['API_KEY'], $confset['SECRET_KEY']); // 若是有可選參數 $options = array(); $options["baike_num"] = 5;//返回百科信息的結果數,默認不返回 // 帶參數調用通用物體識別 if($data['is_base64']==1){//圖片已是base64的 就不須要base64轉碼了 $needbase64=0; $image = $data['image']; }else{//HTTP 協議的圖片地址 須要先獲取 $needbase64=1; $image = file_get_contents($data['image']); } $client->advancedGeneral($image, $options,$needbase64) /** * 通用物體識別接口 * * @param string $image - 圖像數據,base64編碼,要求base64編碼後大小不超過4M,最短邊至少15px,最長邊最大4096px,支持jpg/png/bmp格式 * @param array $options - 可選參數對象,key: value都爲string類型 * @description options列表: * baike_num 返回百科信息的結果數,默認不返回 * @return array */ public function advancedGeneral($image, $options=array(),$needbase64=1){ $data = array(); if($needbase64==1){ $data['image'] = base64_encode($image); }else{ $data['image'] = $image;// 小程序能夠直接獲取base64 不須要轉base64了 2019年7月18日17:06:23秋峯增長的 } $data = array_merge($data, $options); return $this->request($this->advancedGeneralUrl, $data); }
好了,大概的方法就是這些,具體你們就根據本身的場景靈活使用了。微信
秋峯,phper、java後端開發,javascript前端開發,全棧開發,目前自創業,作項目系統開發,作公衆號以及小程序等的開發, 今天就給你們分享到這裏,但願對你們有所幫助。歡迎交流 你們相互學習 共同提升 個人 微信號:qiufeng2999app