开源人工智能平台二次开发实践
2022-06-23傅馨竹吴高静彭皓钰诸冬婷
傅 骏,傅馨竹,吴高静,彭皓钰,诸冬婷
(1.四川工程职业技术学院 材料工程系,四川 德阳 618000;2.德阳市第五中学,四川 德阳 618000;3.四川工程职业技术学院 经济管理系,四川 德阳 618000)
0 引言
项目组在完成省级大学生创新创业课题“掌心的彝器——助力传统文化”的过程中,调用百度AI 开放功能——图像识别,通过选用Python 语言,探索了其SDK 和API 的使用流程,处理了对素材的要求,并提取了结果及其显示方式(图片或文本),最后采用Tkinter设计了用户交互界面GUI,在标签Label 中显示结果或写入文件[1-2]。
1 使用流程
1.1 获得使用权限
在https://login.bce.baidu.com/ 申请账号并登录,然后在控制台中创建应用,选中全部开源功能,系统将自动生成APPID,API Key 及Secret Key,便获得了各项功能的免费使用权限,可以查看各项功能的使用权限及次数说明。
1.2 通过代码访问
通过“技术文档”选择API 或SDK 的代码,加入APPID,API Key 及Secret Key。根据提示提供图片,部分功能需要图片的Base64 格式,加上print 语句打印结果,提供的结果是列表和字典,编写代码提取需要的信息。
1.3 GUI 界面
采用Tkinter 设计用户交互界面GUI,在标签Label中显示原图片,在另外的标签Label 上显示结果或写入图片。
2 关键技术
百度AI 提供了图像识别的两种开源实现途径功能,分别通过SDK 或API 访问,二者的使用方法各有千秋。使用API 需要先获取令牌,过程稍显复杂,对用户要求较高且在访问的过程中,要保持网络畅通。
2.1 图片素材格式
动物识别、植物识别、菜品识别等可以直接使用图片,如jpg,png 格式等;人脸检测、人脸比对需要提供Base64 格式。将图片转化为Base64 格式的代码为:
2.2 SDK 访问
(1)拷贝“快速入门”和“接口说明”中的代码,一共两段代码输入到Python。
(2) 修改APPID、API Key、Secret Key及图片example.jpg。
(3)将最后1 行client.animalDetect(image)修改为2 行:
2.3 API 访问
按照https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu 的提示获取访问令牌,再按各类识别进入不同的网址,如动物识别的网址为animal、植物识别则为plant。
2.4 结果提取
百度AI 的识别结果,以列表和字典两种类型混合显示。根据用户设置的参数不同,两种类别的识别结果所包含的字段也不同,一般包括name,score 或probability。要注意识别结果score 或probability,有的为字符型,有的为数字型。
2.5 结果写为图片
对图像特效、图像增强,结果还需要再次写成图片。写成jpg 格式的代码是,
2.6 GUI 界面设计
采Python 原生Tkinter 设计用户交互界面GUI。一般将窗体设计为尺寸不可变。在设计时,要随时注重用户体验,提示出错信息,显示结果简介,字体字号清晰。
3 结语
开源人工智能平台能够避免用户接触高深的数学原理,有助于推广人工智能技术的应用。项目组基于百度AI 开放功能——图像识别和EasyDL 平台,选用Python 语言,巧妙地结合开源平台的API 和SDK 功能,进行了二次开发,获得了一系列成果。