温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
微信小
程序
心电图
智能
校准
系统
设计
实现
曹鹏
工程应用本栏目责任编辑:梁 书Computer Knowledge and Technology电脑知识与技术第19卷第18期(2023年6月)第19卷第18期(2023年6月)E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology 电脑知识与技术Vol.19,No.18,June 2023基于微信小程序的心电图像智能校准系统的设计与实现曹鹏1,张翰文2,张志常1,常世杰2(1.中国医科大学 智能医学学院 计算机教研室,辽宁 沈阳 110122;2.中国医科大学 智能医学学院 生物医学工程系,辽宁 沈阳 110122)摘要:心电图是被广泛应用于记录人体心脏的电活动以及帮助诊断心脏类疾病,传统纸质心电图不利于保存与传输,而拍摄心电图像可能会产生畸变,对后续诊断产生影响。文章设计一种基于微信小程序的心电图像智能校准系统,可以对拍摄心电图像实现智能校准,尽可能还原初始数据,为后续心电图像的保存与诊断提供帮助。关键词:微信小程序;心电图像;图像校准;智能系统中图分类号:TP311 文献标识码:A文章编号:1009-3044(2023)18-0079-03开放科学(资源服务)标识码(OSID):1 研究背景随着生活水平不断提高,人们的健康意识不断增强,对于身体指标的各项检查随之增加。心电图(Electrocardiogram,ECG)是利用心电图机从体表记录心脏每一心动周期所产生的电活动变化图形的技术,广泛应用于记录人体心脏的电活动以及帮助诊断心脏类疾病1。由于传统纸质心电图不利于保存与传输,所以将如心电图像之类的纸质病历及检查报告电子化成为近年来的研究热点2。利用手机拍摄心电图像可快速实现纸质图像电子化,但在拍摄过程中会产生图像畸变,对图像准确性产生影响。同时心电图像结构复杂,与传统图像校准存在区别3。智能手机日益普及,移动端App被广泛使用。小程序作为移动端App具有多平台兼容、易推广和成本低等优点,成为主流移动端App之一4。本设计利用小程序搭建心电图像智能校准平台,通过移动端小程序拍摄心电图像实现上传、服务端利用OpenCV算法对拍摄心电图像进行校准处理,还原原始数据,最终将校正后结果存储并返回移动端,达到利用移动端App智能还原原始心电数据并存储的目的。2 系统总体设计2.1 系统设计目标用户登录系统后,上传拍摄的纸质心电图像,由于在拍摄过程中,角度、光线等因素可能使图像产生倾斜、扭曲等畸变,对后续医疗信息的准确性和诊断产生影响,心电图像智能存储系统可以自动完成拍摄心电图像的预处理,轮廓检测,多边形拟合以及图像校准,最终返回还原的心电图像,以备后续存储、传输与诊断。由于医学图像数据具有较强的隐私性,故系统设计时利用鉴权及对象存储等方式保护用户数据隐私及系统安全性5。2.2 系统设计架构与技术介绍系统设计主要分为移动客户端和服务器端两部分。移动客户端利用微信小程序实现,采用微信开发者工具进行开发。客户端实现用户对拍摄纸质心电图像的上传功能,随后将心电图像上传到至对象存储中。服务端使用ubuntu操作系统,采用云托管实现。服务器端通过权限访问对象存储桶,下载相应心电图像对象,在服务端对心电图像进行预处理,轮廓检测,多边收稿日期:2023-03-30基金项目:辽宁省科技厅:基于内容的海量DICOM图像比对与检索方法研究(2021)作者简介:曹鹏(1986),男,辽宁康平人,讲师,硕士,研究方向为图像处理与识别、小程序开发;张翰文(2000),男,辽宁沈阳人,本科在读,研究方向为图像处理与识别、小程序开发;张志常(1976),男,辽宁沈阳人,通信作者,副教授,硕士,研究方向为计算机应用;常世杰(1981),男,辽宁沈阳人,通信作者,教授,博士,研究方向为生物医学工程。图1 微信小程序+微信云托管搭建系统79DOI:10.14004/ki.ckt.2023.0910本栏目责任编辑:梁 书工程应用Computer Knowledge and Technology电脑知识与技术第19卷第18期(2023年6月)第19卷第18期(2023年6月)形拟合以及图像校准,最终将处理后的校准图像上传至对象存储中,最终客户端获取相应心电校准图像。本系统设计中使用对象存储操作心电图像,以及通过云托管搭建服务器端,是本系统设计的主要核心点和创新点,下面对这两种技术给予说明。1)对象存储本设计通过对象存储实现心电图像的上传与下载,对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。腾讯云COS使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务。COS通过控制台、API、SDK和工具等多样化方式简单、快速地接入,实现了海量数据存储和管理。通过COS可以进行任意格式文件的上传、下载和管理。同时遍布全国范围的CDN/EdgeOne节点可以对文件下载进行加速。利用腾讯云COS可更好地对存储图像实现并发存储和传输,同时也能更好地保证数据的安全性和隐私性6。在实际操作中,文件对象被存储在对象存储的存储桶中,存储桶(Bucket)是对象的载体,可理解为存放对象的“容器”,且该“容器”无容量上限。对象以扁平化结构存放在存储桶中,无文件夹和目录的概念,用户可选择将对象存放到单个或多个存储桶中。对象存储主要功能如表1所示。表1 对象存储主要功能功 能存储桶操作对象操作说 明支持创建、查询、删除、清空存储桶根据访问频度的高低和容灾程度高低,COS 提供多种对象的存储类型,包括标准存储、低频存储、智能分层存储、归档存储和深度归档存储。支持对象/文件夹:上传、查询、下载、复制和删除操作2)云托管本设计的服务器端采用微信云托管实现。微信云托管是微信团队提供的以云原生为基础的,免运维、高可用服务上云解决方案7。云托管支持目前绝大多数语言以及框架项目,本设计服务端采用Flask框架部署,利用Python和OpenCV实现图像处理功能。同时,微信云托管还集成持续交付部署,DevOps自动化,安全鉴权等众多能力,微信云托管与微信生态深度融合,具有免鉴权,云调用,消息推送等众多优势特性,并且在安全、可靠性方面有专业保障。微信云托管使用目前主流的容器平台Docker以及容器编排技术Kubernetes(K8S)8。当使用微信生态下客户端(小程序、公众号),向部署在微信云托管上的后端服务发送请求时,会自动经过微信接入层(内网),并附带微信校验的权威用户信息。非微信生态下的客户端(普通Web网页、App),向部署在微信云托管上的后端服务发送请求时,会经过微信云托管公网网关层(所有用户共用,由微信云托管团队维护),并根据域名转发到对应的用户服务。微信云托管提供默认公网域名,也可以接入自己备案好的自定义域名。3 心电图像智能分析系统设计与实现3.1 客户端功能实现本设计中客户端为移动端微信小程序,开发语言主要为JS语言。小程序端主要功能为将拍摄心电图像上传至对象存储的存储桶,同步显示上传原始拍摄图像,并在服务端处理图像后显示校准后图像。首先实现将拍摄心电图片上传至缓存,并返回临时路径,微信小程序开发API中wx.chooseMedia接口用于实现拍摄或从手机相册中选择图片或视频进行上传,具体实现如下:wx.chooseMedia(count:9,mediaType:image,video,sourceType:album,camera,maxDuration:30,camera:back,success(res)console.log(res.tempFiles.tempFilePath)console.log(res.tempFiles.size)第二步利用上传图片的临时路径将图片存储至对象存储的存储桶,微信小程序云开发 API 中 wx.cloud.uploadFile用于将文件上传至云开发存储或者对象存储中,具体实现代码如下:wx.cloud.uploadFile(cloudPath:example.png,/对象存储路径filePath:wxfile:/test,/本地文件,通过选择图片接口获取config:env:werun-id/微信云托管环境IDsuccess:res=console.log(res.fileID),fail:err=console.error(err)最后在移动客户端界面利用image组件和setData()方法同步显示上传的心电拍摄图像。3.2 服务端功能实现本设计中服务端利用云托管搭建基于Python的Flask框架,开发语言主要为Dockerfile脚本指令和Python。图2 微信云托管架构80工程应用本栏目责任编辑:梁 书Computer Knowledge and Technology电脑知识与技术第19卷第18期(2023年6月)第19卷第18期(2023年6月)首先利用Dockerfile部署云托管服务器,服务器端使用ubuntu系统。本设计中服务器端需实现心电图像的预处理,轮廓检测,多边形拟合以及图像校准等功能,故在服务器端安装Python环境及OpenCV等图像处理相关库,Dockerfile文件主要脚本指令如下:FROM ubuntu:20.04&apt-get install-y python3 python3-dev python3-pip&apt-get clean&apt-get autocleanCOPY./appWORKDIR/app&pip install-upgrade pip&pip install-user-r requirements.txtEXPOSE 80CMD python3,run.py,0.0.0.0,80在requirements文件中指定所需库及相应版本,主要包括Flask环境、Python环境、OpenCV库以及对象存储所需库,主要指令如下:click=8.0.3Flask=2.0.2Flask-SQLAlchemy=2.5.1greenlet=1.1.2itsdangerous=2.0.1Jinja2=3.0.3MarkupSafe=2.0.1PyMySQL=1.0.2SQLAlchemy=1.4.29Werkzeug=2.0.2Pillow=8.3.1requests=2.25.1opencv-python-headlesscos-python-sdk-v5第二步,在云托管服务器端实现对象存储中文件的访问,通过COS默认域名访问时,SDK 会以bucket- 的域名形式访问COS。访问对象存储需先生成CosS3Client实例,然后循环上传或下载对象,生成CosS3Client实例主要代码如下:config_cos=CosConfig(Region=region,SecretId=secret_id,SecretKey=secret_key,Token=token,Scheme=scheme)client=CosS3Client(config_cos)生成CosS3Client实例后对指定存储桶中的文件对象进行上传及下载操作,利用client.get_object方法下载存储桶中的对象文件,主要代码如下:bucket_MP=config.COS_BUCKET_MP#指定访问存储桶#通过存储桶+路径获得图片文件到服务器端def cossdk_get_object(uploadimgcloudPath):response=client.get_object(Bucket=bucket_MP,Key=uploadimgcloudPath,)imgName=os.path.split(uploadimgcloudPath)1responseBody.get_stream_to_file(imgName)return imgName利用client.upload_file方法上传