基于微信小程序云开发的牙齿健康检测系统的探索与设计

2024-04-16 03:25刘汉奕黄俊闻黄映欣谢梦怡叶嘉欣
电子制作 2024年6期
关键词:牙齿卷积程序

刘汉奕,黄俊闻,黄映欣,谢梦怡,叶嘉欣

(广东东软学院,广东佛山,528225)

0 引言

健康是促进人的全面发展的必然要求,是经济社会发展的基础条件。根据党的十八届五中全会精神,中共中央、国务院印发《“健康中国 2030”规划纲要》,当前国家在发展过程之中需要构建“大卫生”“大健康”这一新的发展格局,在发展过程中促进优化健康服务、发展健康产业,坚持预防为主、防治结合。并且要求加强口腔卫生,12 岁儿童患龋率控制在25%以内[1]。但是传统的牙齿健康检测服务多局限于诊所以及医院,往往需要提前预约或到店取号排队而消耗大量时间和精力。使用临床设施以外的环境和纳入数字技术是提高对影响儿童的口腔健康状况的认识的关键[2]。随着移动互联网的发展,人们更希望能够随时随地自行检测牙齿状况。本文就旨在以预防检测牙齿健康疾病为主以便携检测为辅去设计一款简单易用的牙齿健康检测小程序来满足用户的需求,并能够用有效的方式提高牙齿健康护理水平,从而减少不必要的医疗费用和痛苦。

1 系统整体设计

该牙齿健康检测系统主要由硬件设备、云平台和微信小程序三个部分组成。其中所使用到的云平台主要包括:新大陆物联网云平台,EasyDL 平台。检测硬件设备主要是口腔探头,该设备主要使用安信可最新发布小尺寸的摄像头模组ESP32-CAM,进行数据采集,支持图片WiFi 上传。以微信小程序作为用户交互的终端。新大陆物联网云平台主要负责硬件设施和软件的接入,通过调用新大陆API,实现对口腔探头的控制。基于百度EasyDL 平台定制化模型训练拍摄的口腔进行检测,牙齿健康检测系统整体设计如图1 所示。

图1 牙齿健康检测系统整体设计图

移动检测设备通过新大陆物联网云平台不仅实现和手机进行连接功能使得用户及管理人员可以通过手机、平板、计算机等信息终端,实时掌握传感设备数据,并可以手动/自动地调整控制设备,可以清晰灵活地进行拍照检测,同时检测设备具备在线采集、无线传输、数据分析、决策支持、一体化控制等功能。

用户通过移动设备在口腔内部移动,检测到的画面用户可以实时观看并进行拍照后,将要检查的牙齿图片传到后台。后台在接收到图片数据后使用EasyDL 平台训练的模型进行图像分类、物体检测、图像分割,将分析的数据返回给后台,后台对得到的图片分析数据后对数据进行相应的处理,如牙齿类型,牙齿状况,意见等消息连同分析后的图片一并返回到客户端。

■1.1 微信小程序

微信小程序是一种在微信平台内运行的轻量级应用形态,可以在微信中直接运行,无需安装,实现了“用完即走”的理念和“随手可用”的理念。如何能够拥有微信平台庞大的用户基数,且能在微信中开发出功能较为齐全的移动端应用,是牙齿健康检测平台发展的一个痛点。而微信小程序的出现,为这个问题提供了一种新的解决思路[3]。

微信小程序主要由三部分组成:使用WXML+WXSS作为小程序的界面层,主要用于实现小程序的静态页面和样式,其中WXML 是类似于web 中的HTML 都是标记性语言,WXSS 类似于web 中的CSS 作为样式语言;使用JavaScript 实现交互和业务逻辑作为小程序的逻辑层;使用JSON 文件作为小程序的配置文件。

同时微信小程序提供云开发的功能,云开发使得终端客户不需要部署、配置或管理服务器服务,代码运行所需要的服务器服务皆由云端平台来提供[4]。

■1.2 EasyDL 平台

EasyDL 是百度智能云推出的一个深度学习模型训练和部署平台。EasyDL 的目标是使开发者能够更轻松地构建、训练和部署深度学习模型,特别是在计算机视觉任务上。

目前EasyDL 图像共支持训练3 种不同应用场景的模型:图像分类:识别一张图中是否是某类物体/状态/场景。可以识别图片中主体单一的场景。物体检测:在一张图包含多个物体的情况下,定制识别出每个物体的位置、数量、名称。可以识别图片中有多个主体的场景。图像分割:对比物体检测,支持用多边形标注训练数据,模型可像素级识别目标。适合图中有多个主体、需识别其位置或轮廓的场景。

同时该平台能够提供在医疗专业领域中医疗镜检识别:针对医疗检验场景中可能存在的正常或异常结果进行图片收集,并基于图片关键特征进行标注完成训练,协助医生高效完成结果判断能够为牙齿健康检测平台提供强大的图像处理和识别功能。

■1.3 新大陆物联网云平台

新大陆物联网云平台是为连接和管理物联网设备而设计的云服务平台,该平台主要为该牙齿健康检测项目提供了设备管理、数据存储、实时数据分析、远程控制等功能,以支持物联网应用的开发和部署。使得用户及管理人员可以通过手机、平板、计算机等信息终端,实时掌握传感设备数据,及时获取报警、预警信息,并可以手动/自动地调整控制设备,最终实现使以上管理变得轻松简单。

■1.4 核心技术

拍照上传识别口腔问题的核心算法是CNN 算法。卷积神经网络(Convolutional Neural Networks, CNN)是人工神经网络中的一个典型代表结构,由 Lecun 在 1989 年提出,该网络具有局部连接、权值共享、平移等变和池化采样等特点,已逐渐成为深度学习网络中用于提取特征的代表性网络,其主要由卷积层(Convolution)、池化层(Pooling)、全连接层(Fully connected, FC)、非线性单元(Non-linear units)、损失函数(Loss function)等部分组成。在卷积神经网络结构中,前面若干结构主要由卷积层跟池化层组成。卷积层 作为卷积神经网络中的重要组成结构,利用若干个远小于输入图像尺寸的卷积核 在空间上进行局部、稀疏运算,可以看成对图像进行窗口滑动计算的过程,且 基于卷积神经网络的细粒度图像识别关键技术分析与研究 28卷积核的权值共享,可以有效节约计算量和存储空间。池化层是对卷积输出特征 图下采样的操作,图像经过卷积操作后,获得的特征图由于维度较高,计算量过大,容易出现过拟合的情况,池化操作可以降低特征图维度,并减少过拟合情况。利用非线性单元(激活函数)可以实现对线性卷积输出的非线性映射,提高网络特征表达的能力,常见的激活函数包括 ReLU、Sigmoid 等,还有一些变种比如 Leaky ReLU、ELU 等,可以针对不同的任务需求选择不同的激活函数。一般的卷积神经网络还包含了全连接层,全连接层位于整个卷积神经网络的最后,用于将学习到的特征向量表示映射到样本标记空间中去,实现视觉任务的分类或回归[5]。

2 系统硬件设计

该研究主要的辅助硬件有口腔内窥镜。口腔内窥镜系统主要由成像系统、照明系统、图像显示及处理系统三个部分组成,即根据ESP32-CAM 原理设计。待观察的牙齿目标通过显微成像系统成像在图像传感器上,在驱动电路的控制下,图像传感器完成图像处理并送入显示设备进行显示及存储。在口腔环境下观察牙齿需要辅助光源照明整个视场。因此口腔内窥镜的设计需要完成成像系统和照明系统,硬件设计外观如图2 所示。

图2 外观3D 模型图

在技术方面,以下是ESP32-CAM 和摄像头的几个关键技术:

(1)ESP32 芯 片:ESP32 是一款双核64 位处理器,集成了WiFi 、蓝牙和低功耗技术,适用于物联网应用。

(2)摄像头模块:ESP32-CAM 配备了一款OV2640摄像头模块,它具有200 万像素,支持JPEG 格式图像压缩,适用于嵌入式系统和可穿戴设备。

(3)压缩算法:为了在ESP32-CAM 的内存容量和传输带宽的限制下实现高质量的图像传输,通常使用JPEG 压缩算法。该算法最大程度地减小了图像文件的大小,同时保留了足够的图像质量。

(4)数据传输:ESP32-CAM 可以通过Wi-Fi 或蓝牙将图像数据传输到远程设备或服务器,即传输到小程序。对于实时视频传输,通常使用UDP 协议实现流媒体传输。

(5)图像处理:在ESP32-CAM 上执行图像处理可以用于特定的应用。例如,可以使用OpenCV 库进行目标检测和跟踪、颜色分割、人脸识别等任务。

(6)ESP32-CAM 采用DIP 封装,直接插上底板即可使用,实现产品的快速生产,为客户提供高可靠性的连接方式,方便应用于各种物联网硬件终端场合。体积超小的802.11b/g/n WiFi + BT/BLE SoC 模块。

3 系统功能分析和实现

牙齿健康检测系统主要依托微信小程序运行,用户可以通过微信小程序使用该系统。系统功能主要分为消息管理、用户管理、设备管理、入驻管理、学习管理、商城管理和其他管理7 个模块,具体的功能结构如图3 所示。

图3 功能结构图

在设计和实现系统的功能之前,除了需要明确系统的功能需求,还需要设计系统的具体架构。结合第一章系统整体设计设计系统的3 层架构,3 层架构分别为表现层、业务逻辑层和持久层,该系统结构设计如图4 所示。

图4 系统结构图

(1)表现层。表现层主要是指小程序界面,在开发小程序时,主要使用的开发工具是HBuilder X。该工具提供vue 框架方便开发小程序,是当前最便捷的微信小程序开发工具[6],而且开发出来后能够方便日后够跨平台运行。同时在开发小程序时主要使用tuniao-uni 和uni-app 框架。

(2)业务逻辑层。该层主要是指系统的业务功能模块,根据系统功能设计,系统用户主要包含用户,诊所/医院,EasyDL 平台,新大陆物联网云平台。

(3)持久层。持久层主要负责数据和文件资源的存储。其中文件资源存储功能是指系统的图片以及视频资源的存储,主要使用微信小程序云开发中的云端SDK 实现;系统数据存储功能使用小程序原生接口云数据库、云函数及云端SDK 三者配合实现。

图5 的左图为用户进入微信小程序的主界面,在用户的页面中一共分为五个主模块。其中首页模块主要包括:百科、病类、拍照检测、3D 模拟、社区、购物以及护牙知识模块。图5 的右边两幅图为入驻者管理端的主界面,在管理端的主界面中主要由3 个模块组成。其中在首页面模块中,主要包括财政管理、经营管理、订单管理、活动管理、门店管理、服务管理、预约管理。

图5 客户端与管理端主页面

■3.1 用户登录模块的实现

在用户点击“用户登录”时,该模块利用微信自带的授权登录功能实现客户端和管理端的登录。在客户端中,用户在进入小程序的时候,会通过调用小程序的内置api“wx.login”接口,获取临时登录凭证 code,发送到后台进行登录凭证校验,并调用 getOpenid 云函数,获取用户的微信头像和微信昵称,并显示在“我的”页面上,随后可对选择对信息进行查看或修改。如果用户没有授权登录,则调用内置api “wx.getSetting”和“wx.authorize”进行判断用户是否授权和弹出授权窗,该功能的主要流程如图6 所示。

图6 用户登录页面

■3.2 百科知识模块的实现

百科知识模块实现了对牙齿相关内容的全面介绍,包括了牙齿的生理结构、文化典故、象征意义以及疾病类的分析介绍。用户可以通过该系统获取对牙齿的深入了解,从而增进对口腔健康的认识,提高对牙齿健康的重视程度,并能够更好地进行口腔护理和预防措施,最终对用户的口腔健康产生积极的影响。

■3.3 拍照检测模块的实现

在微信小程序中首先利用CNN 算法在海量的牙齿疾病数据集中获取牙齿图像,对图像进行预处理,如缩放、裁剪或灰度化,以适应CNN 模型的输入要求。然后对特征进行提取,经过卷积层和池化层,提取图像中的各种特征,例如边缘、纹理等,这些特征将被用于后续的分类任务。接着构建CNN 模型,包括多个卷积层、激活函数(如ReLU)、池化层和全连接层,这些层将对图像进行特征学习和分类。紧接着对构建的模型进行训练,通过反向传播算法,不断调整模型参数以最大化预测准确性。通过ESP32-CAM 硬件采集牙齿图像,并通过JPEG 压缩算法进行传输到微信小程序。然后再将传输过来的图像数据导入到模型当中进行预测,将预测结果返回给微信小程序,供用户查看和分析,最终得出牙齿情况的预测结果供用户查看和分析,该功能流程图如图7 所示。

图7 拍照检测流程图

具体实现页面图如图8 所示。

图8 拍照检测实现图

■3.4 社区课堂模块的实现

社区课堂模块当中,用户可以通过在社区当中查看别的用户发的帖子,并且可以在该帖当中进行点赞,留言,收藏等操作。也可以发表自己的帖子,通过审核之后发表,然后给别的用户看到;并且社区当中还包括了课堂,用户可以订阅这些课堂进行学习,课堂当中也进行了分类,如牙齿护理、口腔常识、常见病例和儿童口腔等,该功能子系统的用例图如图9 所示。

图9 社区课堂功能子系统用例图

■3.5 入驻管理模块的实现

牙科医生通过入驻该微信小程序,可以让牙科医生通过微信平台提供牙科服务,方便患者预约、咨询,提升医疗服务的便捷性和透明度,同时也能够帮助医生更好地管理诊所信息和排班安排。对于医生来说,这样的平台可以帮助他们扩大患者群体,提高诊所的知名度,更好地管理预约和排班,提升工作效率和收入。同时还能够通过平台进行线上咨询和诊疗,节约时间和成本。对于患者来说,他们可以通过微信平台方便地预约牙科医生的服务,获取专业建议,减少候诊时间,提升就医体验。同时还能够通过平台了解到医生的资质和诊所的信息,增强就医信任感和便利性,该功能模块的主要流程图如图10 所示。

图10 牙医入驻流程图

■3.6 线上预约模块的实现

用户在用户端的主页面上点击底部导航栏中的地图模块的时候就进入到线上预约的模块。在线上预约模块中,用户可以通过地图看到当前距离用户位置一定范围的诊所或医院。通过页面的向上滑动可以看到附近诊所或医院的具体信息,同时也可以通过搜索框找到自己想要的诊所和医院然后点击进入进行预约。除了可以在地图模块中进行预约也可以在问诊的时候直接针对当前问诊的医生发起预约,具体实现图如图11 所示。

表1 hospital 医院表

表2 community 社区表

表3 User 用户表

图11 线上预约实现图

4 数据库设计

■4.1 数据库E-R 图设计

数据库E-R 图设计如图12 所示。

表4 Class 课堂表

表5 Hardware 探头硬件表

表6 Doctor 入驻医生表

图12 数据库E-R 图

■4.2 数据库物理设计

牙齿健康检测系统的数据库系统主要存储三个方面的数据,即硬件设备的信息、用户和入驻人员的信息和课堂学习信息。本系统采用微信小程序的云数据库作为后台数据库,并建立相关的数据表,从而实现对数据的统一管理。数据库的主要结构表如表1~ 表6 所示。

5 总语

在本研究当中以基于微信小程序云开发进行一款牙齿健康检测系统的探索与设计,通过微信小程序、EasyDL 平台、新大陆物联网云平台外加辅助产品的根据ESP32-CAM为设计原理的探头硬件以及核心算法卷积神经网络算法实现能够让用户随时随地便捷地对牙齿进行检测,以达到提前预防、实时监测、低成本和省时高效的效果。

在接下来的研究中,本团队会进一步优化和改进该系统,修改系统功能和增加更多增值服务以提高用户体验,获取更多的数据集,实现更高精度的检测。并且相信在后续的不断发展和系统的不断推广,它将会得到更广泛地应用和发展。

猜你喜欢
牙齿卷积程序
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
试论我国未决羁押程序的立法完善
基于傅里叶域卷积表示的目标跟踪算法
“程序猿”的生活什么样
可怜的牙齿
英国与欧盟正式启动“离婚”程序程序
如何保护牙齿?
爱护牙齿要注意的事
创卫暗访程序有待改进