【GitHub项目推荐--计算机视觉】【转载】
通过 EasyCV 你可以快速体验最新的图像自监督学习和 Transformer 技术,并且 EasyCV还包含一些常见的计算机视觉的任务,比如图像分类、目标检测等等。EasyCV 是阿里巴巴开源的基于 PyTorch 的 Computer Vision 工具箱,主要专注于自监督学习和 Transformer。开源地址:https://github.com/alibaba/EasyCV。
EasyCV
EasyCV 是阿里巴巴开源的基于 PyTorch 的 Computer Vision 工具箱,主要专注于自监督学习和 Transformer 。
通过 EasyCV 你可以快速体验最新的图像自监督学习和 Transformer 技术,并且 EasyCV 还包含一些常见的计算机视觉的任务,比如图像分类、目标检测等等。
开源地址:https://github.com/alibaba/EasyCV
Facebook力作:分割一切
Facebook 最近发布了新研究成果 Segment Anything,可一键抠出来图和视频中所有东西。刚自己使用了一下,效果非常赞!
开源地址:https://github.com/facebookresearch/segment-anything
sagemaker-defect-detection检测产品缺陷
该解决方案通过端到端深度学习工作流程检测产品缺陷,以实现制造过程中的质量控制。
该解决方案接收产品图像的输入并通过边界框识别缺陷区域。
github地址:
https://github.com/yuanzhongqiao/sagemaker-defect-detection
机器视觉检测在制造业产品质量控制
机器视觉检测在制造业产品质量控制中的应用越来越广泛。随着人工智能技术和图像处理技术的快速发展,机器视觉检测技术逐渐成为制造业中重要的质量控制手段。以下是一些典型的应用场景:
1. 汽车车身检测:例如英国 ROVER 汽车公司的 800 系列汽车车身轮廓尺寸精度的 100% 在线检测,通过机器视觉系统对车身外壳上的多个测量点进行实时监测,确保车身尺寸精度符合标准。
2. 电子制造过程:在 PCB(印刷电路板)制造、印刷、切割等环节,机器视觉检测可以对板材表面缺陷、印刷质量、切割精度等进行实时监控,确保产品质量。
3. 轮胎模具检测:对轮胎模具上的字符进行检测,如漏印、多印、错印等,机器视觉系统可以高效、准确地识别并避免这些问题,保证轮胎产品的合格率。
4. 产品表面缺陷检测:利用机器视觉技术对产品表面缺陷进行检测,如划痕、污渍、裂纹等,确保产品表面质量达到预期标准。
5. 智能制造:在制造业的智能化进程中,机器视觉检测技术可以与自动化生产线相结合,实现生产的自动化、智能化,提高生产效率和产品质量。
6. 物流与仓储:通过机器视觉技术,实现对货物尺寸、形状、颜色等信息的自动识别和分类,提高物流与仓储环节的效率和准确性。
总之,机器视觉检测技术在制造业产品质量控制中发挥着重要作用,有望助力我国制造业向更高质量、更高效率的方向发展。
解决方案接收产品图像的输入并通过边界框识别缺陷区域。
github地址:
https://github.com/yuanzhongqiao/sagemaker-defect-detection
该解决方案提供
-
使用Amazon SageMaker实现自动钢表面缺陷检测的最先进的深度学习方法。该模型增强了Faster RCNN,并输出钢材表面图像中可能存在的缺陷。该解决方案在NEU-CLS数据集上训练分类器,并在NEU-DET数据集上训练检测器。
-
完整的解决方案,使用高质量的预训练 Sagemaker 模型在带或不带超参数优化 (HPO) 的情况下对目标数据集进行微调。
该解决方案提供的最重要的信息是,在小型数据集上从头开始训练深度学习模型可能既耗时又效率低下,而对在大规模数据集上训练的高质量预训练模型进行微调可能会既具有成本效益、运行时间效益,又具有高性能。以下是检测结果样本
算法介绍
Faster R-CNN(Region-based Convolutional Networks)是一种深度学习算法,主要用于目标检测和识别任务。它是由 Ross Girshick 等人在 2015 年提出的,是一种经典且高效的目标检测框架。相较于之前的算法,如 R-CNN 和 Fast R-CNN,Faster R-CNN 在保持准确率的同时显著提高了运行速度。
Faster R-CNN 主要由以下几个部分组成:
1. 卷积层:用于提取图像的特征。卷积层获取到的特征图包含了图像中丰富的局部信息和颜色分布。
2. 区域建议网络(Region Proposal Network, RPN):在特征图上生成一系列潜在的目标区域。RPN 采用滑动窗口的方式,在特征图上生成不同大小和比例的候选区域。
3. ROI(Region of Interest)池化层:将 RPN 生成的候选区域转换为固定大小的特征图,以便后续的全连接层进行处理。ROI 池化层可以根据候选区域的大小,将其转换为统一尺寸的特征图,同时保留目标区域的空间信息。
4. 全连接层:对 ROI 池化后的特征图进行分类和边界框回归。分类输出每个候选区域所属的类别概率,边界框回归则用于微调候选区域的坐标,以获得更精确的目标定位。
5. 损失函数:Faster R-CNN 采用多任务损失函数(Multi-task Loss),包括分类损失和边界框回归损失。分类损失采用交叉熵损失,边界框回归损失采用平滑 L1 损失。
Faster R-CNN 相较于 R-CNN 和 Fast R-CNN 的主要优势在于其引入了区域建议网络(RPN),使得候选区域的生成更加高效。RPN 采用滑动窗口的方式,实时生成候选区域,避免了全卷积网络(FCN)在目标检测任务中的计算冗余。此外,Faster R-CNN 的运行速度较快,准确率较高,成为目标检测领域广泛应用的经典算法。然而,Faster R-CNN 也存在一定的局限性,例如对于小目标的检测效果不佳,以及运算量较大等。后续的许多研究工作,如 YOLO 和 SSD 等,旨在进一步提高目标检测的实时性和准确性。
架构概述
下图是端到端训练和部署流程的架构
-
输入数据位于Amazon S3存储桶中
-
提供的SageMaker 笔记本获取输入数据并启动下面的后续阶段
-
使用 Amazon SageMaker训练分类器和检测器模型并评估其结果。如果需要,可以部署经过训练的模型并创建 SageMaker 端点
-
从上一步创建的SageMaker 端点是HTTPS 端点,能够生成预测
-
通过Amazon CloudWatch监控训练和部署的模型
清理
当您完成此解决方案后,请确保删除所有不需要的 AWS 资源。AWS CloudFormation 可用于自动删除解决方案和笔记本创建的所有标准资源。转到 AWS CloudFormation 控制台,然后删除父堆栈。选择删除父堆栈将自动删除嵌套堆栈。
. 输入数据是什么样的?
输入是有缺陷/无缺陷产品的图像。训练数据应该具有相对平衡的类别,并为每个图像提供地面实况缺陷(位置和缺陷类型)的注释。以下是演示中使用的注释示例,它们在表面上显示了一些“包含”缺陷:
NEU 表面缺陷数据库(参见参考资料)是一个平衡数据集,其中包含
采集了热轧带钢的六种典型表面缺陷,即轧制氧化皮(RS)、斑块(Pa)、银纹(Cr)、麻点表面(PS)、夹杂物(In)和划伤(Sc) )。该数据库包含 1,800 张灰度图像:六种不同类型的典型表面缺陷各 300 个样本
这是六个类别的示例图像
. 如何准备数据以输入模型?
笔记本中应遵循数据准备和预处理步骤。提前准备好图像注释至关重要。
-
为了训练 DDN 模型,请为每张带有缺陷注释的图像准备一个 xml 文件。检查笔记本 0、1、2、3 了解详细信息。
-
为了微调预训练的 Sagemaker 模型,您需要
annotation.json
为所有数据准备一个文件,或者RecordIO
为所有图像和所有注释准备一个文件。检查笔记本 4 了解详细信息。
. 输出是什么?
-
对于每幅图像,训练后的模型将生成检测到的视觉缺陷(如果有)的边界框、预测的缺陷类型和预测置信度得分(0~1)。
-
如果您有带标签的测试数据集,您可以获得每个模型的平均精度 (mAP) 分数,并在所有模型之间进行比较。
-
例如,NEU 数据集测试集上的 mAP 分数
专线电话 类型1 1型+HPO 类型2 2型+HPO 地图 0.08 0.067 0.226 0.371 0.375
-
. 预计费用是多少?
-
假设使用 p3.2xlarge EC2 实例,并且美国东部的按需每小时费率为 3.06 美元,运行解决方案笔记本 0~3 端到端的成本约为 8 美元,不到一个小时。这些笔记本仅出于演示目的训练 DDN 模型进行几次迭代,这与收敛相去甚远。从头开始训练到收敛大约需要 8 个小时,成本超过 25 美元。
-
运行解决方案笔记本 4 的成本约为 130~140 美元。该笔记本提供了先进的材料,包括微调两种类型的预训练 Sagemaker 模型直至收敛(使用或不使用超参数优化 (HPO)),并生成四种用于推理的模型。您可以根据您的预算和要求选择训练一种模型或所有四种模型。训练每个模型的成本和运行时间为:
模型 成本(美元) 运行时间(小时) 计费时间(小时) 类型1 1.5 0.5 0.5 1 类 HPO(20 个职位) 30.6 1* 10 2型 4.6 1.5 1.5 带有 HPO 的 2 型(20 个职位) 92 3* 30 (*) 此解决方案中的 HPO 任务总共考虑 20 个作业和 10 个并行作业。因此,1 个实际运行时间相当于 10 个计费成本小时。 -
请确保您在训练后已阅读第 4 节中的清理部分,以避免因部署模型而产生成本。
. 使用什么算法和模型?
-
DDN模型基于Faster RCNN。欲了解更多详细信息,请阅读论文《端到端钢表面缺陷检测》。
-
预训练的 Sagemaker 模型包括 SSD 模型和 FasterRCNN 模型,使用 VGG、ResNet 或 MobileNet 作为主干,在 ImageNet、COCO、VOC 或 FPN 数据集上进行预训练。
dark-spot-mapper用于分析半导体晶圆和芯片缺陷的成像系统
https://github.com/orc-tuni/dark-spot-mapper
半导体晶圆和芯片缺陷的成像系统是一种用于检测和识别半导体材料表面和内部缺陷的高精度、高效率的检测设备。这类系统通过光学成像技术、激光检测技术等方法,对半导体晶圆和芯片进行表面、内部和背面的缺陷检查,以确保产品的质量和良率。
以下是一种半导体晶圆和芯片缺陷的成像系统的基本组成及其工作原理:
1. 成像设备:成像系统通常采用高分辨率光学显微镜或扫描电子显微镜(SEM)来捕捉晶圆和芯片的表面图像。这些设备能够实现高分辨率、高对比度的成像,以便于观察和分析缺陷。
2. 光源:成像系统需要一种稳定的光源来照亮半导体材料表面。常见的光源包括白光、激光光等。激光光源具有聚焦性好、能量集中等特点,可以对微小缺陷进行高精度检测。
3. 检测器:检测器用于捕捉反射光、透射光或共聚焦信号,并将这些信号转换为可处理的图像数据。检测器可以是 CCD(充电耦合器件)或 CMOS(互补金属氧化物半导体)等传感器。
4. 图像处理与分析软件:图像处理软件用于对捕获的图像进行预处理、增强和分析。通过图像处理技术,可以去除噪声、改善图像质量,并自动识别和定位缺陷。此外,深度学习算法(如卷积神经网络)也可以应用于缺陷分类和识别。
5. 控制系统:控制系统用于协调和调节整个成像系统的各个组件,确保高效、准确的成像过程。控制系统可以采用硬件或软件实现,例如可编程逻辑控制器(PLC)或嵌入式系统。
工作过程:
1. 将半导体晶圆或芯片放置在成像设备的工作台上,并调整光源和检测器以确保清晰的成像。
2. 启动控制系统,使成像设备捕获表面图像。
3.使用图像处理软件对捕获的图像进行预处理和分析,识别出潜在的缺陷。
4.根据缺陷的类型、大小和分布,调整成像设备和分析策略,以进一步确认和详细分析缺陷。
5. 将缺陷信息记录和报告,以便于后续的工艺优化和质量控制。
通过这种成像系统,可以实现对半导体晶圆和芯片的高精度缺陷检测,从而提高集成电路的质量和成品率。目前,这种成像技术已经在我国半导体产业中得到广泛应用,取得了显著的效果。
成套的、可商用的系统包括:
1. 成像设备:
2. 光源:
3. 检测器
4. 图像处理与分析软件
5. 控制系统:
本文只分享了一个算法
dark-spot-mapper
用于分析半导体晶圆和芯片缺陷的成像系统
关于监督异常检测的论文
Explicit Boundary Guided Semi-Push-Pull Contrastive Learning for Supervised Anomaly Detection
github代码
Pytorch 实现, 代码地址: https://github.com/xcyao00/BGAD
SimpleNet:用于图像异常检测和定位的简单网络
论文地址:https://arxiv.org/abs/2303.15140
github地址:
https://github.com/DonaldRR/SimpleNet
Multimodal Industrial Anomaly Detection via Hybrid Fusion通过混合融合进行多模式工业异常检测
论文地址:
https://arxiv.org/abs/2303.00601
代码实现:
https://github.com/nomewang/M3DM
Revisiting Reverse Distillation for Anomaly Detection RD++异常检测方法
论文下载:
https://openaccess.thecvf.com/content/CVPR2023/papers/Tien_Revisiting_Reverse_Distillation_for_Anomaly_Detection_CVPR_2023_paper.pdf
论文代码实现:
https://github.com/tientrandinh/Revisiting-Reverse-Distillation
DSR: A dual subspace re-projection network for surface anomaly detection
论文地址
https://arxiv.org/pdf/2208.01521.pdf
github 地址
https://github.com/VitjanZ/DSR_anomaly_detection
A Unified Model for Multi-class Anomaly Detection
论文地址
https://arxiv.org/pdf/2206.03687.pdf
github代码地址:
https://github.com/zhiyuanyou/UniAD
Steel-Surface-Defect-Detection钢材表面缺陷检测
github地址
https://github.com/yuanzhongqiao/NEU-DET-Steel-Surface-Defect-Detection
数据集 基于 东北大学(NEU)的开放表面缺陷数据库
向东北大学致敬!
钢材表面缺陷检测是一项重要的工作,对于确保钢材质量和应用具有重要意义。
然而,在实际操作中,钢材表面缺陷检测面临着一些难点:
1. 表面缺陷类型多样:钢材表面缺陷包括划痕、麻点、凹坑、裂纹等多种形式,不同类型的缺陷形态各异,检测方法难统一。
2. 缺陷尺寸和深度不同:钢材表面缺陷的尺寸和深度不同,有的缺陷较小,甚至只有微米级别,这对检测设备和检测方法提出了较高要求。
3. 表面光洁度的影响:钢材表面光洁度对检测结果有较大影响。不同光洁度的表面,检测效果会有所不同,有时会导致误检或漏检。
4. 环境因素影响:钢材表面缺陷检测受到光照、温度、湿度等环境因素的影响。不同环境下,检测设备的性能和检测结果可能会有所变化。
5. 检测速度与精度矛盾:在线检测过程中,检测速度和精度往往存在矛盾。高速检测可能导致精度下降,而高精度检测则可能影响检测速度。
6. 人工检测局限性:人工检测虽然可以实现精确的表面检查,但对于高速生产线上的钢材表面缺陷检测,人工方法速度慢、成本高,且难以满足批量检测需求。
7. 自动化检测设备和技术尚待完善:虽然近年来自动化检测设备和技术不断发展,但在钢材表面缺陷检测领域,仍存在一些技术难点,如设备的精度、稳定性和可靠性等。
综上所述,钢材表面缺陷检测面临诸多难点,需要综合考虑检测方法、设备、环境等因素,以实现高效、准确的检测目标。为克服这些难点,相关研究和实践将继续深入,以提高钢材表面缺陷检测的技术水平。
该项目的目标是建立一个可以识别钢材表面缺陷位置的 基于 PyTorch 分割模型。这里使用的分割模型是带有Resnet编码器的Unet。
数据集 基于 东北大学(NEU)的开放 表面缺陷数据库
向东北大学致敬!
该 表面缺陷数据库 收集了热轧带钢的六种典型表面缺陷,即轧制氧化皮(RS)、斑块(Pa)、裂纹(Cr)、麻点表面(PS)、夹杂物(In)和划痕(Sc)。数据库中提供的图像为灰度图像,尺寸统一为 200x200。
数据库链接:(已经无法访问)
需要记得基础环境
-
Python(v3.7.10)
-
Pytorch(v1.8.1)
源代码地址:
https://github.com/yuanzhongqiao/NEU-DET-Steel-Surface-Defect-Detection
文件和文件夹
以下是项目中重要文件和文件夹的说明:-
-
注释- 此文件夹包含已完成模型训练和验证的示例的注释 xml。
-
IMAGES - 此文件夹包含用于模式训练和验证的示例图像。
-
Validation_Annotations - 此文件夹包含图像的注释 xml,不会用于模型训练和验证。
-
Validation_Images - 此文件夹包含不会用于模型训练和验证的图像。该文件夹中的图像用于推理。
-
模型- 此文件夹包含经过训练的模型的 .pth 文件。
-
实用程序- 此文件夹包含模型训练、评估和推理所需的一些自定义实用程序脚本。下面列出了此文件夹中存在的 python 脚本:-
-
Meter.py - 此 python 脚本包含用于模型评估的指标的计算逻辑,即 IOU、Dice 系数、Dice Positive 和 Dice Negative。
-
Trainer.py - 此 Python 脚本包含训练模型的逻辑。
-
Data_Retriever_Seg.py - 此 python 脚本的输出是训练和测试数据集。
-
Extract_masks.py - 该文件具有从注释 xml 中提取掩码的功能。
-
Resnet_Unet.py - 此 python 脚本包含模型类。该脚本返回的模型是带有 Resnet 编码器的 Unet 模型。
-
Data_Retriever_Inference_Real_Time.py - 此脚本返回用于推理的数据加载器。
-
-
Create_Validation_Images.ipynb - 此 ipynb 文件创建两个名为 Validation_Images 和 Validation_Annotations 的文件夹。该脚本从每个类中随机选择 5 个图像,并将这些图像及其注释 xml 分别移动到文件夹 Validation_Images 和 Validation_Annotations。不会对 Validation_Images 中存在的图像进行模型训练。这些图像将仅用于我们模型的最终验证。
-
Exploratory_Data_Analysis.ipynb - 此 ipynb 文件提供数据分析。
-
Train_Segmentation_Model_FPN+inceptionv4.ipynb - 此 ipynb 文件用于使用 inceptionv4 编码器训练 FPN。
-
Train_Segmentation_Model_FPN+Resnet.ipynb - 此 ipynb 文件用于使用 resnet34 编码器训练 FPN。
-
Train_Segmentation_Model_FPN+xception.ipynb - 此 ipynb 文件用于使用 xception 编码器训练 FPN。
-
Train_Segmentation_Model_Unet+Resnet.ipynb - 此 ipynb 文件用于使用 resnet34 编码器训练 Unet。
-
Inference_Script.ipynb - 此 ipynb 文件用于推理。它从 Validation_Images 文件夹中读取图像作为输入,并生成蒙版作为输出。它还显示了预测掩模与原始掩模的比较。
使用该项目。
-
使用命令pip install -rrequirements.txt安装requirements.txt 文件中的需求。
-
首先要了解数据的概述,请查看名为 Exploratory_Data_Analysis.ipynb 的 ipynb 文件。
-
各个模型的训练可以通过Train_Segmentation_Model**脚本来完成。
-
一旦模型经过训练,名为 Inference_Script.ipynb 的脚本可用于对验证图像进行推理。
计算机视觉是人工智能在工业街应用的一朵明珠,以下是为大家推荐的 2019 年最佳计算机视觉课程。
1. Deep Learning and Computer Vision A-Z: OpenCV, SSD & GANs
讲师:Hadelin de Ponteves 等
评分:超过 2 万次评分,而且分数很高
链接:https://www.udemy.com/course/computer-vision-a-z/
简介:该课程可以帮你探索方法、基本概念和开发过程,并在实践中应用理论。通过使用多种示例来解释概念,有助于你对课程主题有更清楚的了解。目前有 78 讲,另有 7 篇文章和 5 个下载源。
2. Computer Vision Certification by State University of New York
讲师:Radhakrishna Dasari、Junsong Yuan
链接:https://www.coursera.org/specializations/computervision
简介:在该课程中,你将探索实现视觉应用的基本要素,从编辑图像到自动驾驶汽车读取交通信号,再到工业机器人与人类协作。课程中的概念、公式都有详尽的文本、图表做出解释。
3. Python Project: Pillow, Tesseract, Opencv By University of Michigan
讲师:Christopher Brooks
链接:https://www.coursera.org/learn/python-project
简介:这是一门 Python Project 的中级课程,课程对象是那些想要在计算机视觉领域打稳基础的学员,课程可在 Coursera 在线平台观看。你将在课程学习中用到图像库,并执行文本剪切、尺寸调整和覆盖操作。
4. Convolutional Neural Networks
讲师:吴恩达等
链接:https://www.coursera.org/learn/convolutional-neural-network
简介:本课程包含构建卷积神经网络所需的关键概念、调试代码的技巧和最佳实践等。
5. Deep Learning: Advanced Computer Vision
讲师:Lazy Programmer Inc.
链接:https://www.udemy.com/advanced-computer-vision/
简介:在本课程中,你将学习到如何创建目标检测系统(定位目标、预测其标签并将图像进行分类)。课程中用到的代码都可以从 GitHub 上下载。该课程涵盖 67 讲,终身有效,可以在 Udemy 在线学习平台上购买。
原文链接:
GitHub开放源代码项目:机器视觉检测产品缺陷,以实现制造过程中的质量控制
目前全球工业检查-人工智能-领域最先进的方法和其源代码 (1)
目前全球工业检查-人工智能-领域最先进的 论文、方法和其源代码 (2)
目前全球工业检查-人工智能-领域最先进的 论文、方法和其源代码 (3)
目前全球工业检查-人工智能-领域最先进的 论文、方法和其源代码 (4)
目前全球工业检查-人工智能-领域最先进的 论文、方法和其源代码 (5)
目前全球工业检查-人工智能-领域最先进的 论文、方法和其源代码 (6)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)