[发明专利]一种基于土豆图像深度学习的追溯系统及方法在审
| 申请号: | 201910600040.2 | 申请日: | 2019-07-04 |
| 公开(公告)号: | CN110310135A | 公开(公告)日: | 2019-10-08 |
| 发明(设计)人: | 马辰;于玲;徐驰;谭强 | 申请(专利权)人: | 山东浪潮人工智能研究院有限公司 |
| 主分类号: | G06Q30/00 | 分类号: | G06Q30/00;G06K9/00;G06K9/62 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 阚恭勇 |
| 地址: | 250100 山东省济南市高新*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 土豆 身份数据 追溯系统 追溯 图像 消费者合法权益 人工智能应用 图像特征采集 图像特征数据 查询数据库 食品安检 图像特征 形状特征 学习训练 用户查询 有效解决 绕过 数据库 餐桌 学习 保存 源头 保证 生产 | ||
1.一种基于土豆图像深度学习的追溯系统,其特征在于,
主要由后台服务器和图像识别终端组成,且一个后台服务器可对应一个以上的图像识别终端;其中,
后台服务器主要负责图像训练、图像建模、图像识别以及数据库关系维护和查询,
识别终端主要完成对土豆图像的采集功能。
2.根据权利要求1所述的系统,其特征在于,
后台服务器基于python/opencv/tensorflow环境,采用开源MTCNN为基础来构建土豆图像检测与识别系统。
3.根据权利要求1所述的系统,其特征在于,
终端是手机或是具备摄像头驱动的嵌入式设备。
4.根据权利要求3所述的系统,其特征在于,
终端对土豆图像进行拍照后,通过TCP/IP私有协议与后台服务端进行交互,将土豆图像传到后台进行识别和查询,并接受服务端查询返回的结果,展示给用户。
5.根据权利要求4所述的系统,其特征在于,
后台系统采用自学习模式来优化土豆图像识别模型,每采集一次土豆图片,都将作为训练土豆特征图片的样本,更新识别模型,加快下一次识别的速率和准确度。
6.一种基于土豆图像深度学习的追溯方法,其特征在于,
通过对土豆图像进行深度学习训练,生成土豆形状特征点识别模型,通过该模型对需要追溯的土豆进行图像特征采集,并将该土豆图像特征数据和身份数据一一对应并保存到数据库,当用户查询该土豆的追溯信息时,通过识别到的土豆图像特征,查询数据库中对应的身份数据,从而追溯到该土豆的生产源头。
7.根据权利要求6所述的方法,其特征在于,
服务器端训练土豆识别模型步骤如下:
1)加载数据:调用input_data.read_data_sets接口输入要训练模型的数据来源,此处为采集到的各种土豆图片;
2)定义超参数和placeholder:超参数包括learning_rate、epochs、batch_size等变量;设置placeholder为x=tf.placeholder(tf.float32,[None,784]),表示输入图片为28x28像素=784;
3)定义参数w和b:利用tf.random_normal()生成正态分布的随机数对w和b进行赋值;
4)构造隐层网络:调用接口如下
hidden_out=tf.add(tf.matmul(x,W1),b1)
hidden_out=tf.nn.relu(hidden_out)
5)构造输出(预测值):对于单标签多分类任务,输出层的激活函数都是tf.nn.softmax(),调用接口如下
y_=tf.nn.softmax(tf.add(tf.matmul(hidden_out,W2),b2))
6)BP部分—定义loss,分为两步
a)对n个标签计算交叉熵
b)对m个样本取平均
7)BP部分—定义优化算法:optimizer=tf.train.GradientDescentOptimizer(learning_rate=learning_rate).minimizer(cross_entropy)
8)定义初始化operation和准确率node
初始化operation:init_op=tf.global_variables_initializer()
创建准确率节点:
correct_prediction=tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
9)上述步骤完成后即可开始开始训练。
8.根据权利要求7所述的方法,其特征在于,
模型使用步骤如下:
1)将训练好的模型转固化为二进制文本
使用freeze_graph.py工具,命令如下:python freeze_graph.py
--input_graph=../model/nn_model.pbtxt
--input_checkpoint=../ckpt/nn_model.ckpt
--output_graph=../model/nn_model_frozen.pb
--output_node_names=output_node
参数1:./model/nn_model.pbtxt
通过tf.train.write_graph(session.graph_def,FLAGS.model_dir,nn_model.pbtxt,as_text=True)生成实现,将图中的计算节点保存在模型nn_model.pbtxt中
参数2:../ckpt/nn_model.ckpt训练好的参数模型
参数3:../model/nn_model_frozen.pb设置输出文件名
参数4:output_node,在图中输出节点的名字
2)在输出nn_model_frozen.pb后通过python或者C++直接调用,调用接口为graph=load_graph(args.fz_model_fn)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮人工智能研究院有限公司,未经山东浪潮人工智能研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910600040.2/1.html,转载请声明来源钻瓜专利网。





