专栏首页机器学习AI算法工程图像分类:一个更鲁棒的场景分类模型

图像分类:一个更鲁棒的场景分类模型

目的:寻找一个更鲁棒的场景分类模型,解决图片的角度、尺度、和光照的多样性问题。

移动互联网时代的开启使得图片的获取与分享越来越容易,图片已经成为人们交互的重要媒介。如何根据图像的视觉内容为图像赋予一个语义类别(例如,教室、街道等)是图像场景分类的目标,也是图像检索、图像内容分析和目标识别等问题的基础。但由于图片的尺度、角度、光照等因素的多样性以及场景定义的复杂性,场景分类一直是计算机视觉中的一个挑战性问题。

本次任务从400万张互联网图片中精选出8万张图片,分属于80个日常场景类别,例如航站楼、足球场等。每个场景类别包含600-1100张图片。本次任务要求参赛选手根据图片场景数据集建立算法,预测每张图片所属的场景类别。

数据说明

数据集分为训练(70%)、验证(10%)、测试A(10%)与测试B(10%)四部分。

训练标注数据包含照片id和所属场景类别标签号。训练数据文件与验证数据文件的结构如下所示:

我们提供场景类别标号与场景中英文名称对照,文件结构如下:

数据集,代码运行教程 获取:

关注微信公众号 datayx 然后回复 图像分类 即可获取。

AI项目体验地址 https://loveai.tech

要点概述

  • 支持多个单模型进行集成,可选多种集成方式
  • 支持多种集成方式间的任意组合和自动择优
  • 支持间断训练时权重文件的择优选择
  • 支持VGG16VGG19Resnet50Inception-V3XceptionInception-Resnet-V3模型
  • imgaug 图片数据增强库替换Keras自带的图片预处理
  • 支持多进程进行图片预处理

这里对总结一下比赛期间遇到的问题,踩的坑等做个总结。

数据增强很重要!

Keras自带的图片增强远远不够的,这里选择了imgaug这个图片数据增强库,直接上图,这种效果是目前的Keras望尘莫及的,尽可能最大限度利用当前有限的数据集。提高1~3个百分点

尽可能高效使用CPU!

训练任务交给GPU去做,新添加的imgaug图片处理方式之后,一个Epoch在1050Ti上耗时90mins+,排查发现大部分时间都在进行图片数据增强处理,于是将该部分的处理替换为多进程方式。时间从90mins降到30mins左右

标准化很重要!

先计算出整体训练集的mean和std,然后在训练阶段的输入数据以mean和std进行高斯化处理(参mean_var_fetcher.py)提高0.5~1.0个百分点

Fine-tune别绑太紧!

这点尤为重要!Fine-tune时松太开,可能导致训练耗时,也可能导致机器带不动;绑太紧可能导致Fixed的权重参数扼制了模型的学习能力。建议是在机器能扛得住的基础下,尽可能松绑多一些。提高2~5个百分点

模型选择很重要!

糟糕的模型训练几天几夜,可能赶不上优势模型训练几个epoch。VGG16=>Xception提高5~8个百分点

Loss降不下去时尝试调低LR!

降不下去就调小,调下的幅度一般是5倍、10倍左右。提高1~3个百分点

TensorbBoard监视训练状态!

尽可能使用Tensorflow提供的Tensorboard可视化工具,方便从宏观把控训练过程。

适度过拟合是良性的!

训练过程中一直没有过拟合,要从两方面考虑:

  • 模型太简单,拟合能力不足,这时要考虑增强网络复杂度
  • 数据增强程度太大,学不到某些特征

模型集成!

单模型没有什么提升空间时,要尝试将多个单模型进行集成。集成的方式可以选择投票法、均值法、按照模型Acc加权法等等。提高0.5~1.5个百分点

预测数据增强!

为了确保预测结果的准确性,可以将待预测结果进行水平翻转(或随机裁取patch等)处理,将这多张孪生图片进行预测,最终结果取多个结果的均值。提高0.25~1.0个百分点

阅读过本文的人还看了以下文章:
TensorFlow 2.0深度学习案例实战

基于40万表格数据集TableBank,用MaskRCNN做表格检测

《基于深度学习的自然语言处理》中/英PDF

Deep Learning 中文版初版-周志华团队

【全套视频课】最全的目标检测算法系列讲解,通俗易懂!

《美团机器学习实践》_美团算法团队.pdf

《深度学习入门:基于Python的理论与实现》高清中文PDF+源码

特征提取与图像处理(第二版).pdf

python就业班学习视频,从入门到实战项目

2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码

《深度学习之pytorch》pdf+附书源码

PyTorch深度学习快速实战入门《pytorch-handbook》

【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》

《Python数据分析与挖掘实战》PDF+完整源码

汽车行业完整知识图谱项目实战视频(全23课)

李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材

笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!
《神经网络与深度学习》最新2018版中英PDF+源码

将机器学习模型部署为REST API
FashionAI服装属性标签图像识别Top1-5方案分享

重要开源!CNN-RNN-CTC 实现手写汉字识别

yolo3 检测出图像中的不规则汉字
同样是机器学习算法工程师,你的面试为什么过不了?

前海征信大数据算法:风险概率预测

【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类

VGG16迁移学习,实现医学图像识别分类工程项目
特征工程(一)

特征工程(二) :文本数据的展开、过滤和分块

特征工程(三):特征缩放,从词袋到 TF-IDF

特征工程(四): 类别特征

特征工程(五): PCA 降维

特征工程(六): 非线性特征提取和模型堆叠

特征工程(七):图像特征提取和深度学习

如何利用全新的决策树集成级联结构gcForest做特征工程并打分?

Machine Learning Yearning 中文翻译稿
蚂蚁金服2018秋招-算法工程师(共四面)通过

全球AI挑战-场景分类的比赛源码(多模型融合)

斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

python+flask搭建CNN在线识别手写中文网站
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程

不断更新资源深度学习、机器学习、数据分析、python 搜索公众号添加: datayx  
机大数据技术与机器学习工程 搜索公众号添加: datanlp长按图片,识别二维码

本文分享自微信公众号 - 机器学习AI算法工程(datayx)

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

原始发表时间:2020-11-17

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 两个月入门深度学习,全靠动手实践

    向AI转型的程序员都关注了这个号??? 搞CNN的工程应用有一段时间了,特别是在计算机视觉领域。分享下我自己的CNN学习历程。 简单的说,深度学习就是模仿人脑...

    机器学习AI算法工程
  • 基于PyTorch+YOLOv4的口罩佩戴检测,附数据集

    本项目是利用YOLOv4进行口罩佩戴检测,使用PyTorch实现。虽然现在国内疫情基本得到有效遏制,但防控仍不可过于松懈,在一些公共场合佩戴口罩还是必不可少的。...

    机器学习AI算法工程
  • 阿里深度学习实践

    近年来,随着大数据在互联网的蓬勃发展,很多人工智能的技术、应用像雨后春笋般涌现出来,如谷歌、Facebook、阿里、腾讯、百度等用得非常广泛,且各种应用都通过...

    机器学习AI算法工程
  • AAAI 2019 | 谷歌提出以无监督方式从单目视频中学习的结构化方法(附开源代码)

    对自主机器人来说,感知场景的深度是一项重要的任务——准确估计目标离机器人有多远的能力对于避开障碍、安全规划以及导航来说至关重要。虽然可以从传感器数据(比如 LI...

    机器之心
  • 机器学习和深度学习的区别

    近来有一些朋友问我,深度学习是不是算机器学习,如果是为什么一定要单拿出来算一个概念,那我在这就说说我的理解。 首先,深度学习确实仍然是依靠机器来做学习的不管是监...

    刀刀老高
  • 深度学习的昨天,今天和明天

    大数据文摘
  • 另一种开源:OpenAI 介绍深度学习基础设施

    【新智元导读】OpenAI 昨天在博客发文,结合实例,介绍了 OpenAI 进行深度学习研究时采用的基础设施配置,并且提供了相关开源代码。文章激起了很多反响,其...

    新智元
  • 如何提高FPGA工作频率?影响FPGA运行速度的几大因素

    对于设计者来说,当然希望我们设计的电路的工作频率(在这里如无特别说明,工作频率指FPGA片内的工作频率)尽量高。我们也经常听说用资源换速度,用流水的方式可以提高...

    数字芯片社区
  • 【资料总结】| Deep Reinforcement Learning 深度强化学习

      在机器学习中,我们经常会分类为有监督学习和无监督学习,但是尝尝会忽略一个重要的分支,强化学习。有监督学习和无监督学习非常好去区分,学习的目标,有无标签等都是...

    Charlotte77
  • 【重磅】RSS2016 深度学习机器人领域最新应用及趋势总结(PPT下载)

    【新智元导读】虽然在计算机视觉方面取得巨大突破,但深度学习(DL)在机器人领域尚未成为主流。由于在特定情境下无法确保机器人做出规定动作等原因,机器人领域还有很多...

    新智元

扫码关注云+社区

领取腾讯云代金券