- 博客(133)
- 收藏
- 关注

原创 【总结】一些常见的计算机视觉和深度学习问答,面试可能会问到。
BN的优点是网上谈过无数次的问题,不过我还是写了一篇博客具体介绍。博客地址再说优缺点首先关于BN,BN虽然很伟大,但是并不是没有缺点的,比如当我们的模型非常大的时候我们只能设置比较小的Batch Size,毕竟内存就那么多。而GN,在每个特征图BxHxWxC中,它将channel分成多个组,在每组内计算均值和方差,GN的计算与BatchSize无关,在Batch SIze小的时候带来的精度远超BN,而适当Batch Size的时候,BN和GN效果相当。
2023-03-14 01:44:41
739

原创 深度学习术语Neck,Head,Embedding,One&&Two stages Detector等等
head,embedding,gap
2022-08-22 11:19:09
2224
1

原创 yolov1-yolov4
由于一幅图中大部分网格中是没有物体的,这些网格中的边界框的 confidence 置为 0,相比于有物体的网格,这些不包含物体的网格更多,对梯度更新的贡献更大,会导致网络不稳定。我们先计算每个GroundTruth (GT) 的中心点,确定GT的中心落在哪一个网格,那么这个GT box就由该网格负责预测(回归),网格的类就是GT的类,具体由网格中两个预测框中的哪一个预测框来回归GT box,由预测框和GT box之间的IOU决定,IoU更大的预测框负责回归该GT box。
2021-12-23 19:47:05
2436

原创 GoogleNet和Inception模块
在研究yolo v1的时候碰到的,虽然都是过时的东西,还是记录一下下面是GoogleNET的结构。googlenet里面有一个特殊的结构,就是四个操作并行的层。这个层叫做inception模块。可以看一下这里的实现:import torchfrom torch import nn# 定义一个卷积加一个 relu 激活函数和一个 batchnorm 作为一个基本的层结构def conv_relu(in_channel, out_channel, kernel, stride=1, paddi
2021-12-14 17:53:57
2523

原创 YoloV1原理和代码解读
检测是分类模型的升级,只是要分出前景和背景的类别。我们从分类模型开始说:对于输入图片,我们一般用一个矩阵表示。对于输出结果,我们一般用一个one-hot vector表示:[0,0,1,0,0,0,0,0,0,0] 。哪一维是1,就代表图片属于哪一类。所以,在设计神经网络时,结构大致应该长这样:img–cbrp–cbrp–cbrp–cbrp–fc–fc[10] ,一共10个类cbrp是conv-bn-relu-pooling由于输入要是one-hot形式,所以最后我们设计了2个fc层(ful
2021-11-09 18:52:57
1714

原创 leetcode 33、34、35 各种条件下的二分查找小结 Python
二分查找使用有两个条件表必须有序(增或减,可包含重复值)表必须为顺序存储结构用起来的时候情况很多,但是都可以根据一个基本架构来稍微改变条件def bs0(nums,target): l,r=0,len(nums)-1 while(l<=r): m=l+((r-l)/2)>>2 #话说之前这里掉了个括号。。。 if(...
2018-05-16 18:22:36
269
原创 【BEV】3D视觉 PRELIMINARY
由于图像坐标系和像素坐标系处于同一平面,故两者之间的差异在于坐标原点的位置和单位。像素坐标系的原点在图像坐标系的左上角,同时像素坐标系的单位为像素。一根柱子从BEV平面升起,柱子内的一个三维点被投影到相机视图上。投影过程涉及到世界World、相机Camera、图像Image和像素Pixel坐标系之间的转换。从世界坐标到相机坐标的转换是一种刚性变换,只需要平移和旋转(更详细的可以看上面的博客)。给定P的世界坐标和相机的内在参数和外在参数,可以得到。分别对应于柱上的三维点和摄像机视图上投影的2D点。
2023-08-15 17:36:17
494
原创 【BEV Camera-based】View Transformations 论文之FB-BEV,BEV Representation from Forward-Backward。
为了解决由2D-3D投影产生的稀疏BEV表示的问题,我们利用3D-2D投影方法从之前的3D-2D投影中细化稀疏区域。然而,正如我们上面所介绍的,由于缺乏深度引导,3D-2D投影的投影容易出现假阳性特征。另外,对于目标检测任务,我们只关心前景对象,所以我们在使用3D-2D投影时,只关注BEV平面的前景区域,这样可以减少背景部分的false positive,减少计算负担。A点的预测深度分布为α。值得注意的是,对于任何3D点(λx,λy,λz),其中λ∈R+,它们在2D图像上共享相同的投影点(u,v)。
2023-08-15 15:58:19
1362
1
原创 【BEV Review】论文 Delving into the Devils of Bird’s-eye-view 2022-9 笔记
在仅使用相机的三维感知的初期,主要的焦点是如何从2D感知空间预测三维物体的位置。从学术的角度来看,设计一个基于相机的pipeline,使其性能优于激光雷达的本质,是更好地理解从二维视角输入到三维几何输出的视图转换过程。在视图转换的背景下,OFTNet 首先引入了3D-2D方法,即从3D到2D的特征投影,它将2D特征投影到体素空间(3D空间),首先引入了2D-3D方法,预测二维特征上每个网格的深度分布,然后通过相应的深度将每个网格的二维特征“提升”到体素空间,并采用基于lidar激光雷达的方法执行下游任务。
2023-08-14 17:01:28
568
原创 在linux上,以root用户打开并且运行vscode
这是我目前的解决办法,还没看到其他的自动保存的方法。最好的办法是把要运行的文件夹设置权限为。
2023-06-20 15:59:14
679
原创 windows powershell 下使用【docker cuda choco vim conda ......】
choco是我从ChatGPT那里知道的,具体的作用似乎是用来替代apt或者yum,首先用管理员权限打开powershell,方法是在搜索中搜索powershell然后右键选择管理员打开。主要是第一次跑很成功,按照网上的教程安装wsl即可,第二次跑的时候,我用–runtime=nvidia的时候一直出错,然后一直想去改daemon.json。不同于linux的source,powershell的生效方法是,用管理员身份重新打开一个powershell,上述安装choco的命令参考。会自动打开下面这个文件。
2023-05-24 14:31:24
993
原创 半监督目标检测
针对 unlabeled samples,首先将图像水平翻转,然后分别送入网络当中,得到对应的 Feature map,由于两张翻转的图像的空间位置是可以一一对应的,因此可以在对应的位置计算一致性损失。一开始训练用标注数据(burn-in),联合训练包括两步:固定teacher产生伪标注,用以训练student,而基于exponential moving average (EMA),学习的知识迁移给渐渐进步的teacher。强增强线学生模型的无标签分类和回归分支的伪标签是不一样的。
2023-04-26 01:04:27
1041
原创 【LeetCode 图论 一】初探有向图Directed Graph
由于搜索是从随机的点开始的,我们将没有相邻节点的点入栈之后,再回溯到初始节点,将它入栈,但是后面的搜索也可能会碰到它。所以要给已经搜索的节点打上标签。
2023-04-17 12:42:40
879
原创 用pytorch实现GhostNet module
Ghost Module有许多可调整的超参数,包括输入通道数,输出通道数,内核大小,ratio参数,dw_size参数和stride参数。cheap_operation是后续的卷积层,它在depthwise卷积之后通过逐点卷积将通道数扩展到output_channels。最后,在输出之前,我们将主要的卷积层和廉价操作的输出级联在一起。GhostNet是一种轻量级的深度卷积神经网络,它使用了一种称为“ghost模块”的新型模块,可以在保持高准确度的同时,大大降低网络参数量。
2023-04-14 10:39:51
392
原创 Python二分模版和bisect函数 LeetCode
所以总结一下,这里写的b1(), b2(), b3()都是bisect.bisect_left()的具体实现,只是分别用的左闭右开,闭区间和开区间三种不同的思想。那接下来我们考虑一下怎么实现bisect.bisect_right()函数。而如果target存在于ls中,我们想找它最后一次出现的位置。其实bisect.bisect_right的视线方式可以用。
2023-04-13 19:28:44
154
原创 DFS和回溯。LeetCode200岛屿数目;LeetCode46全排列;LeetCode17电话号码的字母组合;牛客HJ43迷宫问题
我个人感觉回溯就是DFS的一种应用。DFS有4个比较重要的点,或者说4个步骤而回溯更强调搜过之后恢复状态,个人认为,很多排列组合的场景都可以用回溯的思想搜索出来。
2023-04-11 19:43:13
122
原创 Cross Entropy Loss,Center Loss,CosFace Loss ,ArcFace Loss 理解
CrossEntropyLoss,CenterLoss,CosFaceLoss,ArcFaceLoss
2023-04-03 15:40:57
1447
原创 FasterRcnn,Yolo的 Label Assignment机制,以及ATSS,OTA
一般把anchor到gt之间如何匹配的方法称为label assignment,也就是给预设的anchor打上正负样本等标签,方便我们后续进一步回归。其实RPN和Yolo有各自的label assignment方法,在Faster rcnn,yolo,RetinaNet中,基本都是根据anchor和gt的iou,然后定义阈值去进行label的分配。例如,在Faster rcnn 的RPN阶段,假设backbone得到的feature map是HW,那么一共会有H。
2023-03-27 19:56:30
1197
原创 为什么Transformer要用Layer Normalization
相比之下,Layer Normalization对每个样本单独计算均值和方差,因此不需要考虑不同位置之间的相关性,也不会破坏向量的位置信息,因此更适合Transformer。这是因为每一层的输入都依赖于上一层的输出,而上一层输出的分布会随着训练的进行而发生变化,从而导致每一层的输入分布也发生变化,这种现象称为内部协变量位移。但是在Transformer中,由于每个位置的输入都是一个高维向量,而批归一化会破坏向量的位置信息,因此不适合Transformer。
2023-03-26 14:52:57
1912
原创 【二】详解多目标跟踪SORT/DeepSort算法,卡尔曼滤波和匈牙利算法
先解读SORT算法:Simple online and realtime tracking论文地址 https://arxiv.org/abs/1602.00763代码地址下面流程图以车辆跟踪为例子实际就是多个的卡尔曼滤波KalmanBoxTracker自定义类的实例对象, 组成的列表。每个目标检测框都有对应的一个卡尔曼滤波器(KalmanBoxTracker实例对象),KalmanBoxTracker类中的实例属性专门负责记录其对应的一个目标框中各种统计参数,
2023-03-14 01:40:48
1908
原创 【中级】用nn.Module,nn.Sequential,nn.Functional 构建网络
torch,named_children,named_module
2023-01-28 19:44:20
527
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人