yolov5检测图片用detect.py
一、检测问题解决
今天在用detect.py以及自己训练的模型检测图片时,遇到了一些问题,在这总结一下子
1、修改代码
看下面这段代码,是yolo.py中的Model类中的forward函数,训练的时候augment=False
,而检测时我们得把它改为true,augment=True
------------------我又来了,真的切记训练时把它改为false,不然真的会报错还不知道错哪了!!!!!!!!!!!!
def forward(self, x, augment=True, profile=False): # 训练:augment=Falseif augment: # TTA(Test Time Augmentation) 只在测试和检测的时候做的数据增强return self.forward_augment(x) # augmented inference, Noneelse: # 如果是训练的过程则执行elsereturn self.forward_once(x, profile) # single-scale inference, train
2、还有一个特别值得注意的问题是,当你使用你自己的训练模型检测图片时,你的网络模型得用的是和训练时一模一样的,不能修改,不然会报错,因为在检测时,也会执行yolo.py
和detect.py
文件
例如,我训练模型时用的concat
模块是这样的:(common.py文件中)
这是我把原来的concat模块给改了
# biFPN 1
class Concat(nn.Module):def __init__(self, c1):super(Concat, self).__init__()# self.relu = nn.ReLU()self.w = nn.Parameter(torch.ones(2, dtype=torch.float32), requires_grad=True)self.epsilon = 0.0001self.swish = Swish()def forward(self, x):weight = self.w / (torch.sum(self.w, dim=0) + self.epsilon)# Connections for P6_0 and P7_0 to P6_1 respectivelyx = self.swish(weight[0] * x[0] + weight[1] * x[1])return x
然而我检测时又用了原来的concat
模块:
# 原class Concat(nn.Module):# Concatenate a list of tensors along dimensiondef __init__(self, dimension=1):super(Concat, self).__init__()self.d = dimensiondef forward(self, x):return torch.cat(x, self.d)
这样的话当然是不行的哈
二、检测疑惑解答
今天,在检测过程中发现出现了网络层数和参数的打印信息,我很疑惑为什么会有这种信息,检测不就是直接拿训练好的模型去检测吗,为什么会有网络信息??
原来训练好的.pt
文件只是一组参数,用它检测图片时还得把它加入到网络模型中,用网络模型去处理检测图片,这也是为什么第一个问题中检测模型要和训练模型完全一致的原因。就好比你拿狗训练的参数要套在猫身上肯定是对不上的咯!
yolov5检测图片用detect.py相关推荐
- Yolov5代码详解——detect.py
首先执行扩展包的导入: import argparse import os import platform import sys from pathlib import Path import t ...
- yolov5的推理输出detect.py部分
文章目录 前言 detect.py 1.输入参数 2.设置文件保存路径 3.加载训练好的模型权重 4.数据处理 5.进行推理 6.yolov5里的nms 总结 yolov5 系列 前言 推理阶 ...
- yolov5 推理,运行detect.py出错
在训练完成准备运行推理的时候,出项这个报错,孩子实在找不出原因了 Namespace(agnostic_nms=False, augment=False, classes=None, conf_thr ...
- YOLOv5的Tricks | 【Trick13】YOLOv5的detect.py脚本的解析与简化
如有错误,恳请指出. 在之前介绍了一堆yolov5的训练技巧,train.py脚本也介绍得差不多了.之后还有detect和val两个脚本文件,还想把它们总结完. 在之前测试yolov5训练好的模型时, ...
- Yolov5自定义图片训练测试及模型调优(详细过程)
Yolov5自定义图片训练测试及模型调优(详细过程) 1. 图像数据获取.标注 2. 数据集划分及准备 3. 配置训练参数,准备训练: 3.1 修改data/训练配置xxx.yaml文件: 3.2 修 ...
- YoLoV5学习(4)--detect.py程序(预测图片、视频、网络流)逐段讲解~
本章博客主要分析YoloV5代码中的detect程序代码,按照程序运行步骤顺序主要分为3大部分. 1.包与库的导入 1.1 导入安装好的python库.torch库等等 其中:argparse模块.o ...
- YOLOV5检测代码detect.py注释与解析
YOLOv5代码注释版更新啦,注释的是最近的2021.07.14的版本,且注释更全 github: https://github.com/Laughing-q/yolov5_annotations Y ...
- yolov5 检测detect.py笔记
参考 https://github.com/ultralytics/yolov5 带你一行行读懂yolov5代码,yolov5源码 试运行 安装环境 (yolo) ┌──(venv)─(***㉿kal ...
- yolov5——detect.py代码【注释、详解、使用教程】
yolov5--detect.py代码[注释.详解.使用教程] yolov5--detect.py代码[注释.详解.使用教程] 1. 函数parse_opt() 2. 函数main() 3. 函数ru ...
- 将yolov5的detect.py改写成可以供其他程序调用的方式,并实现低时延(<0.5s)直播推理
将yolov5的推理代码改成可供其它程序调用的方式,并实现低时延(<0.5s)直播推理 yolov5的代码具有高度的模块化,对于初学者十分友好,但是如果咱们要做二次开发,想直接调用其中一些函数, ...
最新文章
- 第22节 三个败家子(22)——霸王无敌
- SQL存储过程(☆)
- centos mate桌面_CentOS 7安装桌面汇总
- SCCM 2012系列之一 Operations Manager 关键概念
- android 自定义图片上传,android自定义ImageView仿图片上传(示例代码)
- 【经典回放】JavaScript学习详细干货笔记之(三)
- oracle java写目录权限_oracle分配权限 学习笔记--转载
- DP~数塔(hrbustoj1004)
- QT中DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80040216 ()问题的解决
- python接口测试第二期_Python接口测试实战2 - 使用Python发送请求
- linux 锐捷客户端 脚本,基于802.1x的锐捷linux客户端
- 小乌龟SVN合并分支到主干、合并主干到分支,工具操作
- 【adb命令】电脑操作手机adb命令大全
- S3存储服务间数据同步工具Rclone迁移教程
- 国内有哪些不错的CV(计算机视觉)团队?
- 乱舞三国java_真.乱舞三国-江山美色
- 或许再过两年,ASML将可以自由给中国供应EUV光刻机
- untiy UI的坐标转为屏幕坐标
- 光纤布拉格光栅(FBG)笔记【2】:反射率
- 和平精英分数计算机制,和平精英加分机制怎么算 加分玩法详解