自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于检测的目标跟踪算法(SORT、DeepSORT)

基于检测的目标跟踪算法中通常分为两个模块:目标检测模块和跟踪匹配模块。目标检测模块主要负责从视频中抽取出帧图像,并提取出目标信息,包括目标位置、形状以及类别概率等;而跟踪匹配模块需要将不同帧图像中的目标进行匹配,判别出相邻两帧图像中,哪些目标是同一个目标,找出后赋予 id 进行标识。常见的基于检测的目标跟踪算法框架有 SORT 和 DeepSORT。

2024-04-08 13:51:46 1146

原创 UniRepLKNet:一种用于音频、视频、点云、时间序列和图像识别的通用感知大核卷积神经网络

论文: https://arxiv.org/abs/2311.15599模型: https://huggingface.co/DingXiaoH/UniRepLKNet/tree/main主页:https://invictus717.github.io/UniRepLKNet/提出了四条guide line用于设计大核CNN架构模型,用于图像识别,语音、点云、时序任务上,并且均取得了较SOTA的成绩,打破了传统观念上 只有Transformer才能一统多模态的事情。(只有打破人们传统观念,才能更加吸引人眼球

2024-03-27 09:44:58 1072

原创 与数据集偏差的十年之战:我们成功了吗?

具体而言,作者从 YFCC[4], CC[5]和 DataComp[6]这三个数据集 (合在一起叫做 YCD 数据集) 中的每一个中随机抽取大量 (高达 100 万) 的图像,并在它们的联合上训练一个神经网络来对图像取自哪个数据集进行分类。有趣的是,就是对于这样的数据集分类任务,也可以观察到很多在类似于在语义分类任务 (比如图像分类) 中观察到的观察结果。这类似于语义分类任务中的泛化行为。而且,也可以观察到,通过数据集分类任务训练的模型也展示出迁移性,即带有一些可以迁移到图像分类任务上面的语义信息。

2024-03-26 16:05:43 922

原创 尺度感知调制器(SAM)—在浅层优雅的构建注意力机制

近年来,基于Transformer和CNN的视觉基础模型取得巨大成功。有许多研究进一步地将Transformer结构与CNN架构结合,设计出了更为高效的hybrid CNN-Transformer Network,但它们的精度仍然不尽如意。本文介绍了一种新的基础模型SMT(Scale-Aware Modulation Transformer),它以更低的参数量(params)和计算量(flops)取得了大幅性能的提升。

2024-01-24 16:06:45 942

原创 torch.fx量化——以cifar10数据集为例

可以看到,精度下降严重。此时需要进行一下校准。

2024-01-14 10:05:01 479

原创 重读VIT:深入探索细节与影响

一顿读下来,你可能有个印象:如果训练数据量不够多的话,看起来VIT也没比CNN好多少呀,VIT的意义是什么呢?这是个很好的问题,因为在工业界,人们的标注数据量和算力都是有限的,因此CNN可能还是首要选择。但是,VIT的出现,不仅是用模型效果来考量这么简单,今天再来看这个模型,发现它的意义在于证明了一个统一框架在不同模态任务上的表现能力。在VIT之前,NLP的SOTA范式被认为是Transformer,而图像的SOTA范式依然是CNN。

2024-01-02 10:54:40 958

原创 Agent Attention:以一种优雅的方式来结合线性注意力和softmax注意力

近年来,视觉 Transformer 模型得到了极大的发展,相关工作在分类、分割、检测等视觉任务上都取得了很好的效果。然而,将 Transformer 模型应用于视觉领域并不是一件简单的事情。与自然语言不同,视觉图片中的特征数量更多。由于Softmax 注意力是平方复杂度,直接进行全局自注意力的计算往往会带来过高的计算量。针对这一问题,先前的工作通常通过减少参与自注意力计算的特征数量的方法来降低计算量。

2023-12-26 16:50:58 1776

原创 小目标检测模型设计的一点思考

在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c263ea3db15547c6903838fba9683ebd.png)[在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0f67372ff9454e6e9b67e0cbe71d2371.png)* 小目标自身的纹理显著度有强弱区别,但是总体来说纹理特征都较弱,很多时候需要借助一定的图像上下文来帮助确认。

2023-12-10 22:13:02 521

原创 半监督语义分割综述

图像分割是指将图像划分为不同的非重叠区域,并将相应的标签分配给图像中的每个像素,最终获得ROI区域位置及其类别信息。一般,我们将分割任务分为语义分割和实例分割,前者是将每个像素与相应的语义类别进行分类,从而为属于该类别的所有对象或图像区域赋予相同的类别标签;然而,深度学习方法需要大量的数据与标记,尤其是像素级别的标记,这需要耗费巨大的人力和时间成本。半监督同时从有监督的标签信息和无监督的无标签信息中抽取数据,从而减少了全监督中所需要的标注工作,这在缺少标注信息任务中很有意义!

2023-12-02 21:36:15 565

原创 深度学习算法面试常问问题(二)

深度学习面试常问问题

2023-02-16 20:26:18 1083 1

原创 深度学习算法面试常问问题(三)

深度学习算法面试常问问题

2023-02-16 20:18:58 2658

原创 深度学习算法面试常问问题(一)

深度学习面试常问问题

2023-02-16 19:48:52 1467

原创 边缘检测算子之间的优劣

边缘检测算子

2022-09-23 20:39:55 5588

原创 pytorch中tensor常用is_contiguous含义

is_contiguous

2022-09-07 16:27:37 729

原创 YOLOv7的一些理解

YOLOv7

2022-07-26 20:54:18 2533

原创 End-to-End Object Detection with Transformers(DETR)论文阅读与理解

DETR

2022-06-30 17:40:11 835

原创 【leetcode】331. 验证二叉树的前序序列化

331. 验证二叉树的前序序列化

2022-06-26 14:59:24 1730

原创 【leetcode】701. 二叉搜索树中的插入操作

701. 二叉搜索树中的插入操作

2022-06-26 11:19:22 138

原创 CNN优化trick

训练trick

2022-06-22 20:48:52 208

原创 不同CV任务的标注类型

  CV任务中,图像标注是有助于计算机更好的理解图像。计算机会根据已知标签信息,从数据种学习出适用新数据识别的相似规则。边界框是最常见的图像标注类型。正如其字面意思一样,标注者需要根据具体要求在目标物体周围画一个方框。可以使用边界框来训练目标检测模型。多边形掩膜(mask)主要用于标注具有不规则形状的目标。标注者必须以高精度标注出图像中目标的边界,从而清楚地了解目标的形状和大小。不同于标注框标注方式,可以框选目标周围不必要区域从而有可能在某些任务中影响模型的训练,多边形标注由于有着较高的标注精度其在任务中

2022-06-04 21:26:21 979 1

原创 全局池化–Pytorch

全局池化

2022-06-01 19:25:28 4173

原创 Inductive bias的一些理解

Inductive bias  归纳偏置在机器学习中是一种很微妙的概念:在机器学习中,很多算法会对一些问题做出假设,这些假设就称为归纳偏置。归纳:从一些例子中寻找共性,泛化,形成一个比较通用的规则规程偏置:我们对模型的偏好因此,归纳偏置可以理解为,从现实生活中观察到的现象中归纳出的一定规则,然后对模型做一定的约束,从而可以起到“模型选择”的作用,即从假设空间中选择出更符合现实规则的模型。归纳偏置在机器学习中几乎无处不见:奥卡姆剃刀:如无必要,勿增实体KNN中假设特征空间中相邻样本倾向于属

2022-05-24 20:46:31 279

原创 【leetcode】48.旋转图像

题目详见 48.旋转图像解题思路:原地旋转图像,不能使用另外一个矩阵来旋转图像首先将图像水平翻转,第一行和倒数第一行交换,第二行和倒数第二行交换,依次类推其次沿着对角线翻转class Solution: def rotate(self, matrix: List[List[int]]) -> None: """ Do not return anything, modify matrix in-place instead. """

2022-05-23 20:28:39 122

原创 梯度下降法的原理以及python伪代码

梯度下降法博主的理解:y = w x + b, 如果y和真实差距太大,说明w起作用太大了,这个时候我们利用梯度去控制一下。(浅显理解)什么是损失函数用于衡量模型对任何给定数据的性能。损失函数将预测值与期望值之间的误差进行量化,并以单个实数的形式表示出来。整个流程就是,对w进行初始化,然后计算预测值y,接着计算损失函数,为了让损失函数最小,利用梯度下降法对给定w进行参数修正。那什么是梯度下降法呢博主的理解:假如你在珠穆朗玛峰上,而你想下到山底,此时的下山的过程就是梯度下降法的流程,山坡的斜率为梯度

2022-05-22 21:30:11 2192

原创 【leetcode】112. 路径总和 - 113. 路径总和 II

题目详见112. 路径总和题目详见 113. 路径总和 II112.路径总和解题思路:先序遍历,如果递归中root 为空,就返回False表示该路径下没有和为TargetSum如果左右子树都为空,并且当前节点等于targetSum,就返回True然后递归左右子树,看左右子树是否能被匹配到talk is cheap , show me the code# Definition for a binary tree node.# class TreeNode:# def __ini

2022-05-22 13:09:16 106

原创 python heapq和accumulate

主要为了刷题时候,总是出现堆和前缀和等python内置库,做个记录1 heapq  heapq 库是Python标准库之一,提供了构建小顶堆的方法和一些对小顶堆的基本操作方法(如入堆,出堆等),可以用于实现堆排序算法。堆是一种数据结构,是一颗完全二叉树,满足的性质:每个节点的值都大于等于(小于等于)它的左右子节点的值。在python heapq中使用的是小顶堆。   在heapq库中,heapq使用的数据类型是python的基本数据类型list,要满足堆的性质,则在索引k的值要<= 2k+1 和

2022-05-21 20:18:50 283

原创 使用OpenCV进行特征(颜色、形状)提取

图像处理图像处理所做的只是从图像中提取有用的信息,从而减少数据量,但保留描述图像特征的像素。下面从图像中提取颜色、形状和纹理特征的方法开始1. 颜色   每次处理图像项目时,图像的色彩空间都会成为最先探索的地方,而我们最常用的就是RGB色彩空间。那么接下来使用OpenCV,我们可以将图像的颜色空间转换为HSV、LAB、灰度、YCrCb、CMYK等。a. HSV(色相饱和度值)色调H:描述主波长,是指定颜色的通道饱和度S:描述色调/颜色的纯度/色调值V:描述颜色的强度import cv

2022-05-19 20:09:23 5015

原创 算法落地的一些总结

根据博主自己算法落地和一些其他博主的总结面试的时候,面试官特别讨厌直接使用paperswithcode上SOTA模型,如果该模型work的话,就直接用,并没有思考该模型为什么适用于特征任务,因此尝试法并不可取,这也是本博文的初衷。1、熟悉数据吴恩达:80%数据 + 20%的模型 = 更好的AI对于新的项目任务来说,第一步就是需要熟悉数据,例如检测任务,可以写一个可视化代码查看标注是否合理,查看一下待检测物体的大小分布情况(方便anchor设定),查看图片大小,查看类别分布情况(是否出现长尾现象)等等

2022-05-18 21:22:34 1012

原创 python文件操作知识

本篇目的:博主为了更好的操作文件,避免每次都去找使用文件的相关操作,所以干脆总结一下,方便日后自己的查找!1.文件的打开和关闭open()函数'''open内置函数,open底层调用的是操作系统的接口f1变量,又叫文件句柄encoding :编码方式,windows默认gbk,linux和mac默认utf-8mode:默认='r'f1.close()关闭文件句柄'''f1 = open(r'd:\测试文件.txt', mode='r', encoding='utf-8')cont

2022-05-18 20:46:51 277

原创 DeepLab系列解读

DeepLab系列Google团队提出的一系列图像分割算法,V1版本在2014年提出。并在VOC2012取得第二名的乘积,陆续推出了v2,v3和v3+ 版本。DeepLabv1创新点:使用空洞卷积(Atrous convolution)全连接条件随机场(fully connected CRF)  空洞卷积是为了解决编码过程中信号不断被下采样,导致信息丢失的问题,由于卷积层提取到的特征具有平移不变性,这就限制了定位精度,所有v1版本就引入了全连接条件随机场来提高模型捕获局部结构信息的能力。通俗

2022-05-11 21:28:48 1750

原创 OpenCV的区域分割、轮廓检测和阈值处理

OpenCVOpenCV是一个巨大的开源库,广泛用于计算机视觉,人工智能和图像处理领域。它在现实世界中的典型应用是人脸识别,物体检测,人类活动识别,物体跟踪等。任务现在,假设我们只需要从整个输入帧中检测到一个对象。因此,代替处理整个框架,如果可以在框架中定义一个子区域并将其视为要应用处理的新框架,该怎么办。我们要完成一下三个步骤:定义兴趣区在ROI中检测轮廓阈值检测轮廓轮廓线什么是ROI?简而言之,我们感兴趣的对象所在的帧内的子区域称为感兴趣区域(ROI)我们如何定义ROI

2022-05-08 22:20:20 1473

原创 为什么图像分割任务中经常用到编码器和解码器结构?

图像分割编码器编码器可以视为特征提取网络,通常使用池化层来逐渐缩减输入数据的尺寸大小解码器解码器通过上采样/反卷积等网络层来逐步恢复目标的细节和相应的空间维度。引入池化层可以增加感受野,并能使特征提取聚焦在重要信息中,降低背景干扰,有助于图像分类。然而池化操作使位置信息大量流失,经过编码器提取的特征不足以对像素进行精确分割,这个解码器造成了极大困扰,使得解码器中直接由上采样/反卷积生成的分割图像较为粗糙。因此,一些研究员提出在编码器和解码器之间建立快捷连接,使高分辨率特征信息能够参与后序的解码环节

2022-05-07 21:15:26 1984

原创 YOLO、YOLOv2、YOLO9000和YOLOv3的发展过程

YOLOyolo的基本思想是使用一个端到端的CNN直接预测目标的类别和位置,相对two-stage,yolo实时性高,但检测精度低。YOLO每个边界框只预测两个框,主体结构GoogLeNet,由24个卷积层和2个FC层组成。YOLOv2YOLOv2针对yolov1两个缺点:低召回率低定位准确率改进:YOLOv2在卷积层后添加了BN,加快收敛速度,防止过拟合v2的卷积特征提取器在进行检测任务之前,先在高精度图片上调优10个批次,这样能使检测模型提前适应高分辨率图像v2采用k-means

2022-05-07 20:59:50 587

原创 R-CNN发展历程及其优缺点

R-CNNR-CNN是第一个将CNN用于目标检测的DL model,主要流程为以下几个部分:使用无监督的选择性搜索(selective search)方法将输入图像具有相似颜色直方图特征的区域进行递归合并,大约产生2000个候选区域将候选区域裁剪成缩放成合适尺寸,并送到一个CNN特征提取网络中进行高层次的特征提取提取到的特征送入到SVM分类器进行分类,以及一个线性回归器进行box位置和大小调整最后通过NMS操作,得到最终的结果SPPNetSPPNet中的SPP是值空间金字塔池化,主要是针对

2022-05-06 21:35:51 1622

原创 计算机视觉之Focus层

由于博主最近在写论文,刚好用到了Focus层,特来总结1. 深度学习有哪些下采样的方式?池化操作,1.最大池化 2.平均池化步长大于1的卷积还有Focus层总结一下:最大池化是突出目标特征和边缘细节,而平均池化是平滑,更偏向于背景。但是但是但是!无论哪种池化操作,都是以牺牲部分信息作为代价,来缩小图片尺寸。卷积操作可以获得图像像素之间特征相关性,但是stride > 1会造成相邻像素点特征丢失。2.下采样在NN中的作用?  下采样在神经网络中主要是为了减少参数量达到降维的作用,同时

2022-05-06 20:52:09 1866

原创 演示用torchserve来部署模型

演示用torchserve进行pytorch模型部署步骤分为四步:使用docker环境导出模型定义handler保存模型本文使用训练好的ResNet34 进行图像分类的服务1 .使用docker安装torchservepull项目docker环境是复现demo最好的方法之一!!!docker pull pytorch/torchserve:latest2. 导出模型torchserve需要提供一个.mar文件,简而言之,该文件只是把你的模型和所有依赖打包在一起,要进行打包,首先需

2022-05-04 20:51:00 2301

原创 改进模型速度/精度的工程方法

提速部分1. 针对感受野的不同,划分大小目标检测网络   同样的任务,可以训练多套网络实现不同感受野,分别处理大目标、小目标。为了检测多尺度目标,模型都会采用类FPN的结果,直接结果就是减少模型的并发性。划分大小网络后,可以减少FPN结构的分支,同时也可以减少训练难度,而且两个网络也可以使用不同的复杂度。2.分区域不同分辨率检测不同远近目标  低分辨率的图片检测近距离目标,用中心区域的高分辨率图片检测远距离目标3.黑白单通道图片输入,提升模型速度  由于cnn层级化结构,运算量往往都是在高分辨率

2022-04-21 16:46:07 3824

原创 【leetcode】python尾插创建链表

核心代码写多了,都不知道链表怎么写测试用例# python 尾插法创建链表class LinkNode(object): def __init__(self,val=0,next = None): self.val = val self.next = nextdef createList(nums): dummy_head = LinkNode() p = dummy_head for item in nums: node = LinkNode(val = item)

2022-04-19 20:25:04 158

原创 【leetcode】49.字母异位词分组

题目详见 49.字母异位词分组题目难点题目是一个二维数组怎么判断当前词为异位词怎么将异位词分到一组,然后用一个大数组append住思路采用dict的方法来解决采用排序的方法将所有键为key的放在一起这里采用dict的values为defaultdict(list)Talk is cheap, show me the codeclass Solution: def groupAnagrams(self, strs: List[str]) -> List[List[st

2022-04-19 09:50:55 390

原创 【leetcode】42.接雨水

题目详见 42.接雨水题目难点应该采用什么样的解题方法解决?解题思路采用单调栈的方法,按照行的方向来接取雨水单调栈特点是栈底------->栈顶是单调递减的如果当前元素大于栈顶元素的话,这就天然形成了一个凹槽,例如 栈中53 当前元素是6,行程的536则表示一个凹槽凹槽能存水多少取决于左右两侧那一侧比较小如果当前元素等于栈顶元素,则栈顶元素弹出,当前元素入栈,例如55 31Talk is cheap,show me the codeclass Solution:

2022-04-16 15:31:26 950

DrinkReminder.zip

python脚本实现定时提醒喝水

2022-01-05

空空如也

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

TA关注的人

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