yolov7裂缝检测

news2024/10/6 18:28:10

B站视频笔记。

1.首先到Github上找RoboFlow的仓库地址

该教程提供了传统算法比如Resnet、YOLO等,还有包含一些较新的算法。
在这里插入图片描述

2.通过Colab打开例程

  • 可以直接通过Colab打开,还支持其他的打开方式,这里提供三种方式。
    在这里插入图片描述
  • 提示在这里插入图片描述
  • 点击授权即可。

3.算法步骤

  • 开始前准备

  • 安装YOLOV7

  • 安装Requirements

  • 使用预训练的Coco Model

  • 需要的数据格式

  • 下载数据集从Roboflow Universe

  • 自定义训练

  • 评估
    准备用户数据集:在这个教程中,我们使用从Roboflow Universe网站下载的90000+个数据集之一,如果你有了自己的图像(或者已经完成标注),你可以使用Roboflow转换你的数据集【一组开发人员用来快速准确地构建更好的计算机视觉模型的工具】。超过100K+开发者使用Roboflow进行自动化标注,转换数据集格式(比如YOLOV7),训练、部署和提升他们的数据集或者模型。

  • 按照开始指导手册,可以创造或者准备你自己的数据集,保证选择Instance Segmentation选项,如果你想拥有自己的数据集在Roboflow。

4.开始

首先我们确定我们可以使用GPU,可以使用nvidia-smi来执行。运行该命令提示:
在这里插入图片描述
仍然运行,在这里插入图片描述

5.安装YOLO v7

  • 获取当前路径。
import os
HOME = os.getcwd()
print(HOME)

![在这里插入图片描述](https://img-blog.csdnimg.cn/1a56e3c6c1424c188faa24b7328c1374.pn

  • 克隆YOLO V7代码
# clone YOLOv7 repository
%cd {HOME}
!git clone https://github.com/WongKinYiu/yolov7

# navigate to yolov7 directory and checkout u7 branch of YOLOv7 - this is hash of lates commit from u7 branch as of 12/21/2022
%cd {HOME}/yolov7
!git checkout 44f30af0daccb1a3baecc5d80eae22948516c579

在这里插入图片描述

6.安装依赖

%cd {HOME}/yolov7/seg
!pip install --upgrade pip
!pip install -r requirements.txt

在这里插入图片描述部分效果展示。

7.使用预训练的COCO模型进行推理

# download COCO starting checkpoint to yolov7/seg directory
%cd {HOME}/yolov7/seg
!wget https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7-seg.pt
WEIGHTS_PATH = f"{HOME}/yolov7/seg/yolov7-seg.pt"

在这里插入图片描述

# 下载图片到yolov7/seg目录
# download example image to yolov7/seg directory
%cd {HOME}/yolov7/seg
!wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=1sPYHUcIW48sJ67kh5MHOI3GfoXlYNOfJ' -O dog.jpeg
IMAGE_PATH = f"{HOME}/yolov7/seg/dog.jpeg"

在这里插入图片描述开始预测

%cd {HOME}/yolov7/seg
!python segment/predict.py --weights $WEIGHTS_PATH --source $IMAGE_PATH --name coco

在这里插入图片描述这里要注意YOLOV7会单独创建一个结果文件夹,默认是exp,exp2,exp3等等,

RESULT_IMAGE_PATH = f"{HOME}/yolov7/seg/runs/predict-seg/coco/dog.jpeg"
from IPython.display import Image, display
display(Image(filename=RESULT_IMAGE_PATH))

显示预测结果:
在这里插入图片描述

8.需要的数据格式

对于YOLOv7分割模型,我们需要 YOLO v7 Pytorch格式,注意:如果想学习更多的标注格式,可以访问
Computer Vision Annotation Formats
1.数据集目录结构
数据集包含图片和标签,分成三部分,训练、测试和验证三个子部分,另外,应该有一个data.yaml文件在数据集的根目录。
在这里插入图片描述

2.标注文件的结构

每个标签文件都是一个txt文档,和图片具有相同的名称,请看下面的标签文件的内容。
在这里插入图片描述每一行在标签文件里面,应该有一定的结构,class_index x1 y1 x2 y2 x3 y3 …

3.data.yaml文件结构

在这里插入图片描述

9.从Roboflow Universe下载数据集

你需要你的API_KEY,你可以通过Roboflow右上角的资料里找到,然后设置,你将重新进入设置界面,在左边WORKSPACES点击Roboflow->Roboflow API,复制private API key,使用Shift+enter运行这个cell,粘贴API-key到提示窗口。
注意:网络有时候有段慢,执行会遇到卡顿的情况。
在这里插入图片描述
这里输入秘钥后,直接回车,这个运行状态的按钮一直处于旋转的状态。直接回车,可以运行下一行。

%cd {HOME}/yolov7/seg

!pip install roboflow --quiet

from roboflow import Roboflow

rf = Roboflow(api_key=api_key)
project = rf.workspace("university-bswxt").project("crack-bphdr")
dataset = project.version(2).download("yolov7")

在这里插入图片描述

10.训练

%cd {HOME}/yolov7/seg
!python segment/train.py --batch 16 \
 --epochs 10 \
 --data {dataset.location}/data.yaml \
 --weights $WEIGHTS_PATH \
 --device 0 \
 --name custom

在这里插入图片描述

from IPython.display import Image, display
display(Image(filename=f"{HOME}/yolov7/seg/runs/train-seg/custom/val_batch0_labels.jpg"))

在这里插入图片描述

11.评估

我们可以评估

%cd {HOME}/yolov7/seg
!python segment/predict.py \
--weights {HOME}/yolov7/seg/runs/train-seg/custom/weights/best.pt \
--conf 0.25 \
--source {dataset.location}/test/images

在这里插入图片描述
我们可以显示一些结果:

import glob
from IPython.display import Image, display

for imageName in glob.glob('/content/yolov7/seg/runs/predict-seg/exp/*.jpg')[:2]:
      display(Image(filename=imageName))
      print("\n")

在这里插入图片描述
注意:前面的是猫狗。只是用于测试和后面的裂缝检测是两个项目,前面的主要用于测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/791489.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dy设备deviceid iid注册分析

清楚缓存,重新打开app, 点击同意按钮,会触发设备注册; 很明显是一个post包,device_register 可以看到请求体加密了 那么 请求体是什么呢? 很老版本思路:都是直接明文注册 较老版本思路:在反编译…

二、SQL-5.DQL-8).案例练习

1、查询年龄为20,21,22,23岁的员工信息 select * from emp where age in(20, 21, 22, 23) and gender 女; 2、查询性别为男,并且年龄在20-40岁(含)以内的姓名为三个字的员工 select * from emp where gender 男 && age between 2…

如何从任何地方远程解决电脑问题?

​如何远程解决电脑问题? “嗨!我有一台Windows 10家用电脑。我外出旅行,但我的家人告诉我我的电脑有一段时间无法正常工作。我该如何远程检查电脑并解决相应的问题?提前谢谢!” 您是否正在寻找远程解决电…

重庆市北斗新型智慧城市政府项目

技术栈:使用vue2JavaScriptElementUIvuexaxiosmapboxcesium 项目描述:重庆市北斗新型智慧城市政府项目是基于千寻孪界开发的一款智慧城市项目,包含车辆实时位置定位,智能设备的报警,基础设施的部设等等功能 工作内容&a…

javascript 7种继承-- 寄生式继承分析(5)

文章目录 概要继承的进化史技术名词解释寄生式继承案列分析源代码解析效果图小结 概要 这阵子在整理JS的7种继承方式,发现很多文章跟视频,讲解后都不能让自己理解清晰,索性自己记录一下,希望个位发表需要修改的意见,共…

C++多线程编程(第一章 多线程基本使用)

C 11; C 14; C 17; C 20; 1、为什么要多线程 任务分解 耗时的操作,任务分解,实时响应 数据分解 充分利用多核CPU处理数据 数据流分解 读写分离,解耦合设计 2、相关代码 1、初步: join(),detach() …

【数学建模】时间序列分析

文章目录 1. 条件2. 模型分类3. SPSS处理时间序列 1. 条件 1.使用于具有时间、数值两种要素 2.数据具有周期性可以使用时间序列分解 2. 模型分类 叠加模型【YTSCI】 序列的季节波动变化越来越大,反映变动之间的关系发生变化乘积序列【YTSC*I】 时间序列波动保持恒…

JavaSwing+MySQL的学生选课系统

点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/88101629?spm1001.2014.3001.5503 Jdk:1.8 MySQL:5.7 功能:可以进行选课与查看学生基本资料 在这里插入图片描述

Jmeter GET 请求 参数为 Json 串且参数中存在变量的转化

目录 前言: 1.在 HTTP 请求下添加 BeanShell PreProcessor 前置处理器: 2.在 BeanShell PreProcessor 的实现: 3.在 HTTP 请求中的使用方式: 4.参数化的数据方式: 5.请求结果: 前言: 在 A…

网络流量监视器vnStat

什么是 vnStat ? vnStat 是一个网络流量监视器,它使用内核提供的网络接口统计信息作为信息源。这意味着 vnStat 实际上不会嗅探任何流量,并且无论网络流量速率如何,都可以确保系统资源的轻度使用。 安装 在群晖上以 Docker 方式安…

Hive内部表和外部表

表类型详解 表分类 在Hive中,表类型主要分为两种 第一种:内部表 也叫管理表表目录会创建在集群上的{hive.metastore.warehouse.dir}下的相应的库对应的目录中。默认创建的表就是内部表 第二种:外部表 外部表需要使用关键字"external"&#xff…

勘探开发人工智能应用:地震层位解释

1 地震层位解释 层位解释是地震构造解释的重要内容,是根据目标层位的地震反射特征如振幅、相位、形态、连续性、特征组合等信息在地震数据体上进行追踪解释获得地震层位数据的方法。 1.1 地震信号、层位与断层 图1.1 所示为地震信号采集的过程,地面炮…

Sip网络音频对讲广播模块, sip网络寻呼话筒音频模块

Sip网络音频对讲广播模块, sip网络寻呼话筒音频模块 一、模块介绍 SV-2101VP和 SV-2103VP网络音频对讲广播模块 是一款通用的独立SIP音频功能模块,可以轻松地嵌入到OEM产品中。该模块对来自网络的SIP协议及RTP音频流进行编解码。 该模块支持多种网络协议…

ks webdid 滑块注册

web和app其实都一样,主要是针对于设备进行风控,web设备叫webdid; webdid注册出来,过了ks滑块激活,测试了主页,评论等接口都可以跑,平均也就2s注册一个,如果开并发那就更快了; 不过一…

React Native 0.72 版本,带来诸多更新

经过漫长的等待,React Native 终于迎来了0.72 版本,此处版本带来了Metro重要的功能更新、性能优化、开发人员体验的改进以及其他一些重要的变化。我们可以从下面的链接中获取此次版本更新的内容:0.72更新内容 一、Metro 新功能 众所周知,Metro 是 React Native 默认的 Jav…

图像处理之hough圆形检测

hough检测原理 点击图像处理之Hough变换检测直线查看 下面直接描述检测圆形的方法 基于Hough变换的圆形检测方法 对于一个半径为 r r r,圆心为 ( a , b ) (a,b) (a,b)的圆,我们将…

模拟量采集S_ITR函数(信捷C语言FC)

模拟量采集和转换函数非常简单,这里不再介绍,想了解具体算法的可以查看下面博客文章: PLC模拟量输入 模拟量转换FC S_ITR_博途模拟量转换程序_RXXW_Dor的博客-CSDN博客模拟量采集、工业现场应用特别广泛、大部分传感器的测量值和输出信号都是线型关系,所以我们可以利用线性…

SpringBoot中定时任务开启多线程避免多任务堵塞

场景 SpringBoot中定时任务与异步定时任务的实现: SpringBoot中定时任务与异步定时任务的实现_霸道流氓气质的博客-CSDN博客 使用SpringBoot原生方式实现定时任务,已经开启多线程支持,以上是方式之一。 除此之外还可通过如下方式。 为什…

对话商汤王晓刚:“百模大战”下半场,如何才能突出重围?

点击关注 文 | 姚悦 今年最早发布的那批大模型,现在怎么样了? 近期,商汤科技宣布“商汤日日新SenseNova”大模型体系完成了第一次重大迭代。这距离其发布过去3个月时间。 “每天不断接到用户调用,收到建议反馈后,每隔…

Java开发基础系列(十二):集合对象(List接口)

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: Java开发基础系列(十二):集合对象(List接口) ⏱️ 创作时间…