一、检测问题解决

今天在用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.pydetect.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相关推荐

  1. Yolov5代码详解——detect.py

    首先执行扩展包的导入: import argparse import os import platform import sys from pathlib import Path ​ import t ...

  2. yolov5的推理输出detect.py部分

    文章目录 前言 detect.py 1.输入参数 2.设置文件保存路径 3.加载训练好的模型权重 4.数据处理 5.进行推理 6.yolov5里的nms 总结 yolov5 系列 前言     推理阶 ...

  3. yolov5 推理,运行detect.py出错

    在训练完成准备运行推理的时候,出项这个报错,孩子实在找不出原因了 Namespace(agnostic_nms=False, augment=False, classes=None, conf_thr ...

  4. YOLOv5的Tricks | 【Trick13】YOLOv5的detect.py脚本的解析与简化

    如有错误,恳请指出. 在之前介绍了一堆yolov5的训练技巧,train.py脚本也介绍得差不多了.之后还有detect和val两个脚本文件,还想把它们总结完. 在之前测试yolov5训练好的模型时, ...

  5. Yolov5自定义图片训练测试及模型调优(详细过程)

    Yolov5自定义图片训练测试及模型调优(详细过程) 1. 图像数据获取.标注 2. 数据集划分及准备 3. 配置训练参数,准备训练: 3.1 修改data/训练配置xxx.yaml文件: 3.2 修 ...

  6. YoLoV5学习(4)--detect.py程序(预测图片、视频、网络流)逐段讲解~

    本章博客主要分析YoloV5代码中的detect程序代码,按照程序运行步骤顺序主要分为3大部分. 1.包与库的导入 1.1 导入安装好的python库.torch库等等 其中:argparse模块.o ...

  7. YOLOV5检测代码detect.py注释与解析

    YOLOv5代码注释版更新啦,注释的是最近的2021.07.14的版本,且注释更全 github: https://github.com/Laughing-q/yolov5_annotations Y ...

  8. yolov5 检测detect.py笔记

    参考 https://github.com/ultralytics/yolov5 带你一行行读懂yolov5代码,yolov5源码 试运行 安装环境 (yolo) ┌──(venv)─(***㉿kal ...

  9. yolov5——detect.py代码【注释、详解、使用教程】

    yolov5--detect.py代码[注释.详解.使用教程] yolov5--detect.py代码[注释.详解.使用教程] 1. 函数parse_opt() 2. 函数main() 3. 函数ru ...

  10. 将yolov5的detect.py改写成可以供其他程序调用的方式,并实现低时延(<0.5s)直播推理

    将yolov5的推理代码改成可供其它程序调用的方式,并实现低时延(<0.5s)直播推理 yolov5的代码具有高度的模块化,对于初学者十分友好,但是如果咱们要做二次开发,想直接调用其中一些函数, ...

最新文章

  1. 第22节 三个败家子(22)——霸王无敌
  2. SQL存储过程(☆)
  3. centos mate桌面_CentOS 7安装桌面汇总
  4. SCCM 2012系列之一 Operations Manager 关键概念
  5. android 自定义图片上传,android自定义ImageView仿图片上传(示例代码)
  6. 【经典回放】JavaScript学习详细干货笔记之(三)
  7. oracle java写目录权限_oracle分配权限 学习笔记--转载
  8. DP~数塔(hrbustoj1004)
  9. QT中DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80040216 ()问题的解决
  10. python接口测试第二期_Python接口测试实战2 - 使用Python发送请求
  11. linux 锐捷客户端 脚本,基于802.1x的锐捷linux客户端
  12. 小乌龟SVN合并分支到主干、合并主干到分支,工具操作
  13. 【adb命令】电脑操作手机adb命令大全
  14. S3存储服务间数据同步工具Rclone迁移教程
  15. 国内有哪些不错的CV(计算机视觉)团队?
  16. 乱舞三国java_真.乱舞三国-江山美色
  17. 或许再过两年,ASML将可以自由给中国供应EUV光刻机
  18. untiy UI的坐标转为屏幕坐标
  19. 光纤布拉格光栅(FBG)笔记【2】:反射率
  20. 和平精英分数计算机制,和平精英加分机制怎么算 加分玩法详解

热门文章

  1. UBUNTU 编译安装GEOS
  2. matlab读取图片亮度,Matlab读取BMP位图并显示亮度值三维图
  3. Fw cs6破解版下载 准备学前端的同学们应该会用到的神器
  4. 比较全的敏捷概念知识总结
  5. 我研究了3年,终于找出2021年完美的听歌方案!
  6. ABP框架----添加权限
  7. eclipse更换jdk版本
  8. 数据库:增删改查操作
  9. 模2除法(CRC冗余码计算)和二进制/十进制除法
  10. win10怎样修改密码及忘记密码了怎么办