Vaa3d下的tracing算法--rivulet2算法和代码解析

参考文献

  • [1]Siqi Liu, Donghao Zhang, Hanchuan Peng, Weidong Cai, Automate 3D Neuron Tracing with Precise Branch Erasing and Confidence Controlled Back-Tracking, bioarxiv
  • [2] Rivulet2: A Robust Tool for Large-Scale Single Neuron Morphological Reconstruction, to be submitted
  • [3] Rivulet: 3D Neuron Morphology Tracing with Iterative Back-Tracking*, Neuroinformatics, 2016.
  • [4] Donghao Zhang, Siqi Liu, Sidong Liu, Dagan Feng, Hanchuan Peng, Weidong Cai, Reconstruction of 3D Neuron Morphology using Rivulet Back-Tracking, The IEEE International Symposium on Biomedical

//以上几篇文章preprint的文章的名字来源于rivulet2的源代码的help部分,可能已经发表或者更换了名字。
Neuroinformatics是SCI二区期刊。

算法主要内容

Rivulet2的源代码在vaa3d上能够找到,结合Rivulet2的源代码和结果谈谈效果和一些需要改进的点。
在追踪之前,先将图像根据输入的参数二值化,将完全没有前景像素的地方砍掉,存储到另一个地方。
R2将神经元的追踪分为了6个步骤。
前五个步骤分在预处理中,最后一个步骤是迭代。
前五个步骤分别是

  1. 距离变换
  2. 通过距离变换找SOMA和SOMA 半径,并设置SOMA MASK。
  3. 得到速度图。
  4. MSFM
  5. 获取gradient map,梯度图。

第六个步骤是迭代。
预备步骤
1.Erase SOMA MASK
2.膨胀二值图。
迭代步骤 当遍历点少于98%时
1. 获取距离图最远点
2. Erase 最远点为-2
步进步骤 ,不停循环
1. step。根据梯度图步进一步。
2. 判断是否离开边界
3. 判断gap是否大于8倍平均半径
4. 判断是否到达SOMA
5. 判断是否原地踏步15次
6. 判断confidence系数是否较低
7. 判断是否到达之前已经被追踪过的点。
判断是否保留以及erase

算法的特点

  1. 从MSFM的最远点,将该点作为追踪迭代的起点。这种点大概率优先满足末梢点的要求。
  2. 通过预处理中得到的梯度图,利用RK4算法,龙格库塔算法,往某一个方向步进。
  3. 判断该步进是否触及边界、是否触及已被追踪的点,是否触及SOMA,是否是低可信度等。满足不同的条件,进行不同的处理。

算法的缺点

  1. 存在一些不该产生的毛刺。这个问题APP2也存在。这个问题不是单纯的剪枝能够解决的。每一个点被追踪一次。这是ALL-PATH-Pruning 所必须面对的问题。
  2. 距离图的最远点不等于是末梢点,这个问题产生的原因是因为在经过gap的时候,会将这些点的距离值增大。举例来说,就是某一个分支第一次追踪起点可能是中间某一个点。这导致最后追踪的结果可以看到中间是分段的。
  3. 半径估计不准。这个问题的起源可能在于追踪起点不是在中心,而是在边缘。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值