基于Nios II的MRI脊柱图像分割系统
时间:01-13
来源:互联网
点击:
3. MRI图像数据存取模块
SD卡是Secure Digital Card卡的简称,直译成汉语就是“安全数字卡”,是由日本松下公司、东芝公司和美国SANDISK公司共同开发研制的全新的存储卡产品。SD存储卡是一个完全开放的标准(系统),多用于MP3、数码摄像机、数码相机、电子图书、AV器材等等,尤其是被广泛应用在超薄数码相机上。SD卡在外形上同MultiMedia Card卡保持一致,大小尺寸比MMC卡略厚,容量也大很多。并且兼容MMC卡接口规范。另外,SD卡为9引脚,目的是通过把传输方式由串行变成并行,以提高传输速度。它的读写速度比MMC卡要快一些,同时,安全性也更高。
我们为了使系统更具有广泛的应用性、兼容性,我们决定使用SD卡作为设备的主要存储介质,用于存放我们的照片、音乐、素材等重要数据。DE2上的SD读卡装置为1线方式,其速度受到了很大限制。我们把装置改动为4线方式,使其更加符合我们系统的要求。
在Nios II软件开发集成环境下,包含了uc/os,可以使用户方便的应用到自己的软件工程里,我们为了更合理使各任务共同执行、共享cpu,我们使用了uc/os操作系统,并为其加挂文件系统。一开始我们选用了zlg文件系统,在成功移植后,我们测试了他的速度,速度不尽人意。在向sd卡读写1M数据分别需要用时37sec和57sec。我们分析了它的耗时所在,一方面sd卡读写模式限制,在标准的DE2开发板上,sd卡使用的是1线读写模式,其数据线只有1根,速度受到了很大的限制,我们通过修改其模式,增加数据线的方式,使sd卡的读写模式改变为4线的sd模式,经过测试,速度有了提高,分别为17sec和27sec,但是速度并不是我们假想的快到原来的四倍,这是因为另一方面的影响—文件系统,经过上网查询,发现zlg/fs的性能不高,浪费了很多时间,我们决定使用Micrium 公司的Uc/fs,他和uc/os有着很好的兼容性,在性能上也是得到了大众的好评。经过几周的努力我们成功移植了uc/fs 1.34版本到de2平台上,为四线模式的sd卡架起了文件系统。
经过比较测试,读写速度有了很大提高,1M数据读写分别只用时3.6s和11s。这样基本满足了我们存取数据文件的速度要求。但是仍存在着写较慢的问题,原因在于在写数据到sd卡的时候每一个block都需要计算16位的CRC校验,占用了一部分发送的时间,我们选择采用自定义用户指令的方式加快CRC16运算速度,往SD卡写入一张MR图像 (约1.5M)的时间从21.7S降低到15.8S。选用更高速的sd卡,还能有效的加块写卡的速度。
SD模式时序
Single Block Read
Single Block Write
DE1上没有网络接口的功能,为了增强系统的可扩展性,我们自行设计了网络接口板,通过DE1的扩展口连接接起来,这样就使得开发板就有网络功能。考虑到扩展口IO口有限,我们还需要使用IO连接LCD显示屏,一次选用IO口数量相对较少的网络芯片dm9000a。在发数据上,我们是开发板以定时的方式发数据,在PC机上以查询方式收数据。网络使用上,发数据是借助ucosII 的驱动程序实现的,收数据是在网络第二层以中断方式实现的。
5. 图象处理算法实现:
典型的人体脊椎有24块骶骨前(pre-sacral)椎骨,将其结构划分,颈部的椎骨(Cervical)7块, 胸部的椎骨(Thoracic)12块,腰部的椎骨(Lumbar)5块。所以在我们的脊椎矢状图中,相应的典型的图像中可见的椎间盘有23块,分别是C2-3、C3-4、C4-5、C5-6、C6-7、C7-T1、T1-2、T2-3、T3-4、T4-5、T5-6、T6-7、T7-8、T8-9、T9-10、T10-11、T11-12、T12-L1、L1-2、L2-3、L3-4、L4-5、L5-S1。
本算法的目标是将可见的椎间盘进行量化标志,并且对不清晰的椎间盘进行预测估计,也将其标出。算法采用基于uc/osII操作系统编写的c程序实现,加上我们移植的ucgui和ucfs,实现了具有良好的人机交互性的MRI脊椎图像分割系统,易于系统的推广应用。
具体算法分为3步:
(a) 图像的预处理(Preprocessing): 由于原始的核磁共振图像对比度比较低,视觉效果非常不清晰,所以首先要进行图像质量的改善,增强椎间盘的可见度。以下两图为预处理前后的对比。
该步骤中的图像中值滤波部分比较耗费时间,可喜的是该部分程序非常适合采用c2h工具进行算法加速,加速前后的时间对比如下:
(b) 脊髓的提取(Spinal Cord extraction): 脊髓在脊柱核磁共振图像中是一个明显的典型的部分,可以为椎间盘的定位提供方向性的信息,应用统计模式识别的模式匹配的方法,进行脊髓的提取。这里我们仅进行上半身的脊髓的提取,是因为上半身的脊髓曲线因人而异的变化比较复杂,而下半身的则可以根据上半身进行预测。
左下图中的红线是提取出来的上半身的脊髓。这部分的算法相对于其他部分来说比较耗时,但是从目前的算法结构上看并不适合使用C2H 进行加速,考虑到我们的算法会进一步优化,因此没有采用其他的方式进行算法加速,我们将在今后的工作中从算法结构和加速实现方式上完善本系统的功能。
SD卡是Secure Digital Card卡的简称,直译成汉语就是“安全数字卡”,是由日本松下公司、东芝公司和美国SANDISK公司共同开发研制的全新的存储卡产品。SD存储卡是一个完全开放的标准(系统),多用于MP3、数码摄像机、数码相机、电子图书、AV器材等等,尤其是被广泛应用在超薄数码相机上。SD卡在外形上同MultiMedia Card卡保持一致,大小尺寸比MMC卡略厚,容量也大很多。并且兼容MMC卡接口规范。另外,SD卡为9引脚,目的是通过把传输方式由串行变成并行,以提高传输速度。它的读写速度比MMC卡要快一些,同时,安全性也更高。
我们为了使系统更具有广泛的应用性、兼容性,我们决定使用SD卡作为设备的主要存储介质,用于存放我们的照片、音乐、素材等重要数据。DE2上的SD读卡装置为1线方式,其速度受到了很大限制。我们把装置改动为4线方式,使其更加符合我们系统的要求。
在Nios II软件开发集成环境下,包含了uc/os,可以使用户方便的应用到自己的软件工程里,我们为了更合理使各任务共同执行、共享cpu,我们使用了uc/os操作系统,并为其加挂文件系统。一开始我们选用了zlg文件系统,在成功移植后,我们测试了他的速度,速度不尽人意。在向sd卡读写1M数据分别需要用时37sec和57sec。我们分析了它的耗时所在,一方面sd卡读写模式限制,在标准的DE2开发板上,sd卡使用的是1线读写模式,其数据线只有1根,速度受到了很大的限制,我们通过修改其模式,增加数据线的方式,使sd卡的读写模式改变为4线的sd模式,经过测试,速度有了提高,分别为17sec和27sec,但是速度并不是我们假想的快到原来的四倍,这是因为另一方面的影响—文件系统,经过上网查询,发现zlg/fs的性能不高,浪费了很多时间,我们决定使用Micrium 公司的Uc/fs,他和uc/os有着很好的兼容性,在性能上也是得到了大众的好评。经过几周的努力我们成功移植了uc/fs 1.34版本到de2平台上,为四线模式的sd卡架起了文件系统。
经过比较测试,读写速度有了很大提高,1M数据读写分别只用时3.6s和11s。这样基本满足了我们存取数据文件的速度要求。但是仍存在着写较慢的问题,原因在于在写数据到sd卡的时候每一个block都需要计算16位的CRC校验,占用了一部分发送的时间,我们选择采用自定义用户指令的方式加快CRC16运算速度,往SD卡写入一张MR图像 (约1.5M)的时间从21.7S降低到15.8S。选用更高速的sd卡,还能有效的加块写卡的速度。
SD模式时序
- CLK: Host to card clock signal
- CMD: Bidirectional Command/Response signal
- DAT0 - DAT3: 4 Bidirectional data signals.
- VDD, VSS1, VSS2: Power and ground signals.
- 1线与4线区别
Single Block Read
Single Block Write
4. 网络接口
DE1上没有网络接口的功能,为了增强系统的可扩展性,我们自行设计了网络接口板,通过DE1的扩展口连接接起来,这样就使得开发板就有网络功能。考虑到扩展口IO口有限,我们还需要使用IO连接LCD显示屏,一次选用IO口数量相对较少的网络芯片dm9000a。在发数据上,我们是开发板以定时的方式发数据,在PC机上以查询方式收数据。网络使用上,发数据是借助ucosII 的驱动程序实现的,收数据是在网络第二层以中断方式实现的。
5. 图象处理算法实现:
典型的人体脊椎有24块骶骨前(pre-sacral)椎骨,将其结构划分,颈部的椎骨(Cervical)7块, 胸部的椎骨(Thoracic)12块,腰部的椎骨(Lumbar)5块。所以在我们的脊椎矢状图中,相应的典型的图像中可见的椎间盘有23块,分别是C2-3、C3-4、C4-5、C5-6、C6-7、C7-T1、T1-2、T2-3、T3-4、T4-5、T5-6、T6-7、T7-8、T8-9、T9-10、T10-11、T11-12、T12-L1、L1-2、L2-3、L3-4、L4-5、L5-S1。
本算法的目标是将可见的椎间盘进行量化标志,并且对不清晰的椎间盘进行预测估计,也将其标出。算法采用基于uc/osII操作系统编写的c程序实现,加上我们移植的ucgui和ucfs,实现了具有良好的人机交互性的MRI脊椎图像分割系统,易于系统的推广应用。
具体算法分为3步:
(a) 图像的预处理(Preprocessing): 由于原始的核磁共振图像对比度比较低,视觉效果非常不清晰,所以首先要进行图像质量的改善,增强椎间盘的可见度。以下两图为预处理前后的对比。
该步骤中的图像中值滤波部分比较耗费时间,可喜的是该部分程序非常适合采用c2h工具进行算法加速,加速前后的时间对比如下:
预处理前 预处理后
(b) 脊髓的提取(Spinal Cord extraction): 脊髓在脊柱核磁共振图像中是一个明显的典型的部分,可以为椎间盘的定位提供方向性的信息,应用统计模式识别的模式匹配的方法,进行脊髓的提取。这里我们仅进行上半身的脊髓的提取,是因为上半身的脊髓曲线因人而异的变化比较复杂,而下半身的则可以根据上半身进行预测。
左下图中的红线是提取出来的上半身的脊髓。这部分的算法相对于其他部分来说比较耗时,但是从目前的算法结构上看并不适合使用C2H 进行加速,考虑到我们的算法会进一步优化,因此没有采用其他的方式进行算法加速,我们将在今后的工作中从算法结构和加速实现方式上完善本系统的功能。
仿真 Altera FPGA DSP Quartus 嵌入式 C语言 LCD MCU 总线 触摸屏 电子 相关文章:
- 虚拟心电监护系统软件设计(10-27)
- 一种心电信号采集放大电路的简单设计方法(03-08)
- 神经模糊控制在SAW压力传感器温度补偿中的应用(08-03)
- 基于ARM9的无线多床位心电监护仪的设计(04-09)
- 光谱灯光刺激近视治疗仪灯光控制器的设计(08-10)
- 基于ARM7的心电采集与远程传输系统设计(08-10)