
Deep Learning
文章平均质量分 60
WeissSama
写清楚 搞清楚
展开
-
半监督目标检测
针对 unlabeled samples,首先将图像水平翻转,然后分别送入网络当中,得到对应的 Feature map,由于两张翻转的图像的空间位置是可以一一对应的,因此可以在对应的位置计算一致性损失。一开始训练用标注数据(burn-in),联合训练包括两步:固定teacher产生伪标注,用以训练student,而基于exponential moving average (EMA),学习的知识迁移给渐渐进步的teacher。强增强线学生模型的无标签分类和回归分支的伪标签是不一样的。原创 2023-04-26 01:04:27 · 1052 阅读 · 0 评论 -
Pytorch剪枝api测试和结果
Pytorch 官方给出的prune接口。原创 2023-04-25 20:55:39 · 1329 阅读 · 0 评论 -
用pytorch实现GhostNet module
Ghost Module有许多可调整的超参数,包括输入通道数,输出通道数,内核大小,ratio参数,dw_size参数和stride参数。cheap_operation是后续的卷积层,它在depthwise卷积之后通过逐点卷积将通道数扩展到output_channels。最后,在输出之前,我们将主要的卷积层和廉价操作的输出级联在一起。GhostNet是一种轻量级的深度卷积神经网络,它使用了一种称为“ghost模块”的新型模块,可以在保持高准确度的同时,大大降低网络参数量。原创 2023-04-14 10:39:51 · 399 阅读 · 0 评论 -
Cross Entropy Loss,Center Loss,CosFace Loss ,ArcFace Loss 理解
CrossEntropyLoss,CenterLoss,CosFaceLoss,ArcFaceLoss原创 2023-04-03 15:40:57 · 1457 阅读 · 0 评论 -
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 · 1212 阅读 · 0 评论 -
为什么Transformer要用Layer Normalization
相比之下,Layer Normalization对每个样本单独计算均值和方差,因此不需要考虑不同位置之间的相关性,也不会破坏向量的位置信息,因此更适合Transformer。这是因为每一层的输入都依赖于上一层的输出,而上一层输出的分布会随着训练的进行而发生变化,从而导致每一层的输入分布也发生变化,这种现象称为内部协变量位移。但是在Transformer中,由于每个位置的输入都是一个高维向量,而批归一化会破坏向量的位置信息,因此不适合Transformer。原创 2023-03-26 14:52:57 · 1937 阅读 · 0 评论 -
FCN全卷积网络和Deconv转置卷积原理描述
转置卷积deconv原创 2023-03-21 15:25:04 · 635 阅读 · 0 评论 -
Dilated Conv and Deformable Conv. 空洞卷积和可变形卷积
空洞卷积论文地址:https://arxiv.org/pdf/1511.07122.pdf可变形卷积论文地址:https://arxiv.org/pdf/1703.06211.pdf之前一直知道这两个方法,一直没时间看论文和实现。最近实现trident net的时候需要用到dilated convolution,所以记一下笔记。关于空洞卷积https://zhuanlan.zhihu.c...原创 2019-06-15 15:54:38 · 250 阅读 · 1 评论 -
【总结】一些常见的计算机视觉和深度学习问答,面试可能会问到。
BN的优点是网上谈过无数次的问题,不过我还是写了一篇博客具体介绍。博客地址再说优缺点首先关于BN,BN虽然很伟大,但是并不是没有缺点的,比如当我们的模型非常大的时候我们只能设置比较小的Batch Size,毕竟内存就那么多。而GN,在每个特征图BxHxWxC中,它将channel分成多个组,在每组内计算均值和方差,GN的计算与BatchSize无关,在Batch SIze小的时候带来的精度远超BN,而适当Batch Size的时候,BN和GN效果相当。原创 2023-03-14 01:44:41 · 764 阅读 · 0 评论 -
【二】详解多目标跟踪SORT/DeepSort算法,卡尔曼滤波和匈牙利算法
先解读SORT算法:Simple online and realtime tracking论文地址 https://arxiv.org/abs/1602.00763代码地址下面流程图以车辆跟踪为例子实际就是多个的卡尔曼滤波KalmanBoxTracker自定义类的实例对象, 组成的列表。每个目标检测框都有对应的一个卡尔曼滤波器(KalmanBoxTracker实例对象),KalmanBoxTracker类中的实例属性专门负责记录其对应的一个目标框中各种统计参数,原创 2023-03-14 01:40:48 · 1952 阅读 · 0 评论 -
YOLOV4之 Cross Stage Partial,<CSP Darknet53>
CSP Darknet原创 2023-03-14 01:37:59 · 1269 阅读 · 0 评论 -
深度学习中的skip操作
深度学习skip操作转载 2023-03-12 22:33:49 · 198 阅读 · 0 评论 -
yolov1-v4
yolo原创 2023-03-09 13:15:20 · 312 阅读 · 0 评论 -
深度学习术语Neck,Head,Embedding,One&&Two stages Detector等等
head,embedding,gap原创 2022-08-22 11:19:09 · 2244 阅读 · 1 评论 -
YOLO系列的Backbone改进历史
深度学习yolo原创 2022-08-22 11:00:27 · 1906 阅读 · 0 评论 -
yolov1-yolov4
由于一幅图中大部分网格中是没有物体的,这些网格中的边界框的 confidence 置为 0,相比于有物体的网格,这些不包含物体的网格更多,对梯度更新的贡献更大,会导致网络不稳定。我们先计算每个GroundTruth (GT) 的中心点,确定GT的中心落在哪一个网格,那么这个GT box就由该网格负责预测(回归),网格的类就是GT的类,具体由网格中两个预测框中的哪一个预测框来回归GT box,由预测框和GT box之间的IOU决定,IoU更大的预测框负责回归该GT box。原创 2021-12-23 19:47:05 · 2441 阅读 · 0 评论 -
torch.size()和tensor.shape的区别
size shape原创 2022-08-21 12:17:07 · 350 阅读 · 0 评论 -
Pytorch中常用函数
pytorch torch.unsqueeze()原创 2022-08-21 12:12:44 · 644 阅读 · 0 评论 -
LPRNet, 车牌识别网络
LPRNet车牌识别网络原创 2022-08-01 18:54:55 · 8773 阅读 · 1 评论 -
Batch Normalization介绍
softmax函数的定义和作用softmax函数可以把它的输入值处理成0到1区间,并且能把输出的和等于1,这样意味着softmax与分类的概率等价,所以它是网络预测多分类问题的最佳输出激活函数。什么是空洞卷积空顶卷积就是在卷积核元素之间加入一些空格零来扩大卷积核的过程,可用于廉价的增加输出单元的感受野,这在多种不同的空洞卷积彼此堆叠时候尤其有效。目标检测任务是分类任务还是回归任务目标检测有分类分支,用于目标分类,也有回归分支,用于定位目标RPN中正类和负类的筛选阈值是什么首先对于每一个gt,选原创 2022-02-28 09:17:58 · 448 阅读 · 0 评论 -
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 · 1723 阅读 · 0 评论 -
Apache bench测试多个算子在多路输入的情况下的QPS情况
测试一个算子的QPS命令ab -n 1000 -c 1 -t 10 -p test702.json -T "application/json" "http://0.0.0.0:7999/A-detect/detect"-c 1指的是只有一路并发,可以理解为只有一路摄像头在实时调用这个算法。如果-c 2,那么就有两路摄像头在实时调用这个算法下面是测试8个算法同时被这一路摄像头调用时候,每个算法的QPS(echo "http://0.0.0.0:7999/A-detect/detect" ; e原创 2021-10-20 17:33:59 · 229 阅读 · 0 评论 -
Pytorch笔记 1:CUDA 张量
Tensors 可以通过 .to 方法转换到不同的设备上,即 CPU 或者 GPU 上。例子如下所示if torch.cuda.is_available(): device = torch.device("cuda") # 定义一个 CUDA 设备对象 y = torch.ones_like(x, device=device) # 显示创建在 GPU 上的`在这里插入代码片`一个 tensor x = x.to(device)原创 2021-05-08 17:39:29 · 497 阅读 · 0 评论 -
IoU和NMS的实现
这里写的是python实现,主要是为了demonstrate思想,后期有空会加上cython和cuda实现。Intersection over Union (IoU) Overlap:我们需要一些衡量两个框接近程度的方法。一个比较常用的方法是IoU,如下图IOU实现def compute_overlap(a, b): #a [N,4] #b [M,4] iw =...原创 2020-03-10 18:01:12 · 1085 阅读 · 1 评论 -
空洞卷积Dilated Conv的感受野,计算量以及实现方法详解
空洞卷积的原理:通过在卷积核中插入0值,得到更大的卷积核,更大的卷积核意味着更大的感受野。同时不需要降采样,保持了图像的分辨率。当然,如果将普通卷积的stride设置为大于1,也能起到增加感受野的效果,但是这样的话,feature的尺寸就会变小。...原创 2020-03-02 10:25:09 · 1575 阅读 · 0 评论 -
RCNN 系列一讲到底
主要分为4个章节和一个用来讲解相关基础知识的appendix。Section 1 – Image Pre-Processing:在这一节,主要介绍对输入图像的预处理方法,包括对图像减去像素的均值,对图像尺度缩放。注意,训练和预测阶段的图像预处理必须保持一致。Section 2 – Network Organization:在这一节,将会描述网络的三个主要部分,头部head网络,RPN网络,...原创 2020-02-07 22:22:57 · 435 阅读 · 0 评论 -
softmax cross_entropy
softmax函数作用交叉熵代价函数的优点一般的代价函数比如二次代价函数,对参数w或者b求偏导之后,结果和激活函数的导数成正比,也就是说当激活函数导数很小的时候(随机初始化导致激活函数输入小,从而对应导数大),学习就会变得很慢。而如果使用交叉熵的代价函数,最后激活函数的导数项会抵消,只剩下x和激活函数本身,w的梯度只和输入值与实际值之间的差值成正比,也就是说,误差越大,学习速率就会越快。...原创 2018-11-10 11:10:43 · 242 阅读 · 0 评论 -
RoI pooling介绍
这篇博客先不谈faster rcnn系列,只谈一下RoI pooling的原理。参考这篇英文博客Region of interest pooling (RoI pooling)是一项广泛用在基于CNN的物体检测中的操作, 它的作用是对size各不相同的输入进行max_pooling操作,输出具有固定size(比如7x7)的feature maps.在物体检测问题中,通常有两步,1 Regi...原创 2018-11-02 16:41:50 · 502 阅读 · 0 评论 -
一文理解Tensorflow中reduce_mean() reduce_sum() reduce_max()...系列
原文medium博客链接在Tensorflow(TF)中,常常会看到“reduce_"系列的东西,比如reduce_sum,reduce_mean…,刚刚开始我觉得,求和就sum就行,为什么加一个reduce_前缀?后来我意识到,每一次求和或者求平均值,其实都是自动的对Tensor进行了降维,例如,对向量[1,2,3,4]求和,得到一个标量10。随便找一个TF的代码,我们来分析一下。def...原创 2018-11-01 21:58:57 · 1241 阅读 · 1 评论 -
超参数,判别生成模型,Metrics,梯度消失,正则化,VGG优点,dropout
超参数和参数参数是模型自己学习的部分,比如卷积核的weight以及bias超参数是根据经验设定使得模型具有好的效果的参数,CNN中常见的超参数有:卷积核size卷积层层数learning rate...原创 2018-10-19 20:41:54 · 1543 阅读 · 0 评论 -
Anomaly GAN 总结
AnoGAN是一种使用GAN做异常检测的模型。 这篇博客主要介绍这篇paper中的模型:Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery.这篇paper的基本思路是通过正常的图像来训练GAN,这样得到的GAN就会根据噪声来生成正常图像。这篇文章最大特...原创 2018-09-06 04:55:48 · 4343 阅读 · 11 评论 -
tf.nn.conv2d & tf.contrib.layers.conv2d & tf.contrib.slim.conv2d
本文主要介绍前两个函数tf.nn.conv2d和tf.contrib.layers.conv2d 因为tf.contrib.layers.conv2d 和 tf.contrib.slim.conv2d用法是相似的,都是高级api,只是slim是一个更高级别的库,用slim中的repeat函数,可以用几行就写出一个vgg16网络。但是tf.nn和tf.contrib.layera是基本操作,最常...原创 2018-09-01 20:44:11 · 5739 阅读 · 0 评论 -
CNN笔记
1 Truncated Normal 在初始化模型的weight的时候,通常使用 truncated_normal.tf.truncated_normal( shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)tf中的介绍是: The generate...原创 2018-09-01 04:35:32 · 306 阅读 · 0 评论 -
Deconvolution/upsampling convolution/transposed convolution
Deconvolution/upsampling convolution/transposed convolution, are referred to same thing: The upsampling operation on feature map, it is not real deconvolution because it can not restore the previous ...原创 2018-06-26 03:18:03 · 399 阅读 · 0 评论 -
用anaconda单独管理keras,tensorflow,pytorch,以及它们的版本获取
以前的python环境问题让人很头疼,有的人现在还是用linux原生的python2,然后安装python3,自己管理python环境变量以及pip,来使得他们共存。我开始也是这样。后来开始在远程服务器remote server上用anaconda来管理环境。发现有独特的好处。在我的电脑里面,我用conda独立创建了几个环境keras_env,tf_gpu14,意为1.4版本的tensorfl...原创 2018-11-30 17:53:27 · 772 阅读 · 0 评论 -
RetinaNet系列1:ResNet和FPN部分总结
在FPN 原文Feature Pyramid Networks for Object Detection中,使用了ResNet原文 Deep Residual Learning for Image Recognition中的resnet34层模型的 conv2到conv5,conv2到conv5的的维度分别是64,128,256,512。输入图片的size是224x224 。我们先说FPN的目...原创 2018-12-19 17:12:33 · 18190 阅读 · 8 评论 -
根据faser rcnn中的annotations文件来split coco2014数据集
在coco2014中,train2014和val2014的图片数量是82783和40504 。为了更好的训练效果faster rcnn中只留了5000张图片作为验证集,命名为minival。具体的annotation文件包含三个json文件,instances_minival2014.json #118287张图片instances_trainval2014.json#5000张图片i...原创 2019-09-05 10:56:40 · 631 阅读 · 0 评论 -
coco数据集介绍
转载一篇文章coco数据集介绍转载 2019-09-02 14:55:09 · 609 阅读 · 0 评论 -
corner net & corner net lite 笔记
现在检测方法大致分为1:基于分割+后处理代表的模型有psenet, pixel link, east 等等;但是鲁棒性不够好,后处理太慢难以被工业界实践接受。2:基于anchor的模型这种是现在的主流,因为能够兼顾速度,精度和泛化性能。代表有我们熟悉的two stages方法,faster rcnn,r-fcn,mask rcnn等等one stages方法,ssd,retina ne...原创 2019-08-12 15:38:56 · 357 阅读 · 0 评论 -
【注意力机制】Squeeze Excitation模块 (SE Net);Spatial Attention Module模型 (SAM YoloV4) 以及CAM,CBAM
之前的 文章 很详细的写了bottleneck block的实现。先回顾一下bottleneck的意义,网络的性能归根结底是对特征提取的优秀程度,对特征提取越好,后面的分类,检测,分割等等,就会有更好的性能。resnet不是一味的加深网络层数而提高性能的,...原创 2019-07-04 17:32:18 · 3216 阅读 · 1 评论