目标检测yolov5检测火龙果
一、github官方网址
https://github.com/ultralytics/yolov5/tree/v6.1
二、labelme标记数据集:
(1)、进入虚拟环境
(2)、pip install labelme
(3)、labelme打开
(4)、注意选择自动保存
注:labelme 支持jpg等格式,不支持HEIC格式,图片格式转化网址(一次只支持转化10张图片):HEIC转JPG - 免费在线将HEIC文件转换成JPG (cdkm.com)
三、json转为txt
labelme保存的是json文件,需要将json文件转化为txt文件,用于label标签
可用python代码批量转化json文件:
import json
import os # 标签名称,labelme做了几个标签这里就填几个
name2id = {'fruit': 0} 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 = 'E:\\***\\***\\目标检测\\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')) 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文件夹的绝对路径
json_floder_path = 'E:\\***\\***\\目标检测\\20220808json'
json_names = os.listdir(json_floder_path)
for json_name in json_names:
decode_json(json_floder_path, json_name)
四、训练集train和验证集valid
train或者valid中保存的images和labels中的文件名是一一对应的




五、代码修改
(1)yolov5-6.1/utils/dataset.py
num_workers=0
(2)yolov5-6.1\data\fruittest.yaml 修改训练数据
fruittest.yaml代码:
train: ../train/images
val: ../valid/images # Classes
nc: 1 # number of classes
names: ['fruit'] # class names
六、开始训练
python train.py --data fruittest.yaml --cfg yolov5s.yaml --weights '' --batch-size 32 --epoch 300
七、预测
python detect.py --source data\vedio --weights runs\train\exp5\weights\best.pt --data data\fruittest.yaml
纯绿色火龙果检测结果:https://live.csdn.net/v/230691
八、问题与反思
(1)、问题描述:AttributeError: 'NoneType' object has no attribute '_free_weak_ref'
解决办法:修改yolov5-6.1/utils/dataset.py中num_workers
num_workers=0
九、详细内容详见:
https://blog.csdn.net/qq_42051389/article/details/126248773?spm=1001.2014.3001.5502
目标检测yolov5检测火龙果的更多相关文章
- PointRCNN: 点云的3D目标生成与检测
PointRCNN: 点云的3D目标生成与检测 PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud 论文地址 ...
- 【python+opencv】直线检测+圆检测
Python+OpenCV图像处理—— 直线检测 直线检测理论知识: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进 ...
- 目标检测 — one-stage检测(二)
one-stage检测算法,其不需要region proposal阶段,直接产生物体的类别概率和位置坐标值,经过单次检测即可直接得到最终的检测结果,因此有着更快的检测速度,比较典型的算法如YOLO,S ...
- 目标检测 — one-stage检测(一)
总结的很好:https://www.cnblogs.com/guoyaohua/p/8994246.html 目前主流的目标检测算法主要是基于深度学习模型,其可以分成两大类:two-stage检测算法 ...
- 目标检测 — two-stage检测
目前主流的目标检测算法主要是基于深度学习模型,其可以分成两大类:two-stage检测算法:one-stage检测算法.本文主要介绍第一类检测算法,第二类在下一篇博文中介绍. 目标检测模型的主要性能指 ...
- 目标检测——深度学习下的小目标检测(检测难的原因和Tricks)
小目标难检测原因 主要原因 (1)小目标在原图中尺寸比较小,通用目标检测模型中,一般的基础骨干神经网络(VGG系列和Resnet系列)都有几次下采样处理,导致小目标在特征图的尺寸基本上只有个位数的像素 ...
- OpenCVSSDpython目标探测对象检测
1.请参考大牛博客链接 https://www.aiuai.cn/aifarm822.html
- 车脸检测 Adaboost 检测过程
上一节中我介绍了如何使用Opencv自带的opencv_traincascade.exe来做训练,接下来介绍如何使用训练生成的cascade.xml模型文件来检测车脸. 首先需要说明的是我这里的训练数 ...
- 使用Python基于VGG/CTPN/CRNN的自然场景文字方向检测/区域检测/不定长OCR识别
GitHub:https://github.com/pengcao/chinese_ocr https://github.com/xiaofengShi/CHINESE-OCR |-angle 基于V ...
- 学习OpenCV——行人检测&人脸检测(总算运行出来了)
之前运行haar特征的adaboost算法人脸检测一直出错,加上今天的HOG&SVM行人检测程序,一直报错. 今天总算发现自己犯了多么白痴的错误——是因为外部依赖项lib文件没有添加完整,想一 ...
随机推荐
- 数据库链接失败错误ERROR com.alibaba.druid.pool.DruidDataSource - {dataSource-1} init error解决
用java -jar启动之后,只要一访问数据库就报错,错误信息如下: 文字如下: 2019-07-02 10:25:12.220 ---> [http-nio-8080-exec-1] ---& ...
- 03java基础(二)java面向对象
目录 类和对象的基本使用 基础概念 类的初始化 用new关键字创建对象 创建对象的内存分析 OOP的三大特征 类的封装 类的继承 继承的基础使用 继承基本概念 extends关键字的基本使用 supe ...
- 接入GoogelAdmob C#服务器端验证 (SSV) 回调
记一次接入谷歌广告验证 官方文档:https://developers.google.cn/admob/android/rewarded-video-ssv 需要httpserver进行验证,项目里有 ...
- hexo部署和优化记录
title: hexo部署和优化记录 date: 2020-06-14 09:00:03 前端 tags: hexo summary: Repository_Pages使用.Github仓库打造网页群 ...
- 12组-Alpha冲刺-总结
组长博客链接 https://www.cnblogs.com/147258369k/p/15573118.html 一.基本情况 1.1 现场答辩总结 PPT制作方面略显粗糙,对于产品描述的具体内容不 ...
- Linux下aria2详细配置,以及接管浏览器下载项
本篇是在Deepin的环境下操作,大概可适用与Ubuntu和Debian,其他系的Linux不确定, 首先,我们安装aria2,使用命令行(在桌面右键可以打开)输入sudo apt install a ...
- 使用pyspark 建立spark 的累加器
一,累加器特征 1,PySpark累加器是一个共享变量,与RDD和DataFrame一起使用,以执行与Map reduce计数器类似的求和和和计数器操作. 2,只有分布在各个节点上的task任务才能更 ...
- Python-numpy基本用法
import numpy as np import numpy as np #导入numpy库 _version_显示版本号 show_config() 显示配置文件 print(np.__versi ...
- 第三周day4
第三周day4,星期四 所用时间:1h 代码量:0 博客量:2 了解到的知识点:Toast.
- 日常开发记录-js的Date对象中的toLocaleDateString()
就是把Date对象的日期部分转换为字符串,并返回结果. 代码示例: console.log(new Date()) // 2023-01-10T05:42:41.926Z console.log(ne ...