陈润杰,古宇成
(中山大学南方学院,广州 510970)
医疗机器技术在现代医疗中有举足轻重的地位,在科学技术发展的进程中是最受关注的方向之一。目前,针对医疗方向的机器技术研究一直有推出新成果,而且随着科技的不断进步以及人口老龄化、战争技术储备需求高端化发展,机器技术在医疗领域将会受到更广泛而深入的研究和应用。
根据已知研究得出,大部分引导跟随技术较为欠缺的地方是都需要目标自身手持或佩戴特殊仪器,增加了识别目标自身的生理上和心理上负担,也没有考虑到老年人群体对身上多出的挂件是否会产生抵触情绪。
因此,为解决上述不足,决定研发出一种能够尽可能减少受众负担的,更仿生的基于计算机视觉的图像识别技术来实现人体识别与跟随。通过让跟随目标穿上印有特殊图案的衣服或者在目标的衣服上贴上特定图案的贴纸,再通过机器上的摄像头进行识别跟随,减少了跟随对象的负担。
根据以上得出的问题,在移动机器人的基础上,研发一种可远程监控、采集人体相关参数等功能并通过图像识别引导跟随的履带式机器人。针对移动机器人的参数采集和目标识别跟随两大功能进行了研究分析,最后验证了硬件系统和跟随算法的可行性。
本文设计一种可远程监控、采集人体相关参数等功能并通过图像识别引导跟随的履带式机器人。采用基于STM32的车载主控制器,基于计算机视觉图像识别的人体跟随、参数采集模块,客户端应用程序采用基于Linux的Java程序设计语言进行Android开发,数据远程存取采用云服务器平台,三者互联为医疗机器人系统。基于STM32F103车载主控制器通过驱动温湿度模块、接触式体温检测模块、接触式心率测量模块来实时采集监护对象的身体参数,将采集到的数据通过Wi-Fi模块联网上传至云服务器平台进行储存,An⁃droid客户端可与云服务器进行交互,从而提取已存储的人体参数,客户端能够在3秒内完成提取参数,并判断其是否超过警报值而做出警报。系统总体结构图如图1所示。
医疗机器人为独居老人的生活安全提供了一定的保障,减轻了传统型家庭养老的负担,提高了突发事件的应对能力和降低了财产的损失风险,实现了对独居老人的远程监护。
图1
系统软件部分包括客户端主界面、各类参数图像化子界面,界面模块结构如图2所示。客户端应用程序采用Java程序设计语言进行Android开发,采用面向对象的程序设计方法,把对象抽象成类进行封装,主界面每个功能键可打开对应的子界面;每个子界面以折线图或柱形图的形式动态显示参数值;当任一子界面中的参数达到预警值则弹出警报界面并响起警报声。
图2
在交互方案中,云服务器预设可接受多种通信协议的命令,而客户端利用TCP(Transmission Control Pro⁃tocol)协议向服务器发出数据请求命令,TCP传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义,使用三次握手协议建立连接。
当主动方发出SYN连接请求后,等待对方回答TCP的三次握手SYN+ACK,并最终对对方的SYN执行ACK确认。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议,具体流程如图3所示。
图3
在物联网和云技术的结合下,本系统可分为三部分,由STM32及其驱动外设人体跟随、参数采集模块构成的车载部分;云服务器部分;用于将人体数据图像化与用户交互的Android客户端部分;而车载系统又由基于STM32处理器的车载系统①基于树莓派处理器的车载系统,②两部分组成。总体结构图如图4所示。
图4
整个系统的工作原理是每隔一段预设时间,机器人向监护对象发出信号提示需要进行体检采集人体参数,待体检完成后,车载主控板将参数通过Wi-Fi模块与室内路由器互联,并通过后者与云服务器进行数据交互以存入人体参数;云服务器接收到参数后则将其分类存储在预先设置好的数据块中,等待Android客户端向服务器提出参数提取请求命令;Android客户端通过TCP协议向服务器发出命令,服务器已预设收到正确命令后自动返回对应类别的人体参数,客户端提取到参数后则通过数据图像化及预警值判断进行实时显示。具体部署如图5所示。
图5
系统功能包括:
①监护客户端实时监控人体异常;
②车载摄像头模块对监护对象进行跟随;
③车载数据采集模块为监护对象体检;
④云服务器远程储存数据,保障数据的安全性以及便捷性。
图6
如图6的程序流程图所示,在STM32中,定时器4用于心率测量模块的计时,定时器1用于体检间隔计时。当主控制器启动时,驱动温湿度模块、摄像头模块进行室内温湿度的收集和人体跟随,同时定时器1开始计时,当定时器1计数到达预设值溢出时,控制器启动主程序,开始分别启动蜂鸣器、心率模块、体温模块,进行为时30秒的体检(人体参数收集),当收集完成时再次启动蜂鸣器发出体检结束信号,继续温湿度的收集和跟随,同时驱动Wi-Fi模块将收集到的参数上传至服务器。
对颜色进行建模以达到颜色数值化的方法可理解为“建立颜色空间坐标系”,一般来说,生活中的任何颜色都可以用具体的数值来表示。
RGB颜色模型分别是变量R-红色、G-绿色、B-蓝色的取值变化,这三种颜色可以通过不同的取值进行颜色叠加来获得各种不同的颜色效果,具体模型如图7所示。
图7
HSL颜色模型分别是H-色相值、S-饱和度、L-亮度的取值变化,这三个变量通过不同的取值进行效果叠加来获得各种不同的颜色效果,特别的,该颜色模型比RGB更为人性化。
HSL是对RGB颜色的另一种表示,该模型展示了比RGB更准确、更容易理解的颜色联系,HSL颜色模型对应于圆柱坐标系中的一个圆锥形子集,模型如图8所示,圆锥的Y轴顶点对应L=1,该点可在RGB模型中表示为R=1,G=1,B=1时的三个面,所代表的颜色较亮。色相值轴由绕L轴的旋转角取得,例如角度为0°时,即H值为0°时,代表了当前颜色为红色,绿色则为120°,蓝色对应于240°。在HSL颜色模型中,每一种颜色和它的补色相差180°。
圆锥的X轴,即饱和度S取值的取值范围,最大值为1。当取值为圆锥的原点,此时L=0,H值与S值无法被定义,该点的颜色效果为黑色。当取值为圆锥的Y轴的顶点,此时S=0,L=1,H值无法被定义,颜色效果为白色。从Y轴顶点到原点的过程,表示颜色的亮度渐变暗,在该过程,S=0,H值无法被定义。在圆锥顶面圆周上的各个点,它们的L值和S值都为1,这些点的颜色效果都是纯色。
图9、10、11分别是HSL三个值的概念图,HSL的色相值即H分量,代表的是人眼所能感知的颜色范围,可理解为在一个平面的色相环上,每个角度代表了一种颜色。色相值的意义在于,在不改变光感的情况下,通过改变色相环上的角度来改变颜色。色相环上有六个主色用作基本参照:0°红、60°黄、120°绿、180°青、240°蓝、300°粉,它们在色相环上按照60°圆心角的间隔排列。
S分量,指的是色彩的饱和度,它用0%至100%的值描述了相同色相、明度下颜色纯度的变化,数值越大,则颜色越鲜艳。
L分量,指的是色彩的明度,作用是控制色彩的明暗变化。同样使用了0%至100%的取值范围。数值越小,色彩越暗,越接近于黑色;数值越大,色彩越亮,越接近于白色。
图8
图9
图10
图11
当(r,g,b)为某个颜色的 RGB 空间模型坐标,r、g、b的值是在0到1之间的实数。将max取值于r、g和b中的最大值。将min取值于三个值中的最小值。当RGB要转换为HSL颜色模型中的坐标(h,s,l)时,该坐标点的 h∈[0,360),代表的是色相角,而 s,l∈[0,1],分别代表饱和度和亮度。
色相值h的转换公式为:
饱和度s的转换公式为:
亮度l的转换公式为:
树莓派开发板的开发工具十分广泛,由于Python语言易读写、移植性好以及维护容易等优点,因此在树莓派上采用Python语言进行程序编写。程序编写完成后,在IDE界面完成程序编译即可运行。
图像识别软件流程图如图12所示,主要包括初始化模块和主循环模块。初始化包括了线程初始化,摄像头初始化、线程池初始化,主循环模块为图像识别逻辑处理块。
在系统开始启动后,树莓派开发板驱动USB摄像头并和获取图像数据。①树莓派开发板获取到图像数据后,对图像进行灰度处理,再与储存器中的目标识别规范进行逻辑对比处理。②提取图像中部圆形范围内一定数量像素点的HSL值,判断每个像素点该值是否都在对应指定颜色值范围内。③获取识别目标在摄像头的相对中心点位置,判断识别对象的相对位置。当条件①通过后,进入条件②,此时当条件②通过后即进入逻辑③,经过逻辑③的处理并得出结果后,通过引脚输出特定脉冲电平时序信号和高低电平信号分别控制舵机与STM32处理器进行姿态调整。程序伪代码如下:BEGIN
图12
图像识别是人工智能的一个重要领域,原理是利用计算机对图像进行处理、分析和理解,拍摄图片后再利用软件根据图片灰阶差做进一步识别处理,以识别各种不同模式的目标和对象的技术。
跟随功能通过根据目标区域(蓝色框)在所建视图框中的相对坐标值,将目标区域限制在摄像中心区域(黄色框)中。当目标区域与中心区域相交时则触发人机相对姿态调节信号,STM32收到相应指令对电机作出相应调节。同时基于低能耗高处理速度的树莓派ARM Cortex-A53处理器进行图片灰度处理,图片流最快可达18帧每秒的速度。从而实现实时的、准确的人体跟随。效果如图13所示。
在图14可观察到在树莓派终端界面显示了程序执行时成功开启了两个线程:摄像头云台初始化;建立网络Socket连接并传输机器采集到的数据。在向云服务器发送图像监控或人体参数的数据后获得的发送成功回执如图15所示。而后并无异常。
图13
图14
图15
基于Java程序设计语言的Android开发,该客户端程序测试了人体数据可视化功能,在建立了初步的图形主、子界面后,能够流畅地通过主界面的功能键进入子界面,通过TCP协议获取到的参数无乱码且正确,相关数据也能够如图16在子界面正确展示。
图16
随着人类是社会生活水平的提高,各种类型的机器人类型需求随着出现,目前机器人几乎已经渗透到生活的各个方面。
针对使用在医疗监护方面的自主跟随机器人进行研究和系统开发。在机械平台上,对运动控制、数据采集子系统进行了软硬件研究与设计,使其运动性能安全稳定,且数据采集准确稳定。对计算机视觉子系统在树莓派开发板上设计了有效的图像处理算法,通过实验验证了算法的可行性,配合整套系统,该机器人能够完成自主运行,达到实际控制要求,图像处理方法方面能够得到的正确的结果,使得机器人实现正确地跟随。最终搭建出基于图像识别的医疗机器人。