- 博客(116)
- 收藏
- 关注
原创 深度相机与红外光相机+摄像头RTSP协议
随着计算机视觉与人工智能技术的飞速发展,采用深度相机进行场景三维重建、目标检测、环境感知等应用越来越广泛,与传统的2D相机不同,深度相机可以通过拍摄空间来获得景深信息,从而获得目标的3D信息,构建3D模型,这也是与普通相机最大的差别。目前的深度相机根据其工作原理可以分为三种:TOF、RGB双目、结构光,在机器人、人机交互以及其他工业领域中等到了广泛应用。
2024-08-14 11:12:57
1112
原创 IP地址与子网掩码
对上面这段话的理解为,C类的话,前24位是网络号,所以用都是1去做与,最后8位用0去跟IP做与,这样得到的结果是如果两个IP前24位一样,那么与的结果也就一样,也就是在同一网段,即可以通讯。不同的是你们俩通过网关对应公网的IP,即不能重复。理论上每个公网IP(公网地址)下都可以在其内网(如学校、公司内部网络或者你宿舍宽带分配的内网ip)分配私网地址(如下图),即公网地址全球唯一不可重复,但是每个公网地址下的私网地址可以重复,因为这些私网地址,就是分配给内网使用的,一般公网上是访问不到这些内网地址的。
2024-04-01 18:53:40
1904
原创 Linux shell 命令中nohup 、&、重定向的使用
执行 nohup sh test.sh & 命令后,能进行输入操作,标准输出 的日志写入到 nohup.out 文件,即使关闭xshell,退出当前session后,脚本命令依然继续运行。logFile1 :即 1 >logFile1,1是标准信息输出,是默认的,可以省略,logFile1是 日志文件名字。上面提到的日志文件默认名称是 nohup.out ,如果修改日志文件的名称,则用到 重定向 ,符号是 > ,语法格式是。能进行输入操作(比如输入命令、换行、打空格等),即 可进行交互 输入和输出的操作,
2024-03-21 11:20:53
862
1
原创 yolo网络整理-网络结构原理与anchor
YOLOv5 是Glenn Jocher等人操刀研发,Ultralytics公司的开源项目,。2020年6月发布以来,Ultralytics公司一直在对项目进行维护与更新,目前repo的star数目突破44k,YOLOv5的功能在迭代中越发强大与完善,目前支持多平台多框架,以及涵盖语义分割等功能,成为越来越强大的检测工具。
2023-12-18 17:04:29
1367
原创 英伟达GPU型号与架构介绍
随着人工智能应用的兴起和需求的增加,英伟达的数据中心业务有望持续高增长。显存: 显存即显卡内存,显存主要用于存放数据模型,决定了我们一次读入显卡进行运算的数据多少(batch size)和我们能够搭建的模型大小(网络层数、单元数),是对深度学习研究人员来说很重要的指标,简述来讲,显存越大越好。CUDA核心数量:CUDA是NVIDIA推出的统一计算架构,NVIDIA几乎每款GPU都有CUDA核心,CUDA核心是每一个GPU始终执行一次值乘法运算,一般来说,同等计算架构下,CUDA核心数越高,计算能力会递增。
2023-11-27 11:12:59
2996
原创 80端口、8080端口和443端口的区分
当您在Web浏览器中输入一个URL时,如果使用https协议(例如,https://www.zonghengcloud.com),浏览器会默认使用端口443与Web服务器建立安全连接,以确保数据在传输过程中受到加密保护。端口8080通常不是标准HTTP流量的目标端口,通常需要显式指定(例如,http://localhost:8080)。端口443用于安全的HTTPS通信,传输加密的Web内容,用于保护敏感数据的安全传输。端口80用于标准HTTP通信,传输非加密的Web内容。
2023-11-02 16:25:05
2878
原创 激光雷达点云基础-点云滤波算法与点云配准算法
直通滤波器原理:在点云的指定维度上设置一个阈值范围,将这个维度上的数据分为在阈值范围内与不在阈值范围内,从而选择过滤与否。能够快速过滤掉用户自定义区间范围内的点云。在实际应用中,由于激光扫描采集的距离较远,但是根据功能需求的不同可能只关心一定区域内的数据,比如低速物流车的运营场景,可能在X方向只关心前后60米,Y方向只关心左右20米的范围。此时就可以利用直通滤波器提取出感兴趣区域,可较快剔除部分点云,达到第一步粗处理的目的。条件滤波器。
2023-10-30 17:37:08
2107
原创 组合导航-IMU-GPS-RTK基本介绍
在实际应用中,需要利用 GPS、北斗等方式产生的信号进行初始化,结合惯导信号和卫星导航信号进行进行卡尔曼滤波处理,得出其最佳推算的定位信息。惯导比起卫星定位具有自身的技术优势,测量方法不依赖外界,短期精度高,能稳 定高频地输出信号。工作原理是通过感知物体在空间的角速度、线速度,进而获取物体的姿态、位置和速度等信息,实现对运动物体姿态和运动轨迹的测量,可以实现全天候全地点地工作。但惯导也有自身的缺陷,由于采用积分算法,定位误差随 载体运行不断累积。
2023-07-24 17:30:10
3415
原创 NLP入门:word2vec & self-attention & transformer & diffusion的技术演变
这一段时间大模型的相关进展如火如荼,吸引了很多人的目光;本文从nlp领域入门的角度来总结相关的技术路线演变路线。
2023-06-28 13:55:44
2114
原创 准确率、精确率、召回率、F1score和混淆矩阵
F-Score:权衡精确率(Precision)和召回率(Recall),一般来说准确率和召回率呈负相关,一个高,一个就低,如果两个都低,一定是有问题的。一般来说,精确度和召回率之间是矛盾的,这里引入F1-Score作为综合指标,就是为了平衡准确率和召回率的影响,较为全面地评价一个分类器。F1是精确率和召回率的调和平均。精确率代表对正样本结果中的预测准确程度,准确率则代表整体的预测准确程度,包括正样本和负样本。也叫查准率,即正确预测为正的占全部预测为正的比例(不准错,宁愿漏检,也不能让现有的预测有错)。
2023-04-13 11:17:13
1960
1
原创 Cannot load cudnn shared library. Could not load library libcudnn_ops_infer.so.8.
是我们在配置环境时经常遇到的错误,我们需要进行链接配置解决具体问题。
2023-03-22 09:15:36
1024
原创 Linux查看CUDA版本以及nvcc: command not found
在日常使用中,在配置镜像以及使用开源网站时经常需要查询CUDA版本,版本也确实十分的重要。一般的我们有三种常见的查询方式。
2023-03-20 15:33:49
7085
3
原创 模型压缩- 剪枝/量化/蒸馏/AutoML
原因深度学习训练得到的网络复杂度高,参数冗余。解决方式(1)线性或非线性量化(2)结构或非结构剪枝(3)网络结构搜索(4)权重矩阵的低秩分解(5)蒸馏目的优化精度、性能、存储……使得可以在一些场景和设备上进行相应模型的部署。...
2022-09-01 10:58:00
283
原创 手机镜头,噪声建模,ISP,ISO与analog gain
最近在做夜景去噪声的low level工作,相关工作可以说是非常的难以及boring。因为这种low level你必须往上层,往底层走,甚至说需要了解ISP相关的知识;因此这段时间对于相关知识进行了大量的学习与了解。......
2022-08-25 12:16:45
3156
1
原创 BM3D、域变换与Non-Local
近期在了解Non-local相关知识,之前对Non-local学习的不够深入,这一次算是了解的更为全面一些,在此予以总结和记录。BM3D作为一款非常经典的图像去噪算法,可以从其中学习到非常多的可以应用在深度学习领域的idea。借助于文章传统图像降噪算法之BM3D原理详解 我们一起学习一下BM3D算法的内核与精神。BM3D 主要用于去除图像中的加性高斯白噪声(Additive White Gaussian Noise, AWGN)。这里主要涉及三个概念:加性:即噪声其对原始信号的影响可表示为线性叠加。对于
2022-07-08 14:14:24
1080
原创 计算机基础知识
本部分内容主要是在下载软件时候遇到,之前未做详细了解。i386:是指兼容Intel 80386处理器x86或80x86是英代爾Intel首先开发制造的一种微处理器体系结构的泛称。該系列較早期的處理器名稱是以數字來表示,並以“86”作為結尾,包括Intel 8086、80186、80286、80386以及80486,因此其架構被稱為“x86”。由於數字並不能作為註冊商標,因此Intel及其競爭者均在新一代處理器使用可註冊的名稱,如Pentium。現時Intel把x86-32稱為IA-32,全名為Intel
2022-07-07 19:31:00
277
原创 深度学习正则化(L1 norm/L2 norm)以及dropout理解
正则化知识其实是深度学习领域较为基础的知识点,初入此门的时候受限于正则化三个字的逼格,一直不求甚解;后期虽然了解但也仅限于L1和L2范数而已。恰巧上周在谢毅博士的课上旁听,讲到多拟合相关知识,后续和捷文讨论transformer内部的dropout为何还广泛使用,由此总结下正则化相关内容。1、何为正则化首先看百度百科的一部分解释:正则化就是对最小化经验误差函数上加约束,这样的约束可以解释为先验知识(正则化参数等价于对参数引入先验分布)。约束有引导作用,在优化误差函数的时候倾向于选择满足约束的梯度减少的方
2022-05-19 18:11:55
2512
2
原创 最小二乘、梯度下降与反向传播
在阅读高翔博士的slam十四讲的过程中,有关于求解观测与估计值的最大似然问题引起了我比较好的好奇,并且顺着这个问题了解了自己之前一直困惑的梯度下降问题以及高斯牛顿方法,在此进行总结。1、前序1.1 贝叶斯公式首先问题是由作者根据贝叶斯法则将后验分布经过变换转为最大似然问题来解决的,直接求后验分布是困难的,但是求一个状态最优估计,是的在该状态下后验概率最大化,则是可行的。p(x,y | z,u) = p(z,u | x,y) * p(x,y) / p(z,u)p(z,u | x,y) :最大似然
2022-05-07 18:24:10
869
原创 Cython与pyx pyd格式-python调用c++
1、python与C++为何要结合当从事技术的人员提到 Python 的时候,经常会说到下面两个优点:写起来方便容易调用 C/C++ 的库然而实际上,第一点是以巨慢的执行速度为代价的,而第二点也需要库本身按照 Python 的规范使用 Python API、导出相应的符号。因此出现了CythonCython 可以让我们方便地:用 Python 的语法混合编写 Python 和 C/C++ 代码,提升 Python 速度调用 C/C++ 代码C语言是编译性语言,而Python则是解释性语言
2022-04-01 21:30:48
2372
5
原创 基于区域和基于边缘的图像分割
1、图像分割的概念图像分割是将图像分割成不同的区域或类别,并使这些区域或类别对应于不同的目标或者局部目标。每个区域包含具有相似属性的像素,并且图像中的每个像素都分配给这些类别之一。一个好的图像分割通常指同一类别的像素具有相似的强度值并形成一个连通区域,而相邻的不同类别的像素具有不同的值。分割技术可以是非上下文的(不考虑图像中特征和组像素之间的空间关系,只考虑一些全局属性,例如颜色或灰度值),也可以是上下文的(另外利用空间关系,例如对具有相似灰度的空间封闭像素分组)。从分割的技术来说,图像分割方法主要分为
2022-03-23 18:49:55
11384
原创 python 函数传递
最近在处理 模型计算量 模型参数量 问题时发现python内部可以将函数作为参数传递,坦白来说这是一种比较新颖的计算方法。ptflops 作为一种常用的模型参数量计算手段,在深度学习模型中使用范围广泛;之前在使用过程中发现模型多输入的情况下函数会报错。后面我这边是直接改动了源代码将input_res给更改为支持list输入的函数类型。实际上文章支持多输入,只是需要借用input_constructo,input_constructor可以作为变量或者函数整个的作为参数传递进入来对input_res解析,
2021-12-27 21:33:49
2027
原创 空间金字塔
空间金字塔是一个非常常见的网络结构,在之前的上色任务中,郭伟伟一直想让我花时间做一些有关于空间金字塔的实验,当时对空间金字塔了解不深,当然现在可能也只是浅尝辄止。空间金字塔结构可以理解为coarse-to-fine的逐步变换过程,在特征提取的维度可以说是充分利用了在大图片上分辨细节,在小图片上提取宏观维度的特征,达到了可变感受野地效果;同时resize之后的小图也会不断重复的输入空间金字塔子模块,可以说充分的利用了原始的input信息。从模拟人的角度出发,首先从尺度空间开始理解:找一张原分辨率1024×
2021-12-21 16:23:23
2644
原创 Deformable-convolution--可变形卷积
在目前的视频超分研究中,可变形卷积应用效果得到了非常大的认可,在与传统光流或者深度学习光流网络计算光流的直接pk中,因为其直接在特征域计算对齐的特性,在EDVR等网络实践中效果更佳。1. 原文解读Deformable Convolutional Networks-PDFDeformable Convolutional Networks-slides1.1 背景在计算机视觉领域,同一物体在不同场景,角度中未知的几何变换是检测/识别的一大挑战,通常来说我们有两种做法:(1)通过充足的数据增强,扩充足
2021-11-25 18:08:41
3498
原创 sobel算子 拉普拉斯算子以及散度与梯度的概念
在ECBSR论文的代码研究中,我发现关于ECBSR提出的多分支重参数化模型中,代码用到了sobel算子与laplace算子,很难判断这两个算子是为了论文的创新点还是真的有用,这块只能等待后续的对比实验。1、拉普拉斯算子首先是散度与梯度的概念:散度和旋度的物理意义是什么?贴一下原文回答作者的总结:通过物理来理解这四个概念还是比较容易的。通量是单位时间内通过的某个曲面的量;散度是通量强度(求解任一点的散度);环流量是单位时间内环绕的某个曲线的量;旋度是环流量强度(求解任一点的旋度)在此基础上
2021-10-25 20:25:41
4868
原创 H264编码和M-JPEG、HEVC
1、H264H264 是 MPEG-4 标准所定义的最新编码格式,同时也是技术含量最高、代表最新技术水平的视频编码格式之一,标准写法应该是H.264H264 视频格式是经过有损压缩的,但在技术上尽可能做的降低存储体积下获得较好图像质量和低带宽图像快速传输。H264压缩技术主要采用了以下几种方法对视频数据进行压缩。包括:帧内预测压缩,解决的是空域数据冗余问题。帧间预测压缩(运动估计与补偿),解决的是时域数据冗余问题。整数离散余弦变换(DCT),将空间上的相关性变为频域上无关的数据然后进行量化。
2021-10-21 17:57:24
5113
原创 Optical-flow和grid-sample和可变形卷积
1.摘要随着计算机视觉学界从图像理解转向视频理解,互联网用户从发布图片朋友圈转向发布短视频,人们对视频的研究和应用的关注不断增强。光流估计作为视频理解的隐形战士,等着我们去寻找其踪迹。 本文首先介绍了什么是视频光流估计;再介绍光流估计的算法原理,包括最为经典的Lucas-Kanade算法和深度学习时代光流估计算法代表FlowNet/FlowNet2;最后,介绍了视频光流估计的若干应用。希望对光流估计的算法和应用有个较为全面的介绍。2.介绍光流,顾名思义,光的流动。比如人眼感受到的夜空中划过的流星。在计
2021-10-13 18:23:47
1707
原创 Focal loss 和 GHM
Focal Loss for Dense Object Detection 是ICCV2017的Best student paper,文章思路很简单但非常具有开拓性意义,效果也非常令人称赞。GHM(gradient harmonizing mechanism) 发表于 “Gradient Harmonized Single-stage Detector",AAAI2019,是基于Focal loss的改进,也是个人推荐的一篇深度学习必读文章。1、Focal LossFocal Loss的引入主要是为了
2021-10-12 18:03:09
532
原创 图像视频降噪的现在与未来
全文核心部分内容来自于 https://zhuanlan.zhihu.com/p/106191981,即为腾讯研究院针对降噪的讲解PPT。在此之前首先讲述一下多帧降噪的相关原理,一、噪点产生的原因为什么手机在夜间拍摄会出现噪点呢?其实噪点的生成跟CMOS有很大关系。数码相机包括手机将光线和物体的信息通过镜头传输至CMOS过程中会产生热量,快门时间越长,CMOS所接收的光线照射时间越多,CMOS的工作时间也就越长。CMOS在长时间工作的时候,会产生热量,而这些热量会均匀得分布与CMOS每一个晶体单元
2021-09-26 15:19:34
1983
原创 卷积padding和反卷积原理探究
反卷积(Deconvolution)的概念第一次出现是Zeiler在2010年发表的论文Deconvolutional networks中,但是并没有指定反卷积这个名字,反卷积这个术语正式的使用是在其之后的工作中(Adaptive deconvolutional networks for mid and high level feature learning)。随着反卷积在神经网络可视化上的成功应用,其被越来越多的工作所采纳比如:场景分割、生成模型等。其中反卷积(Deconvolution)也有很多其他的叫
2021-09-14 11:26:19
1393
原创 RGB、YUV420、NV21、I420编码; raw转nv21转RGB代码
一、RGB与YUV首先了解视频编码为什么使用YUV420而不是rgb。那么需要了解两者的原理,看图说话。所以从内存的角度来说,yuv单位像素使用的内存更低,但是两者表示的效果是一致的,也可以认为rgb过度绘制了,把人眼无法分辨的区域也进行了绘制。下面看一下两者之间内存暂用对比,这里采用·rgb24对比RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。在一个22的像素区域,RRG暂用的字节数为22*3=12字节。那么用yuv表示,占用的字节数为4(Y)+1(u)+1(
2021-08-21 15:34:01
1592
原创 pytorch module内部模块增减
1、nn.conv说下个人的理解,在torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding, bias)中,conv2d会首先根据设定的in_channel 和 out_channel初始化相对应的weights和bias,但是可以仔细地查看最终卷积时候调用的函数,其实是对weight和input进行conv2d的卷积计算,所以其实最重要的维度对齐是由weight和bias控制的。 def _conv_for
2021-08-20 14:13:44
401
转载 torch.Tensor的4种乘法
torch.Tensor有4种常见的乘法:*, torch.mul, torch.mm, torch.matmul。本文抛砖引玉,简单叙述一下这4种乘法的区别,具体使用还是要参照官方文档。点乘a与b做*乘法,原则是如果a与b的size不同,则以某种方式将a或b进行复制,使得复制后的a和b的size相同,然后再将a和b做element-wise的乘法。标量Tensor与标量k做*乘法的结果是Tensor的每个元素乘以k(相当于把k复制成与lhs大小相同,元素全为k的Tensor)。>>
2021-08-12 09:46:20
835
原创 动态规划小结
动态规划的相关知识自己总是处于较为懵懂的阶段,可以说一直处于在不求甚解的阶段;难以下手,在知乎上面看到一篇比较好的回答,在此拾人牙慧对其进行总结。首先动态规划自我感觉是比较考验个人逻辑思维的,需要找到不同步骤之间的逻辑联系以及采用合适的方式来表达对应的逻辑关系,以下内容基本来自知乎:怎样学好动态规划动态规划,就是利用历史记录,来避免我们的重复计算。而这些历史记录,我们得需要一些变量来保存,一般是用一维数组或者二维数组来保存。下面我们先来讲下做动态规划题很重要的三个步骤:一般来说动态规划题目都需要借助于
2020-12-17 17:57:11
133
原创 python gevent 协程撰写
在图像超清项目中,服务端的耗时优化是通过gevent的协程,进而服务端进行远端的并发调用完成的。因此对服务端的协程进行了较为深入的理解,在此进行总结和整理,方便后面对此方面知识的使用。python语言因为进程锁的原因导致多线程被锁死,尽管Python完全支持多线程编程, 但是解释器的C语言实现部分在完全并行执行时并不是线程安全的。 实际上,解释器被一个全局解释器锁保护着,它确保任何时候都只有一个Python线程执行。 GIL最大的问题就是Python的多线程程序并不能利用多核CPU的优势 (比如一个使用了
2020-12-14 11:48:21
258
原创 Python copy
copypython 中的copy是一件非常有趣的事情,会带来许多问题与疑惑。直接赋值:其实就是对象的引用(别名)。浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。关于浅拷贝和深拷贝的区别,Python 的 document 是这样解释的:The difference between shallow and deep copying is only relevant for compo
2020-12-09 15:18:34
143
原创 Git分支语法及其使用
最近在原来的xx算法基础上开发迭代yy算法,对于git的分支使用要求大大提高,因此撰写本文总结有关于git分支的入门使用方法。1、分支建立、切换与删除分支建立:$ git checkout -b iss53这一句命令相当于如下两句命令:$ git branch iss53$ git checkout iss53git branch可以查看目前开发的目录处于master或者分支下,git checkout相当于是分支切换语句。2、分支删除:$ git branch -d hotfix
2020-12-07 11:49:14
367
原创 深度学习中的量化学习与量化训练
量化(quantized),即将神经网络前向过程中浮点数运算量化为整数运算,以达到计算加速的目的。通常是指将float32转化为int8进行运算,经实践部署dsp上能提升2.5~3倍左右的推理速度。我们知道对浮点数的量化操作是将其从一个高维度映射到低维度的转换过程。参考文章见:量化训练:Quantization Aware Training in Tensorflow(一)量化训练:Quantization Aware Training (二)大约就是下图这样,数据会集中到非常狭窄 (-127,12
2020-12-02 20:01:44
3994
转载 VSCode使用技巧
VSCode本身是一款非常好用的轻量级编辑器,初识这一编辑器是在智行者的冯大佬指导下进行的,后面自己也逐渐喜欢上了这款IDE;突然很怀念智行者的小伙伴们!主命令框 Command Palette最重要的功能就是 F1 或 Ctrl+Shift+P 打开的命令面板了,在这个命令框里可以执行VSCode的任何一条命令,可以查看每条命令对应的快捷键,甚至可以关闭这个编辑器。比如常见的indent ...
2020-12-02 11:59:44
1009
原创 Git个人使用经验
1、 git loggit log主要是用于github代码的版本管理,可以进行不同多个历史版本代码的回滚。回滚修改记录:方法1: git reset --hard HEAD ^ ( ^ 表示回到上一个版本,如果需要回退到上上个版本的话,将HEAD^改成HEAD^^, 以此类推。那如果要回退到前100个版本,这种方法肯定不方便,我们可以使用简便命令操作:git reset --hard ......
2020-11-10 17:12:59
357
原创 CNN网络知识整理
假定当前输入图片大小为224x224x3(rgb三通道),输出是32位深度,卷积核尺寸为5x5。那么我们需要32个卷积核,每一个的尺寸为5x5x3(最后的3就是原图的rgb位深3),每一个卷积核的每一层是5x5(共3层)分别与原图的每层224x224卷积,然后将得到的三张新图叠加(算术求和),变成一张新的feature map。 每一个卷积核都这样操作,就可以得到32张新的feature map......
2020-11-07 15:55:49
1755
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人