文章主要分成三个部分:细胞检测、细胞图像分割、细胞图像检索。
-
细胞检测
-
是在《Robust Segmentation of Overlapping Cells in Histopathology Specimens》这篇TBE文章的基础上进行的改进。这个TBE文章又是在《Iterative Voting for Inference of Structural Saliency and Characterization of Subcellular Events》TIP文章的基础上进行的改进。
其中TIP的文章定义了一个 α(x,y)=(cos(θ(x,y)),sin(θ(x,y))) ,并定义了一区域
A(x,y;rmin,rmax,Δ)=(x±rcosϕ,y±rsinϕ)|rmin⩽r⩽rmaxandθ(x,y)−Δ⩽ϕ⩽θ(x,y)+Δ
这个区域的定义感觉有些诡异,如果不考虑后面的不等式,整个区域就是一个矩形,考虑到后面的矩形的对称轴长度不变,一个对称轴不动,一个对称轴在那移动。然后TIP的文章定义了一个 K(x,y;σ,α,A) ,即在A区域进行一个高斯滤波,A区域的是沿着 α 方向的一个区域。
主要步骤是:
1初始化 α 为负梯度方向, V(x,y;rmin,rmax,Δ)=0 为初始投票图像,并设定一个阈值,梯度大于某个阈值的点划到集合S并进行以下循环。
2对于所有s 中的点计算 V(x,y;rmin,rmax,Δ)=V(x,y;rmin,rmax,Δ)+∑(u,v)⊂(A(x,y;rmin,rmax,Δ))F(x+u,y+v)K(u,v;σ,α,A)
,其中F是梯度。
3 (u,v)=argmax(u,v)⊂A(x,y;rmin,rmax,Δ)V(u,v;rmin,rmax,Δ) ,
dx=u∗−x,dy=v∗−x and α=(dx,dy)d2x+d2y√
4直到循环结束,选择V大于某一阈值的区域作为检测到细胞的种子区域。
基本可以理解就是所有的边界区域进行投票,投票到中心区域的V值较大,然后再根据投票的结果再进行投票,直到区域比较小,得到细胞簇的中心点。有点像腐蚀,就是区域减小。这个算法运算复杂。
TBE的文章算法较为简单,细胞检测可以参考 http://m.blog.csdn.net/blog/u012988465/17500023 这个博客,不过TME文章的符号表示可能有问题,根据Fig4, θ 应该是梯度与X轴的夹角+ Δ ,而高斯滤波的滤波中心也应该是 (x+(rmax+rmin)cosθ,y−(rmax+rminsinθ)) ,才和Fig 4相一致。TME的vote image等于 V=∑(u,v)⊂A|F(x,y)|g(u,v,μx,μy,σ) ,即改点梯度乘以区域中心圆的高斯滤波。可以某种程度上认为(x,y)是边界,而滤波中心区域是细胞的中心,然后得到相应的半径区域,再进行mean-shift循环,求这些半径区域的中心区域。这样得到较为可靠的细胞区域。
CVPR的文章在此基础上加了一个距离变换图和高斯金字塔。高斯金字塔主要是尺度不变性,而距离变换图也是比较细胞中心区域与背景的距离,因此也有物理意义。