0 引言
随着社会的发展,不健康的生活习惯以及环境问题等因素导致前列腺和膀胱疾病的发病率明显增高。膀胱冲洗术是下尿路疾病术后的重要治疗手段,其效果直接影响患者的术后康复。快速冲洗效果较好,但是会刺激膀胱交感神经和逼尿肌,造成膀胱痉挛,加大出血量,增加感染的风险。慢速冲洗时,陈旧血液难以清除,易凝结成血块阻塞尿路导致引流不畅,引起膀胱内压增高,造成继发性出血[1]。术后的几个小时是出血量最多的时候,需要时刻注意冲洗情况,并根据出血量手动调节冲洗速度。若没有按照出血量及时调节冲洗速度,易导致患者不适和并发症,影响术后恢复[2]。
为了缓解目前临床上采用人工冲洗方式存在的弊端,本文设计了一套膀胱术后自动冲洗治疗系统。该系统具有操作便捷、成本低、可快速检测引流液中溶入的血液和血块并自动调整冲洗速率等优点,降低了泌尿外科病区的护理难度,为病人和医院提供一个更便捷的治疗手段。
1 系统的设计原理
本系统由图像采集系统、流量阀、压力传感器和智能化控制系统4个部分组成,图像采集系统采用OV2640摄像头进行图像采集,使用绿色LED光源从引流管正面照射管内的待检测引流液,引流液中的红色血液组织对绿光吸收效果强,拍摄的引流液图像的对比度会比采用白色光源情况下更高,方便后续在液晶屏上的显示与识别。白色光源与绿色光源环境下拍摄的灰度图像对比如图1所示。
智能化控制系统对图像采集系统传回的图像进行分析处理,可以获得当前进行膀胱冲洗的患者情况,并相应地对冲洗方式进行控制和调整。智能化控制系统主要由微控制器、FSMC控制器、DCMI、DMA(直接存储器访问)传输接口等部分组成。本系统所设计的系统硬件框图如图2所示。
2 系统的硬件设计
2.1 图像采集系统
本文所设计的图像采集系统选用OV2640(1 632×1 232)CMOS图像传感器,传感器内部自带A/D转换器,将采集放大后的原始模拟信号转变为数字信号,再由传感器内置的DSP处理转换为RGB或YUV格式的数据,通过STM32F407的DCMI接口传输至MCU处理[3]。
OV2640图像传感器有一个10位数字图像输出端口,为了方便图像数据的采集与处理,本设计中图像采集系统输出的数据采用8位并行方式。图像采集系统电路如图3所示。
图3中,X1为24 MHz的有源晶振,为传感器提供时钟信号。本系统供电为3.3 V,而OV2640的数字逻辑核电压DVDD为1.8 V,传感器I/O电源DOVDD要求范围为2.5 V~3.3 V,模拟电源AVDD要求为2.5 V。需要使用PAM3101DAB28和PAM3101DAB120两个低压差线性稳压(LDO)芯片降压,3.3 V电源经过滤波后通过两个LDO芯片降至2.5 V和1.8 V供图像传感器使用。传感器接口中,数据线D0-D7连接至MCU的DCMI数据接口。SIO_C和SIO_D为兼容IIC的SCCB总线,用于MCU对OV2640的寄存器进行配置[4]。PCLK为像素时钟,OV2640图像传感器会随着PCLK的翻转进行像素的输出。HREF为行有效信号,VSYNC为帧同步信号。
2.2 显示模块
本系统显示模块选用TFTLCD液晶屏。若屏幕与单片机通信方式采用SPI串行口,会导致显示速度严重降低[5],为了使得图像数据显示的速度更加快捷,方便后续算法的识别,TFTLCD屏幕采用16位8080并口。
本设计为了加快屏幕的图像显示刷新速度,将屏幕连接至STM32的FSMC接口[6]。屏幕的RS信号决定屏幕和MCU之间传输的是数据还是命令,可以将RS信号看做一个地址信号,LCD的RS引脚连接到FSMC接口中的地址线FSMC_A6上,当FSMC控制器写地址0时会使得该地址线为低电平,即对TFTLCD进行写命令操作,当FSMC控制器写地址1时会使得该地址线为高电平,即对LCD进行写数据操作,以上操作本质上就是FSMC控制器对SRAM设备操作的两个连续地址。TFTLCD即可当成只有两个地址的SRAM设备来操作,从而大幅度提升每一帧图像的显示速度。TFTLCD液晶屏接口电路如图4所示。
2.3 流量阀模块
为了根据识别结果准确地控制流量阀调节冲洗流量,本系统的流量阀使用微型两相四线减速步进电机带动偏心轮挤压冲洗液管,达到调节流量的目的。流量阀的Solidworks设计简图如图5所示。
控制步进电机运动需要提供电脉冲信号,同时需要提供相应的功率驱动电路,本设计中选用L298N双H桥式驱动芯片搭建电机驱动电路。电机驱动电路如图6所示。
STM32微控制器通过PF8、PF9、PF10和PF11 4个I/O口为步进电机提供电脉冲信号,在L298N驱动芯片和微控制器I/O口之间通过TLP521四路光耦实现电平匹配。由于电机是感性负载,当感性负载中电流发生变化时,电感两端会产生突波电压,可能造成驱动芯片被烧毁,需要接入D3~D10 8个肖特基二极管11EQS06作为续流二极管,防止电机的电流变化时产生突波电压对电路的损坏。
3 系统的软件设计
3.1 膀胱冲洗器智能化控制系统软件主流程
本系统启动完成整个软件的初始化后,先做一次自检。检测通过后,操作人员对整个系统的工作模式进行设置。当按下启动开关后,微控制器将分析识别拍摄到的引流液图像,根据接收到的数据对冲洗流量进行实时调整,达到智能化冲洗的目的,本系统的工作流程图如图7所示。
3.2 DCMI接口及DMA
STM32F407的外设中包含了DCMI接口,该接口是一个同步并行高速数字图像接口。该接口包含14条数据线和一条像素时钟线。
本文设计的OV2640电路采用8位并行数据接口,DCMI接口将捕获其数据线D[0:7]上的数据,并存放在32位数据寄存器DCMI_DR中。DCMI接口捕获的数据可用DMA搬运到目的地址,比如TFTLCD或SRAM。其优点是,在设置完目的地址和数据大小等参数后,就直接由DMA模块进行数据搬运,数据搬运过程中单片机无需参与,极大地提升了单片机运行速度[7]。本设计的程序中将DMA搬运来的数据存放在单片机的RAM中的一个32位数组内,经过处理后,再传输到LCD上进行显示和后续的算法识别。
3.3 识别算法
3.3.1 YUV格式
YUV是一种将亮度信号与色度信号分离的颜色编码方法,其中Y表示亮度,即灰度值,U和V表示色度。本设计的图像采集系统所选用的OV2640图像传感器输出数据可支持YUV422格式。将YUV格式中的U和V信号分量剥离后,留下的Y信号表示的图像即为黑白灰度图像[8]。为减小程序的计算量,在程序初始化时配置OV2640图像传感器寄存器,将输出设置为YUV422格式。本设计中采用的显示屏采用RGB565格式,无法直接显示YUV格式的图像。为了使剥离了U和V信号的Y信号在显示屏上以RGB565格式的灰度图像形式显示出来,需要做相应的格式转换。
3.3.2 平均灰度值和腐蚀算法
为了检测引流液中是否溶入了血液,本系统采取平均灰度值的方法进行检测。当溶有血液的引流液流经绿色LED光源的照射范围时,由于红棕色的引流液对绿光的吸收,摄像头此时拍摄到的图像亮度会随之下降,引起整个图像帧的平均灰度值降低。将采集到的图像YUV格式数据的高8位提取出来,很容易得到灰度值。每当传感器输出新的一帧图像时,VSYNC帧有效信号都将发生一次跳变。微控制器采集到该信号时,通过一个for循环函数不断地提取出之前DMA搬运到微控制器RAM内的YUV格式的图像数据,提取出Y分量的信息,并将提取出的Y分量数据累加至图像总像素的个数,最终的和除以图像像素点的总数,即可以得到该图像的平均灰度值。
本系统上电后先检测出透明澄清的引流液的平均灰度值,并以此作为阈值。后续检测过程中根据图像平均灰度值降低的程度,即可对当前引流液中溶有的血液浓度做出判断。
在对病人进行冲洗治疗时,随着引流液冲洗出的血块多为碎屑状血块和不规则团块状血块,由于不需要对过小的碎屑状血块进行加大流量冲洗的操作,因此在图像上可以将过小的碎屑状血块理解为噪声。为了在拍摄的图像上对冲洗出的血块进行检测,消除过小的碎屑状血块和团块状血块不规则轮廓的影响,采用可以消除小且无意义物体的腐蚀算法对图像进行分析识别[9]。
腐蚀算法是图像形态学中的一种运算,该算法通过填充结构元素的概念实现对图像的腐蚀效果。在图像中,腐蚀算法使用一个某种形态的结构元素对图像中的像素点进行扫描,结构元素与其覆盖的图像中的每一个像素做与运算,最终搜寻出图像中可以完全放下结构元素的区域。图像A被结构元素B腐蚀,可表示为:
其中,A为输入图像,B为结构元素。结构元素B平移a后得到Ba。若Ba包含于A,保留结构元素B平移a后的新位置a点。A被B腐蚀的结果E即为所有满足式(1)条件的集合。本设计中,读取结构元素所覆盖图像的中心点和上下左右4个像素点的灰度值,即采用菱形结构元素对引流液灰度图像进行腐蚀操作。腐蚀算法示意图如图8所示。
在得到了待检测引流液的实时图像并将其灰度化显示在TFTLCD显示屏上后,遍历图像的每一个像素点,使用LCD屏幕读点函数u16 LCD_ReadPoint(u16 x,u16 y),可以返回坐标为(x,y)像素点灰度值。用图像中每一个像素点的灰度值与程序中设定的灰度阈值进行比对,若找到符合程序设定的灰度阈值范围的像素点,以此像素点作为腐蚀运算的起始位置。设此点坐标为(x,y),并将此点作为腐蚀运算结构元素的中心,以此中心开始分别对(x-1,y)、(x+1,y)、(x,y-1)、(x,y+1)4个方向的4个像素点进行读点,即形成一个菱形的结构元素,若新读到的4个像素点的灰度值也符合灰度阈值的判定,则像素点(x,y)将会被保留,(x-1,y)、(x+1,y)、(x,y-1)、(x,y+1)这4个像素点作为结构元素新的中心,程序重复之前的操作继续向外进行读点。若以某一像素点向外读点至任意一个方向出现不匹配灰度判定阈值的点时,此像素点将会被抛弃,同时由此点向外读点的操作将会停止。当上、下、左、右4个方向的读点都停止后,此时得到的4个方向的边界点坐标即为当前阴影斑点的边界坐标。为了提高算法的识别精度,腐蚀算法函数需要进行多次迭代计算,若多次迭代计算后得到的阴影斑点的尺寸符合程序中对血块尺寸的设定,则判定灰度图像中识别到的该阴影斑点区域为血块,通过程序中的画矩形框函数将识别到血块进行标定并记录。对引流液识别的结果如图9所示。
通过对灰度图像平均灰度的计算和对阴影斑点的判定,MCU处理后向流量阀发出指令,调节冲洗流量,从而达到智能冲洗的目的。识别算法的流程图如图10所示。
3.4 流量阀子程序
流量阀使用两相四线微型减速步进电机进行控制,该电机转子上齿数为5个,采用4拍方式运行,可计算出步距角为360/(5×4)=18°,其减速箱的减速比为50,电机每转动一个步距角,输出端实际转动0.36°。如图5所示,流量阀采取偏心轮结构控制引流液管的开闭,从完全开启到关闭状态,偏心轮需要旋转180°。将冲洗挡位分为5个挡位,每个挡位需要偏心轮旋转36°,即需要步进电机旋转36/0.36=100个步距角。驱动电机使用的脉冲通过微控制器的PF8~PF11这4个I/O口提供,驱动方式为4拍,只需要按照A线圈通正向电压,B线圈通正向电压,A线圈通反向电压,B线圈通反向电压的顺序,即可驱动电机正转,反转时通电次序相反。根据之前识别得到的结果,控制流量阀挡位,只需要微控制器I/O口输出相应个数个脉冲后停止输出即可实现精确控制电机旋转的步距角,从而达到准确控制流量阀挡位的目的。
4 结论
本系统基于嵌入式微处理器,采用图像处理的方法,研发了泌尿手术膀胱术后自动冲洗治疗系统。实验结果表明,该系统操作便捷、 成本低、稳定性好,可以快速识别引流液中溶入的血液和血块,并根据识别结果控制限流阀调节冲洗流量。本系统可为膀胱术后冲洗治疗提供一种便捷的治疗手段。
参考文献
[1] 李甜,莫蓓蓉.膀胱冲洗研究现状及进展[J].全科护理,2013,11(14):1325-1327.
[2] 周学军,丁爱明,曹胡玲,等.基于无线传感网的持续膀胱冲洗系统[J].中国医疗设备,2013,28(10):34-36.
[3] 林文森,李钟慎,洪健.基于ARM和CMOS的图像采集系统设计[J].电子测试,2008(5):12-16.
[4] 王建,梁振涛,郑文斌,等.STM32和OV2640的嵌入式图像采集系统设计[J].单片机与嵌入式系统应用,2014(9):46-48.
[5] 刘月.基于图像传感器的纠偏位置检测系统设计与实现[D].武汉:武汉理工大学,2012.
[6] 宋佳.基于图像处理技术的尿液分析系统的设计与开发[D].长春:吉林大学,2016.
[7] 魏琳,田波.基于STM32F4系列的串口DMA数据处理传输研究[J].自动化应用,2016(8):92-93.
[8] 张少鹏.基于STM32的车牌识别手持移动终端的设计[D].兰州:西北师范大学,2015.
[9] 高薪,胡月,杜威,等.腐蚀膨胀算法对灰度图像去噪的应用[J].北京印刷学院学报,2014(4):63-65.
作者信息:
陈洪超,叶 兵,卞仕雅
(合肥工业大学 电子科学与应用物理学院,安徽 合肥230009)