yolov7裂缝检测

2023-11-01

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")

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

yolov7裂缝检测 的相关文章

随机推荐

  • 【20220816】单片机开发是需要细心的

    GPIO ReadInputDataBit GPIOE GPIO PIN 13 和 GPIOE gt PID GPIO PIN 13 的计算结果是不一样的 如果只将 GPIO ReadInputDataBit GPIOE GPIO PIN
  • js逆向、安卓逆向教程

    JS基础 提示信息 吾爱破解 LCG LSG 安卓破解 病毒分析 www 52pojie cn 1 零基础js逆向专题 MD5通杀 长度32位置 搜索关键词 16进制 0x67452301 10进制 1732584193 RSA 搜索关键词
  • Visual Studio Code,一款功能强大且轻巧的免费代码集成编辑器介绍

    Visual Studio Code 编辑器 代码理解 调试 下载 软件官网下载地址 初步环境设置 基本设置 功能介绍 1 界面友好 代码阅读 代码编辑 下载 软件官网下载地址 链接 https azure microsoft com zh
  • Xshell正版免费,再也不用找破解版了!

    在百度网站上 搜索xshell的时候 大多都跳转到国内的xshell下载网址 但是国内的下载网址下载的xshell是收费的 解决方法就是找老外的下载网址 国外的网站还是可以下载的 学生和学校使用的免费版本 话不多说 上连接网址 https
  • 单例模式的实现方式有哪两种?

    单例模式是一种创建型设计模式 它确保一个类只有一个实例 并提供全局访问点来获取该实例 在 Java 中 实现单例模式有两种常见的方式 1 懒汉式单例 懒汉式单例在首次请求时才创建实例 如果实例已经存在 则返回现有实例 这种方式的优点是节省了
  • vue 相关面试题(路由)

    1 浅谈对路由的理解 什么是路由 根据不同的url地址展示不同的页面内容 或者数据 路由分为前端路由和后端路由 前端路由 1 前端路由 多用于单页面开发 也就是SPA 2 前端路由是不涉及到服务器的 是前端利用hash或者JavaScrip
  • 数据埋点是什么?设置埋点的意义是什么?

    作者 大头鱼 链接 https zhuanlan zhihu com p 25195217 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 所谓埋点就是在应用中特定的流程收集一些信息 用来跟踪应用使用的状况
  • docker——cmd和entrypoint

    目录 1 copy和add的区别 2 cmd和entrypoint的区别 exec模式与shell模式 3 exec模式和shell模式 小实验 exec模式 使用exec模式无法输出环境变量 shell模式 cmd和entrypoint的
  • Vue 封装短信验证码,刷新缓存倒计时

    通过本地存储封装短信验证码延时效果 可以防止用户点击刷新 刷新获取的是本地封装的时间 所以刷新不会重置倒计时 亲测有效 希望能够帮到大家 HTML 部分
  • 前端技术搭建拼图小游戏(内含源码)

    The sand accumulates to form a pagoda 写在前面 功能介绍 页面搭建 样式设置 逻辑部分 写在前面 上周我们实通过前端基础实现了俄罗斯方块游戏 今天还是继续按照我们原定的节奏来带领大家完成一个拼图游戏 功
  • 超详细!Python-Anaconda最新安装图文教程

    Anaconda简介 Anaconda是一种数据科学和机器学习的开发环境 它包含了大量的Python包 工具和库 以及可视化界面和集成开发环境 Anaconda可以方便地管理Python环境和安装第三方软件包 同时也支持多个操作系统和平台
  • 计算机网络--linux下poll函数详解

    poll函数概述 select 和 poll 系统调用的本质一样 poll 的机制与 select 类似 与 select 在本质上没有多大差别 管理多个描述符也是进行轮询 根据描述符的状态进行处理 但是 poll 没有最大文件描述符数量的
  • python简单绘图(根据表格绘制曲线图)

    实验数据 数据来自出版书籍 An Introduction to Statistical Learning with Applications in R Springer 2013 作者Gareth James Daniela Witten
  • AWS EC2手动/自动切换Elastic IP

    一 手动切换Elastic IP 1 进入ec2控制台 选中实例然后操作 gt 联网 gt 管理IP地址 2进入分配Elastic IP页面 点击分配 3 分配Elastic IP 4 配置Elastic IP 5 关联ip地址 二 自动脚
  • CSS 页面禁止滚动

    methods 禁止滚动 stop var mo function e e preventDefault document body style overflow hidden document addEventListener touch
  • java内部分享课题,层层深入

    正文 二叉树 由 n n gt 0 个有限节点组成一个具有层次关系的集合 看起来就像一个倒挂的树 因此称这样的数据结构为树 一个节点的子节点个数叫做度 通俗的讲就是树叉的个数 树中最大的度叫做树的度 也叫做阶 一个 2 阶树最多有 2 个子
  • 你懂mongoDB吗

    MongoDB 是一个基于分布式文件存储的数据库 由 C 语言编写 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 MongoDB 是一个介于关系数据库和非关系数据库之间的产品 是非关系数据库当中功能最丰富 最像关系数据库的 Mon
  • unity多场景加载与GameObject实例管理

    使用LoadSceneMode Additive 可以同时加载多个场景 但是并不是所有可以见元素都是可以直接调用的 如图 加载了scene02 激活后显示为粗体 一些常用对象的说明 Directional Light 不对另一个场景中的物体
  • 赣榆高中2021高考成绩查询,2020年连云港赣榆高考续写辉煌,各大高中“喜报”新鲜出炉...

    又到一年一度高考放榜时 赣榆各大高中纷纷发布喜报 今年赣榆高考又有哪些新成绩新亮点 楼下一一解读 省赣中 据了解 江苏省赣榆高级中学2020年高考再创辉煌 再攀新高 截至目前 据不完全统计 本一上线1058人 400分以上51人 市局目标完
  • yolov7裂缝检测

    B站视频笔记 1 首先到Github上找RoboFlow的仓库地址 该教程提供了传统算法比如Resnet YOLO等 还有包含一些较新的算法 2 通过Colab打开例程 可以直接通过Colab打开 还支持其他的打开方式 这里提供三种方式 提