专栏首页Python编程和深度学习CircleNet:用bounding circle进行肾小球检测(MICCAI 2020)[github代码]

CircleNet:用bounding circle进行肾小球检测(MICCAI 2020)[github代码]

今天分享一篇发表在MICCAI 2020上的论文:CircleNet: Anchor-Free Glomerulus Detection with Circle Representation (原文链接:[1],github:[2])。

1 研究背景

目标检测分享中,anchor-based方法(Faster-RCNN等)通常会产生较高的模型复杂度和较低的灵活性,因为每一个位置需要采用多个anchor进行表达以及优化。因此最近有越来越多的anchor-free检测方法涌现,它们具有更简单的网络设计、更少的超参数却可能具有更好的性能。但是直接采用自然场景下的目标检测算法运用到病例图像的目标检测上可能不太适用,例如下图(Fig.1),对于肾小球的检测,如果采用bounding box框住目标,当病理图像旋转的时候,对应的bounding box形状也会变化,而如果采用bounding circle来框住目标,就可以确保检测对象的旋转不变性。

有了上述的这个分析,网络可以大大简化,从学习bounding box转变成学习bounding circle的表达。因此,文中提出了一种基于circle表达的anchor-free目标检测算法,叫做CircleNet,以用来检测肾小球。

这篇文章有如下几点贡献:

  • 优化了病例目标检测算法:第一个采用基于circle的anchor-free方法进行肾小球的目标检测;
  • circle表达:提出用bounding circle来框住物体,使得模型只用学习半径这一个维度(bounding box需要学习长和高两个维度),并且定义了cIOU (circle intersection over union)来衡量检测的性能;
  • 旋转一致性:CircleNet在肾小球任务上实现了更好的旋转一致性。

2 方法

如上图(Fig.2)所示,整体流程为:通过特征提取网络提取图像的特征,而后分别采用三个输出模块预测(1)heatmap,用来表示circle的中心点;(2)local offset,用来修正circle的中心点位置;(3)circle radius:用来表达circle的半径。

2.1 Anchor Free骨干网络

2.3 Circle IOU

如上图(Fig.3)所示,类似IOU的计算,文中把cIOU定义为:

cIOU=\frac{Area(A\cap B)}{Area(A\cup B)},
A_x=\hat{x}_i+\delta\hat{x}_i,A_y=\hat{y}_i+\delta\hat{y}_i
B_x=\hat{x}_j+\delta\hat{x}_j,B_y=\hat{y}_j+\delta\hat{y}_j

那么两个中心点之间的距离可以定义为:

d=\sqrt{(B_x-A_x)^2+(B_y-A_y)^2}
L_x=\frac{r_A^2-r_B^2+d^2}{2d},L_y=\sqrt{r_A^2-L_x^2}

最终cIOU可以通过如下公式计算:

Area(A\cap B)=r^2_A sin^{-1}\left (\frac{L_y}{r_A}\right )+r^2_B sin^{-1}\left (\frac{L_y}{r_B}\right )-L_y\left (L_x+\sqrt{r_A^2-r_B^2+L_x^2}\right )
Area(A\cup B)=\pi r_A^2+\pi r_B^2-Area(A\cap B)

3 实验结果

这里我只给出论文中的部分实验结果,具体的实验结果分析以及实验和参数的设置请看原文。

4 参考资料

[1] https://link.springer.com/chapter/10.1007/978-3-030-59719-1_4 [2] https://github.com/hrlblab/CircleNet

本文分享自微信公众号 - Python编程和深度学习(Python_Deeplearning),作者:czifan

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-10-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MPUnet:一个模型解决多个分割任务(MICCAI 2019)[github代码]

    今天分享一篇发表在MICCAI 2019上的论文:One Network To Segment Them All: A General, Lightweight...

    Minerva
  • 计算机二级Python考点解析9

    与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,...

    Minerva
  • CVPR2020医学影像相关论文(摘要+代码+链接)

    本文是在上面文章的基础上,整理了CVPR2020医学影像相关的论文摘要、代码及文章下载地址。根据上面文章,CVPR2020医学影像处理相关论文可以分为如下几类:

    Minerva
  • 装饰器模式4(javascript版)4

    用户7873631
  • 欧姆龙通信协议 FINS 2.0

    欧姆龙全球制造用于工业和制造业的机器。FINS用于通过网络控制其中一些机器。FINS以太网协议基于OSI模型:

    天钧
  • 520到了,看看python程序员怎么表白!

    5月20日,一个平平常常的日子,但是不知道什么时候开始,大家赋予了它某种含义,于是各类表白神器出现了!比如用python画个玫瑰花

    云飞
  • Python turtle画玫瑰

    喜欢ctrl的cxk
  • LVS-NAT负载均衡

    安装nfs 提供RPC支持的服务为rpcbind 提供NFS共享的服务为nfs 注意:先启动rpc服务,再启动nfs服务

    剧终
  • 你可能从不知道的ICON分类

    图标设计,是ui设计中的最重要的设计元素之一,优秀的图标其识别性会让人一眼看出它的含义,而不需要大量的文字说明;

    宇相
  • Dubbo源码解析之Zookeeper连接 原

                                                       图1 RegistryProtocol的export时序图

    克虏伯

扫码关注云+社区

领取腾讯云代金券