新年伊始,结束了这场持续两个多月的比赛。总体来说,收获蛮多,对于比赛也有了新的体会。

战绩是初赛排名12,复赛排名35,无缘决赛。

赛题背景:

数据探索性分析

解决方案

后记

赛题背景:

主办方要求综合运用目标检测、深度学习等方法对异常鳞状上皮细胞进行定位以及对宫颈癌细胞学图片分类,辅助医生进行诊断。

样本包括两大类:有目标的样本(1440个)和没有目标的样本(250个)。

其中有目标的又可以分为阳性和阴性两类,阳性包含{ASC-H, ASC-UC, HSIL, LSIL},阴性包含{Candida,Trichomonas }。通过对训练集的label统计分析,发现阳性和阴性的不会同时出现(显而易见的结论),同时阴性的两类也不会出现在同一个样本中,以上皆为统计数据,疾病原理上并不清楚。

所以就按照6类目标检测问题进行解答。

数据探索性分析

                           

                           

从上面几幅图可以看出:

  1. 不同类疾病的数量具有差距,最大的比例有1:7,考虑样本不平衡的问题
  2. 绝大多数样本尺寸过大,不能直接送进网络,考虑了滑窗切片
  3. bbox的尺寸分布范围大,且小目标占比也很大。我认为这是本次赛题的关键地方
  4. bbox的ratio并没有差距很大,所以以往改变anchor ratio的方法,效果应该不是很大
  5. 从病理图片来看,病灶和背景区别很不明显
  6. 同一疾病不同染色情况下,样本的色调差距较大(见下图样例)
  7. 病灶区并不是规则的矩形,没有填满bbox框

         

解决方案

模型的选择

主要是找了别人造好的轮子,这里选择了mmdetection,试了两个模型Cascade-RCNN和Retinanet

  

初赛的时候两种都试过,表现差不多,Retinanet会好一点。复赛的时候Cascade-RCNN的效果一直很渣,所以就放弃了。考虑原因是评分标准的原因,初赛使用了0.3@mAP和0.5@mAP,所以Cascade-RCNN的多head优势可以发挥,复赛的评分只有0.5@mAP。另外由于Cascade模型太大,训练时间长,主办方只给了2张卡,8核的CPU,完全失去了初赛实验室8卡,22核的优势。

Tricks

Trick1:Deformable Convolutional Networks(DCN),这个trick的使用应该已经算是约定俗成的了吧,反正用了一般都会提分,这里也是为了解决问题7.

Trick2:NMS大法。因为问题2已经说明样本尺寸太大,采用了滑窗的方法,这样带来的问题必然是同一个病灶区会有多个bbox,所以需要滤掉。这个大法是实验室师兄大佬(斩获阿里达摩院高级算法工程师offer)告诉我的。这个涨分还是比较明显的。当然这个只能叫后处理,不能叫trick了吧。

以下的Trick试过之后,基本没啥用,所以呢可以看出我只是训了训模型而已。

Trick3,先使用二分类模型将样本分为两大类,这里没有效果的原因考虑是:复赛的时候样本差距比较大(1440:250),所以就用了初赛的预训练模型(初赛这个方法应该是涨了2个百分点)。但是初赛把阴性目标放在了没有目标里面,所以两个数据分布并不一样,初赛预训练权重应该是不能用,复赛也存在目标检测是结果为空的情况所以就没有使用二分类。

Trick4,Max Score Post-Process,这个是建立在先不进行二分类,直接对所有样本进行目标检测,然后看每个样本中最大的score是否大于某个阈值,如果不大于则认为该样本中没有目标。是存在一些样本的最大score小于0.3的情况,但是使用这个方法之后降分了,所以就弃用了

Trick5,Small Object Detection Expert Model,这个主要是针对小目标来做的,因为考虑到bbox较小的目标,所以滑窗的size设置了256*256, 512*512,结果不知道是因为切割的时候除了问题,还是这种思路就有问题,导致模型预测的结果表现出欠拟合的样子,稍微有点像病灶的细胞组织都被标出来了。可能是我的打开方式不对吧。

Trick6,设置不同的score阈值来过滤目标,即预测目标的score小于某个阈值的时候丢掉这个bbox。尝试了阈值从0.005 到 0.8的变化,还是0.005的阈值好,没有试过更小的阈值,如果更小的阈值还可以涨分,那我可就冤死了。可视化的结果表明,那些score低的bbox就是在瞎框,所以总觉得这个评分标准有问题。是不是应该研究一下,提个更好的指标,然后发篇CVPR,AAAI等等的顶会,哈哈哈.....我又在做梦。

Trick7, 分析不同标签之间的关系,鉴于最后实在是黔驴技穷了,所以就考虑再做一下后处理吧。分析了训练集的标签规律,发现阳性的目标不会和阴性的目标同时出现,阴性的两类目标也不会同时出现,线下一顿操作猛如虎,涨了3个千分点,线上一试,疯狂掉分。

后记

写到这里本次比赛的所有骚操作都写完了,并没什么创新点,菜鸟依旧是菜鸟,但是通过这次比赛能更理性地看待比赛这件事了,之前老幻想着比赛夺冠,喜提几十万奖金,现在想想,按照这样的技术水平能获奖就怪了。下面是自己的一些心得体会,用来自勉,别无它意。

  1. Trick终究只能是trick,本身的问题应该在于模型和实际问题的结合,这也是搞研究应该注重的。有时候在想,像何恺明这样的大牛,如果由他们出面解决这些很实际的问题会是怎样的,提高各种SOTA是很关键,但是如果不落地终是问题啊,所以后面应该不会怎么参加比赛了,可能更多的精力会放在对于模型的理解以及与实际问题结合上面了。
  2. 数据探索性分析的重要性,如果只用现有mAP高的模型,大模型,这样试图找出一个好的baseline应该是有问题的,只有对业务的充分理解,才能对症下药。关于本次赛题的小目标问题,是在比赛结束前10天分析到的,而且还训练了两版没有用的模型,就是吃了没有认真分析的亏。
  3. 模型复现的能力,关键的技术能力。拿别人的东西来用,终究只能小修小改,同时自己的思维也会受到限制,所以应该闲暇时候就多练练自己造模型的能力。
  4. 不要做一个坑比的人。初赛使用的是本地的IDE可以断点debug,复赛阿里云PAI平台就是个巨坑,不能debug,导致很多bug没有及时发现,出了问题只能一点一点的分析测试。所以写代码的时候还是要对每一部分精细思考,做好测试。另外便是答应了别人的事情就要尽力去完成,不要满嘴的答应,结果手上不行动,这样愿意合作的人只会越来越少。

天池宫颈癌智能诊断赛后总结——目标检测相关推荐

  1. 视频监控 智能交通 数据集(目标检测、跟踪)

    前言 总结一下视频监控的数据集,用于目标检测.跟踪,持续跟新中........... 一.UA-DETRAC 数据集 UA-DETRAC是一个具有挑战性的真实世界多目标检测和多目标跟踪基准.该数据集包 ...

  2. 基于yolov5+deepsort的智能售货机商品目标检测种类识别计数

    起源 智能售货机的摄像头录下用户购物的视频,并上传到服务器,服务器识别商品种类,识别拿出和放入的种类.数量.如下 最终服务器返回json数据给客户端: 第一步,训练yolov5模型 看炮哥的视频:ht ...

  3. 服务医学,基于目标检测模型实现细胞检测识别

    在我以往的认知里面,显微镜下面的世界是很神奇的存在,可能只平时接触到的绝大多数是都是宏观的世界吧,看到微观世界里面各色各样的生物.细胞就会觉得很神奇,电子显微镜往往都是医生来操作观察的,对于采样.病理 ...

  4. 奖池90万!阿里天池发起肺部CT多病种智能诊断大赛

    点击我爱计算机视觉标星,更快获取CVML新技术 全球数据智能大赛(2019)--"数字人体"赛场一: 肺部CT多病种智能诊断 大赛概况 全球数据智能大赛(2019)由广西壮族自治区 ...

  5. 干货满满~阿里天池目标检测保姆级教程

    阿里天池目标检测类比赛入门 1赛前准备 1.1设备 1.2必备技术 1.3相关论文 1.4开源工具 2比赛规则分析 2.1评分指标 2.2模型限制的解决方法 3数据分析 3.1感受野&anch ...

  6. (2017年11月)天池医疗AI大赛肺部结节智能诊断在线分享

    观看目的: 看看3年前的DL技术和当今技术(2020年9月脊柱病变检测),到底有多少进步. 感受参赛选手的思维方式. 总结和收获 竞赛要"快糙猛"的先出第一版结果,然后去在各个环节 ...

  7. 工业视觉中的目标检测——兼谈天池大赛优胜方案

    点击我爱计算机视觉标星,更快获取CVML新技术 目标检测是计算机视觉领域研究最火热的方向,这从计算机视觉顶会CVPR相关论文数量就能看得出来. 目标检测应用范围广泛,上至卫星遥感,下至自动驾驶,大到鲸 ...

  8. 如何利用深度学习知识--快速部署高速目标检测智能小车?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 3月26日,英伟达图像处理系列公开课第三期线上开播,来自NVIDI ...

  9. 英伟达公开课 | 手把手教你部署一辆高速目标检测Jetbot智能小车

    主讲人 | 何琨 英伟达 量子位编辑 | 公众号 QbitAI 3月26日,英伟达图像处理系列公开课第三期线上开播,来自NVIDIA开发者社区的何琨老师,与数百位开发者共同探讨了: 利用NVIDIA迁 ...

  10. 天池大赛通用目标检测的对抗攻击方法一览

    ©PaperWeekly 原创 · 作者|文永亮 学校|哈尔滨工业大学(深圳) 研究方向|时空序列预测,目标检测 赛题:1000张图,在图上贴补丁,最多不超过10个,导致检测框失效就算得分. 比赛链接 ...

最新文章

  1. 仙居机器人_【101巨喜讯】又一个全国冠军!仙居学子机器人全国赛获奖啦!
  2. input type=hidden /在IE中占空间(转)
  3. 有关Oracle角色管理
  4. python打印日志
  5. android中常用的快捷键
  6. linux 内核编译 Kconfig文件详解
  7. 2019ICPC(徐州) - Loli, Yen-Jen, and a cool problem(广义后缀自动机)
  8. php 安装rabbitmq扩展无报错版
  9. 80x86 register and memory mode
  10. 数据化管理第一步,你真的会做报表吗?
  11. Redis集群案例与场景分析
  12. android asset jar,android离线打包 可以使用,但总是报错 android_asset/null
  13. 微云存储空间多大_微云免费存储容量由1T降为10G,百度还能坚持多久?
  14. id导出pdf失败_InDesign 导出印刷用PDF时如何设置?
  15. 计算机无法删除ie,ie删不掉的原因及解决方法【图解】
  16. 图解CSS3 读书笔记——边框
  17. Android 10.0 recovery prompt_and_wait 跳过弹窗 自动 WIPE_DATA(出厂设置)
  18. c4d怎么导入fbx_c4d怎么导入模型?品索教你Maya模型文件如何导入到C4d
  19. php编写网页实例,网页实例:怎么详细介绍用PHP来编写网页记数器
  20. MapReduce Inverted Index

热门文章

  1. python的pygame模拟太阳-地球-月亮-金星等动态示意图代码分析
  2. 堆栈的区别linux C,uClinux堆栈
  3. 冬夜读书示子聿 鉴赏
  4. html css js实现快递单打印_Node.js开发RPA自动抓取网页的文字内容
  5. 网页中那些遇到过的导航选中状态actived selected
  6. 【c语言】解释为什么32767+1=-32768
  7. python平行四边形代码_python 已知平行四边形三个点,求第四个点的案例
  8. 深入理解Attention及变种(四)
  9. win7系统服务优化——服务列表禁止项
  10. 什么是你的核心竞争力之二?