人工智能|机器学习——基于机器学习的舌苔检测

news2025/1/17 21:47:53

代码下载:

基于深度学习的舌苔检测毕设留档.zip资源-CSDN文库

1 研究背景

1.1.研究背景与意义

目前随着人们生活水平的不断提高,对于中医主张的理念越来越认可,对中医的需求也越来越多。在诊断中,中医通过观察人的舌头的舌质、苔质等舌象特征,了解人体内的体质信息从而对症下药。

传统中医的舌诊主要依赖于医生的肉眼观察,仅仅通过这种人工诊断不但需要消耗大量人力,而且诊断的结果往往受医生经验和主观判断影响,甚至受到周围客观环境的影响(如:光照、温度等)[1],通过10位中医专家对两百多例患者进行舌象诊断,发现仅仅有9例相同,为了减少主观判断和客观环境的影响,利用现代计算机技术结合传统中医的理论和中医专家的经验,使中医的舌诊客观化、数字化成为了目前十分热门研究方向。

利用机器学习实现对舌苔精确快捷的检测,结合中医经验智能化的给出体质信息判别不仅是对计算机技术应用领域的一大拓展,也对传统中医的传承、推广、创新和现代化具有重大意义。利用现代计算机技术使传统中医的应用更加广泛,诊断更加方便快捷,能一定程度上缓解医师人力不足的问题,减少医疗成本,辅助医师提高诊断的准确性,乃至推动中医走向全世界。

1.2.舌苔检测研究现状

目前中医通过舌诊辨识人体体质信息,主要依据中医千年发展累积的经验,使得舌象诊断需要十分丰富的专业知识才能准确无误,如何利用计算机技术实现这一复杂的诊断也是目前研究中的重点和难点。目前利用计算机技术实现的智能化舌诊项目虽然辨识较为精准,但是往往需要在特定的环境或者需要十分专业的设备进行辨识分析,使用专业的设备和环境使得检测门槛较高,检测的成本也随之提升,对舌诊的推广有一定的影响。

1.3.课题任务内容

本课题是基于机器学习的舌苔检测,目的是利用机器学习的方法实现对舌苔进行检测,对舌象信息进行识别,最后再结合传统中医的理论辨识出人体体质信息。

具体实现内容如下:

(1)因为 所使用的舌象数据集图片较少,在开始训练数据集前先使用图像增强和生成对抗网络扩充数据集。将数据集图片进行翻转、平移、加盐、亮度调整、模糊处理等,能将数据集扩充数十倍,以满足数据量的需求。除此之外还使用了生成对抗网络生成新的舌象图片扩充数据集使数据集多样化。

(2)本次课题主要使用的是机器学习中的深度学习方法实现,使用的是深度学习中的efficientNet网络实现对舌象图片的图像分类,同时还使用了其他网络进行了对比实验。训练网络efficientNet模型时使用的在其他图像分类数据集上训练得到的训练参数efficientnetb0作为网络模型的预训练参数,可以较快的实现收敛且能得到良好的效果。分类网络实现了舌象中的苔色、舌色、齿痕、裂纹信息分别进行分类,分类准确率能达到90%以上。

(3)上传舌象图片后,运行分类网络输出的舌象判断结果并展示,使用舌象结果对照传统中医的舌象诊断经验,对人体体质信息进行判断并展示给用户。

本次课题利用现代计算机的技术对舌苔进行检测,并辨识人体体质信息,实现了普通用户借助个人计算机就能对舌苔进行分析以及体质辨识,对计算机技术的发展、创新以及推广有重大意义。

2 舌苔检测需求分析

3.1 可行性分析

3.1.1.技术可行性

如今,机器学习经过了半个世纪的发展,利用机器学习解决现实中各行各业的需求已经变得十分的成熟和可靠,而传统中医的数千年发展积累下来的舌诊经验在观察舌象辨识人体体质的方面也已经十分准确。基于成熟的中医技术和新兴饿计算机技术,利用机器学习完成舌苔检测也变得较为容易的实现,所以在技术上是可行的。

3.1.2.经济可行性

市面上利用计算机技术实现的智能化舌诊项目虽然辨识较为精准,但是往往需要在特定的环境或者需要十分专业的设备进行辨识分析,使用专业的设备和环境使得检测门槛较高,专业性很强,检测的成本也随之提升。本课题的是利用机器学习开源库开发的,没有硬件资源的花费开销的舌苔检测项目,在普通的计算机上就可以运行,所以在经济上是可行的。

3.1.3.文化可行性

中医药学包含着中华民族几千年的健康养生理念及其实践经验,是中华文明的一个瑰宝,凝聚着中国人民和中华民族的博大智慧,向世界推广中医药学也是传播中华文化的一环[5]。利用机器学习实现对舌苔精确快捷的检测,结合中医经验智能化的给出体质信息判别。这不仅仅是对计算机技术应用领域的一大拓展,也对传统中医的传承、推广、创新和现代化具有重大意义。利用现代计算机技术使传统中医的应用更加广泛,推动中医文化走向全世界。所以在文化上是可行的。

3.1.4.社会可行性

本次课题利用现代计算机的技术对舌苔进行检测,并辨识人体体质信息,实现了普通无需掌握专业的中医舌诊知识也能对自己舌苔进行分析,了解自身体质信息,有利于普通人更多的享受到中医的作用。在配合医生进行诊断时,也能减少医生的诊病人工成本,对社会是有益的,具备社会可行性。

3.2 功能行需求

3.2.1.数据集构造

数据集是深度学习的灵魂部分,在深度学习中,数据集的质量越高、数量越多,训练出来的模型就能拥有更高的准确率和泛化的能力,本课题需要对高质量的舌象进行精确的分类,制作成舌象数据集。由于舌象的一些特征类型是不冲突的,一张舌象中包含多种特征类型(如舌色、苔色、齿痕和裂纹),所以数据集的制作应当按照不同舌象特征分别制作数据集,例如按舌色特征制作数据集中可以分成淡红舌,淡白舌和深红舌三类;而按照苔色特征制作数据集中可以分成白苔,黄苔和无苔三类。原始的舌象数据图片不足,需要利用图像增强和生成对抗网络进行扩充。

3.2.2.舌苔检测

舌苔检测模块能利用舌象数据集训练网络模型,并能够用训练完成的网络对输入图像的舌象特征做图像分类,准确的识别出舌象中所含有的舌象特征信息,并将预测的结果输出。由于舌象的一些特征类型不冲突,一张舌象中包含多种特征类型,所以需要对几类舌象特征数据集进行分别训练,分别保存不同的训练权重参数,用于检测不同的舌象特征。

3.2.3.体质辨识

当普通用户上传舌象照片时,通过对舌苔检测模块给出的舌象特征信息结合汇总,对照舌象特征结构和体质对应图,辨识该舌象所反映出的人体体质信息,并能够用用户交互页面将其展示出来,界面能够简单易操作,尽可能满足更大的用户群体的需要。

3.3 非功能性需求

本课题非功能性需求主要是对计算机性能的需求,性能越高模型训练时的速度越快。硬件要求:计算机要有1.0 GHz以上CPU,512M内存,1G硬盘,独立显卡;软件方面:对于系统软件方面,操作系统最优为Windows 10 操作系统。开发语言用的是Python。

3 舌苔检测网络设计与实现

3.1 网络模型介绍

EffcientNet是一个由谷歌团队研究的卷积神经网络,适用于图像分类领域。在2019年发布时,在ImageNet top-1上达到了当时的最高精确度84.3%,在参数数量方面也比当时其他的模型要少很多。是一个比较火的卷积神经网络模型,性能也十分优秀。

3.2 网络模型分析

网络通过混合参数对传统的卷积网络进行优化,同时改变网络的宽度、深度和输入图像大小提升网络性能,相比于传统的卷积神经网络,EffcientNet在效率上有一定优势。扩展网络深度今日也被广泛应用于神经网络的训练中,深度网络可以提取更复杂的特征值,以帮助提高对目标数据集的学习能力。然而,深层网络往往会出现消失梯度的问题。增加网络的宽能够使特征图获得更多通道数,同样得到广泛应用。通过在每个通道上进行卷积运算,这使得模型更具表现力。宽度大能让网络更好的学习各种特性,这使得训练网络变得容易。然而,也正是因为网络宽度足够导致网络深度是不够的。即使提取的特征丰富,但层次却不高,可以通过网络分辨率,丰富网络的感知区域来学习更加多的信息,网络的性能也可以得到提高。

综上所述,对网络的宽度、深度和输入图像分辨率的缩放需要找到一个合适的度,对其中的一方面进行盲目的缩放并不能达到最优的效果,EffcientNet则是非常成功的协调了上述三个方面的缩放,优化了网络性能。

3.3 网络模型搭建及功能实现

本课题是基于机器学习的舌苔检测,其实现主要包括以下几大模块:网络模型模块、数据模块、训练模块、检测模块、体质辨识模块。开发环境主要采用了PyCharm+Python3.6,工作环境主要为Windows10操作系统。舌苔检测程序设计的简要结构如图5.3所示:

本课题使用的是EffcientNet网络中的EffcientNet-B0网络模型,使用Python中的Pytorch库中的torch.nn方法实现神经网络的搭建,网络模型主要分为四个小模块:网络主模块、卷积+BN模块、注意力机制模块、MBConv模块。三个功能模块分别实现了上一节介绍的EffcientNet网络模型中的主要功能,主模块整合各个功能部分,实现EffcientNet-B0卷积神经网络的功能。

数据处理的主要功能是读取并处理舌象数据集,利用python中的os库中的path方法,遍历数据集目录,将舌象数据集中的80%划分为训练集输入到网络中进行训练,20%划分为验证集验证网络训练后的准确率,并在数据集图像训练前对输入图像进行预处理:使用torchvision中transforms的RandomResizedCrop方法,随机对数据图像裁剪为不同的大小和纵横比,然后将裁剪后的图像缩放到EffcientNet-B0网络输入图像的指定大小。使用transforms中Normalize方法对输入舌象数据集的数据集进行归一化操作。

训练模块的主要功能是使用数据处理模块读取舌象数据集,再调用网络模型模块中进行训练。将每一个batch的数据作为一个step,在训练模块的每一个step训练流程如下图5.4。

训练模块中预留有多个参数设置:学习率(lr)、批大小(batch_size)、迭代次数(epochs)、是否导入预训练权重、normalize参数等等,从而能在对比实验中不断调整参数,优化完拿过来模型的效果。

每一轮训练后都使用验证集对模型进行验证,并将训练和验证中得到的训练loss曲线以及验证准确率利用可视化工具Tensorboard在网页中展示出来,更直观的观察模型的训练情况,示例如图5.5,利用实验中对比模型优劣采用更加合适的训练参数设置。在完成训练后的将参数权重进行保存。

检测模块的主要功能是将待检测舌象图片输入后,将图像大小调整至224*224,利用训练模块当中保存好的训练权重参数,使用torch中的no_grad()方法对舌象图片进行分类并能预测其结果,给出各项分类预测的概率,如图5.6,并将预测概率最高的分类输出给体质辨识模块。

体质辨识界面模块的主要功能是利用用户交互界面,获取用户上传的个人舌象图片,并将其送到检测模块中检测,得到舌象特征信息,对照舌象特征结构和体质对应图,辨识该舌象所反映出的人体体质信息,并将其展示出来,体质辨识界面如图5.7所示,该模块采用pyqt5库实现了用户的交互功能。简单易操作,方便普通用户能够更方便的对舌象进行检测。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1458554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue的个人笔记

Vue学习小tips ctrl s ----> 运行 alt b <scrip> 链接 <script src"https://cdn.jsdelivr.net/npm/vue2.7.16/dist/vue.js"></script> 插值表达式 指令

unplugin-vue-components解决命名冲突

我们在vue项目中通常会利用unplugin-vue-components插件进行自定义组件的自动引入 注&#xff1a;如果不知道怎么配置unplugin-vue-components插件&#xff0c;欢迎看我整理的这篇&#xff1a; vue3项目配置按需自动引入自定义组件unplugin-vue-components 当出现同名文件时&a…

详解平面点云面积计算

部分代码展示&#xff1a; &#xff08;1&#xff09;利用格网法计算面积&#xff1a; //&#xff08;2&#xff09;测试使用格网法计算平面点云面积 void main() {char *inputpath "D:\\testdata\\data.txt";vector<pcl::PointXYZ> points ReadPointXYZIn…

TRS 2024 论文阅读 | 基于点云处理和点Transformer网络的人体活动连续识别

无线感知/雷达成像部分最新工作<持续更新>: 链接地址 注1:本文系“无线感知论文速递”系列之一,致力于简洁清晰完整地介绍、解读无线感知领域最新的顶会/顶刊论文(包括但不限于 Nature/Science及其子刊; MobiCom, Sigcom, MobiSys, NSDI, SenSys, Ubicomp; JSAC, 雷达学…

百年明牌门业入围2024中国别墅门十大品牌榜单

一年一度的中国别墅门十大品牌网络评选活动圆满的落下帷幕。来自浙江的“百年明牌”凭借自身优异的产品品质&#xff0c;以及极佳的市场口碑&#xff0c;强势入围2024中国别墅门十大品牌榜单。 武义誉鑫安防科技有限公司坐落于素有“中国五金之都”和“中国门都”之称的永康市&…

阿里云幻兽帕鲁Windows 服务器怎么下载存档?

阿里云幻兽帕鲁Windows 服务器怎么下载存档&#xff1f;通过远程连接window服务器桌面的方式。 远程连接到阿里云的 Windows 服务器后&#xff0c;可以将压缩后的存档文件&#xff0c;拖动到 workbench\Download 目录后&#xff0c;就会触发浏览器的文件下载&#xff0c;然后将…

电子防潮柜如何应对潮湿问题?

智能化时代的到来&#xff0c;让电子产品成为人们生活中的必需品&#xff0c;电子产品对存储环境的要求非常高。潮湿会产生发霉、生锈、氧化、腐蚀、变形等现象&#xff0c;缩短了电子产品的寿命。绝大部分电子产品都要求在清洁低湿干燥的环境中存放&#xff0c;环境中的温湿度…

企业微信会话存档是什么?

在当今数字化时代&#xff0c;企业对于信息管理和数据保存的需求日益增强。 企业微信&#xff0c;作为一款专为企业打造的即时通讯工具&#xff0c;不仅提供了高效的内部沟通机制&#xff0c;还通过其会话存档功能&#xff0c;为企业的数据安全和合规性提供了有力保障。 那么&…

代码随想录算法训练营29期|day55 任务以及具体安排

第九章 动态规划part12 309.最佳买卖股票时机含冷冻期 class Solution {public int maxProfit(int[] prices) {//0代表持股票&#xff0c;1代表保持卖出状态&#xff0c;2代表卖出股票。3代表冷冻int[][] dp new int[prices.length][4];dp[0][0] -prices[0];for(int i 1 ; …

Android EditText关于imeOptions的设置和响应

日常开发中&#xff0c;最绕不开的一个控件就是EditText&#xff0c;随之避免不了的则是对其软键盘事件的监听&#xff0c;随着需求的不同对用户输入的软键盘要求也不同&#xff0c;有的场景需要用户输入完毕后&#xff0c;有一个确认按钮&#xff0c;有的场景需要的是回车&…

【Docker】Docker存储卷

文章目录 一、什么是存储卷二、为什么需要存储卷三、存储卷分类四、管理卷Volume创建卷方式一&#xff1a;Volume 命令操作方式二&#xff1a;-v 或者--mount 指定方式三&#xff1a;Dockerfile 匿名卷 操作案例Docker 命令创建管理卷Docker -v 创建管理卷Docker mount 创建管理…

提升VR全景摄影画质的8个因素

如今VR全景拍摄的门槛已经很低&#xff0c;包括无人机、全景相机等都具有一键全景的功能。很多初次接触VR全景拍摄的朋友会发现同样的设备&#xff0c;为啥拍出来的效果就不如别人呢&#xff1f; 其实&#xff0c;要提升VR全景拍摄质量&#xff0c;只需要了解以下几个环节&…

聚观早报 | 比亚迪秦PLUS荣耀版上市;任天堂成日本最富有公司

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 2月20日消息 比亚迪秦PLUS荣耀版上市 任天堂成日本最富有公司 理想汽车2024春季发布会 真我12 Pro系列国内官宣 …

leetcode 105. 从前序与中序遍历序列构造二叉树【构造二叉树】

原题链接&#xff1a;105. 从前序与中序遍历序列构造二叉树 题目描述&#xff1a; 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 输入输出描述&…

数据采集三防平板丨三防平板电脑丨停车场应用

随着现代科技的不断发展&#xff0c;三防平板已经成为许多人工作和生活的必备工具。在停车场这个场景中&#xff0c;三防平板的应用可以大大提高停车场管理的效率和安全性。 停车场是现代城市交通管理的重要组成部分&#xff0c;它直接关系到城市交通的流畅和公共安全。停车场…

PostgreSQL的checkpointer进程

bgwriter与checkpointer进程对比 bgwriter进程与checkpointer进程&#xff0c;虽然都会写出脏页&#xff0c;但是刷脏的目的、频率、控制参数等&#xff0c;都有不同&#xff0c;以下是两则的区别&#xff1a; 区别bgwriter进程checkpointer进程当前&#xff0c;该进程刷脏的…

Itext生成pdf文件,html转pdf时中文一直显示不出来

之前使用freemark模板渲染ftl页面,转出的pdf中&#xff0c;css2有些样式好像不支持&#xff0c;比较常用的居中样式都没有效果&#xff0c;text-align:center 改造成使用html页面来转pdf&#xff0c;css2的样式可以生效,itext是不支持css3的弹性布局的ITextRenderer pdfRendere…

【C++】---类和对象(下)初始化列表、explicit、匿名对象、友元

一、再谈构造函数 注意&#xff1a;构造函数体内是赋值&#xff0c;不是初始化&#xff01;&#xff01;&#xff01; class Date { public: Date(int year, int month, int day){_year year;_month month;_day day;} private: int _year; int _month; int _day; };1.为什…

css实现悬浮卡片

结果展示 html代码 <!doctype html> <html lang"zh"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge,chrome1"> <meta name"viewport" content"…

【Web前端笔记09】浮动与定位

09 浮动与定位 一、浮动 二、清除浮动的影响 三、display属性 四、position定位 1、静态定位static 2、relative 相对定位&#xff08;自恋型&#xff09; 3、absolute 绝对定位 4、fixed 固定定位 09 浮动与定位 一、浮动 定义&#xff1a;定义元素框相对于…