失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 果蔬识别轻松帮你区分车厘子与大樱桃

果蔬识别轻松帮你区分车厘子与大樱桃

时间:2023-07-11 04:04:47

相关推荐

果蔬识别轻松帮你区分车厘子与大樱桃

曾经一张车厘子的照片刷爆朋友圈,有一种财务自由叫车厘子自由!

网友哭了:我只能买一颗回去尝尝……

又快到了车厘子和樱桃的季节,很多人面对车厘子和大樱桃傻傻分不清楚,这两种水果看起来十分相近,但价格差别巨大,60元/斤的进口“车厘子”和15元/斤的中国“大樱桃”,有啥区别?肉眼分不清楚,交给百度Ai吧。

一.平台接入

此步骤比较简单,不多阐述。可参照之前文档:

/forum/topic/show/943028

二.分析接口文档

1./docs#/ImageClassify-API/f0fe4219

(1)接口描述

该请求用于识别果蔬类食材,即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片中的果蔬食材结果。

(2)请求说明

需要用到的信息有:

请求URL:/rest/2.0/image-classify/v1/classify/ingredient

Header格式:Content-Type:application/x-www-form-urlencoded

请求参数:image, 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式 。注意:图片需要base64编码、去掉编码头后再进行urlencode。

(3)返回示例

{'log_id': 7884358602702161307,

'result': [{'name': '车厘子', 'score': 0.60600465536118},

{'name': '大樱桃', 'score': 0.35849434137344},

{'name': '樱桃', 'score': 0.022074541077018},

{'name': '黑珍珠樱桃', 'score': 0.0061983447521925},

{'name': '黑樱桃', 'score': 0.0045025632716715}],

'result_num': 5}

2.获取accesstoken

#client_id 为官网获取的AK, client_secret 为官网获取的SK

client_id =【百度云应用的AK】

client_secret =【百度云应用的SK】

#获取token

def get_token():

host = '/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret

request = urllib.request.Request(host)

request.add_header('Content-Type', 'application/json; charset=UTF-8')

response = urllib.request.urlopen(request)

token_content =response.read()

if token_content:

token_info = json.loads(token_content.decode("utf-8"))

token_key = token_info['access_token']

return token_key

三.识别结果

1.车厘子

识别结果: {'score': 0.60600465536118, 'name': '车厘子'}

2.大樱桃

识别结果:{'score': 0.66473871469498, 'name': '大樱桃'}

四.源码共享

# -*- coding: utf-8 -*-#!/usr/bin/env pythonimport osimport requestsimport base64import jsonfrom pprint import pprintimport time#client_id 为官网获取的AK, client_secret 为官网获取的SKapi_key = '**************'secret_key = '********************'class LandmarkRecognizer(object):def __init__(self, api_key, secret_key):self.access_token = self._get_access_token(api_key=api_key, secret_key=secret_key)self.API_URL = '/rest/2.0/image-classify/v1/classify/ingredient' + '?access_token=' \+ self.access_token#获取token@staticmethoddef _get_access_token(api_key, secret_key):api = '/oauth/2.0/token?grant_type=client_credentials' \'&client_id={}&client_secret={}'.format(api_key, secret_key)rp = requests.post(api)if rp.ok:rp_json = rp.json()# print(rp_json['access_token'])return rp_json['access_token']else:print('=> Error in get access token!')def get_result(self, params):rp = requests.post(self.API_URL, data=params)if rp.ok:# print('=> Success! got result: ')rp_json = rp.json()pprint(rp_json)return rp_jsonelse:print('=> Error! token invalid or network error!')print(rp.content)return None#果蔬识别def detect(self, img_path):f = open(img_path, 'rb')strover = '识别结果:'img_str = base64.b64encode(f.read())params = {'image': img_str}tic = time.clock()rp_json = self.get_result(params)toc = time.clock()result = rp_json['result']strover += ' {} \n '.format(result[0])print(strover)print('花费时长: '+'%.2f' %(toc - tic) +' s')if __name__ == '__main__':recognizer = LandmarkRecognizer(api_key, secret_key)img = 'F:\paddle\yt2.jpg'recognizer.detect(img)

作者:wangwei8638

如果觉得《果蔬识别轻松帮你区分车厘子与大樱桃》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。