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)

- 克隆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等等,
这里要注意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 …
每一行在标签文件里面,应该有一定的结构,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")

 注意:前面的是猫狗。只是用于测试和后面的裂缝检测是两个项目,前面的主要用于测试


















