yang_daxia
这个作者很懒,什么都没留下…
展开
-
DETR疑问与理解
视频解读:【DETR 论文精读【论文精读】】 https://www.bilibili.com/video/BV1GB4y1X72R/?因为实际gt有m个框,objects query为N个,实际上N>>m。作者增加一个no object类别,就是N对N的二分图匹配问题了,使用匈牙利匹配算法求解。用Transformer做object detection:DETR - 小小理工男的文章 - 知乎。因为detr使用的transformer天然适合处理序列到序列到模式,所以就算一种端到端的检测。原创 2023-08-16 09:38:59 · 155 阅读 · 0 评论 -
transformer理解
transformer使用了自注意力机制,摒弃了RNN中的循环结构,所以加速了推理时间,但是也丢失了位置信息,所以需要位置编码记录位置信息。原创 2023-07-25 16:19:23 · 676 阅读 · 0 评论 -
模型压缩与小模型炼丹
模型压缩与小模型训练方法原创 2022-09-27 15:32:01 · 296 阅读 · 0 评论 -
结构重参数化入门
重参数化原创 2022-08-26 17:08:02 · 285 阅读 · 0 评论 -
人脸检测state-of-the-art
Poly-NL基于non-local blocksTinaFace、RetinaFace、AInnoFace都可以看出基于retinanet。原创 2022-07-12 18:00:29 · 581 阅读 · 0 评论 -
nnie模型(海思平台)平台转模型改变输入消除ceil_mode影响
原因:海思平台不支持maxpool中ceil_mode=false,resnet中的maxpool默认为false。https://pytorch.org/docs/stable/nn.html解决办法:resnet maxpool只有一处:改变输入大小,使得不受ceil_mode影响。pool计算公式:如:输入为384, 卷积后为192(192+2*1+1*(3-1)-1)/2 +1 = 95.5 + 1,torch 95+1 = 96, nnie:96+..原创 2020-06-16 17:07:12 · 999 阅读 · 0 评论 -
目标检测中的ignore、评测指标等
1、目标检测中的ignore目标过小,过于模糊当做ignore属性处理,训练时,给样本-1类别(背景为0类别)。评测时候需要考虑ignore样本,输出不算错。2、具体评测:输入:所有的gt框、gt_ignore框、dt框评测逻辑,先获取tps和fps,再计算各个值。因为所有的框都是正样本,所以只有fp以及tp,没有fn和tn.1)对dt框,按照score排序,匹配gt框和gt_ignore框与dt框的iou,获取每一个框是否正确;dt框,gt框匹配,gt框为正样本,那tp=1,f原创 2022-03-21 22:14:47 · 3701 阅读 · 0 评论 -
目标检测的resize策略
def get_scale_factor(img_h, img_w, input_short, input_long): """return scale_factor_h, scale_factor_w """ short = min(img_w, img_h) large = max(img_w, img_h) scale_factor = min(input_short / short, input_long / large) return scale_f原创 2021-10-27 09:52:40 · 585 阅读 · 0 评论 -
小目标检测调研
1、定义1)从相对尺度定义。目前无统一标准,如边界框面积与图像面积之比的中位数在0.08%~0.58%之间,640像素×480像素分辨率图像中,16像素×16像素到42像素×42像素2)绝对尺度。coco定义为32像素。因为很多网络如vgg为32倍降采样,最终向量特征点1个像素对应32个像素。2挑战1)可利用特征少,分辨率低2)定位精度要求高,anchor匹配小目标的比大目标少很多3)数据集中小目标占比少。容易漏标注,标注误差敏感4)样本不均衡问题。小目标的anchor匹配的正样本较少。5原创 2021-09-28 15:52:28 · 441 阅读 · 0 评论 -
模型的flops、推理速度、参数量
https://www.zhihu.com/question/460007148原创 2021-09-09 17:42:21 · 2937 阅读 · 0 评论 -
炼丹技巧总结
1、调参主要调节学习率、不同的loss的权重,可以手动调节,或者采用HPO2、训练epoch加长一般训的时间越长,结果更好。尽量加到模型的上界为止。3、loss尝试其他的loss、可能会有涨点4、pretrain一般更好的pretrain模型的表征能力好,可以训练更好的结果。如使用imagenet、coco等公开数据集pretrain5、蒸馏通过大模型蒸馏小模型等方式,提升小模型的能力6、调整模型结构可以在原始基础上修改,分析模型的算力分布,调整算力,尝试不同结构7、backbone原创 2021-08-24 15:17:04 · 371 阅读 · 0 评论 -
目标检测中的Anchor
https://zhuanlan.zhihu.com/p/55824651转载 2021-08-09 15:54:28 · 99 阅读 · 0 评论 -
如何利用所有的数据集训练
目标检测有全量标注数据,单类别标注数据,如何利用所有的数据?1。利用单类别数据进行独立训练(大模型)->用大模型生产伪标签->过滤伪标签->GT+伪标签训练。训模型可以直接训练or跨数据集训练...原创 2021-07-12 13:59:58 · 1155 阅读 · 0 评论 -
单目标跟踪(sot)与多目标跟踪(mot)
单目标跟踪根据检测得到的结果,通过sot预测下一帧的位置。如Siamese RPN.sot比直接用检测快很多,所以通过sot来加速跟踪。多目标跟踪用于将sot的结果关联为各个不同的id,如通过IoU匹配、KM算法等参考:https://zhuanlan.zhihu.com/p/97449724...原创 2021-07-09 15:32:12 · 2972 阅读 · 0 评论 -
深度学习重要结论
label smoothing作者发现在下列两种情况下标签平滑会失效或者没那么有效:1)数据集呈现长尾分布的时候(long-tailed)2)类别数目变多的时候。https://mp.weixin.qq.com/s/Gz4r4Qprl7HzG2WRuWMyUwFPNC5包含了充分的用于检测不同尺度目标的上下文信息多尺度特征融合带来的收益要远小于分而治之带来的收益.https://mp.weixin.qq.com/s/EJqAG1gTVaP2icI6QL742Across datas原创 2021-07-07 15:03:50 · 340 阅读 · 0 评论 -
寻找错误标注数据策略
简单方法使用训练好的模型,得到预测结果和标注结果比对,不一样的可能为noise 的数据缺点:需要有训好的模型,模型不能过拟合AUM度量:所有训练epoch 的标注位置的值与其他位置的最大值的差值的平均。标注位置的值与其他位置的最大值的差值的平均:越大说明标注越正确,越小或者为负数说明不正确。Identifying Mislabeled Data using the Area Under the Margin Ranking...原创 2021-01-12 10:28:01 · 523 阅读 · 0 评论 -
不同开源图像库的resize及上下采样
背景超分领域一般只有高分辨率的图片,低分辨率的图像经过降质处理得到,常用的方法就是下采样。以DIC2K数据集为例子,采用matlab 的resize函数进行下采样处理得到不同的LR图像。https://data.vision.ee.ethz.ch/cvl/DIV2K/采样方法上采样下采样不同平台pytorch transform采用PIL库,默认PIL.Image.BILINEARhttps://pytorch.org/docs/stable/_modules/torchvision/t原创 2021-01-05 14:19:41 · 1542 阅读 · 3 评论 -
主动学习 active learning
任何模型都有模型上限,也就是说,即使加入再多的数据,模型也不会增长。所以应该加入尽可能少的数据,更有价值的数据。总结:主动学习为在无标注的样本池中,挖掘有用的数据标注训练,使得模型使用尽可能少的样本达到模型的上限。参考:https://zhuanlan.zhihu.com/p/39367595主动学习(Active learning)算法的原理是什么,有哪些比较具体的应用? - 阿里巴巴淘系技术的回答 - 知乎 https://www.zhihu.com/question/265479171原创 2020-12-28 10:43:57 · 252 阅读 · 0 评论 -
对比学习Contrastive Learning
对比学习是一种常用的自监督学习方法。核心思想:把正样本距离拉近,正样本与负样本距离拉远。(类似度量学习中的margin, 但是对比学习为正负样本分类,无margin概念)方式:通过一个正样本,以及k个负样本进行对比学习,研究表明K越大越好,可以取几万个。优化问题:对于一个正样本,需要和k个负样本做分类,使模型分清楚哪些是正样本,哪些是负样本,用交叉熵即可。如下图 经典方法:memory bank:把所有样本的logits存起来,计算lossMoCo:用一个qu...原创 2020-12-21 18:01:30 · 21790 阅读 · 7 评论 -
超分 Super-Resolution
1、入门定义:超分即把一个低分辨率低图片恢复为高分辨率低图像数据来源:把高分辨率低图片通过人工加噪声等方式变成高分辨率卷积种类:先上采样再恢复 先恢复再上采样 渐进式等上采样 循环式等上采样和下采样损失函数:一般分为多种损失函数,使用不同等损失函数叠加。基于像素的Pixel Loss 如L2\L1 基于内容的Content loss,如利用一个训练好的分类网络,对模型输出的图片和标注图像分别做分类,求loss 基于纹理的Texture Loss,如利用一个训练好的分类网络,.原创 2020-12-01 17:55:42 · 2518 阅读 · 0 评论 -
表征学习Representation Learning
1入门https://zhuanlan.zhihu.com/p/1365543412、representation learning解耦(disentangled)、可解释(Interpretable)ICRL顶级会议和gan联系的比较紧密,如infogan3、和reid结合Look across Elapse: Disentangled Representation Learning and Photorealistic Cross-Age Face Synthes...原创 2020-11-30 20:02:25 · 1201 阅读 · 0 评论 -
万字长文:特征可视化技术(CAM)
https://mp.weixin.qq.com/s/WKImrtpjQBziz6Wr5uOGNw转载 2020-11-23 15:58:09 · 1006 阅读 · 0 评论 -
GAN网络
1、入门https://easyai.tech/blog/generative-adversarial-networks-gans-a-beginners-guide/包含生成器和判别器。生成器用于生成假图片,判别器用于判断判断图片是真的,还是生成的。所以生成器和判别器需要交叉训练代码:https://github.com/eriklindernoren/Keras-GAN...原创 2020-11-18 13:57:00 · 504 阅读 · 0 评论 -
KL散度
基础蒸馏中的lodigts常用lossKL散度也叫相对熵。可以理解为,q分布相对p分布的差异。可以理解为相对距离。参考:https://zh.wikipedia.org/wiki/%E7%9B%B8%E5%AF%B9%E7%86%B5和交叉熵的关系如何通俗的解释交叉熵与相对熵? - Peiwen的回答 - 知乎 https://www.zhihu.com/question/41252833/answer/195901726torch实现https://pytorch.原创 2020-11-03 17:32:37 · 1273 阅读 · 0 评论 -
Curriculum Learning 文献阅读笔记ICML_2009
人类学习时,不是杂乱的学习,而是循序渐进的,先学习简单的再学习难的。所以作者提出了这样的训练策略,命名为课程学习。作者假设这样的训练方法可以加快训练的收敛速度,提高模型精度。即:非凸函数全局优化的一种策略。1)贡献:作者试图解释为什么以及什么时候这种学习策略是有效的。1、作者在不同的任务上进行了验证。2、提出了假设去解释为什么有效。3、实验结果表明课程学习起着正则化的作用。4、在凸优化任务上,课程学习也加快了向全局最优的收敛速度。2)作者介绍了深度神经网络以及训练上的困难。一些研究方法使用无原创 2020-10-27 20:29:36 · 305 阅读 · 2 评论 -
课程学习入门与survey·
入门:https://blog.csdn.net/qq_25011449/article/details/82914803https://zhuanlan.zhihu.com/p/55720313自步学习:https://blog.csdn.net/weixin_37805505/article/details/79144854survey:Curriculum Learning of Multiple Tasks ——cvpr2015多任务的课程学习。...原创 2020-10-26 20:50:50 · 201 阅读 · 0 评论 -
知识蒸馏
知识蒸馏即小模型从一个大模型学习知识,使得小模型获取接近大模型的结果。类似迁移学习,和预训练相比,蒸馏从网络学习,预训练则从数据学习。蒸馏可以将teacher模型的输出作为student模型的的soft label。也可以从中间的特征学习即蒸馏的过程可以看做学习大模型不同的区域。大模型和小模型的特征对应是一个难点。入门:https://zhuanlan.zhihu.com/p/81467832综述:https://zhuanlan.zhihu.co...原创 2020-06-04 11:28:08 · 379 阅读 · 0 评论 -
Reid入门
入门:https://zhuanlan.zhihu.com/p/83411679综述:https://zhuanlan.zhihu.com/p/73517757典型paper:PCB:https://zhuanlan.zhihu.com/p/45657460原创 2020-02-26 14:09:42 · 266 阅读 · 0 评论 -
Global Average Pooling与FC与Average Pooling与 Global Max Pooling
1.Global Average PoolingGlobal Average Pooling(GAP)出自 Network in networkGAP 输入(H, W, C)-->(1, 1, C)直接在HW上pooling,将信息压缩到一个点。优点:和FC相比无训练参数,所以可以防止过拟合参考https://zhuanlan.zhihu.com/p/376836...原创 2020-02-25 16:11:06 · 744 阅读 · 0 评论 -
Upsample与ConvTranspose2d
两者都是用来实现上采样,假设采样倍数为scale, 则把(H, W, C) -->变为(H*scale, W*scale,C)下面以2倍上采样为例。1.Upsample通过插值方法完成上采样。所以不需要训练参数。nn.Upsample(scale_factor=2, mode='bilinear', align_corners=True)其中mode为选择的插值方法。2....原创 2020-02-11 16:47:57 · 4697 阅读 · 0 评论 -
英伟达GPU及架构
英伟达GTX 1080TIPascal™ 结构T4卡基于Turing架构P4卡Pascal™ 结构V100 基于Volta架构在某一个架构上进行序列化, 就应该在这个架构上测试, 否则会报错tensorRT:NVIDIA TensorRT是一种高性能神经网络推理(Inference)引擎,用于在生产环境中部署深度学习应用程序,应用有图像分类、分割和目标检测等,可提...原创 2020-01-06 15:11:00 · 3490 阅读 · 0 评论 -
NAS-FPN以及相关优化PANet/ThunderNet/HRnet/Libra-rcnn
1.NAS-FPN使用强化学习的方式对FPN网络自动搜索,在coco数据集上得到了最好的FPN结果。可以理解为连连看,然后连出一个最好的。如下图:a图为原始的FPN, 好看整齐。然后在一步一步搜索的reward下,结构组件变化。由b--->f变为最终的结果。虽然不好看。最终NAS-FPN结构为:可以看到和retinanet一样有5个输入p3,p4,p5,p6,p7然后对应5个输出p3...原创 2019-12-25 15:35:15 · 1760 阅读 · 0 评论 -
深度学习调参技巧
1. 初始化 非常重要优先Xavier, hekaiming调了几天的batch, normalization没啥用, 一步初始化提高了50个点....2.学习率大学习率, 跑的快, 那么在同样的时间就可以调更多的参数, 一般用warm up, 只要不爆炸, 可以尽可能的大3.batch先学习率, 再batch, 因为batch增大, 建议lr相应增大倍数4.no...原创 2019-11-06 16:52:06 · 290 阅读 · 0 评论 -
模型训练技巧
1. funtinue一般可以先在大数据集上预训练再fintune如backbone可以在imagenet,其他任务直接在相应数据集上预训练, 如检测在coco2.端到端任务如ocr 检测+识别可以先在大数据上fintune可以先只训练检测, 在这个基础上再端到端序列,训练的时候检测用gtTo jointly train text localization and...原创 2019-10-29 21:36:38 · 1060 阅读 · 0 评论 -
CV领域个方向综述文章汇总
1. 检测https://www.jiqizhixin.com/articles/2018-04-27https://mp.weixin.qq.com/s?__biz=MzA3NjIzMTk0NA==&mid=2651647781&idx=1&sn=3f0662ebf5105da52df30b7383f35b92&chksm=849c2b42b3eba254...原创 2019-10-16 15:31:20 · 2172 阅读 · 0 评论 -
Class-Balanced Loss Based on Effective Number of Samples解决类别不平衡loss
github:https://github.com/vandit15/Class-balanced-loss-pytorch/blob/master/class_balanced_loss.py本文用于解决样本类别不平衡问题, 尤其是数据是长尾分布的情况.本文核心概念为, 有效采样数.En那么某一类别有效采样数多, 起loss权重应该小, 即和En成反比,所以类别权重只要乘以...原创 2019-09-24 18:01:52 · 4917 阅读 · 0 评论 -
CTCloss详解
1.映射规则:案例:2. ctcloss计算所有可以映射为输出路径的概率总和:枚举方法计算量太大, 所以采用DP:一共三种情况:1.PPT:https://docs.google.com/presentation/d/12gYcPft9_4cxk2AD6Z6ZlJNa3wvZCW1ms31nhq51vMk/pub?start=false&loop...原创 2019-05-27 12:43:34 · 7386 阅读 · 2 评论 -
focal loss和retinanet
focal loss主要解决proposal中多个bbox的框样本样本不平衡.如上图, 比如出100000个框, 实际物体100个, 每一个loss 为2.3, 剩余的每一个loss为0.1,但是数量还是太多, 那么(100*2.3)/(10000*0.1)大约为40倍, 所以要降低esay examples(一般增加难分类的权重,这里降低是因为, esay example数量太多导致总的...原创 2019-05-30 19:44:21 · 789 阅读 · 0 评论 -
L1, L2以及smooth L1 loss
在机器学习实践中,你也许需要在神秘的L1和L2中做出选择。通常的两个决策为:1) L1范数 vs L2范数 的损失函数; 2) L1正则化 vs L2正则化。作为损失函数 L1范数损失函数,也被称为最小绝对值偏差(LAD),最小绝对值误差(LAE)。总的说来,它是把目标值(YiYi)与估计值(f(xi)f(xi))的绝对差值的总和(SS)最小化:S=∑i=1n|Yi−f(xi)...转载 2019-06-10 09:48:26 · 15406 阅读 · 3 评论 -
mobilenetV2, shufflenetv2
mobilenet 和shufflenet速度较快核心思想:改变卷积方法, 增加卷积的速度与效率.1.常见的方法有: depth-wise conv, 分组卷积gconv , channal shuffle等. 各自的效果与计算量如下图所示:详细:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650761248...原创 2019-08-21 13:08:31 · 629 阅读 · 0 评论