专栏首页机器学习AI算法工程【项目.源码】深度学习视觉计算辅助良品检验,如何做布匹疵点识别?

【项目.源码】深度学习视觉计算辅助良品检验,如何做布匹疵点识别?

项目基于阿里云天池平台,提供数千份精标注布样数据,以“视觉计算辅助良品检验”为主题,聚焦布匹疵点智能识别,开展大数据与人工智能技术在布匹疵点识别上的应用探索,助力工业制造良品提升。

数据集地址

https://tianchi.aliyun.com/competition/introduction.htm?spm=a2c22.11695015.1131732.1.4ea25275NNvZuf&raceId=231666

项目源码地址

关注微信公众号 datayx 然后回复 良品检测 即可获取。

YOLOhasst

YOLOhasst是一种'快速'的瑕疵检测方法,它使用了全局检测和局部检测两个模型进行融合,对于一张完整的布匹图像,'仅仅'需要检测166次就能得出结果。因此,我们给它取了个名字 You Only Look One hundred and sixty-six times....

由于硬件条件的限制(一块1080ti,11G),我们首先想到的方法就是对完整的大图进行切割,然后分别预测并在最终整合结果。这个方法再加上滑动检测、最大值抑制等一些小技巧,达到了0.932的成绩,一度排到了第一名。

切割方法:

训练阶段我们将整张大图切成6*8份,每份320*320的大小。我们选择瑕疵面积占完整瑕疵面积的比例大于0.09的小图作为瑕疵样本;完全没包含瑕疵的小图作为正常样本。

模型:

我们尝试了resnet50\VGG16\Inception-ResNet-v2等模型,经过实验效果相差不大,最终我们选择的是Inception-ResNet-v2的模型,并在最后加上了一层SPP层用来识别更细小的瑕疵。

滑动检测:

预测时我们并不是把全图切为6*8份进行预测,而是使用320*320的大小,160的步长进行滑动预测,总共需要预测11*15张小图;(成绩从0.9提升到0.92)

最大值抑制:

整合结果时我们没有直接使用最大概率值,而是取前三大的概率进行了平均。(成绩从0.92提升到0.932)

随后方法1的切割遇到了瓶颈,我们发现该方法容易将布匹边缘误检测为瑕疵,在尝试了不同的切割和模型后都无法突破0.932。这时候我们想到了YOLO论文中的第一句话‘Humans glance at an image and instantly know what objects are in the image, where they are, and how they interact’。然后我们开始很哲学地去思考,对于布匹瑕疵检测这个问题,如果是人眼来找瑕疵会怎么做。应该是有两步,一是一眼看过去有没有瑕疵,然后再一块块细看有没有小的瑕疵。实际上我们方法1的切割对应的就是第二步,而我们还缺了第一步,就是全局地去查看。于是,我们就使用了一个土办法,将全图resize成800*600(主要还是由于硬件限制)后单独训练了一个模型,再和方法一的模型进行融合。全图的模型单独的分数可以达到0.914。

使用步骤:

1.首先将初赛官方的测试图片解压放到data\official文件夹中。

2.将初赛的2次测试图片和公布的答案解压放在test\testa和test\testb文件夹中。

3.打开main.ipynb,依次运行每一个cell即可,程序会自动保存模型,最后会计算testa和testb中的auc

注意事项:

1.程序运行过程中会生成训练所需的cut和resize图片并保存在data目录下的对应文件夹中,若第一次运行后已生成图片,第二次运行可跳过cell2-4,直接从Train Model A开始;或者删除生成的中间文件夹,仅保留data\official文件夹,然后重头运行,避免重复保存中间图片。


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

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

原始发表时间:2018-08-18

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 什么是文本挖掘?大数据该挖掘什么?

    什么是文本挖掘 文本挖掘是一门交叉性学科,涉及数据挖掘、机器学习、模式识别、人工智能、统计学、计算机语言学、计算机网络技术、信息学等多个领域。文本挖掘就是...

    机器学习AI算法工程
  • 机器学习--Apriori算法

    一、基本原理 关联分析(association analysis)就是从大规模数据集中寻找物品间的隐含关系。这里的主要问题是,寻找物品的不同组合是一项十...

    机器学习AI算法工程
  • 中文短文本的实体识别实体链接,第一名解决方案

    面向中文短文本的实体识别与链指,简称ERL(Entity Recognition and Linking),是NLP领域的基础任务之一,即对于给定的一个中文短文...

    机器学习AI算法工程
  • 中小型企业实施ERP时需要了解哪些问题

      结合ERP来考核部门业绩,小企业实施ERP如何做到持续应用而不是半途而废? 事实上,问题是“上面”对他的考核重点是那张进销存报表,并且对这张报表的准确性从来...

    明象ERP
  • css基本语法及引用方法

    选择器是将样式和页面元素关联起来的名称,属性是希望设置的样式属性每个属性有一个或多个值。代码示例:

    Devops海洋的渔夫
  • 找不到servlet对应的class

    javax.servlet.ServletException: Wrapper cannot find servlet class com.suntomor.l...

    yuanyuan
  • Angular 工具篇之npx及angular-cli-ghpages

    今天本文的两个主角是 npx 及 angular-cli-ghpages,npx 是 npm 5.2 引入了的新的工具, 用于帮助我们执行 npm 二进制任务和...

    semlinker
  • 走近科学 | 伪基站诈骗分析

    本文原创作者:Praise(漏洞盒子白帽子) 一、简介 先来说说伪基站:即假基站,设备一般由主机和笔记本电脑组成,通过短信群发器、短信发信机等相关设备能够搜取...

    FB客服
  • 剑指offer代码解析——面试题22栈的压入、弹出序列

    本题的详细分析过程均在代码的注释中: import java.util.Stack; /** * 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断...

    大闲人柴毛毛
  • Java:优雅地处理异常真是一门学问啊!

    你有没有这样的印象,当你想要更新一款 APP 的时候,它的更新日志里总有这么一两句描述:

    用户5546570

扫码关注云+社区

领取腾讯云代金券