- 博客(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关注的人