Page 466 - 《软件学报》2024年第6期
P. 466
3042 软件学报 2024 年第 35 卷第 6 期
令任意节点在水平方向上实现如图 5(c) 所示的三邻域有向连通, 在充分建立邻域关系的基础上能够极大地提升遍
历图的效率. 本文将端到端分割网络与图搜索算法相结合, 通过神经网络得到概率图后, 采用改进的图搜索算法对
层边界进行搜索, 使得整体分割框架在充分提取和利用视网膜 OCT 图像的全局特征和边界强相关信息的能够同
时考虑连续性约束, 从而实现更精确的视网膜层边界分割.
图搜索算法整体流程如算法 1 所示, 算法主要包括以下 4 个步骤.
Step 1. 转换候选边界. 将粗分割结果中的边界像素定义为对应边界的候选像素, 如图 5(b) 所示. 对于粗分割
结果中的任一像素, 若其与下方像素对应的视网膜层类别不一致时, 则该像素被认为是候选边界的组成部分.
Step 2. 构造有向图模型. 将转换候选边界后的图像构建为如图 5(c) 所示的由节点和连接节点的边组成的一个
三邻域连通有向图模型, 其中 1 个节点即为 1 个像素, 每个节点都有其对应的权值.
Step 3. 计算有向图中各节点的权值和连接权值. 将 Step 1 中的候选边界像素 (节点) 的权值设为 1, 其余为 0.
有向图的节点的连接权值计算如下:
(1)
w ij = 2−(p i + p j )+w min
其中, p i 和 p j 分别表示节点 i 和 j 的权值, w i 表示节点 i 到 j 间的有向边的权重, w mi 为一个小正数, 以防止连接权
n
j
11. u ⇐minDistance(E, V) // 从边集合中选择出与节点
值为 0. 对于有向图中的任意一条边, 其权重的大小与其连接的两个节点所对应的候选像素的多少成反比.
Step 4. 最短路径算法搜索有向图. 利用 Dijkstra 最短路径算法从所确定的有向图中选定顶点出发, 遍历整个
图并更新层边界的路径, 最后得到细分割结果.
图搜索算法本身具有最短路径算法的连续性, 能够弥补粗分割结果中存在的视网膜层边界不连续的问题. 本
文的图搜索方法的优点在于对边界的优化过程中, 令最短路径尽可能多地包含候选像素, 从而在有效继承神经网
络的分割结果的同时使得最终得到的视网膜层边界与真值图更接近.
算法 1. 图搜索算法.
输入: 粗分割阶段输出的像素集 V 及边界点集 C (候选像素).
初始化:
1. 图像像素集合 V = {v 1 , v 2 , ..., v k } n×m
2. 候选像素集合 C = {c 1 , c 2 , ..., c s }
3. 构建三邻域连通有向图 G = (V, E), E ={w ij }, i, j ∈ {1, 2, ..., k}
4. 节点权值集合 P = {p 1 , p 2 , ..., p k }, 其中 p 1 = p 2 = ... = p k = 0
图搜索:
5. Initial(P) : P = {p i = 1 | 1 ≤ i ≤ k, V i ∈ C}
6. For i = 1 → k and j = 1 → k Do
7. w ij ⇐ 2 − (p i + p j ) + w min
8. End For
9. S = Ø // 已经确定路径的节点集合
10. While V ≠ Ø
V 最小距离的顶点 u
12. S ⇐S ∪ {u} // 将顶点 u 加入 S
13. For each vertex v ∈ Neighbor(u) Do
14. Update(u, v, e) // 对每一个与顶点 u 相邻的节点更新一次路径, 更新最短路径
15. End For
16. End While
输出: Path(G, S).