1、第 卷 第 期 重庆科技学院学报(自然科学版)年 月基于 混合编程的显微镜图像实时拼接吴为民 刘 新 李伙钦 江先伟 杨 华(.福建船政交通职业学院 信息与智慧交通学院 福州.福州一方威视科技有限公司 福州)收稿日期:基金项目:福建省中青年教师教育科研项目“基于特征融合的图像显著性检测研究”()“基于多模态数据融合的行人重识别研究”()年校级横向课题“数码显微镜数字图像拼接算法开发”()年校级科教发展基金项目“基于语义协同的交通视觉显著性检测”()作者简介:吴为民()男硕士教授研究方向为计算机视觉、图形图像处理摘要:随着电子显微镜图像的分辨率越来越高图像拼接的计算量也越来越大实时拼接的流畅效果
2、对计算速度提出了很高的要求 利用 的 并行编程框架 将拼接过程中耗时较长的图像特征点检测和图像拷贝部分迁移到 上进行并行计算 则负责逻辑控制部分的计算提高了整体的运算效率 实验结果表明 混合编程模式有效地缩短了显微镜图像拼接时间提高了拼接的流畅度和实时性关键词:电子显微镜 实时拼接 并行计算 混合编程中图分类号:文献标识码:文章编号:()前 言高分辨率的电子显微镜可以用来观察切片局部图像但无法看见全局图像 如果用低倍数的镜头观察切片全貌就无法看清切片细节 为此可以通过上下左右移动显微镜来拍摄高分辨率照片并将其拼接成一张较大视野的照片以便于研究人员观察全景图像 显微镜全景图像自动拼接克服了显微镜
3、的局限性可以形成无法在一帧中捕捉到的场景但高分辨显微镜图像拼接的计算量大、耗时长、实时性差 因此如何实现高分辨率显微镜图像实时拼接是亟需解决的问题 等人运用基于傅里叶变换的方法在 和 上实现了大规模的显微镜图像拼接李飞提出了一种基于 特征提取和优化的电子显微镜图像拼接算法提高了显微镜图像拼接速度 等人使用 对图像的特征点和描述子进行计算实现了图像的快速全景拼接柴政等人提出了一种基于 算法改进的显微镜图像拼接算法 本次研究提出了一种基于图像特征点的 和 混合编程架构的大规模显微镜图像拼接算法 首先介绍算法流程然后分析 的运行原理及 并行计算框架接着利用 编程框架将拼接算法代码迁移到显卡上最后利用
4、显卡的并行计算功能实现显微镜图像的快速拼接 算法的设计.图像拼接的典型算法图像拼接是计算机视觉领域的关键问题 基于吴为民等:基于 混合编程的显微镜图像实时拼接特征点的图像拼接分为特征点检测、特征点匹配、图像投影和图像融合等 个阶段如图 所示图 基于特征点的图像拼接过程目前通常采用尺度不变特征变换()、加速鲁棒特征()、()等算法进行特征点检测特征点是一幅图像的有效表示通过特征点检测获取 个图像特征点集合及其对应的特征描述向量选取 维向量来表示一个特征描述子形成 的二维浮点数描述子矩阵其中 为常数 算法中的 算法中的 算法中的 特征点匹配就是去发现 幅图像的特征描述子之间的相似程度或一致程度 与
5、 算法一般使用欧氏距离或 范数来匹配特征描述子和()算法通常使用海明距离来匹配特征描述子 在 幅图像描述符已知的条件下可以通过二重循环找到第 幅图像中的关键点在第 幅图像中的最佳匹配点显微镜图像没有透视效果应根据最佳匹配点计算 幅图像的仿射变换矩阵 计算 幅图像的仿射变换矩阵至少需要 个点的映射关系则仿射变换矩阵是一个 的矩阵可将一幅图像仿射转换到另一幅图像的坐标上仿射变换矩阵如式()所示:()式中:表示仿射变换矩阵、表示缩放尺度和旋转量 表示水平移动量 表示垂直方向的偏移量通过仿射变换矩阵将 幅图像的齐次坐标关联在一起如式()所示:()式中:()表示原图像坐标()表示仿射变换后的图像坐标将式
6、()按照矩阵点积乘法展开如式()所示:()()()在图像特征点匹配过程中易出现误匹配现象可以通过随机抽样一致性()算法对 幅图像的匹配特征点进行随机采样用迭代的方式剔除错误匹配点直至找到最佳的仿射变换矩阵将图像变形转换到一个公共平面上进行拼接采用拉普拉斯融合算法对图像重叠部分进行融合以形成无缝全景图像.显微镜图像拼接算法流程显微镜图像拼接算法流程如图 所示显微镜图像拼接示意图如图 所示 读取电子显微镜视频流获取新的图像帧将该图像拼接到前一幅已拼接图像中 为了便于计算在拼接之前对前一幅已拼接图像进行坐标扩展将图像的坐标原点从()移动到()处使拼接计算过程中的坐标保持正值 根据上一次拼接图像的坐标
7、和大小确定感兴趣区域()在拼接过程中不用将整个已拼接图像和待拼接图像进行特征点比对因为全景图像的面积会随着拼接过程逐渐增大图像面积将达到()像素这会带来巨大的计算压力 因此可以通过划定 区域来缩小特征点的搜索区域只对 区域的特征点与当前待拼接图像帧的特征点进行匹配使全局大图的拼接转变为 区域和新采集到的显微镜图像的拼接 由于 区域的大小相对固定因此拼接的计算量不会随着图像面积的增加而增加 首先对 区域和待拼接图像帧进行等比例缩小然后进吴为民等:基于 混合编程的显微镜图像实时拼接行特征点计算和匹配得到仿射变换矩阵 接着根据缩小比例系数进行同比例放大得到仿射变换矩阵 将采集到的视频帧拼接到全景图像
8、中同时记录当前拼接点的坐标和区域大小确定下次拼接的 区域最后对拼接完成的全景图像作切黑边处理生成新的全景图像 如果拼接尚未全部完成则进入下一次的循环操作 拼接算法问题分析.图像拷贝时间问题随着拼接图像面积逐渐增大图像在计算机内存中的拷贝时间越来越长直接影响了图像拼接的实时性和流畅度 在以南瓜茎切片为对象的实验中使用的 为()().图像拷贝时间随着图像面积的增大而增加如图 所示 随着图像面积的增大图像在计算机内存中的拷贝时间在整个拼接过程中的占比越来越大如图 所示 由此可见图像拷贝时间已经成为图像拼接过程中的瓶颈问题.特征点检测时间问题计算基于、和 算法的蚕豆叶下表皮装片在显微镜拼接过程中每个阶
9、段所消耗的时间产生的 幅图像分辨率分别为 、图像拼接各阶段时间的对比如表 所示由表 可知在图像拼接过程中特征点检测的计算量最大耗时最长 如果可以降低这个部分的计算 量那 么 就 可 以 减 少 图 像 拼 接 时 间 算法的综合效果最优因此本次研究选择 算法进行 的优化和拼接图 显微镜图像拼接算法流程图 显微镜图像拼接示意图吴为民等:基于 混合编程的显微镜图像实时拼接图 图像拷贝时间与图像面积的关系图 图像拷贝时间占比与图像面积的关系表 图像拼接各阶段时间的对比特征点检测算法特征点个数特征点检测时间匹配时间计算仿射变换矩阵时间图像融合时间总时间.和 混合编程.编程模型 是英伟达()推出的基于
10、的通用编程框架 的计算能力强可以执行复杂的逻辑运算适用于控制类型的运算 具有大量的运算核心可以运行较为简单的大规模并行计算适用于大规模可并行的计算密集型任务 在 编程模型中 和主机内存被称为主机()和显卡内存被称为设备()通过 调用核函数()并在 上运行 一个核函数中的若干线程()组成一个线程块()一个核函数的全部线程块组成一个网格()每个线程块含有相同的线程数 在典型的 编程框架下 异构计算流程如图 所示将 的软件线程框架与 的 架构紧密结合可以提高应用程序的执行效率 其中 线程对应 硬件中的 核心()线程模块对应 硬件中的流式多处理器()网格核函数()对应 硬件显卡图 异构计算流程 是计算
11、机视觉开源库用于图像处理和机器学习等领域 本次研究利用 进行显微镜图像拼接 通过 对 的计算功能进行封装 中的 模块提供主机的 吴为民等:基于 混合编程的显微镜图像实时拼接接口和图像处理的算法模块及函数 引入:结构用于存储图像类似于原有的:结构数据通过 结构中的 和 等 个函数在 和 之间传递利用 中的 模块实现图像拼接将处理结果回传到主机 在 中的 模块下主机与显卡的数据交换示意图如图 所示图 主机与显卡的数据交换示意图.拼接算法的改进大图像的拷贝、特征点的检测、特征点描述子的计算、图像的拼接及大图像的显示都是针对图像中每个像素点进行独立计算符合并行计算的条件因此可以利用 的 编程框架将这部
12、分计算迁移到 上进行其余部分的计算则由 负责 基于 混合编程的图像拼接流程如图 所示利用显卡的 并行计算框架进行大规模的矩阵运算合理分配数据以提高运算速度进而达到高分辨率视频和图像实时拼接的流畅度要求图 基于 混合编程的图像拼接流程 基于 混合编程的图像拼接算法步骤如下:)从显微镜视频流中提取视频帧)对视频帧进行预处理丢弃镜头静止状态下吴为民等:基于 混合编程的显微镜图像实时拼接模糊的、重复的视频帧)将当前视频帧和已拼接好的图像上传到显卡利用 框架进行运算 显卡的计算包括 个部分:一是应用 算法提取 幅图像特征点计算特征描述子二是应用 算法寻找最佳匹配特征点三是根据最佳匹配点计算仿射变换矩阵四
13、是将新的显微镜视频帧融合到已拼接好的大图中五是将运行结果从 下载到 上)处理回传结果 在并行计算系统中系统的整体运行效率受限于系统中不可取代的串行运行部分 根据(阿姆达尔)定律 异构计算系统运行速度提高的倍数如式()所示:()其中:()式中:表示速度提高倍数 表示 主机串行部分所占比例 表示 设备并行部分所占比例 表示并行的核心数量 实验结果分析实验平台为 为()().显卡为 核心为 个时钟频率为 数据带宽为 版本为.版本为.版本为.已完成 对 和 附 加 库 的 编 译 算 法 语 言 为 本次实验在显微镜下分别对蚕豆叶下表皮装片和蚁蚕装片进行图像实时拼接 蚕豆叶下表皮装片显微镜视频流采集图
14、片共 幅分辨率均为 如图 所示 蚁蚕装片显微镜视频流采集图片共 幅分辨率均为 如图 所示图 蚕豆叶下表皮装片显微镜视频流采集图片 分别应用 模式和 模式对蚕豆叶下表皮装片和蚁蚕装片显微镜图像进行实时拼接生成分辨率为 的蚕豆叶下表皮装片全景切片图像(见图)和分辨率为 的蚁蚕装片全景切片图像(见图)幅全景切片图像在接缝处拼接完整没有出现错位断层的现象由不同模式下的图像拼接各阶段时间的对比(见表)可知相较于 模式采用 模式的蚕豆叶下表皮装片图像的拼接时间缩短了.蚁蚕装片图像的拼接时间缩短了.通过吴为民等:基于 混合编程的显微镜图像实时拼接对多个标本切片进行实验表明 模式能够缩短图像拷贝时间和特征点检
15、测时间提高了显微镜图像拼接速度提升了用户的使用体验感 同时随着拼接图像数量的增加全景图像面积增大 模式可以充分利用显卡并行计算的特性提速效果越来越明显图 蚁蚕装片显微镜视频流采集图片图 蚕豆叶下表皮装片全景切片图像图 蚁蚕装片全景切片图像表 不同模式下的图像拼接各阶段时间的对比样本模式平均拼接时间最大图像拷贝时间最小图像拷贝时间特征点平均查找时间拼接总耗时蚕豆叶下表皮装片 模式.模式.蚁蚕装片 模式.模式.吴为民等:基于 混合编程的显微镜图像实时拼接 结 语本次研究分析了显微镜图像的实时拼接过程选用 作为特征点检测方法比较显微镜图像拼接过程中各阶段时间 将图像特征点检测、超大面积图像内存拷贝的计算部分迁移到 上利用 的 编程框架进行并行计算再将结果从 下载到 以缩短计算时间 这种基于图像特征点的 和 混合编程架构的大规模显微镜图像拼接算法缩短了拼接时间提升了显微镜图像拼接的实时性和流畅度参考文献 .().李飞.基于 特征提取和优化的电子显微镜图像拼接算法.天津:天津大学:.().柴政刘任任梁光明.基于机械扫描与改进 的显微图像拼接算法.计算机技术与发展():.():.().:.卢钢张翼.基于局部特征的医学显微图像自动拼接.计算机与数字工程():.毛义坪马茂源.基于高斯拉普拉斯算子的多聚焦图像融合.计算机应用与软件():.:.():.(.):.:(编辑:刘 姝)