自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 关于yolov8的一些理解

YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本。是一款强大、灵活的目标检测和图像分割工具,它提供了最新的 SOTA 技术。Loss 计算包括 2 个分支: 分类和回归分支,没有了之前的 objectness 分支分类分支依然采用 BCE Loss回归分支使用了 Distribution Focal Loss(DFL Reg_max默认为16)+ CIoU Loss。3 个Loss 采用一定权重比例加权即可。

2023-04-21 16:27:21 4184

原创 关于yolov7的一些理解

Yolov7是Yolov4团队的作品,受到了yolo原作者的认可,论文发布后就引起了较大的关注;Yolov7通过一系列优化和技巧的组合,截止至论文发布时间[2022年7月],在5FPS到160FPS的范围内,无论是速度或是精度,都超过了已知的检测器,并且在GPU V100上进行测试, 精度为56.8% AP的模型可达到30 FPS(batch=1)以上的检测速率,与此同时,这是目前唯一一款在如此高精度下仍能超过30FPS的检测器。

2023-04-17 15:07:05 2245

原创 【论文笔记】【Faster Rcnn 优化】《Light-Head R-CNN: In Defense of Two-Stage Object Detector》

论文:https://arxiv.org/abs/1711.07264代码: GitHub - zengarden/light_head_rcnn: Light-Head R-CNN1.概述我们一般将Object detection分为两大系列: 一类是two-stage detector: 代表算法有Faster RCNN, Mask RCNN等 算法分两阶段进行,第1阶段是生成proposals,第2阶段是对这些proposals进行分类、回归【精调】 ..

2022-03-20 23:49:54 3388

原创 关于Faster Rcnn的一些理解

Paper:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks1.整体网络结构faster rcnn是继RCNN,fast RCNN之后又一新作,是何凯明等大神在2015年提出目标检测算法,该算法在2015年的ILSVRV和COCO竞赛中获得多项第一,该算法是目标检测领域的经典算法,值得反复研读;Faster Rcnn相关链接:目标检测之正负样本详解困难样本挖掘目标检测 — Anchor的

2022-03-13 22:26:49 5775

原创 相机标定基础

1. 坐标系世界坐标系:也称为测量坐标系,是一个三维直角坐标系。代表物体在真实世界里的三维坐标,坐标系用Xw,Yw,Zw表示。以其为基准可以描述相机和待测物体的空间位置。相机坐标系:一个三维直角坐标系。原点位于镜头光心处(透镜的中心),水平轴Xc与垂直轴Yc分别于图像坐标系的X轴和Y轴平行,Z轴为相机光轴,坐标系用Xc,Yc,Zc表示。相机坐标系的原点与图像坐标系的原点之间的距离为f(也就是焦距)。图像坐标系:一个二维直角坐标系。代表相机拍摄图像的坐标系,原点为相机光轴与成像平面的交点,是图像的中心

2021-12-26 22:24:45 4112

原创 Faster_Rcnn误检解决方案---强制负样本策略

1.概述误检是目标检测领域的一大难点,现有的检测算法都存在误检情况.误检一般分成两类1.固定特征的误检.误检对象与正样本存在相似的特征,如将集装箱误检为卡车.2.没有规律的误检.这类误检没有什么特征可寻,具有一定的随意性,如将地面/天空误检为汽车.对于第一类误检,我们经常采用的方法是将相应的负样本加入到训练数据集中;这一做法对于yolo系列的算法改善效果较明显【需要保证一定量的负样本】,但在实际应用中,我们发现:通过添加负样本来优化误检问题这一策略对Rcnn系列的算法的改进效果并不明显

2021-12-18 22:55:24 2718 4

原创 Git HEAD detached from XXX

1.概述Git 中的 HEAD 可以理解为一个指针,可以指向branch也可以指向快照,我们可以在命令行中输入 cat .git/HEAD 查看当前 HEAD 指向哪儿,一般它指向当前工作目录所在分支的最新提交.cat .git/HEADref: refs/heads/<branch name> // 正常cad0be9ceb89f474c39360c4de337d4a8194cab0 // 游离状态使用git checkout 来移动HEAD指针,移动的对象可以是分支指针也可以

2021-06-15 14:39:52 477

原创 VSCode调试: cannot connect to X server解决方案

问题描述在VSCode中进入conda对应的虚拟环境对python代码进行调试,报错cannot connect to X server:解决方法方案1:关掉程序中所有用于显示的代码,程序正常运行,没有报错.在一些场景下,我们可能需要在调试的同时进行可视化显示操作,如果关掉显示代码可能不能满足我们的需求方案2:配置远程DISPLAY环境变量.1.首先在对应服务器终端中输入:echo $DISPLAY得到远程终端的display number,如下图中的:localhost:10.

2021-06-08 14:13:51 8177 4

原创 Bag of Tricks for Image

论文链接:https://arxiv.org/pdf/1812.01187.pdf本文由李沐大神18年12月提出,主要讨论了训练神经网络过程中的一些tricks,通过各种对比试验定量分析不同tricks对分类网络性能的贡献。论文的工作主要从三个方面着手:高效训练、网络微调和训练优化。这篇文章的优化点和测试主要是在图像分类领域,但论文提到的trick和结论,同样可以延申到其他计算机视觉任务,比如目标检测、语义分割、实例分割等等,具体效果需经过自己实践项目验证。Efficient Training(高效训

2021-05-26 21:20:21 183 1

原创 python工具:从视频中提取图片

# -*- coding: utf-8 -*-"""Created on Tue Jul 7 09:41:14 2020提取视频中的图片@author: shix"""import cv2import osimport hashlib#计算视频文件的md5值def getFileMD5(filepath): f = open(filepath, 'rb') md5obj = hashlib.md5() md5obj.update(f.read())

2021-05-26 10:49:43 2305

转载 BERT大火却不懂Transformer?读这一篇就够了

Transformer由论文《Attention is All You Need》提出,现在是谷歌云TPU推荐的参考模型。论文相关的Tensorflow的代码可以从GitHub获取,其作为Tensor2Tensor包的一部分。哈佛的NLP团队也实现了一个基于PyTorch的版本,并注释该论文。在本文中,我们将试图把模型简化一点,并逐一介绍里面的核心概念,希望让普通读者也能轻易理解。Attention is All You Need:https://arxiv.org/abs/1706.03762

2021-05-21 14:57:50 343

原创 python基础:类

定义:一群具有相同特征或行为的事物的统称;是方法和属性的封装(集合);在python中定义中,其名称首字母大写。类中包含的属性和方法类属性/类方法:类名下方使用赋值语句定义,通常用来记录与这个类相关的特征;该类所有对象共享,在内存中只保存一份;通过类名直接访问【类名.属性名/方法名】实例属性/方法:实例属性在每一个对象中都保存一份,实例方法在内存中只保存一份通过对象名访问【对象名.属性名/方法名】一个对象的属性可以是另一个类创建的对象;定义属性时如果不知道设什么初始值,可以设为Non

2021-05-19 21:33:45 169

原创 python笔记:包和模块

基础概念模块:一组相关功能的代码,就是一个单独的.py文件包:一个文件夹,由几个模块或几个子包组成。目录下一般有一个__init__.py文件【python3.3以后非必须】库:完成一定功能的代码集合,具体表现为可以是一个包或模块框架:解决一个问题而设计的具有一定约束性的支撑结构。通过一个框架可以快速的实现一个问题的骨架,然后再具体填充。包和模块的作用1.编写一些“轮子”,工具代码供其它模块使用;方便维护管理。2.防止同一模块内命名重复的问题(每个模块都是一个单独的命名空间)分类【1

2021-05-09 17:14:36 229

原创 python笔记:argparse模块

用途python用于解析命令行参数和选项的标准模块,内置于python,不需要安装.使用步骤引入模块import argparse创建一个解析器使用 argparse 的第一步是创建一个 ArgumentParser 对象:parser = argparse.ArgumentParser(description='Process some integers.')ArgumentParser 对象包含将命令行解析成 Python 数据类型所需的全部信息。添加参数给一个 Argument

2021-05-08 14:13:04 458

原创 python笔记:闭包和装饰器

闭包闭包的理解在一个函数中定义了另外一个函数,内函数使用了外函数的临时变量,外函数返回内函数的引用,那么**这个内部函数和它环境变量【外函数的临时变量】**合在一起,就形成了一个闭包。和其他对象一样,函数对象也有其存活的范围,也就是函数对象的作用域。函数对象是使用def语句定义的,函数对象的作用域与def所在的层级相同。对于作用域以外的参数,我们称为该函数的环境变量。举个栗子,假设我们需要通过定义一个函数,实现不同直线方程上点的求解,我们可以借助闭包实现:def line(k,b): def

2021-05-05 09:12:13 194

原创 python笔记:迭代器和生成器

迭代器迭代是一种访问集合元素的方式。可迭代对象可以直接作用于for循环的对象(iterable)1.集合类型:List、Str、dict、 tuple2.generator:包括生成器和待yield的generator function判断是否可以迭代: isinstance( [ ], Iterable)from collections.abc import Iterableisinstance([], Iterable)True迭代器:可以被next ( )函数调用并不断返回下一

2021-04-29 17:08:59 247

原创 Python基础:super()用法

概述super() 是python 中调用父类(超类)的一种方法,在子类中可以通过super()方法来调用父类的方法。【超类: 是指 2层以上的继承关系,假如 C类继承B类,B类由继承A类,那么A类就是C类的超类】作用:在继承中,让代码维护更加简单解决多继承带来的重复调用(菱形继承)、查找顺序(MRO)问题语法:super(type[, object-or-type])参数:type – 类。object-or-type – 类,一般是 selfPython 3 和 Pytho

2021-04-26 22:52:21 31018 7

原创 python笔记:with与上下文管理器

with 语句是 Pyhton 提供的一种简化语法,适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,with 语句主要是为了简化代码操作。上下文管理器上下文是 context 直译的叫法,在程序中用来表示代码执行过程中所处的前后环境。任何实现了__enter__() 和__exit__()的对象都是上下文管理器上文:正常代码执行前的操作;下文:正常代码执行后的操作,如出现异常或结束/关闭的代码上下文管理器可以用with关键字来保证文件可以关闭,是t

2021-04-22 09:33:46 192

原创 python笔记:异常及异常处理

1. 异常的概念:• 程序在运行时,如果 Python 解释器遇到到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常• 程序停止执行并且提示错误信息这个动作,我们通常称之为:抛出(raise)异常程序开发时,很难将 所有的特殊情况 都处理的面面俱到,通过 异常捕获 可以针对突发事件做集中的处理,从而保证程序的 稳定性和健壮性2. 捕获异常2.1 简单的捕获异常语法• 在程序开发中,如果对某些代码的执行不能确定是否正确,可以增加 try(尝试) 来捕获异常•捕获异常最简单的语法格

2021-04-22 07:59:29 192

原创 Pytorch笔记:DataLoader,Dataset和Sampler

简介:在 PyTorch 中,我们的数据集往往会用一个类去表示,在训练时用 Dataloader 产生一个 batch 的数据。简单说,用一个类 抽象地表示数据集,而 Dataloader 作为迭代器,每次产生一个 batch 大小的数据,节省内存。pytorch中加载数据的顺序是:①创建一个dataset对象②创建一个dataloader对象③循环dataloader对象,将data,label拿到模型中去训练Datasettorch.utils.data.Dataset是一个抽象类,是Py

2021-04-20 22:17:51 4303

原创 git stash 保存和恢复工作进度

应用场景:1 当正在dev分支上开发某个项目,这时项目中出现一个bug,需要紧急修复,但是正在开发的内容只是完成一半,还不想提交,这时可以用git stash命令将修改的内容保存至堆栈区,然后顺利切换到其它分支进行bug修复,修复完成后,再次切回到dev分支,从堆栈中恢复刚刚保存的内容。2 由于疏忽,本应该在dev分支开发的内容,却在master上进行了开发,需要重新切回到dev分支上进行开发,可以用git stash将内容保存至堆栈中,切回到dev分支后,再次恢复内容即可。3.想pull最新代码,但

2021-04-19 22:02:40 525

原创 python中的魔法方法

1.getitemgetitem(self,key):返回键对应的值,可以让对象实现迭代功能。类中定义了这个__getitem__ 方法,那么它的实例对象(假定为p),可以像这样p[key] 取值【使用索引访问元素】,当实例对象做p[key] 运算时,会自动调用类中的方法__getitem__。在使用中,我们可以通过索引触发,也可以通过for…in… 迭代对象时触发。class Animals(object): def __init__(self,animal_list):

2021-04-18 16:33:37 112 1

原创 pytorch-张量及其运算

索引与切片Pytorch风格的索引—根据Tensor的shape,从前往后索引,依次在每个维度上做索引import torch a = torch.rand(4, 3, 28, 28)print(a[0].shape) #取到第一个维度 torch.Size([3, 28, 28])print(a[0, 0].shape) # 取到二个维度 torch.Size([28, 28])print(a[1, 2, 2, 4]) # 具体到某个元素tensor(0.1076)上述代码创

2021-04-15 10:05:34 1204

原创 目标检测 --- Anchor的生成

1.Faster rcnn1.根据尺寸、比例生成基础的anchor与特征图大小、步长无关,中心点坐标为base_size的一半class AnchorGenerator(object): #生成基础的anchor,与特征图无关 def __init__(self, base_size, scales, ratios, scale_major=True, ctr=None): self.base_size = base_size #anchor 基础尺寸 sel

2021-04-14 09:40:12 1936

原创 git常用开发命令

1.代码提交流程1.git add . (所有修改) 或 git add 文件名2.git commit -m “说明”3.git fetch origin [远程地址别名]4.git checkout -b update[新建分支名] origin/develop[远程分支名]5.git merge 本地分支名6.git push origin 本地分支名:远程分支名解释: git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地,后面提取时在指定.

2021-04-08 17:43:20 2562

原创 hard example mining(困难样本挖掘)

分类中的一些基础概念:正样本:包含我们想要识别类别的样本,例如,我们在做猫狗分类,那么在训练的时候,包括猫或者狗的图片就是正样本负样本:在上面的例子中,不包含猫或者狗的其他所有的图片都是负样本难分正样本(hard positives):易错分成负样本的正样本,对应在训练过程中损失最高的正样本,loss比较大(label与prediction相差较大)。难分负样本(hard negatives):易错分成正样本的负样本,对应在训练过程中损失最高的负样本**易分正样本(easy positive):

2021-03-28 11:28:17 12190 2

原创 目标检测之正负样本详解

yolov3统一anchor和gt的中心点,通过宽高求得顶点坐标,然后计算所有gt与9个anchor的iou mlvl_featmap_sizes = [featmap.size()[-2:] for featmap in mlvl_preds] 各特征图的尺寸 # multi level anchors mlvl_anchors_num = torch.Tensor([anchors.size(0) for anchors in mlvl_anchor

2021-03-26 21:26:35 8457 7

原创 关于yolov3的一些理解

关于Yolov3的一些理解*本博客主要为记录自己学习的一些笔记,故以下图表和内容中许多来自其他博主,在此感谢他们工作网络结构:整体结构Yolo_v3的网络结构可以理解为一系列组件的拼接,上图各组件的解释如下:DBL:上图中的Darknetconv2D_BN_Leaky,是yolo_v3的基本组件。就是卷积+BN+Leaky relu。Res_unit: 由DBL组件和concat组成,此处借鉴了ResNet的残差结构,使用这种结构可以搭建更深的网络结构。concat:张量维度拼接。拼接的操作

2021-03-21 21:08:03 1615

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除