发明内容
为了解决现有骨科手术中存在的上述问题,本实用新型的发明目的是提供骨科手术导航系统,实现对手术工具和患者病灶部位的相对位置关系的准确定位,即要计算出目标点的相对空间坐标,使手术医师在计算机屏幕的指导下正确地一次打髓内钉绞锁孔成功,有效减少手术时间、手术创伤、X线辐射等,并且可大幅提高了手术成功率,减轻病患的痛苦。
为了达到上述的发明目的,本实用新型采用了以下的技术方案:
骨科手术导航系统,包括双目立体视觉传感装置和标识器,所述双目立体视觉传感装置包括:主频不低于1G的计算机,可多方向可调节的定位器支架,设置在定位器支架上的定位器,设置在定位器内的两个CCD摄像机,图像采集卡,与图像采集卡相连的双通道信号同步器,所述标识器为2个,所述标识器上设有不在同一直线上的至少3个主动发光二极管,所述其中一个标识器上刚性的插设连接有髓内钉,所述其中另一个标识器刚性的与手术专用电钻插设连接。
作为优选,所述CCD摄像机为高分辨率的彩色CCD摄像机。
作为优选,所述CCD摄像机的CCD阵列有768×576个感光元素,镜头的有效焦距f=8mm。
作为优选,设置在定位器内的两个CCD摄像机之间的基线距离为L,L=280mm。
作为优选,所述标识器呈三角形,所述标识器的三个角上分别设有1个主动发光二极管。
作为优选,所述标识器呈星形,所述标识器的四个角上分别设有1个主动发光二极管。
作为优选,所述定位器支架采用万向三角架。
以下为本实用新型提供的一种骨科手术导航系统的髓内钉、电钻坐标系的建立:
股骨骨折手术导航中,手术中双目空间定位系统获取这些标志点的空间坐标位置。为了能够实时准确地显示出钻头相对于髓内钉的空间位置关系,需要建立它们之间的坐标转换关系。当双目定位系统每采集到一幅图像,经过一系列的滤波、特征提取、重心计算等之后,得到该时刻各标志点的空间三维坐标,其相对位置关系和坐标系如图3所示。其中髓内钉上标识器的安装位置及坐标关系如图4所示。
定义O1点为髓内钉坐标系的原点,它在世界坐标系中的坐标为: x1轴的正方定义为O1B1的方向,z1轴的正方向定义为O1B1×O1C1的方向,y1的正向为(O1B1×O1C1)×O1B1的方向。
设x1,y1,z1轴的单位矢量分别为i1,j1,k1,它们在世界坐标系中的方向余弦分别用u1i,u2i,u3i(i=1,2,3)表示。
对x1轴,u11,u12,u13可按下式求出:
其中:
i,j,k为世界坐标系3根轴的单位矢量。对z1轴,u31,u32,u33可按下式求出:
其中:
这里:
对y1轴,u21,u22,u23可按下式求出:
从而:
①坐标转换关系
由于式中表示了坐标系o1-x1y1z1相对于世界坐标系ow-xwywzw的旋转量,而点D在世界坐标系中的坐标为(xD1,yD1,zD1)表示了髓内钉坐标系o1-x1y1z1相对于世界坐标系ow-xwywzw的平移量,设点D在髓内钉坐标系中的坐标为(x1Dx,y1D1,z1D1),则:
矩阵1Tw就是由髓内钉坐标系o1-x1y1z1(局部坐标系)到世界坐标系ow-xwywzw的坐标变换矩阵。
同理可得由电钻坐标系o2-x2y2z2到世界坐标系的变换矩阵2Tw为:
其中:
由1Tw和1Tw,我们可以计算出髓内钉和电钻上任意一点在世界坐标系中的三维坐标,再根据式(4-14)我们可以计算出电钻上的一点在髓内钉坐标系中的坐标,从而可以清楚地观察到电钻相对于髓内钉的位置和方向的正确与否。
②应用实例
已知髓内钉与x1轴的夹角为α1,距o1x1y1平面的距离为h1,髓内钉上有四个用于锁骨的螺钉孔,其中孔m的中心线在髓内钉坐标系中的坐标为(L1cosα1,L1sinα1,h1)。电钻的坐标系与髓内钉类似,钻头前端距坐标中心的距离设为L2,钻头中心线的z2坐标为h2。
在某次试验中由双目空间定位系统获得各标志点在某一瞬时的世界坐标为:
从而求得从髓内钉坐标系到世界坐标系的变换为:
从电钻坐标系到世界坐标系的变换为:
电钻坐标系到髓内钉坐标系的变换为:
求出髓内钉和电钻各自在髓内钉坐标系中的方程,画出它们在髓内钉坐标系的各个平面内的投影线,如图5所示,可以清楚地看出电钻是否正确对准髓内钉上的孔,并可求出误差角显示在屏幕上。
根据计算机屏幕的显示,手术医生可以很清楚的看出电钻的偏离方向及偏离角度,实际应用时有两个投影面,见图6,即可指导医生准确打孔。
以下是本实用新型的骨科手术导航系统的软件设计
1.计算工具和开发环境
数据处理的各种算法最终要通过计算机软件来实现。在软件开发设计中,编程环境是进行开发活动的平台。软硬件环境选择的好坏,直接关系到软件设计工作的效率、软件质量、软件编制的成败和软件的使用效果。本空间点定位系统采用C++Builder6.0和MATLAB来进行开发。
C++Builder6.0是Inprise公司(原Borland公司)推出的新一代面向对象可视化快速应用程序开发工具(RAD,Rapid Application Development)。它用来在Windows95、Windows98、Windows NT、Windows2000中开发应用程序,是一种功能强大、行之有效的可视化编程工具。C++Builder是一种C++语言开发工具,它是传统C++开发工具发展的里程碑。它把可视化开发环境、开发工具和可视组件库加入到C++语言中,实现了真正的面向对象的开发。C++Builder的功能有:基于对象的程序设计、输入/输出界面设计简单、提供一流的开发环境、提供最标准的C/C++开发工具与Vsual C++兼容性高、提供丰富的组件与最强劲的调试工具、完全支持Windows2000新功能、提供Internet开发工具、提供分布式应用系统开发环境工具等等。C++Builder集成开发环境中集成了130多个各种功能的构件。因而,C++Builder是快速应用程序开发模式和可重用构件的一个完美的结合,它代表着C++语言的未来发展方向,在计算机领域的诸多方面都发挥着重要的作用。
MATLAB是当今世界上使用最为广泛的数学软件,它是以复数矩阵作为基本编程单元的一种程序设计语言,是一个高度集成的系统——集科学计算、图像与图形显示及处理、数据处理、声音处理、高水平的图形界面设计风格于一身。MATLAB语言可以容易地实现C或FORTRAN语言的几乎全部的功能,提供了与其它高级程序设计语言的接口。采用MATLAB这样的专用高级语言,不但可以极大地提高编程效率、编程质量和可靠性,而且可极大地缩短产品开发周期。
在实际应用中,如何既考虑利用C++Builder界面的友好性、程序执行的高效性,又充分利用MATLAB编程的简洁性、数据运算的方便性。这就是MATLAB与C++Builder的接口的问题,通过接口,可以非常方便的在用户所开发的C++Builder应用程序调用由MATLAB所开发程序,即实现两者的混合编程。MATLAB提供的接口常用的有四种:
(1)利用MATLAB引擎。该方法采用客户和服务器控制方式,利用引擎将MATLAB和C++Builder联系起来。在运用中,C++Builder环境下开发的程序作为客户端,MATLAB作为本地的服务器。C++Builder程序向MATLAB引擎传递命令和数据信息,并从MATLAB引擎接收数据信息。
(2)利用MATLAB自带的编译器.mcc。因为进行混合编程的目的是在C++Builder与MATLAB下开发较为复杂的数学算法,最为直接的解决思想是,应用与其他高级语言的接口,直接将开发好的MATLAB m文件编译为可执行程序或翻译成高级语言的代码。用这种方式可以脱离MATLAB环境,并能够方便地进行参数的传递和图形的显示,把MATLAB的强大功能融入到各种应用程序中,进而大大提高代码执行速度。本文应用的就是这种方法,将计算转换矩阵的m文件和计算三维坐标的m文件转换成可以脱离MATLAB环境的可执行文件,进而,在C++Builder中进行调用,并把计算结果显示在界面中。
(3)利用Matcom编译。利用Matcom(MIDEVA)可以将MATLAB代码编译为动态链接库(DLL)、独立运行的可执行文件或直接转化为CPP源码。
(4)组件对象模型COM(Component Object Model)为组件软件和应用程序之间进行通信提供了统一的标准,由于COM的广泛使用,MATLAB也开始支持COM技术,并提供了一个叫Mlapp.tlb的标准的类型库文件(MATLAB Application(version6.5)Type Library),其中定义了两个接口IMLApp和DIMLApp,IMLApp没有公开,只是被DIMLApp调用的内部接口,所以客户程序可通过DIMLApp访问Matlab。
2.系统的总体结构
空间点定位系统中需要采集图像,获取大量的数据,并对目标点的数据组成的非线性方程组进行求解,其过程复杂。为了软件设计思路清晰,可读性强,同时考虑到C++Builder6.0和MATLAB语言的特点兼顾程序编制的高效性和实用性,进行了系统程序设计。程序结构如图9所示。
3.系统程序设计
(1)界面设计及功能介绍
根据系统结构图,采用C++Builder6.0开发环境进行编程,用此环境开发出来的产品界面具有良好的人机界面。系统标定的界面:
从界面上可以看到,该软件系统主要完成图像采集,摄像机标定以及实时地显示目标点的三维坐标的功能。下面就本软件系统作简单介绍。
开始采集按钮触发的事件主要有:图像的采集,图像二值化,获取目标点的图像坐标并显示在文本框中。
停止采集按钮触发的事件是将标定点在设定的世界坐标系下的坐标读入到系统中,作为数据源的一部分为计算投影矩阵作准备。
开始标定按钮触发的事件是运行计算投影矩阵的可执行文件。这个可执行文件是由MATLAB的m文件经过.mcc编译生成的。执行结果存在磁盘上,为计算目标点的空间坐标所使用。
开始定位按钮完成的功能,首先完成开始采集按钮完成的功能,获得的目标点的图像坐标,然后根据上步计算得到的转换矩阵,运行计算三维坐标的可执行文件,并显示结果在文本框中。
暂停按钮是停止采集图像,停止计算三维坐标。退出按钮即是退出系统。
系统的实现上,利用MATLAB编写求解非线性方程组的函数,并将其编译成可执行文件,方法简单可行,程序可靠性强。
(2)系统软件设计的关键问题
在软件设计中,主要存在的关键问题有:图像采集问题,图像处理问题和求解非线性方程组三个问题。下面逐次给出解决的方法。
①关于图像采集问题的处理
本系统图像采集工作利用加拿大Matrox公司开发的Meteor-II/Multi Channal图像采集卡,该采集卡带有丰富的程序库——MIL-Lite(基本控制库)、MIL(模式识别库)。可以在MS Visual C/C++、MS Visual Basic、Borland C/C++下调用其现有的功能强大的图像采集、处理函数。其中,MIL-Lite是免费提供使用的,但它不包括图像处理分析部分的函数。本系统利用MIL-Lite控制库把图像采集到计算机,由C++Builder进行后续的图像处理。
利用C++Builder进行图像处理具有速度快、安全性好、功能强大等特点,在C++Builder调用Matrox图像采集卡的MIL-Lite或MIL库的图像处理函数,可以做到集成性好,信息获取直观,编程方便,快速地实现图像预处理,通过对特征的获取,达到图像处理和识别的最终目的,其软件采集部分实现的框架如图10所示。
利用MIL-Lite库首先必须分配一个应用对象(Application),相当于创建图像处理的控制和执行环境。在应用对象下可以建立多个系统(System)。每个系统下可以建立多个数据缓存(DataBuffer)、数字转换器(Digitizer)和数据显示(Display),将图像文件读入数据缓存,将缓存赋值给数组,通过对数组的处理即可实现对图像的处理。图像数据与数据显示关联后就可以通过控件或窗体显示。这样就完成了图像的采集工作。注意,在创建程序之前首先运行图像采集卡自带的光盘安装程序对程序包进行解压,获得所需的库文件。在C++Builder设置编译环境中将安装的图像采集的头文件和库文件包含进来。
②图像处理速度问题
在手术导航定位系统中,需要对采集到的两幅图像进行处理。对于图像处理功能(包括图像分割、目标标记),完成功能需要逐个对像素进行操作,处理速度就变得很重要了。
在C++Builder中,通常对一幅图像进行处理(二值化、目标标记等),需要简单地从两个方向上扫描图像,通过Tcanvas类的Pixels属性访问图像中的每个像素,并在每个循环体中不断通过Tcanvas类的Pixels属性设置每个像素点的颜色。由于应用程序每一次调用Pixels属性设置颜色,都可能会引起图像的重画,同时这种调用也在不断地和显示内存交换数据,这显然导致了运行速度的大大降低。
为了避免频繁地对显示内存操作,通常的解决方法是在内存中操作图像。其过程是:在内存中建立一个临时位图,将Image组件的图像信息复制到临时位图中,然后对内存位图进行同样的图像二值化、目标标记等图像处理,待处理完成后,把内存位图赋给Graphic属性,一次将结果显示出来。这种方法避免频繁地对显示内存操作,从而使速度大大提升。
在本系统中,使用了Tbitmap类的ScanLine属性的方法。这种方法同样需要在内存中建立临时位图,但利用了ScanLine属性而非Pixels属性访问数据。该属性可以返回指向实现位图内存的指针,并通过该指针一次访问和处理位图的一整行数据,从而大大加快程序的运行速度。以下给出了利用ScanLine属性进行二值化处理的程序描述:
bool TmainForm::BinoValue(Graphics::Tbitmap*Bitmap,intyuzhi)
{
//临时内存位图Bitmap为待处理位图,yuzhi为阈值门限
BYTE*ptr;
int g=yuzhi;
Bitmap->PixelFormat=pf8bit;//位图的内部存储形式为pf8bit灰度图像
for(int y=0;y<Bitmap->Height;y++)
{
ptr=(BYTE*)Bitmap->ScanLine[y];
for(int x=0;x<Bitmap->Width;x++)
{
if(ptr[x]>=g)
ptr[x]=255;
else
ptr[x]=0;
}
}
return true;
}
对R通道图像采样50次,进行图像处理其平均时间消耗如表5-1所示。对于G通道算法原理与R通道相同,时间消耗相差无几。由表5-1可以看出本系统时间主要消耗在图像采集工作中。
表5-1R通道图像处理时间消耗
类别 |
时间(单位:ms) |
二值化目标标记(含中心计算)总和捕获图像 |
3.3768.89912.275186.460 |
③求解非线性方程组问题
由系统软件结构图9可知,获取目标点的中心坐标后,要进行投影转换矩阵的计算,以及目标点三维坐标的计算。在本系统中利用C++Builder界面的友好性和MATLAB编程的简洁性、数据运算的方便性,发挥各自所长,解决了非线性方程组的求解问题。通过MATLAB编写m文件完成方程组的求解,然后利用MATLAB自带的编译器.mcc,将开发好的MATLABm文件编译为可执行程序。在C++Builder中直接调用。
以下是本实用新型提供的骨科手术导航系统的系统原理框图
如图11所示,首先,对患者病灶部位进行断层扫描图像CT或做MRI图像,得到患部的医学影像,将这些影像资料输入到计算机并根据实际手术的需要对手术工具及其周围的组织作出相应的显示;然后,对二维图象初步处理之后得到手术时需要的患部感兴趣区域;对得到的图象进行三维重建和一些处理后显示在计算机上,使手术医师可以凭借计算机屏幕观察手术工具位置的正确性并进行术前诊断与手术计划;手术过程中,空间定位装置不断地将术中的患者部位和手术器械通过其上的标志点测量出来,经过相应的空间变换,与配准过的医学影像图像融合在一起,从而可以在显示器上看出手术器械的位置是否与术前计划的相一致。这样医生可以从不同的侧面观察手术器械相对于患部的位置,就像机械中直接在三视图上进行加工制造一样,从而使手术达到准确、快速的目的。
即,利用本实用新型所研制的骨科手术导航系统,测得固定在髓内钉上的若干个标志点相对于某世界坐标系的三维世界坐标,同时测得固定在手术工具——电钻上的若干个标志点的世界坐标,将两者统一在髓内钉坐标系下,可以得知电钻所处的位置和方向是否正确,从而指导手术医生正确打孔,也可直接将计算结果传给机器人运动控制程序,由机器人自动完成正确打孔任务。
采用本技术方案的实用新型,其有益效果是:
一、计算机的选择
因为数字图像的生成和处理要在计算机上完成,所以计算机的性能将直接影响到整个视觉系统的性能。随着PC机技术的发展,很多复杂的数据处理和图像处理都可以在微机上实现。本实用新型采用了1G以上的处理器,256M内存,基于Windows2000的操作系统。实践证明这样的配置是可以满足系统要求的。
二、摄像机的选择
采用高分辨率的彩色CCD摄像机将会使系统图像分割、界面友好性等更加令人满意,系统的精度也会更高,但考虑到高分辨率需要更加快速的图像处理功能,而且高分辨率的彩色CCD摄像机目前价格非常昂贵,选择合适的黑白CCD摄像机也基本能满足骨科手术导航的需要,因此,在本实用新型中选择了两个性能接近的Computar公司生产的高分辨率CCD摄像机,CCD摄像机的CCD阵列有768×576个感光元素,镜头的有效焦距f=8mm。
三、图像采集卡的选择
加拿大Matrox公司开发的Meteor-II/Multi Channal图像采集卡可以连接2路RGB信号或6路黑白视频信号,通过PCI总线把图像数据实时传输到系统或显存中。Matrox图像采集卡有丰富的程序库MIL(Matrox imaging library),它提供了一系列函数用于捕获、处理分析、传输、显示和保存图像。MIL-Lite是基本控制库,是MIL的子集,它不包括图像处理分析部分的函数。利用MIL-Lite控制库把图像采集到计算机进行后续的处理。
四、双通道信号同步器
利用采集卡的R通道和G通道采集不同方位的两路灰度图像,为了确保两路图像是在同一时间的两个不同方位,系统中增加了外加同步器,以提供同步信号(场同步和行同步信号的复合信号),使得两路通道的图像同步,从而保证获取的图像是同一时刻不同视点的场景图像。
五、定位器支架的设计与制作
定位器支架在试验阶段设计成可以多方向可调的机械结构,为此本实用新型在初始阶段采用万向三角架,不仅可以调节摄像机的方位,而且可以任一调节两个摄像机之间的距离。
六、CCD摄像机之间的基线距离
根据理论计算分析可知,两个CCD摄像机之间的距离——即基线越大,系统的定位精度就会越高,但基线的长短受到视场的限制。两个CCD摄像机之间的距离增大,会造成空间的特征点在一个摄像机的视场里而超出另外一个摄像机的视场。因此,基线的长短要根据实际需要而确定。经过多次试验与分析,最终我们将基线长度确定为L=280mm。高度和方向角可调。
七、标识器的设计与制作
标识器主要用来固定在术中的手术器械——髓内钉和手术工具——电钻上。它刚性地固连在被测物体上,通过双目视觉空间定位器可以测得其上标志点的空间位置,从而确定出手术中髓内钉和电钻的空间位置和姿态,进而确定两者的相对位置,以指导手术医生或者手术机器人纠正电钻的位姿,保证打孔的正确性。
标识器可以是整体结构的,也可以是有几个标志点构成的。考虑到计算和制作的方便性,将标识器设计成一样的结构形式,可以根据不同的需要,采用少装发光管的方法,实现标识器的不同。如果发光管处安装成反射球,可实现被动式标识器。
标识器上设置有不在同一直线上的4个主动发光二极管可以提高定位的精度。
八、系统软件
系统软件主要包含以下几部分:在C++Builder6.0和MATLAB作为开发环境(后期又将其移植于VC上):开发图像采集软件包;边缘检测软件包;核心计算软件包;摄像机标定软件包;空间点和物体重建软件包;髓内钉绞锁孔电钻定位软件包。
具体实施方式
下面结合附图1-2对本实用新型作进一步详细描述:
实施例1
如图1-2所示,骨科手术导航系统,包括双目立体视觉传感装置和标识器5,所述标识器5为2个,所述标识器5呈星形,所述标识器5的四个角上分别设有1个主动发光二极管6。所述其中一个标识器5上刚性的插设连接有髓内钉9,髓内钉两端各设有两个绞锁螺钉孔7,其中另一个标识器5刚性的与手术专用电钻10插设连接,所述电钻头上设有横向绞锁螺钉8。
所述双目立体视觉传感装置包括:主频不低于1G的计算机4,可多方向可调节的定位器支架3,设置在定位器支架3上的定位器2,设置在定位器2内的两个CCD摄像机1,所述CCD摄像机1为高分辨率的彩色CCD摄像机。所述CCD摄像机1的CCD阵列有768×576个感光元素,镜头的有效焦距f=8mm。设置在定位器2内的两个CCD摄像机1之间的基线距离为L,L=280mm。图像采集卡,与图像采集卡相连的双通道信号同步器。
本实用新型所研制的骨科手术导航系统,是通过测得固定在髓内钉上的4个标志点相对于一处的世界坐标系的三维世界坐标,同时测得固定在手术工具——电钻上的4个标志点的世界坐标,将两者统一在髓内钉坐标系下,可以得知电钻所处的位置和方向是否正确,从而指导手术医生正确打孔。
以下是本实用新型的骨科手术导航系统的试验及试验结果分析
(1)试验系统
手术导航试验是在实验室中进行的。首先制作了人体大腿模型,将带有标识器的髓内钉插入腿模型内部,试验人员手持电钻凭借计算机屏幕上所显示的电钻相对于髓内钉的位置图像和要求电钻平移和转动的角度量,改变电钻的位置和方向,检查一次打孔正确的合格率。
(2)试验结果分析
从试验结果可以看出,系统精度用于股骨绞锁螺钉孔定位不高。系统仍存在着一定的误差,其原因分析如下:
用于导航的关键元件——摄像机存在着灰度漂移现象。将摄像机置于静止状态,拍摄静止不动的放光点,发现每次得到的灰度值都不一样,在10-255这样的灰度情况下,一般差别在1-5左右。多次试验结果发现漂移量是不确定的,没有明显的变化规律。假设为随机正态分布,为此我们给定所采图像的灰度存在着正负3的灰度变化。例如某次在没有改变标志点位置的情况下试验采得8个标志点的图像重心坐标,如表4-1所示。
表4-1试验数据(Table6-2test datum)
No.1data points No.2data points changes
497.3636 298.0909 497.3636 298.0909 0 0
529.1111 298.6667 529.1111 298.6667 0 0
561.3846 299.3846 561.3846 299.3846 0 0
545.2857 315.0000 545.2857 315.000000
497.0000 329.7143 496.8333 329.8333 0.1667 -0.1190
529.0000 330.8000 528.9091 330.6364 0.0909 0.1636
560.7500 331.3333 560.7500 331.3333 0 0
512.5000 346.0000 512.5000 346.0000 0 0
496.1250 361.8750 496.1250 361.8750 0 0
528.5000 362.5000 528.5000 362.5000 0 0
560.3333 363.1111 560.3333 363.1111 0 0
从表中数据可以看出,个别点的图像重心坐标变化了0.1667个像素。由于图像坐标的变化将会导致世界坐标的变化,其结果如表4-2所示。
表4-2世界坐标的变化量(Table6-3Changes of the points coordinates)
No.1Coordinates in world coordinate system No.2Coordinates in world coordinate systemchanges
-16.6836 -56.0833 12.0922 -13.0377 -37.5935 13.3782 -3.6459 -18.4898 -1.2860
48.1110 -56.7542 14.5311 49.8053 -48.4025 13.2768 -1.6943 -8.3517 1.2543
-4.1582 -58.3063 75.9333 -3.8464 -43.8132 78.7575 -0.3118 -14.4931 -2.8242
59.4271 -58.5684 77.9283 60.3395 -73.8141 76.0596 -0.9124 15.2457 1.8687
206.7691 -63.1704 326.5482 208.3830 -55.3572 326.6389 -1.6139 -7.8132 -00907
270.6480 -63.4132 320.5725 269.1723 -78.2911 325.8943 1.4757 14.8779 -5.3218
197.7932 -73.4988 390.4225 198.1854 -695817 390.5489 -0.3922 -3.9171 -0.1264
262.3062 -75.7455 384.4929 259.9728 -87.0787 387.7583 2.3334 11.3332 -3.2654
由表4-2,我们看出,最大变化量达5.32mm。
(3)插值亚象素边缘提取法
在图像处理中,经常要计算某个图像点的重心。在手术导航系统中,将标志点设计成圆形发光点。从上面的分析发现,由于摄像机的灰度漂移造成空间点测量时最大误差达到5毫米之多,解决问题的方法当然可以采用零飘很小、像素更高的摄像机,但如果能在算法上找到一些办法,减小误差,不失为一种经济实用的方法。
为了求解标志点的重心坐标,在一般的图像处理中,多采用阈值分割技术,为了能较为准确的找到图像的边缘,较为先进的Laplace、Canny等边缘检测技术被应用。但是,无论哪种边缘检测技术,都采用算子卷积平滑技术,出发点都是找到合适的边缘像素位置,因此其精度最高也只能是像素级,最高也只有0.5个像素的误差。如何进一步提高边缘点的位置,从而精确确定图像中心的位置,是双目空间定位系统提高精度的一种经济实用的方法。为此,本文提出了高斯函数插值亚象素边缘提取法,并结合圆弧拟合重心计算法,使图像中心的计算得到明显的准确,而且受摄像机灰度噪声影响小,也就是抑制噪声的能力显著性提高,从而也使最终的空间点位置测量精度明显提高。现介绍如下:
采得图像,放大其中的某点图像。
该点的灰度分布如下;
30 30 33 39 41 38 33 30 28 28
29 35 47 87 125 105 57 34 30 29
31 44 108 253 255 255 167 54 29 29
32 55 179 255 255 255 255 133 28 24
33 57 183 255 255 255 255 155 35 25
32 45 108 249 255 255 216 80 29 27
30 32 47 97 145 139 79 40 31 30
29 28 31 36 41 40 36 33 32 29
从图像本身和其灰度分布我们可以看出,发光点距离较远且很小时呈现发光点本来的圆形几何形状,但将发大后有9个白色点成正方形分布,右边还有两个白色的发光点,其它像素亮度不尽相同。我们一开始由于需要避开试验环境亮点的影响,根据灰度直方图确定图像的边缘点灰度值为185,从而得到如下图7的边缘图像。可求得图像的重心坐标为:x0=529.4000,y0=298.6000,实际中显示的图像像素坐标为(530,299)。考虑到图像噪声,本次研究所用摄像机及图像采集卡灰度噪声在正负3左右。如果该点上图像灰度为183的灰度增加2~3,那么,该点也将成为边缘点,此时图像重心的坐标将变为:x0=524.2500,y0=294.1875。可见图像重心的误差将达到0.5873。
给予噪声干扰,得到两次图像中心坐标如下:
两次所得图像重心的差值为:
最大误差0.1871。
如果对图像做样条插值,然后再取185作为分割的阈值,会得到精确度高于1的亚象素边缘。
样条函数在(xi-1,xi)上的表达式为:
由上述函数表达式我们可以看出S(x)保证了逐段插值,即S(x)的连续性,同时又保证了S(x)″在节点的连续性,这就使得利用该函数进行插值求取图像边缘更加符合实际情形。利用边界条件和追赶发可以求得上述表达式中的各参数,从而求得S(x)=185时的x值。此时所得的边缘坐标是亚像素的,因为关键在后期的重心计算,所以边缘点的坐标具有较高的精度。
实际应用中,若对整幅图像进行三次样条插值计算,不仅占用机时长,而且没有实用价值。因此,本次研究中,提出在读取图像坐标时将图像的初始边缘周围的点的位置及灰度值记下,并做标记,之后仅对这些数据进行三次样条插值,再以灰度阈值分割的形式求取边缘,从而可得到较为理想的边缘点和图像重心坐标。
在摄像机有灰度噪声的情况下,仍用上述两次采得的图像进行边缘提取,由于本次研究中,标志点均采用圆形发光点,因此,本文又提出在样条插值亚像素的基础上,对边缘点进行最小二乘圆弧拟合,其拟合方法如下:
设圆的方程为:
x2-2xx0+y2-2y0y-c=0 (4-16)
实际点(xi,yi)引起的误差的平方和为:
根据最小二乘法原理:
得:
其中:
拟合方法求得的11个标志点的中心坐标,如图8所示:
两次加灰度噪声情况下所得11个点的中心坐标数据如下:
两次所得图像重心的差值为:
可以看出,尽管两次图像都出现同等级别的灰度噪声影响,但采用样条插值边缘提取和圆弧拟合之后所求重心坐标最大差值仅有0.0545个像素。可见,采用新的算法不仅提高了图像重心的精确度,而且还拟制了由于摄像机图像采集卡引起的灰度噪声,提高精度3倍多。
实施例2
骨科手术导航系统,包括双目立体视觉传感装置和标识器5,所述标识器5为2个,所述标识器呈三角形,所述标识器的三个角上分别设有1个主动发光二极管6。所述其中一个标识器5上刚性的插设连接有髓内钉9,髓内钉两端各设有两个绞锁螺钉孔7,其中另一个标识器5刚性的与手术专用电钻10插设连接,所述电钻10头上设有横向绞锁螺钉8。
所述双目立体视觉传感装置包括:主频不低于1G的计算机4,可多方向可调节的定位器支架3,所述定位器支架3采用万向三角架。设置在定位器支架3上的定位器2,设置在定位器2内的两个CCD摄像机1,所述CCD摄像机1为高分辨率的彩色CCD摄像机。所述CCD摄像机1的CCD阵列有768×576个感光元素,镜头的有效焦距f=8mm。设置在定位器2内的两个CCD摄像机1之间的基线距离为L,L=280mm。图像采集卡,与图像采集卡相连的双通道信号同步器。
本实用新型所研制的骨科手术导航系统,是通过测得固定在髓内钉上的3个标志点相对于一处的世界坐标系的三维世界坐标,同时测得固定在手术工具——电钻上的3个标志点的世界坐标,将两者统一在髓内钉坐标系下,可以得知电钻所处的位置和方向是否正确,从而指导手术医生正确打孔。
以上所述仅为本实用新型的较佳实施例,凡依本实用新型申请专利范围所作的均等变化与修饰,皆应属本实用新型专利的涵盖范围。