Skip to content
monkeyDemon edited this page Apr 25, 2019 · 1 revision

天池竞赛-津南数字制造算法挑战赛【赛场二】解决方案分享

前言

竞赛页面

最终排名35/2157,虽然成绩一般,但是作为一支目标检测领域的新手队伍,从零开始拿到这个排名,也有一些经验可以拿出来分享,包括一些针对这个比赛我们想出的一些idea,算是抛砖引玉吧,期待能够和排名靠前的大佬多多交流。

源码下载

二、框架选择

这个比赛实际上就是一个目标检测比赛,初赛要求对图像中的违禁品出现的位置进行检测,复赛在有效检测目标的同时要求输出高质量的实例分割。

对于框架选择,如我们的队名BugFlow一样,由于我们队伍的成员都是以tensorflow作为工具的,我们最初选择的框架是google开源的Tensorflow Object Detection API,训练效果一直不理想。后面果断切换了FaceBook开源的Detectron,成绩一下上升不少,也是体会了一回判教一时爽,一直判教一直爽的感觉。

所以这里不得不说一下,一个好的目标检测框架真的是事半功倍,从我们组的经历来说,Detectron无论从准确性、易用性还是扩展性来说都是一个不错的框架。不知道排名前5的大佬使用的是什么框架,望赐教!很想学习一下~

三、解决方案概述

3.1 模型选择

复赛我们的选择的是 End-to-End Mask R-CNN 作为的baseline, backbone 选择的是 resnet101-FPN

之所以选择FPN结构是因为本竞赛中,待检测违禁品的尺度大小不一,且包含很多小物体,我们认为feature pyramid networks能够更好的解决这个问题

三、安装

我们代码的运行环境及主要依赖为:

Ubuntu/Centos + CUDA9 + CUDNN7 + NCCL + Anaconda2 + Keras2.2.4 + PyTorch

初赛我们使用的显卡是可怜的NVIDIA GTX1070,复赛有了阿里云代金卷使用的是P100

运行如下命令,自动安装依赖环境及深度学习框架

$ cd /path/to/project/code/install
$ ./install_requirements.sh

详见project/code/README.md,若由于各种没有考虑到的情况安装不能顺利进行,还请大家简单分析安装脚本自行安装环境。

三、复现

初赛时还处于摸索阶段,成绩也89名,初赛的复现就不做介绍了。大家有兴趣可以看下初赛提交时我们提交的 README!!!!!!!!,我们对如何复现我们的结果进行了说明。