yolov5车牌识别(2023年毕业设计+python源码)

您所在的位置:网站首页 车牌识别开发 yolov5车牌识别(2023年毕业设计+python源码)

yolov5车牌识别(2023年毕业设计+python源码)

2023-03-13 09:08| 来源: 网络整理| 查看: 265

源码链接在文末 一、yolov5 模板下载

第一步:将整个代码从github上下载下来,

网址:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

也可以直接到GitHub上搜yolov5

二、安装环境

# pip install -r requirements.txt

# Base ---------------------------------------- matplotlib>=3.2.2 numpy>=1.18.5 opencv-python>=4.1.2 Pillow>=7.1.2 PyYAML>=5.3.1 requests>=2.23.0 scipy>=1.4.1 torch>=1.7.0 torchvision>=0.8.1 tqdm>=4.41.0

# Logging ------------------------------------- tensorboard>=2.4.1 # wandb

# Plotting ------------------------------------ pandas>=1.1.4 seaborn>=0.11.0

# Export -------------------------------------- # coremltools>=4.1  # CoreML export # onnx>=1.9.0  # ONNX export # onnx-simplifier>=0.3.6  # ONNX simplifier # scikit-learn==0.19.2  # CoreML quantization # tensorflow>=2.4.1  # TFLite export # tensorflowjs>=3.9.0  # TF.js export # openvino-dev  # OpenVINO export

# Extras -------------------------------------- # albumentations>=1.0.3 # Cython  # for pycocotools https://github.com/cocodataset/cocoapi/issues/172 # pycocotools>=2.0  # COCO mAP # roboflow thop  # FLOPs computation

(1)安装pytorch(建议安装gpu版本cpu版本太慢)

这些库中可能就pytorch比较难安装,其他库用pip install 基本能实现。

可直接在Anaconda Prompt里输入:

pip install torch==1.7.0+cu101 torchvision==0.8.1+cu101 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

运行检测

下载完yolov5后,运行detect,可以帮助我们检查上面的环境是不是安装成功。

6db88901610046e9b861ed7de890c0a0.png

如果运行不报错,我们会在runs//detect//exp 文件夹下看到两张已经预测出的照片。

9428397704f54ecbbbec1dc57aad1b51.png 

d73b038e0d08457ba215021458d553b7.png 

如果报错,问题也不大,看就是安装的环境版本比较低或者没安装,我们稍微调试一下就OK了。 

三、标记数据

我们先要创建几个文件夹用来存放数据和模型。

在yolov5-master如下图所示文件夹0acda85eb693447ab0616fa310a7c036.png

1.制作标签

这里我是以穿越火线为例,提供100个已经标记好的数据(放在文末)。你也可以自己标记,一百张效果不是很好,可以多标记几张。

(1)安装labelme

在Anaconda Prompt里pip install labelme

(2)使用labelme

在Anaconda Prompt里输入labelme,会弹出一个窗口。bcd7d760c1c74314bce8b8c45c16f9d4.png

然后打开图片所在的文件夹

点击rectangle,标记想要识别的东西。

  标记完后保存到一个新的文件夹下,保存的文件格式是.json

 

2.转格式(json转txt)

要修改代码中标签名称,存放json文件的绝对路径和保存txt文件的绝对路径。

我们将生成的txt放在my_dates//labels//train中

将原来的图片放在my_dates//images//train中

import json import os name2id = {'Global Risk':0,'Black List':1} #标签名称 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 = 'C:\\img \\' + 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 = 'G:\\img\\' #存放json的文件夹的绝对路径 json_names = os.listdir(json_floder_path) for json_name in json_names: decode_json(json_floder_path, json_name) 四、配置文件 1.mydata.yaml

copy一下coco128.yaml文件到my_dates下并改名为mydata

8e908652c6ab4f8298c0b2789522aeee.png

e8602b31370a4becbe058e2fdbdee509.png 

然后修改里面的参数:

(1)先将path注释掉(别忘记注释) ,然后将train和val改为存放训练集图片的位置

train: my_dates/images/train  val: my_dates/images/train  (2)然后将nc 改为标签个数(我们这里是1),names里面改为我们的标签名。 别忘了注释path

2.mydata_1.yaml

copy一下yolov5s.yaml文件到my_dates下并改名为mydata_1。(yolov5s效果最差但速度最快我们可以根据自己的情况选择模型)

59888c7d237547b6a42672168c9fb049.png

5dceb493fe1f4cd7b466b154908f28ce.png

  然后修改里面的参数:

这里只需要将第四行的nc改为1(标签个数) 。

 

五、模型训练

运行train.py文件

7c9512333c1b4a939f4b9b5639ef6331.png

时间有点长(一小时左右)!!!!

如果报错根据实际情况修改一下就ok

结果会放在下面路径下

六、视频或图片预测

 e7baa2e265ee4d9081ea9d08455c3d34.png

我们只需修改detect.py文件夹下的权重路径和测试路径。(210行左右)

d0fcc8a8a8974018b26e84a44df92099.png

只需要将需要预测的视频或图片放在下面文件夹下,

0e6039114bca4ebdad2433a70f51a14f.png

然后运行detect.py就ok了!!!!!!

b945b33bccd1415b87a1172855b6c2d9.png

结果放在 (每次运行都会生成一个新的exp,所以我这是exp7)

f7091cf6dd67433cb37eb72e03a13ad8.png

源码链接:2023年三月yolov5车牌识别毕业设计源码icon-default.png?t=N176http://www.hedaoapp.com/goods/goodsDetails?pid=4924



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3