admin管理员组

文章数量:1532133

2024年6月9日发(作者:)

基于百度AI中药材品鉴助手系统的设计

张喜红;王玉香

【摘 要】普通大众消费群体因中药材鉴定知识的缺乏,在购药时对药材的等级划分、

真伪及优劣鉴定常陷于无具可用、无据可依的困境.为了解决这一困境,以西洋参为

例,基于百度人工智能开放平台提供的EasyDL定制化图像识别服务,以安卓手机为

前端、云服器为后台设计了一种基于图像识别技术的中药材品鉴助手系统,安卓手

机前端软件采用微信小程序架构实现图像的采集与上传,后台云服器调用百度AI图

像识别服务实现了中药材的等级分析.实验测试结果显示,在白纸背景下拍照分析的

识别正确率高达95%,能满足实际使用的要求.

【期刊名称】《新余学院学报》

【年(卷),期】2019(024)002

【总页数】4页(P25-28)

【关键词】安卓手机;中药材;西洋参;云服务器

【作 者】张喜红;王玉香

【作者单位】亳州职业技术学院, 安徽 亳州 236800;亳州职业技术学院, 安徽 亳州

236800

【正文语种】中 文

【中图分类】TP317.4

伴随着人们生活条件的不断改善,养生保健之潮大兴。中草药因其在治疗疾病和保

健方面的独特作用而受到人们的青睐。名贵中药材如西洋参、人参、三七等药材的

市场交易活跃程度与日俱增。然而,一些不法商家为了获得高额的非法利润,以次

充好、以假乱真的现象频有发生,扰乱了市场秩序,给消费者造成经济损失的同时

也抹黑了中医药文化。由此可见,市场交易过程中迫切需要一种品鉴机制,指导市

场看货议价,优质优价,规范运营。当前用于中药材鉴别的方法主要有经验鉴别、

显微鉴别、理化分析鉴别、光谱成像分析鉴别等,这些方法都对鉴定人员的从业经

验、职业习性有较强的依赖,要求鉴定人员具有相当深的理论基础与丰富的实战经

验,且显微鉴别、理化分析鉴别、光谱成像分析鉴别设备不便携带,导致非专业购

药群体在购药时无具可用、无从下手。

伴随着计算机、移动互联网、云计算等多种技术的发展,人工智能时代逐步到来,

并且人工智能在多方面已取得惊人的成果,特别在语音识别、图像识别等方面的应

用已趋成熟。谷歌、百度为了推进人工智应用的进程,就机器翻译、语音识别、图

像识别等方面提供了开放的应用服务接口,特别是百度AI开放平台为了满足人们

在图像识领域的个性化需求,还提供了EasyDL定制化图像识别服务。与此同时,

智能手机已成为我国普通百姓日常生活中形影不离的生活工具之一。再者,微信小

程序以随扫随用、无需安装、方便快捷的优点,深受人们喜爱。

鉴于上述背景,本文基于百度人工智能开放平台提供的EasyDL定制化图像识别服

务接口,以安卓手机为前端、云服器为后台设计了一种基于图像识别技术的中药材

品鉴助手系统,安卓手机前端软件采用微信小程序架构实现图像的采集与上传,后

台云服器调用百度EasyDL定制化图像识别服务实现了中药材的等级分析。下面将

以西洋参个体的品鉴为例对系统构建的关键环节进行介绍。

1系统整体框架

中药材品鉴助手的系统框架如图1所示,其由安卓手机终端、微信公众平台服务

器、后台云服务器及百度图像识别应用服务接口等模块构成。Android手机终端

作用是使用微信客户端,扫描二维码、加载并运行中药材品质分析前端小程序,调

用手机内置的摄像头拍摄待识别的药材样本图像,并上传至后台服务器。微信公众

平台服务器在信息的传递中起到了中间桥梁作用。为了充分体现小程序轻量级的优

势,减少前端小程序的运算量,在整个系统中特增设后台服务器,后台云用服务器

的主要任务包括:接收来自客户端的目标图像,并对图像进行预处理,以及按规定

格式构造POST请求,调用百度EasyDL定制化图像识别服务接口对中药材进行品

质鉴定,最后将百度图像识别服务接口返回的鉴定结果编码处理后返送至安卓手机

终端。百度EasyDL图像识别API接口是整个系统的核心,其主要功能是依据事先

训练好的识别模型对目标图像进行类别所属鉴定,在实际应用中,设计者可以根据

实际使用情况提交申请,定制训练应用模型。

图1 中药材品鉴助手系统框图

2关键模块的设计

2.1安卓终端程序设计

微信平台自2011年诞生以来,从最初应用于聊天交友开始,现已逐步成为各行业

媒体内容分享发布的主流平台。基于微信平台运行的微信小程序在应用程序方面更

加方便,无需安装,与原生态APP相比彻底摆脱了智能手机内存受限的局面,深

受人们青睐,极易推广。为了方便后期推广,顺应时代潮流,中药材品鉴助手的安

卓前端程序采用微信小程序架构。所设计的微信小程序界如图2(a)、(b)所示,由

主界面与识别子界面两部分构成,主界面采用典型的九宫格布局分类别给出对应子

界面的链接图标;子界面由拍照按键、图片预览区、结果显示区构成。

(a)主界面 (b)识别子界面图2 中药材品鉴助手界面

微信小程序的开发类似于web前端页面的开发,采用了典型的视图层、逻辑层架

构。图3(a)、(b)为一个小程序的工程目录结构及页面组成文件情况。在项目开发

中,首先要在文件中调用App()函数实现小程序生命周期的控制,并在

文件中调用pages()函数实现小程序各个前端页面的路径注册,以及配

置小程序主界面的全局属性,如:窗口、背景色、导航条样式、默认标题等。每个

子页面由4个文件控制实现,即由用于实现逻辑控制的js脚本代码文件、json配

置文件以及用于体现页面视图的wxml布局文件和渲染样式wxss文件构成。

(a)工程目录结构 (b)页面目录结构图3 小程序工程目录结构

中药材品鉴助手小程序的具体编程实现内容包括:

(1)工程的整体配置。利用微信官方提供的小程序开发工具创建如图3(a)所示目录

结构微信小程序工程,其中Pages目录用于存放各界面页面对应的设计文件;

image目录用于存放主界面中各子页的链接图标素材;在根目下的文件中

通过APP()函数实现小程序生命周期的控制;在文件下调用pages()函

数注册各界面页面的路径信息,将主界面页面放在第一位,小程序启动时先加载主

界面。

(2)主界面向各子面跳转的实现。小程序页面的跳转实现是通过navigator组件实

现,首先需要在主界面js脚本代码文件中通过teTo()方法按

teTo({url: '子界面路径', })格式构造页面跳转函数;其次需要在视图层

wxml文件中通过标签将各子界面对应的链接图标触发事件与跳转函

数进行绑定。

(3)子界面拍照上传与结果显示。各子界面中的拍照通过Image()方法

实现,在success: function (res) {}返回图片的路径;图片的上传通过

File()方法实现,返回的鉴定结果通过success: function (res) {}接收实

现。

2.2EasyDL图像识别模型的构建

百度人工智能开放平台所提供的现成图像识别模型只能识别图片中是什么物体,而

中药材品鉴助手系统实现的功能是要对药物按规格等级划分,因此无法满足应用要

求。百度人工智能开放平台图像识别服务在提供现成识别模型的同时,还提供了

EasyDL定制图像识别服务,允许用户根据他们的实际应用构建自定义识别模型。

EasyDL定制图像识别服务提供了多种深度学习算法组件及训练模板,用少量的图

像数据集,经过短暂的训练便可得到具有较高识别精度的自定义模型。为了适应中

药材品鉴助手的应用需求,在设计中采用EasyDL定制图像识别服务进行专用模型

训练。以西洋参个体自定义模型为例,定制自定义识别模型具体步骤是:

(1)在行业专家的指导下,依据西洋参个体的商品规格指标,将西洋参个体划分为

一等、二等、三等3个等级类别,按上述3个等级类别搜集和标注西洋参个体样

本图像,并搜集西洋参常见混淆品图像,将常见混淆品标注为第四等级类别,收集

每个等级类别的图像数据不低于500幅。

(2)借助PS图像处理软件对步骤(1)收集的图片进行预处理,即以包含单个全部西

洋参个体目标图像为边界进行载剪切,图像的长宽像素比控制在3:1之内,图像

的最长边像素不超过4096,最短边像素不低于30,单张图片的在小不超过4M。

(3)将步骤(2)处理好的图片,按图像类别分类存放于不同的文件来下,文件夹以对

应的类别命名。通过压缩软件将各文件来压缩为zip格式包,并上传至EasyDL中

心。

(4)训练模型并上线获得API服务URL地址;在EasyDL中心平台上利用步骤(3)上

传的数据包分别完成模型的训练及上线,上线后的模型将给出对应的API应用服

务URL地址。

2.3云服务器端的程序设计

云服务器端的主要任务是接收安卓终端发来的图片,预处理后通过POST请求调

用百度AI图像识别模型进行鉴定,最后将识别结果返回到安卓终端。鉴于百度云

服务器收费价格较低,且中药材品鉴助手后台云端的运算较少、功能相对简单的实

际情况,综合权衡性价比,云服务器后台采用百度的BAE云引擎服务,开发环境

采用PHP语言。当Android手机终端通过小程序发起鉴别请求时,微信服务器将

图片转到BAE云引擎服务器,云服务器首先通过if ($_FILES[“file”][“error”] >

0)语句判断上传文件错误代码是否大于0,如果大于0,则通过echo “Error: ”.

$_FILES[“file”][“error”].“
”语名提示错误类型,否则上传无误,通

过$image_temp= file_get_contents($_FILES[“file”][“tmp_name”])语句接

收图片文件。

当接收暂存图片后,接下来便可调用百度EasyDL图像识别模型进行鉴定分析,但

是由于百度EasyDL图像识别服务的调用具有严格的请求格式,请求方式要求采用

POST方式,且对请求的响应采用了鉴权认证机制,调用相应的API接口时要求在

请求URL地址中携带accesss_token密钥参数;同时要求在Body中携带名称为

image的图像参数,并且要求图片的编码格式采用Base64编码。因此,需要按

其格式要求构造一个规范的请求函数,POST请求函数通过PHP的cURL类模块

实现,具体代码如下:

function My_post($url =",$image=")

{

if (empty($url) || empty($param)) {return false;}

$postUrl = $url;

$curlPost = $image;

//初始化curl

$my_curl = curl_init();

curl_setopt($my_curl, CURLOPT_URL, $postUrl);

curl_setopt($my_curl, CURLOPT_HEADER, 0);

//要求结果为字符串且输出到屏幕上

curl_setopt($my_curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($my_curl, CURLOPT_SSL_VERIFYPEER, false);

//设置post提交方式

curl_setopt($my_curl, CURLOPT_POST, 1);

curl_setopt($my_curl, CURLOPT_POSTFIELDS, $curlPost);

//运行curl

$result= curl_exec($my_curl);

curl_close($my_curl);

return $ result;//返回结果

}

其中参数$url由对应的图像识别API接口地址与鉴权密钥accesss_token按$url

=‘服务接口URL地址’+’?access_token=′.$token格式组合而成。参数

$image为Base64编码处理后的图片,因安卓端传来的图片没能经过Base64编

码处理,所以需在此通过$img_Base64= base64_encode($image_temp)与

$bodys = array(′image′=> $ img_ Base64)语句将图像转变为Base64编码格式

的图像数据流。当构建好参数后便可通过$res = My_post ($url, $bodys)语句进

行服务的请求调用。百度AI图像识别服务接口的返回数据格式为JSON格式,返

回结果中包含log_id、result、name、score等四项参数,其中name参数对应

于图片的类别名称,score对应于属于此类别的置信度得分。在用$result =

json_decode($res,true)语句把结果转化为PHP关联数组后,再通过echo

$result [′result′][0][′name′]."

"语句提取返回到安卓小程序终端,其中用

"

"字符串作为区分多种类别参数的分隔标志,便于安卓小程序端通过str =

("

")语句进行解析。

3测试与分析

将后台云服器PHP程序文件上传部署到BAE后,在安卓小程序对应功能页面的

JS文件中,将云服器中与之对应的PHP文件的URL地址设置为File()

函数的URL请求地址,在小程序开发工具中通过预览菜单选项生成真机调试二维

码,Android手机终端通过微信中的扫码功能,扫码加载小程序到本地,便可实

现真机运行测试。从专家鉴定过的样本库中,随机选取未参与模型训练的西洋参个

体样本、不同等级的西洋参个体样本各10个,共计40个样本,在相同的光照条

件下,每个样本分别采用白纸、杂物堆叠两种背景进行在拍照识别测试。实验结果

显示:在白纸背景下40个样本的判正次数为38次,且属于正确类别的置信度分

值均在0.6以上,判正率约为95%;在杂物堆叠背景下40个样本的判正次数为

21次,且属于正确类别的置信度分值均在0.4~0.6之间,判正率约为52.5%。

由上述实验结果可知,本系统使用白纸背景进行拍照识别具有较高的判正率,可用

于实际品鉴场合;但采用杂物堆叠背景进行拍照识别的效果极不理想,无法满足实

际需求,究其原因可知,在训练样本时,所采用的样本图像均没有融入背景干扰,

导致训练出的模型抗干扰能力较差。因此在后续的研究中,在训练样本时,一方面

要增加样本量,另一方面要扩充不同姿态、不同背景的图像集参与模型训练。

参考文献:

【相关文献】

[1]张喜红.基于BP神经网络的西洋参等级分类方法研究[J].云南民族大学学报(自然科学

版),2017(4):322-326.

[2]张喜红,王玉香.基于Scrapy的中药材网络信息采集方法研究[J].江汉大学学报(自然科学

版),2018(6):522-527.

[3]连自锋.基于深层神经网络的图像识别算法研究[D].北京:北京邮电大学,2017.

[4]王会,于栋祯.眩晕疾病人工智能专家诊疗系统研究进展[J].第二军医大学学报,2018(8):935-938.

[5]黄欢,赵钢.人工智能在医疗及神经病学领域的应用[J].华西医学,2018(6):639-643.

[6]钟义信.人工智能:“热闹”背后的“门道”[J].科技导报,2017(6):14-19.

[7]李成吉,张淑娟.计算机视觉技术在核桃壳、仁及分心木识别中的应用研究[J].山西农业大学学报

(自然科学版),2018(11):20-26.

[8]傅向葵,傅一迪.基于人工智能非金属夹杂物的检测与研究[J].中国冶金,2014(11):14-18.

[9]马述清.PHP网络编程[M].北京:电子工业出版社,2014.

本文标签: 程序图像识别中药材图像识别