李建民 ,张增玉 ,赵建厂 ,苏 赫
(1. 天津大学机构理论与装备设计教育部重点实验室,天津 300354;2. 天津大学机械工程学院,天津 300354)
泌尿系统结石是一种世界范围内非常常见的疾病.统计数据显示,泌尿系统结石的发病率呈上升趋势[1-2].近年来,为减轻泌尿外科医生的手术负担,提高手术质量,降低辐射风险,机器人辅助输尿管软镜术(robot-assisted flexible ureteroscopy)已被应用于泌尿系统结石的手术中[3-5].然而由于人体自然腔道约束的存在,输尿管软镜绕轴向旋转时不可避免地产生运动偏差.精确控制输尿管软镜末端的运动可以有效减少手术并发症,降低手术风险,同时这也是实现手术机器人自动化的重要步骤.
目前,国内外的研究者针对医用内窥镜的控制问题进行了研究,提出了多种控制策略.Hong 等[6]设计了一种头戴式主界面,通过外科医生的头部运动来控制刚性内窥镜.然而,在手术过程中医生多余的头部运动是不可避免的.Cao 等[7]提出利用瞳孔变化来控制内窥镜,设计了一种基于支持向量机(support vector machines,SVM)和概率神经网络(probabilistic neural network,PNN)的内窥镜机械臂控制系统,获得了较高的眼球运动分类精度.然而,在实际应用中,算法很难判断医生的眼球运动是否是有意义的.语音识别是另一种可行的控制方法[8].但在外科手术过程中,外科医生之间需要进行必要的语言交流,这将影响语音指令对内窥镜的控制.以上针对内窥镜的控制方法均为开环控制,无法利用内窥镜的运动信息,因此难以实现精确控制,无法用来消除输尿管软镜末端的运动偏差.同时,输尿管软镜末端直径约为 3 mm,空间狭小,无法安装额外的传感器以获取运动信息.
视觉反馈技术是实现输尿管软镜末端运动精确控制的一种可行方法[9].Gao 等[10]提出了一种将图像分割和卡尔曼滤波相结合的方法来实现术前内窥镜与外耳道的配准工作.Wu 等[11]针对连续体机器人内窥镜的姿态调整问题,提出了一种无模型的视觉伺服控制方法.此方法利用雅可比优化和凸点检测来提高连续体机器人内窥镜的安全性和控制性能,但凸点检测需要额外的激光标记提供凸点区域.Ma 等[12]设计了一种自主式输尿管软镜,利用视觉伺服技术跟踪带有绿色标记物的手术器械,同时结合最优控制法最小化输尿管软镜的运动空间,提高手术的安全性,与此类似的还有文献[13].然而,此方法只适用于输尿管软镜视野中存在带有特殊标记物手术器械的情况.Zenteno 等[14]通过拟合虚拟圆柱 3 D 投影来估计内窥镜的位姿,实现了具有双目摄像头的胃镜在无标记点下的控制问题,然而对于单目摄像头的输尿管软镜,此方法并不适用.
针对输尿管软镜末端绕轴向旋转时存在运动偏差的问题,本文提出了一种基于视觉反馈的输尿管软镜末端运动补偿策略.该方法无需进行输尿管软镜的硬件修改或设计特殊的手术器械,而是依靠输尿管软镜原有的成像系统获取图像信息,并进行运动补偿.该运动补偿策略根据输尿管软镜的成像特点,利用改进的霍夫圆检测(circle Hoff transformation,CHT)自动提取输尿管软镜的视野作为感兴趣区域(region of interest,ROI),减少计算负担,对输尿管软镜所成图像中特有的梳状结构(comb structure)进行频谱分析,根据其特点采用滤波的方法进行消除,结合ORB(oriented FAST and rotated BRIEF)算法提取图像信息,并通过求解前后两关键帧之间的几何关系得到输尿管软镜末端角位移.最后通过模型实验验证了所提运动补偿策略的有效性.
输尿管软镜术是利用输尿管软镜经尿道、膀胱、输尿管等自然腔道至肾盂进行手术的技术,包括向泌尿系统内置入导丝和输尿管软镜送达鞘、使用输尿管软镜进入各肾盏进行检查、激光碎石和取石篮取石等操作,因其治疗效果好、并发症少、病人住院时间短且恢复速度快,逐渐成为治疗泌尿系统结石的首选方法[15].然而,传统输尿管软镜术需要手术医生长时间单手悬空持镜操作,不符合人体工程学;且在碎石和取石过程中需要助手协助,学习曲线长,操作难度大[16].
近年来兴起的机器人辅助输尿管软镜术可以有效解决以上问题.然而在手术过程中,由于人体自然腔道的约束,当输尿管软镜绕轴向旋转时,其末端存在明显的运动偏差.输尿管软镜作为一种欠自由度的医用内窥镜,其末端只能在单平面内进行偏转,且一般只具有一个自由度,如图 1 所示,故手术时需要绕轴向旋转才能到达各肾盏.
图1 输尿管软镜Fig.1 Flexible ureteroscope
为实现对输尿管软镜末端绕轴向旋转时的运动补偿,本文通过图像处理技术自动提取输尿管软镜的视野作为ROI,并对输尿管软镜所成图像中特有的梳状结构干扰进行频谱分析和消除,结合特征提取算法获取图像信息,进而通过几何关系求解得到输尿管软镜末端角位移,之后将角位移信息反馈至运动控制器,以控制机械臂运动完成对输尿管软镜的运动补偿.
输尿管软镜的末端是一种典型的手-眼(eye-inhand)视觉探头.此类型的视觉探头只需要利用图像域的信息即可估计末端的姿态.本文的相机模型如图 2 所示.世界坐包含患者泌尿系统的三维信息,当输尿管软镜的末端在平面内沿轴向旋转时,相机坐标与世界坐标系 Zw轴平行.世界坐标系与相机坐标系之间的变换关系[17]可以表示为
图2 输尿管软镜相机模型Fig.2 Camera model of the flexible ureteroscope
ROI 是指从待处理图像中选定一部分区域,作为后续图像处理分析重点.通过 ROI 提取排除不必要的干扰,减轻计算负担.本文利用一种改进的 CHT算法来提取输尿管软镜的视野作为 ROI.CHT 是一种寻找图像中特定圆的算法,由 Duda 等[19]提出,可将图像空间转换成三维参数空间.在 CHT 中,图像空间中的圆可以表示为
为了降低由于参数空间过大带来的计算负担,本文采用 2-1 霍夫变换(21 HT)[20]提取输尿管软镜的圆形视野.在计算过程中,21 HT 通过一个二维累加器来计算圆的中心,以一维直方图统计半径,将 CHT的三维参数空间缩小为二维参数空间,提高了计算速度.
在实际应用中,为了减少噪声并过滤冗余信息,在使用21 HT 之前对图像进行中值滤波预处理,并使用Canny 边缘检测算法[21]提取图像中的边缘.Canny边缘检测和基于 21 HT 的ROI 自动提取过程如图3所示.
本文所研究的输尿管软镜图像是由多根表面带有涂层的光纤采集的,光纤之间无法成像,因此会形成如图 4 所示的梳状结构.图 4(b)是图像的局部放大,显示了典型的梳状结构.图像中的梳状结构不会随着输尿管软镜末端的运动而移动,因此极大地干扰了图像信息的提取.对图 4(a)进行傅里叶变换得到频谱,如图 4(c)所示.在傅里叶频谱中可以观察到 6个呈径向对称分布的高频分量,其反映的是图 4(b)中六边形的梳状结构,而傅里叶频谱中心的低频部分则包含了图像中的有用信息.
图3 ROI的自动提取Fig.3 ROI automatic extraction
图4 梳状结构的分析和消除Fig.4 Analysis and elimination of comb structure
为消除梳状结构这种高频分量,同时尽量保留低频部分,对图像进行高斯低通滤波处理.二维高斯分布可表示为
通过调整x、y 方向上的高斯核标准差σ 和高斯核的大小,选择合适的高斯低通滤波器.图4(d)为使用高斯低通滤波器对图 4(a)滤波后的图像,图 4(e)为对应的局部放大,图 4(f)为经过滤波处理后的傅里叶频谱,可以观察到径向对称分布的高频分量几乎被完全消除,而低频分量则得到了较好的保留.
本文利用 ORB 算法[22]对预处理后的图像进行特征提取如图 5(a)所示.ORB 算法对光照变化不敏感,鲁棒性好,计算速度快.算法依靠 FAST 关键点检测器对图像特征进行快速提取,以获得大量关键点,并利用图像金字塔改善尺度不变性,之后借助Harris 角点检测器对关键点进行排序和筛选.对筛选后关键点使用灰度质心法计算方向,在以关键点为圆心,半径为R 的局部区域中定义阶矩
则局部区域质心可定义为
关键点方向角为
使用 BRIEF 描述子对关键点进行编码.BRIEF描述子是由一组二进制灰度测试形成的字符串,二进制灰度测试可表示为
在局部区域p 中进行n 次灰度测试可得
为使BRIEF 描述子具有旋转不变性,利用式(7)中求得的方向角θ 所对应的旋转矩矩阵S 进行旋转得
改进后的rBRIEF(rotation-aware brief)描述子可定义为
由于 rBRIEF 描述子是一种二进制字符串,故使用基于汉明距离的暴力匹配进行前后关键帧关键点的粗匹配.对待匹配的描述子进行异或计算以量化其相似度
由暴力匹配得到的关键点对中存在误匹配项,如图 5(b)所示,本文利用 PROSAC(progressive sample consensus)算法[23]对粗匹配后的关键点对进行进一步筛选.PROSAC 算法是对 RANSAC 算法的改进,其对离群点的过滤效果更好,计算效率更高.经过PROSAC 算法筛选后的关键点对如图 5(c)所示,误匹配项已基本消除.
图5 前后关键帧的特征提取及匹配Fig.5 Feature extraction and matching of key frames
当输尿管软镜末端在平面内绕轴向旋转时,平移矩阵t 为零,因此相比于基本矩阵,单应矩阵更适用于描述此类型运动前后两关键帧之间的映射关系.单应矩阵H 将前关键帧中射为后关键帧中
由式(14)展开可得
单应矩阵具有8 个自由度,因此,可以通过4 个匹配点对来计算(任意 3 点非共线).利用基于 SVD分解[24]的方法对单应矩阵进行求解,可得到输尿管软镜末端绕轴向旋转时的角位移.
图6 基于视觉反馈的输尿管软镜机器人运动补偿策略流程Fig.6 Flow chart of motion compensation strategy for flexible ureteroscope based on visual feedback
基于视觉反馈的输尿管软镜机器人运动补偿策略流程如图6 所示,控制目标为使输尿管软镜末端角位期望角位小.运动补偿策略的补偿误差可表示为设置补偿误差的阈值为 Et,计算补偿误差 Ec,若将Ec反馈至运动控制器,控制电机驱动机器人机械臂,直尿管软镜末端运动至期望位置.
选出2015年12月到2018年2月这一时间段我院接受并治疗的74例不稳定型心绞痛患者当作本次研究的样本。男性患者与女性患者分别48例、26例;患者的年龄最大70岁,最小42岁,平均年龄为(56±2.83)岁。
图7 为所提运动补偿策略时序,其中图像采集卡将相机曝光获得的一帧图像传输到 PC 端需要33.33 ms,而本文所提输尿管软镜末端角位移估计算法进行一次计算约用时 21.32 ms,因此该运动补偿策略可以实现实时计算.
图7 运动补偿策略时序Fig.7 Sequence diagram of motion compensation strategy
为验证所提运动补偿策略的可行性,进行如图8(a)所示的实验设计,并搭建如图 8(b)所示的实验平台.通过输尿管软镜和相机曝光获得的视觉信息,经图像采集卡传输至PC 端,其帧率为30 帧/s,图像尺寸为640×360 像素.图像处理和计算均在Lenovo ThinkStation 图形工作站中进行,中央处理器(central processing units,CPU)为 1.7 GHz Intel Xeon E5-2609八核处理器,显卡为NVIDIA Quadro K2000,开发环境为 Visual Studio 2015,配置有 OpenCV3.4.1,使用CUDA10.0 对算法进行加速.此外,通过电磁跟踪系统NDI Aurora 获取输尿管软镜末端的运动信息作为真实值,以验证所提运动补偿策略的补偿效果.电磁跟踪系统传感器固定在输尿管软镜末端,其安装如图8(c)所示.
对本文所提输尿管软镜末端角位移估计算法进行连续 300 帧性能测试,记录计算误差和计算时间.由于 GPU 初始化,首次计算耗时 541.69 ms,之后耗时降低,计算时间曲线如图 9(a)所示.蓝色曲线为每次计算所需时间,红色虚线为平均值.在连续 300 帧测试中,平均计算时间约为 21.32 ms,最长耗时27.04 ms.该计算速度可以实现对帧率为30帧/s 的视频进行的实时处理.图 9(b)为输尿管软镜末端角位移计算误差的绝对值,在所测300 帧中平均误差约为0.33°,最大误差为 1.90°,统计结果显示 95%的误差小于 0.90°.
图8 实验平台搭建Fig.8 Experimental platform setup
图9 性能测试Fig.9 Performance testing
本文利用输尿管软镜机器人样机对所提运动补偿策略的可行性进行了如图 10(a)所示的模型验证,利用以硅胶为材料的输尿管模型模拟人体自然腔道对输尿管软镜运动的约束,实验中输尿管软镜以 10°为步长从 0°分别旋转至±180°.测试原理如图 10(b)所示.初始时刻 t0角位移记为 θ0,t1时刻角位移记为θ1,则输尿管软镜末端角位移θf=θ1-θ0,由式(16)计算补偿误差 Ec,并与设置的补偿误差阈值 Et进行对比,输尿管软镜继续转动,直至算此时输尿管软镜末端角位移 θf与通过电磁追踪系统获得的真实值 θg之差的绝对值,作为所提补偿策略的补偿误差 Δθ .
图10 输尿管软镜机器人样机测试Fig.10 Robot-assisted flexible ureteroscopy testing
使用本文所提运动补偿策略前输尿管软镜末端角位移情况如图 11(a)所示,红色圆点为输尿管软镜末端角位移值,蓝线为理想状态下期望角位移值与实际角位移值间的关系.可以看出,在不使用补偿策略的情况下,输尿管软镜末端角位移明显小于期望角位移,并且成非线性关系.
应用本文所提运动补偿策略后的实验结果如图11(b)所示,输尿管软镜末端的运动偏差明显减小,实际角位移值与期望角位移值较为接近.实验结果显示,该运动补偿策略的平均补偿误差约为2.17°,最大补偿误差为 3.29°.本文所提输尿管软镜运动补偿策略的补偿误差与文献[8,13-14]误差比较如表 1 所示,可以看出本文补偿策略的误差值小于各参考文献误差值.补偿误差产生的原因可能为:
图11 模型实验结果Fig.11 Model experimental results
(1) 输尿管软镜末端角位移估计算法的计算精度有限,本身存在一定误差;
(2) 图像传输与处理、数据计算和传递需要一定时间,在此期间内驱动输尿管软镜旋转的电机持续转动,产生一定误差.
然而,本文所提输尿管软镜运动补偿策略的补偿误差在可容忍范围内,模型实验结果表明该运动补偿策略可以明显减少输尿管软镜末端绕轴向运动时的角位移偏差,有助于提高手术效率,降低手术风险.
表1 本文补偿策略与文献误差比较Tab.1 Error comparison between the proposed compensation strategy and reference
本文针对当前机器人辅助输尿管软镜术在实施过程中出现的末端运动偏差问题,提出了一种基于视觉反馈的运动补偿策略,并通过实验验证了该补偿策略的可行性.该运动补偿策略无需进行硬件修改,而是根据输尿管软镜的成像特点,通过图像处理技术自动提取输尿管软镜的视野作为 ROI 以减轻计算负担,对输尿管软镜成像中特有的梳状结构干扰进行了分析与消除,借助 ORB 算法提取图像信息,对前后两关键帧之间的几何关系进行计算与求解,从而获得输尿管软镜末端角位移信息,并将信息反馈至控制器以实现对输尿管软镜末端的运动补偿,这对提高泌尿外科手术效率,降低手术风险,具有十分重要的意义.
未来的工作将对输尿管软镜推进和末端偏转的控制策略进行研究,实现输尿管软镜的自动干预,同时对泌尿系统结石进行识别与尺寸估计,完成结石的自动提取,以进一步提升手术机器人的自动化水平.