使用 Mask RCNN 和 Yolov5 进行划痕检测

本文介绍了如何使用Mask RCNN和Yolov5进行汽车划痕检测,包括数据集的收集、实例分割、目标检测等步骤。作者探讨了两种模型在处理划痕检测问题上的效果,指出Yolov5在小样本数据上能快速学习并泛化。
摘要由CSDN通过智能技术生成

介绍

本文的重点是检测汽车划痕,与针对不同类型产品的自主质量检测系统的开发同步。在停车场,这种检测为客户提供了他们的汽车安全的保证;此外,如果发生某些事情,检测系统将有助于对这种情况进行谨慎处理。

我将这个问题作为一个单类分类问题来解决,将凹痕、损坏和划痕视为划痕,并进一步在 Flask 的帮助下制作了一个基本应用程序。我将向你介绍我在做这个项目时获得的所有想法、代码、算法和知识,我将通过Mask RCNNYolov5实现这个项目。

390a609b0e1d08933b5d73f4342c63dd.jpeg

使用 Yolv5 进行预测

这是模型的最终结果。

学习目标

  1. 了解如何使用Mask RCNN和Yolov5 执行 自定义对象检测。

  2. 在使用在 coco 数据集和 Resnet50 上训练的模型时利用迁移学习。

  3. 了解质量数据收集和数据注释的重要性是任何项目中不可或缺且最耗时的部分。

目录

  1. 收集数据集

  2. 使用 Mask RCNN 进行实例分割

    2.1 导入库

    2.2 划分数据集

    2.3 创建一个 Scratch 类

    2.4 数据增强

    2.5 创建模型

    2.6 训练模型

  3. 通过 Yolov5 进行目标检测

    3.1 数据标注

    3.2 训练

    3.3 结果

  4. 结论和要点

收集数据集

为了收集数据,我制作了一个数据抓取器,使用 Beautiful Soup 从adobe、Istock photo等在线网站抓取数据。

url = 'https://stock.adobe.com/in/search/images?k=car%20scratch'

# make a request to the url
r = requests.get(url)

# create our soup
soup = BeautifulSoup(r.text, 'html.parser')

print(soup.title.text)
images = soup.find_all('img')

for image in images[-1]:
name = image['alt']
link = image['src']

with open(name.replace(' ', '-').replace('/', '') + '.jpg', 'wb') as f:
    im = requests.get(link)
    f.write(im.content)

由于网站关于抓取的隐私政策,大部分图像都没有被抓取。由于隐私问题,我直接从 Istock photo、Shutter photo 和 Adobe 下载了图像。

我从大约 80 张图像开始,增加到 350 张图像,并进一步增加到大约 900 张图像以进行最终注释。

使用 Mask RCNN 进行实例分割

图像分割是基于像素将图像分割成不同的区域。Mask RCNN 是一种用于实例分割的模型,它是图像分割的一种子类型,可在对象边界中分离实例。它是在 Faster RCNN 的基础上进一步构建的。Faster RCNN 对每个对象都有两个输出,分别是类标签和边界框偏移,Mask RCNN 是第三个输出的附加,即对象的掩码。

37d65acdf1459ba8340f47978f16b7e3.png

Mask RCNN 架构

Mask RCNN 的架构由以下部分组成:

  • 骨干网络

  • 区域提案网络

  • 掩码表示

  • 感兴趣区域RoI

使用 Mask RCNN 检测汽车划痕的优势在于,我们可以使用多边形而不仅仅是边界框,并在我们的目标上创建一个掩码,使我们能够以更准确和简洁的方式获得和可视化结果。

让我们开始使用 Mask RCNN 来实现我们的问题。

导入库

导入实施我们的 Mask RCNN 算法所需的所有库。

# importing libraries
import pandas as pd
import n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值