1.准备数据集
1.下载数据集
我在http://m6z.cn/6fzmQf 下载了一些行人交互的图片素材
2.下载一个图片标记工具
看的教程里用的labelImg,我画框的时候总是闪退,用了网上的方法也没用
后面下载了labelme来替代
3.labelme的安装
搜索框输入Anaconda Prompt
pip install labelme
然后在弹出的终端输入上面这个代码安装,回车按一下
(这是windows版本)
4.labelme的使用
在Anaconda Prompt中输入labelme就可以启用了
打开就是这样子(在底部栏是jupyter的标)
然后选择“打开目录”,选择数据集文件夹
点击左上角--编辑--创建矩形 就可以开始创建区块
同一类的物体就同一个标签名
框选完一副就点save然后下一幅 重复这个操作
(应该有简便的方法?
然后它会为每个图片生成一个json文件
5.解析标注信息
对于每张图片的标注,提取出每张图片大小以及每个标注框的类别和位置信息
打开jupyter
import json
import os
json_dir = '存放json文件的路径'
output_dir = '保存输出文件的目录'
# 遍历目录下所有 JSON 文件
for file_name in os.listdir(json_dir):
if file_name.endswith('.json'):
json_file = os.path.join(json_dir, file_name)
# 读取 JSON 文件
with open(json_file, 'r') as f:
data = json.load(f)
# 创建对应的输出文件名
output_file = os.path.join(output_dir, os.path.splitext(file_name)[0] + '.txt')
# 处理每个标注信息并保存到对应的输出文件中
with open(output_file, 'w') as f_out:
for annotation in data['shapes']:
label = annotation['label'] # 标注的类别
points = annotation['points'] # 标注框的位置信息
x1, y1 = points[0] # 左上角坐标
x2, y2 = points[1] # 右下角坐标
# 将处理后的信息写入输出文件
f_out.write(f"标签: {label}, 位置信息: ({x1}, {y1}), ({x2}, {y2})\n")
运行之后会生成一个文件夹,里面有每个图片的txt文件
每个txt中有label的位置信息(我这的标签5是人)
2.下载 YOLOv5 代码
GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
压缩包下载完之后解压
3.配置环境
我们需要Python 3.x、PyTorch、torchvision 和其他必需的依赖项。
按照 YOLOv5 项目中的说明来配置环境。
先进入yolov5文件夹
然后右键-在终端中打开
输入
activate yolo
再输入
pip install -r requirements.txt
就安装好了需要的依赖。
4.目标检测
1.下载预训练的权重文件
Releases · ultralytics/yolov5 · GitHub
选择.pt结尾的下载
版本有很多,比如 yolov5s.pt
、yolov5m.pt
、yolov5l.pt
和 yolov5x.pt
等。
- 如果你希望在保持较高检测速度的同时拥有较小的模型尺寸,可以选择
yolov5s.pt
。 - 如果你需要更好的检测精度和对小物体的识别能力,可以选择
yolov5m.pt
。 - 如果你处理的是复杂场景或大尺寸物体,可以考虑选择
yolov5l.pt
或yolov5x.pt
,这些模型通常具有更好的性能和泛化能力。
你可以根据你的具体需求选择合适的版本。如果不确定哪个版本最适合你的任务,可以先尝试使用 yolov5s.pt
这个较小的版本,然后根据实际效果再决定是否需要升级到更大的模型。
建议下载到yolov5文件夹中
2.单张图片目标检测
进入yolov5文件夹,右键进入终端
python detect.py --source test.jpg --weights yolov5s.pt --conf 0.5 --iou 0.4
source后面是图片名称
weights后面是权重文件的路径(如果放在yolov5文件中就不用写路径)
conf置信度阈值设为 0.5
iou重叠度阈值设为 0.4
3.批量目标检测
source后面改成图片路径就行,例如:
python detect.py --source C:/Users/lenovo/Desktop/people/image --weights yolov5s.pt --img-size 640 --conf 0.5
--img-size
参数指定了输入图像的尺寸
4.查看检测结果
打开yolov5\runs\detect\exp
就可以看到代码检测的成果了
5.模型训练
有空再更新,嘿嘿!
教程: