采用yoloV5+pycharm的自己数据集训练目标检测与识别

day2-day4

续上一篇:采用了opencv自己的多层链接分类器做了简单的检测后,发现根本达不到我所需的要求,于是某宝买了opencv+yolo+pytorch的网课,逐渐有了更深的理解,分类器已经是很过时的技术了,之前对深度学习和神经网络并没有了解,但是赶鸭子上架,应用重要,原理后续再学吧,在初步了解了CV的基本概念后,动手跟着做带神经网络和深度学习的目标检测

day5

动手吧!

首先下载YOLOV5,yolo2,3,4都是以论文的形式呈现的,而yoloV5更像是一个项目,有着成熟的代码,开箱即用的那种

1.先在D盘建了个文件夹YOLO,下载这个项目,然后解压到YOLO里

地址:https://github.com/ultralytics/yolov5

 

 2.打开pycharm,把包导入:如果你的环境<py3.6,建议升级一下,如果符合,会导的就打开项目,不会导的就把yolov5-master文件复制到已经打开的项目下边

打开文件就能看到这个

 里边是运行起来所需加的一些包

按着命令下载就行

tips:我用的是CPU版本,因为笔记本没显卡,这样就有一个很重要的问题,就是pytorch的安装,建议先到pytorch官网去看下,因为如果直接pip装很容易出现torch和torchvison不匹配的情况,巨麻烦

2.这里安装就不展开讲了,运行这个

 缺的就会提示你,这里说一下wandb的问题,我之前没接触过wandb,所以报错后就pip装了wandb,然后注册号拿到验证码,验证码不知道为什么pycharm复制不上去,只能手打,安装后,打开终端输入wandb login,登录上去,就可以用了

3.到这里,yolov5的配置就算完成了,接下来说说数据集制作的问题,我用了最土的办法就是使用labelme,也就是自己标注需要训练的图片

要装的东西

pip install pyqt 

pip install pillow

pip install labelme

装完终端输入lebelme就会弹出来标注窗口

在yolov5-master下创建一个文件夹 train,在train下创建三个文件夹img、json、labels

左边菜单open是开一张图,open dir就是打开目录(图片目录),开了图片后右键菜单,第一个是点连框,第二个是选区域框,我对精度要求并不高也没有姿态的需求,所以都采用了区域框,框完后保存,将生成的json文件存入之前创建的train中的json里

标注方法,我要的是猪,所以我就把图片里的猪框出来

4.到这一步,假设你已经完成了图片标注,也就是图片存在img里,标注文件存在json中,那么下一步,就是把json转化为txt

json转化txt代码

import json
import os
 
name2id =  {'hero':0,'sodier':1,'填你标注的标签':2}
def convert(img_size, box):
    dw = 1. / (img_size[0])#自己改
    dh = 1. / (img_size[1])
    x = (box[0] + box[2]) / 2.0 - 1
    y = (box[1] + box[3]) / 2.0 - 1
    w = box[2] - box[0]
    h = box[3] - box[1]
    x = x * dw
    w = w * dw
    y = y * dh
    h = h * dh
    return (x, y, w, h)
 
def decode_json(json_floder_path, json_name):
    txt_name = '填train下的labels文件夹' + json_name[0:-5] + '.txt'
    #存放txt的绝对路径
    txt_file = open(txt_name, 'w')
 
    json_path = os.path.join(json_floder_path, json_name)
    data = json.load(open(json_path, 'r', encoding='gb2312',errors='ignore'))
 
    img_w = data['imageWidth']
    img_h = data['imageHeight']
 
    for i in data['shapes']:
        label_name = i['label']
        if (i['shape_type'] == 'rectangle'):
            x1 = int(i['points'][0][0])
            y1 = int(i['points'][0][1])
            x2 = int(i['points'][1][0])
            y2 = int(i['points'][1][1])
 
            bb = (x1, y1, x2, y2)
            bbox = convert((img_w, img_h), bb)
            txt_file.write(str(name2id[label_name]) + " " + " ".join([str(a) for a in bbox]) + '\n')
 
if __name__ == "__main__":
 
    json_floder_path = '填train下的json文件夹'

    json_names = os.listdir(json_floder_path)
    for json_name in json_names:
        decode_json(json_floder_path, json_name)

5.到此,json文件夹就可以删了,剩下img文件夹和labels文件夹,这就是我们需要拿来训练的数据集

6.训练这块

【Yolov5】1.爆肝6000字Yolov5保姆级教程,80岁老奶奶都看得懂!_若丶尘的博客-CSDN博客爆肝6000字Yolov5保姆级教程,80岁老奶奶都看得懂。文章特点:一个完整的流程,从头教到尾,不讲冗长的理论,实操https://blog.csdn.net/m0_53392188/article/details/119334634借鉴下这位大佬的

训练截图

时间关系,本篇作为记录匆匆赶出来的,细节不到位,接下来我要去尝试用百度的paddlepaddle啦!

毕竟自己的小垃圾笔记本做个实验还行,真往应用方向走算力还差得远,因此就只能抱着paddle的ai studio大腿了

 

  • 3
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
yolov5目标检测的流程如下: 1. 首先,需要安装yolov5所需的第三方库。你可以通过在终端运行以下命令来安装这些库: ```shell pip install -r requirements.txt ``` 2. 下载yolov5代码并打开项目。你可以在GitHub上找到yolov5的代码仓库,并使用git clone命令将代码克隆到本地。然后,使用pycharm或其他IDE打开yolov5项目。 3. 在项目中选择虚拟环境。虚拟环境可以帮助你隔离不同项目之间的依赖关系,确保每个项目都有其独立的环境。你可以使用conda或者venv等工具来创建和管理虚拟环境。 4. 准备模型权重文件。你可以使用已经训练好的yolov5模型进行目标检测,或者自己进行训练得到模型权重文件。模型权重文件可以是以下几种格式之一: - PyTorch模型文件(.pt) - TorchScript模型文件(.torchscript) - ONNX Runtime或OpenCV DNN模型文件(.onnx) - OpenVINO模型文件(.xml) - TensorRT模型文件(.engine) - CoreML模型文件(.mlmodel,仅适用于macOS) - TensorFlow SavedModel文件(_saved_model) - TensorFlow GraphDef文件(.pb) - TensorFlow Lite模型文件(.tflite) - TensorFlow Edge TPU模型文件(_edgetpu.tflite) 5. 使用训练好的yolov5模型进行目标检测。你可以运行以下命令来使用模型进行目标检测: ```shell python path/to/detect.py --weights weights_path ``` 其中,weights_path是你训练好的模型的路径。 这是yolov5目标检测的基本流程。通过上述步骤,你可以使用yolov5实现目标检测任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值