专栏首页新智元【Kaggle冠军分享】图像识别和分类竞赛,数据增强及优化算法

【Kaggle冠军分享】图像识别和分类竞赛,数据增强及优化算法

【新智元导读】Kaggle 海洋鱼类识别和分类竞赛冠军团队技术分享:如何设计鲁棒的优化算法?如何分析数据并做数据增强?技术细节包括使用不同船只的图像进行验证,以及如何处理夜视图像。

今年,Kaggle 社区举办了大自然渔业监测大赛(Nature Conservancy Fisheries Monitoring competition),征召参赛者开发能够自动对渔船捕捞的海洋生物种类进行检测和分类的算法。

非法捕鱼等行为对海洋生态系统构成了威胁。这些算法将有助于增强大自然保护协会分析摄像机监控系统数据的能力。在下面这篇获奖者访谈中,冠军队伍“Towards Robust-Optimal Learning of Learning”(Gediminas Pekšys,Ignas Namajūnas,Jonas Bialopetravičius)分享了他们算法的技术细节,比如如何使用不同船只的图像进行验证,以及如何处理夜视图像。

由于比赛数据集中的照片不能公开,团队招聘了平面设计师 Jurgita Avišansytė 为此博文制作了插图。

团队背景

在进入这个挑战赛之前,你的背景是什么?

P:剑桥数学毕业,做了大约 2 年的数据科学家/顾问,约 1.5 年的软件工程师,作为监控应用研究工程师大约有 1.5 年的物体检测研究和框架开发经验。

N:数学本科,计算机科学硕士和 3 年研发工作,在 9 个月的监控项目研究负责人经验。

B:软件工程学士,计算机科学硕士,6 年计算机视觉和机器学习专业经验,目前正在研究天体物理学,对应用深度学习方法十分感兴趣。

有什么以前的经验或领域知识帮助你在这场比赛中取得了成功?

P:我上次参加 Kaggle 比赛获得的工作和研究经验帮助了我参加这次竞赛,也即在第一周的时间里建立合理的验证方法。

N:我在大学学习(主要是自学)、研发的工作经验,还有前两次 Kaggle 计算机视觉竞赛的经验,以及每天阅读 arXiv 论文。

B:我的硕士论文是关于深度学习的,我也有一些 Kaggle 竞赛经验。我在工作中定期解决计算机视觉问题。

你是如何开始参与 Kaggle 竞赛的?

P:我第一次听说 Kaggle 是在我成为数据科学家第一年的时候,但在我转为从事计算机视觉之后几年后才开始考虑参赛。Kaggle 竞赛能让人专注于稍微不同的问题/数据集,并有效地验证不同的方法。

N:我曾经喜欢参与 ACM ICPC 等竞赛。我没有取得特别值得一提的成就,但作为维尔纽斯大学团队成员参加国际比赛是我的学生生涯中最好的体验。在开始从事机器学习和计算机视觉工作后,我喜欢上了长期的挑战赛,所以 Kaggle 再适合不过。

B:我喜欢解决机器学习问题,而 Kaggle 正是做这个的平台。

是什么让你决定参赛的?

P:我想为计算机图像检测和分类做更多的堆叠和定制模型的实验。我还想要比较最近的检测框架/体系结构。

N:对象检测是我的强项之一,这个问题看上去很有挑战性,因为成像条件“in the wild”程度很高。

B:主要是因为这场比赛看起来难度很高,特别是缺乏好的数据。

技术细节及思路解析

你们从以前的研究或比赛中借鉴了什么方法吗?

借鉴了 Faster R-CNN,它在以前参赛中表现很好,我们也有使用和修改它的经验。

使用了什么监督学习方法?

我们主要使用带 VGG-16 的 Faster R-CNN作为特征提取器,其中一个模型是用的带 ResNet-101 的 R-FCN。

数据预处理和数据增强是怎么做的?

大多数用于训练模型的增强管道都是相当标准的。随机旋转,水平翻转,模糊和尺度变化我们都用了,这些方法也都提高了验证分数。然而,最重要的两件事情是使用夜视图像和图像颜色。

我们在早期注意到,夜视图像真的很容易识别——只需检查绿色通道的平均值是否比红色和蓝色通道两者相加的均值更亮就行了,加权系数为 0.75,在所有情况下都适用。观察典型正常图像和夜视图像的颜色强度直方图,可以清楚地发现差异,因为常规图像的颜色分布通常彼此相近,这可以从下图中看出。虚线表示近似这些分布的最佳拟合高斯。

我们想要增加更多的夜视图像。因此,最终的一个模型,也是最后成绩最好的单一模型,随机分配了一些训练图像,并且扩展了直方图,使其更接近于夜视图像。这是针对每个颜色通道分别完成的,并假设是高斯的(实际情况并不是高斯的),并且相应地修改了平均值和标准偏差——基本上就是缩小红色和蓝色通道,从图中可以看出。之后我们也分别对每个颜色通道进行了随机的对比度拉伸。因为夜视图像本身可能是非常多样的,而固定变换无法体现这种变化。

因为这个模型性能非常好,我们还添加了一个不单独使用夜视图像的模型,但却加长了所有图像的对比度。因为这是分别在每个通道上完成的,可能会改变鱼类或周围环境的颜色。由于数据中海洋里光照条件变化多端,真实图像中的颜色不太稳定,所以这种方法结果看上去还是很好的。

比赛中,关于数据方面,你们最重要的看法是什么?

首先,必须具有包含来自不同船舶的图像的验证集,而不是训练集中的图像,否则模型可以根据船舶特征学习分类鱼类,这虽然不会在验证分数上有所体现,但可能会导致 stage2 测试集的精确度下降。

其次,整个数据集中鱼的大小都非常不同,因此对这一点进行处理显然是有用的。

第三,有大量的夜视图像具有不同的颜色分布,因此用不同的方式处理夜视图像也提高了我们的分数。

更重要的是,其他团队在论坛上发布的附加数据似乎包含了很多这样的图像,其中的鱼看起来与放在船上的鱼看起来不一样,因此过滤掉这部分数据很重要。

最后,我们对原始训练图像进行了多边形注释,这有助于我们在旋转图像上实现更准确的边界框,否则图像将包含很多背景(如果旋转框的边框被视为基本真实的)。

参赛工具及硬件配置

你们使用了哪些工具?

我们使用从定制的存储库 py-R-FCN(包括 Faster R-CNN)代码:https://github.com/Orpine/py-R-FCN 。

你们在这次比赛中都做了哪些事情?

我们花了一些时间注释数据,从论坛上发布的图像中找到有用的附加数据,找到正确的扩充来训练模型,查看生成的验证图像预测,然后查看模型可能学到的任何虚假模式。

你们的硬件设置是什么样的?

两台 NVIDIA GTX 1080,一台 NVIDIA TITAN X

你们获胜解决方案的训练和预测运行时间分别是多少?

非常粗略的估计,GTX 1080 训练大约 50 小时,预测每个图像 7-10 秒。我们最好的单一模型其实比整个系统更加精确,可以在 4 小时内训练,需要 0.5 秒进行预测。

对刚入门数据科学的人有什么建议吗?

先阅读介绍类的材料,然后逐渐开始阅读论文,尝试自动动手解决机器学习问题,培养直觉,检查训练好的模型,努力去了解出了什么问题。计算机视觉问题对于练手来说相当不错。学习享受机器学习过程要付出长期的努力,保持兴趣才能保持动力。Kaggle 是学习机器学习的完美平台。

编译原文:http://blog.kaggle.com/2017/07/07/the-nature-conservancy-fisheries-monitoring-competition-1st-place-winners-interview-team-towards-robust-optimal-learning-of-learning/

本文分享自微信公众号 - 新智元(AI_era)

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

原始发表时间:2017-07-09

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【虫二】的人工智能

    艺术创作一直是人类精神活动的最高级形式,自古以来,人们认为只有人类的智慧才能真正领悟艺术作品的深远意境和奥妙神韵,玄而又玄的艺术风格更是只可意会,不可言传。近些...

    新智元
  • 英伟达、UC伯克利联合研究:条件GAN高分辨率图像合成与语义编辑pix2pixHD(论文+代码)

    来源:arxiv.org 编译:马文 【新智元导读】英伟达和UC Berkeley的研究者最近公开一个名为pix2pixHD的项目,并公开了论文和代码。pix2...

    新智元
  • 【CVPR Oral】TensorFlow实现StarGAN代码全部开源,1天训练完

    新智元
  • PHP图形图像处理

    当图像处理完成后,可以使用imagedestroy()函数销毁图像资源来释放内存。

    白胡杨同学
  • 图像质量评估|调研

    作为视觉生物,人类对视觉信号损耗(例如块状,模糊,嘈杂和传输损耗)敏感。因此,我将研究重点放在发现图像质量如何影响Web应用程序中的用户行为上。最近,一些研究测...

    磐创AI
  • 还在PS里手动描边?AI自动抠图只需5秒

    该工具可免费使用,用户无需手动选择背景/前景层,即可实现快速抠图。只需选择图像,几秒后即可下载抠图后的图像。

    机器之心
  • C++ OpenCV图像分割之分水岭分割

    前面我们说了两种分割方法,这一章我们说图像的分水岭分割。分水岭算法是一种图像区域分割法,在分割的过程中,它会把跟临近像素间的相似性作为重要的参考依据,从而将在空...

    Vaccae
  • SFFAI 36 SFFAIx旷视 | 计算摄影学专场

    当地时间6月16日,一年一度的“计算机视觉与模式识别会议”(Conference on Computer Vision and Pattern Recognit...

    马上科普尚尚
  • 独家 | 自动编码器是什么?教你如何使用自动编码器增强模糊图像

    你还记得胶卷相机的时代吗?冲洗照片是一个神秘的过程,只有摄影师和专业人士才能够驾轻就熟。大多数人的印象中只有弥漫着昏暗红光的暗室。简而言之,冲洗照片是一个耗时的...

    数据派THU
  • 揭开Spark Streaming神秘面纱② - ReceiverTracker 与数据导入

    只需在 driver 端接收数据的 input stream 一般比较简单且在生产环境中使用的比较少,本文不作分析,只分析继承了 ReceiverInputDS...

    codingforfun

扫码关注云+社区

领取腾讯云代金券