调用百度API实现菜品识别
- 1、作者介绍
- 2、百度API菜品识别接口介绍
- 2.1图像识别接口介绍
- 2.2接口使用说明
- 2.2.1请求示例
- 2.2.2请求参数
- 3、调用百度API流程
- 4、代码实现
1、作者介绍
李延,男,西安工程大学电子信息学院,2022级研究生
研究方向:扬声器异常声
电子邮件:2534581066@qq.com
张思怡,女,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:981664791@qq.com
2、百度API菜品识别接口介绍
2.1图像识别接口介绍
智能百度云提供一个API接口,同时调用多个模型服务。支持图像识别的多个接口:通用物体和场景识别、图像单主体检测、动物识别、植物识别、果蔬识别、自定义菜品识别-检索、菜品识别、红酒识别、货币识别、地标识别、图像多主体检测等12个模型服务的调用。可通过入参灵活指定需要调用的模型服务,传入图像,返回指定模型的识别结果。
该请求用于菜品识别。即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片的菜品名称、卡路里信息、置信度。
2.2接口使用说明
图像识别相关接口同时提供独立的服务接口,针对每个模型的出入参,可参考百度AI开放平台官网每个独立服务接口的文档。
组合服务接口根据请求参数确定要使用的模型服务类型,具体的请求参数见下方描述。
2.2.1请求示例
HTTP 方法:POST
请求URL: https://aip.baidubce.com/api/v1/solution/direct/imagerecognition/combination
URL参数:
参数 | 值 |
---|---|
access_token | 通过API Key和Secret Key获取的access_token,参考“Access Token获取” |
Header如下:
参数 | 值 |
---|---|
Content-Type | application/json;charset=utf-8 |
2.2.2请求参数
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
image | string | 是 | 图像数据,base64编码,示例如:/9j/4AAQSkZJRgABAQEPMpJkR0FdXVridlPy/9k= |
imgUrl | string | 否 | 图像Url,不能与image并存,不需要urlEncode,示例如:https://aip.bdstatic.com/portal-pc-node/dist/1591263471100/images/technology/imagerecognition/general/1.jpg |
scenes | array | 是 | 指定本次调用的模型服务,以字符串数组表示。元素含义如下:advanced_general:通用物体和场景识别;object_detect:图像单主体检测;multi_object_detect:图像多主体检测;animal:动物识别;plant:植物识别;ingredient:果蔬识别;dish_search:自定义菜品识别-检索;dishs:菜品识别;red_wine:红酒识别;currency:货币识别;landmark:地标识别示例如:“scenes”:[“currency”,”animal”,”plant”] |
sceneConf | jsonObject | 否 | 对特定服务,支持的个性化参数,若不填则使用默认设置。jsonObject说明:key为要设置入参的服务类型,可取值同scenes字段,例如advanced_general:通用物体和场景识别;object_detect:图像单主体检测 |
3、调用百度API流程
- 搜索百度智能云,注册并登录百度智能云。
- 进入产品服务,选中图像识别。
- 领取免费测试次数之后,选择创建应用。
- 创建菜品识别应用完成之后,点击应用列表,获取Apple ID、API ID和Secret Key。
4、代码实现
4.1完整代码
from aip import AipImageClassify
""" 你的 APPID AK SK """
APP_ID = '33856933'
API_KEY = 'snKEPCzCuZwkUUIPYb4Qg1dg'
SECRET_KEY = 'rdUTSpT9AbnI2aFCepn9zUP3dLOB9Q7P'
APP_ID = '你的ID'
API_KEY = '你的Key'
SECRET_KEY = '你的SECRET_KEY'
AipImageClassify = AipImageClassify(APP_ID, API_KEY, SECRET_KEY)
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content('测试菜品path')
""" 如果有可选参数 """
options = {}
options["top_num"] = 3
options["filter_threshold"] = "0.7"
options["baike_num"] = 5
""" 调用菜品识别 """
AipImageClassify.dishDetect(image,options)
""" 带参数调用菜品识别 """
result = AipImageClassify.dishDetect(image,options)
print(result)
print(result["result"][0]["name"])
4.2测试菜品
4.3实验结果