自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 yolov8模型结构

YOLOv1:2015年Joseph Redmon和 Ali Farhadi等 人(华盛顿大学)YOLOv2:2016年Joseph Redmon和Ali Farhadi等人(华盛顿大学)YOLOv3:2018年Joseph Redmon和Ali Farhadi等人(华盛顿大学)YOLOv4:2020年Alexey Bochkovskiy和Chien-Yao Wang等人YOLOv5:2020年Ultralytics公司YOLOv6:2022年美团公司YOLOv7:2022年Alexey Boc

2024-03-13 22:15:04 467

原创 模型的参数量、计算量、延时等的关系

1.相同 FLOPs 的两个模型,它们的延时可能会差很多。例如某个模型需要256000个浮点参数定义,转化为bit 乘以32得8192000bit,再除8转化为Byte,1024KB,也就是1M,那么这个模型大小约为1M。2.计算量:FLOPs,Floating Point Operations,浮点运算次数,用来衡量模型计算复杂度。4.对于并行度而言,在相同的 FLOPs 下,具有高并行度的模型可能比另一个具有低并行度的模型快得多。2.在相同的 FLOPs 下,MAC 大的模型将具有更大的延时。

2024-03-13 22:03:40 661

原创 Vision Transformer结构解析

transformer于2017年的Attention is all your need提出,该模型最大的创新点就是将transformer应用于cv任务。论文题目:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale论文链接:https://arxiv.org/pdf/2010.11929.pdf。

2024-03-07 19:02:46 639

原创 softmax和sigmoid的区别

公式:sigmoid(x)=11+e−xsigmoid(x) = \frac{1}{1 + e^{-x}}sigmoid(x)=1+e−x1​函数曲线如下:导数公式:f(x)′=e−x(1+e−x)2=f(x)(1−f(x))f(x)\prime = \frac{ e^{-x}}{(1 + e^{-x})^2} = f(x)(1-f(x))f(x)′=(1+e−x)2e−x​=f(x)(1−f(x))导数曲线如下:sigmoid代码:softmax公式:softmax(zi)=zi∑j=1nezjso

2024-03-06 22:26:34 361

原创 CLIP模型

RN101:RN50X4:RN50X16:RN50X64VB32:VB16:VL14:

2024-03-06 17:09:07 1175 1

原创 linux操作命令

统计当前文件夹文件数量:ls -l | grep “^-” | wc -l统计当前文件夹数量递归:ls -lR | grep “^-” | wc -l当前文件夹占用总大小:du -sh当前目录下每个文件和目录的总大小,并以易读的方式显示:du -sh *当前目录下大小信息,按照大小逆序排列:du -sh * | sort -hr统计home目录下每个子目录的总大小,并以可读的方式显示结果:sudo du -sh /home/* | awk ‘{ print $2 ": " $1}’

2024-02-05 10:57:16 320

转载 python调用C语言接口

在底层开发中,一般是使用C或者C++,但是有时候为了开发效率或者在写测试脚本的时候,会经常使用到python,所以这就涉及到一个问题,用C/C++写的底层库,怎么样直接被python来调用?python作为一门胶水语言,当然有办法来处理这个问题,python提供的方案就是ctypes库。

2023-04-25 16:54:19 1198 1

原创 毫米波雷达测量原理

波长1~10mm的电磁波,频率为30~300GHz,基于其工作模式可以分为“脉冲”和“连续波”两种。而FMCW调频连续波是最常用的车载毫米波雷达。

2023-04-25 10:55:59 741

原创 sort目标跟踪算法

sort目标跟踪算法sort代码匈牙利算法卡尔曼滤波

2022-05-22 18:47:44 2475

原创 坐标系变换中的位置计算方法

坐标系变换位置计算目标旋转坐标系旋转

2022-04-08 17:25:50 450

原创 git使用方法

git使用方法git代码提交流程git开始gitlab添加秘钥创建本地仓库,并与远程仓库进行关联初始化本地仓库把代码推到远程仓库分支git代码提交流程git status:用于查看上次提交之后是否有对文件进行再次修改git add . :将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录git commit -m "message" :将暂存区内容添加到本地仓库中,并添加注释git checkout:表示核查工作区相对于版本库修改过的文件git diff:用来比较file文件的改

2021-10-16 10:00:15 152

原创 进制相关知识

进制相关知识进制对照表英文表示C++格式转换说明符进制对照表英文表示1、BIN:binary,二进制;2、OCT:octal,八进制;3、DEC:decimal,十进制;4、HEX:hexadecimal,十六进制。C++格式转换说明符 %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E) 浮点数指数输

2021-09-13 19:21:28 259

原创 卡尔曼滤波算法应用

卡尔曼滤波算法应用Kalman算法简介Kalman算法应用场景Kalman滤波和贝叶斯滤波的关系Kalman滤波计算步骤Kalman计算公式和opencv对应关系Kalman算法简介1.卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。2.由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。3.卡尔曼滤波算法是对贝叶斯滤波的一种具体实现。4.卡尔曼滤波算法本质就是利用两个正态分布的融合仍是正态分

2021-08-29 13:01:23 5520

原创 SVM支持向量机

文章推荐:链接: 零基础学SVM—Support Vector Machine(一)链接: 零基础学SVM—Support Vector Machine(二)链接: SVM详细讲解

2021-03-19 14:25:42 95

原创 神经网络BN层batch normalization参数计算

神经网络BN层batch normalization参数计算作用计算过程训练阶段预测阶段作用BN层一般放在线性层或卷积层后面,激活函数前面,作用如下:1.加快网络收敛;因为每层的数据都转换为同一的分布,这样会加快训练速度。2.防止梯度爆炸和梯度消失;因为BN会使非线性变换函数的输入值落入对输入比较敏感的区域。3.防止过拟合,提升泛化能力。因为BN求均值和方差是基于同一个batch内的样本,使网络不会朝一个方向学习。计算过程为什么会有放缩系数γ\gammaγ和平移系数β\betaβ?因

2021-02-27 13:14:30 7295

原创 神经网络优化方法总结

神经网络优化方法总结

2021-01-22 15:23:23 191

原创 图像滤波器算法总结及代码实现

图像滤波器算法总结概述均值滤波方框滤波高斯滤波中值滤波双边滤波概述线性滤波:方框滤波、均值滤波、高斯滤波非线性滤波: 最大最小值滤波、中值滤波、双边滤波高通滤波:去掉低频信号,留下高频信号。留下图像边界。低通滤波:去掉高频信号,留下低频信号。去噪,模糊图像。均值滤波一种低通线性滤波器,可以用来消除图像尖锐噪声,实现图像平滑、模糊。opencv代码:cv2.blur(img, (5, 5))python代码实现:def blur(img, size): mask = np.on

2021-01-21 17:35:32 914

原创 图像二值化代码实现

图像二值化代码实现固定阈值二值化Otsu 阈值二值化自适应阈值二值化固定阈值二值化opencv实现:ret, th = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)cv2.imshow('opencv', th)python实现:thresh = 127new_img = np.zeros((h,w),np.uint8)for i in range(h): for j in range(w): if gray[i,

2021-01-18 20:54:13 2292

原创 SURF特征提取

SURF特征提取概述算法流程相比SIFT改进的方面代码实现概述SURF,全称Speeded-up Robust Feature,是SIFT算法的改进版和加速版,综合性能更优。由Herbert Bay发表在2006年的欧洲计算机视觉国际会议(Europen Conference on Computer Vision,ECCV)上。SURF算法利用了积分图、特征描述子降维提升了计算效率。算法流程SURF算法的基本流程和SIFT一样,但是在特征提取、尺度空间、特征点主方向和描述子方面会有不同。SURF

2021-01-17 16:46:47 3147 1

原创 SIFT特征提取

SIFT特征提取概述算法原理及流程建立高斯差分金字塔极值点检测确定关键点的主方向构建关键点描述符概述SIFT算法由D.G.Lowe 1999年提出,2004年完善总结。SIFT (Scale-invariant feature transform), 尺度不变特征转换,是一种图像局部特征提取算法,它通过在不同的尺度空间中寻找极值点(特征点,关键点)的精确定位和主方向,构建关键点描述符来提取特征。SIFT提取的关键点具有尺度不变性、旋转不变性,而且不会因光照、仿射变换和噪音等因素而干扰。SIFT所查找

2021-01-17 15:25:13 7022 2

原创 FAST角点检测

FAST角点检测概述算法流程算法特点代码实现概述FAST,全称Features From Accelerated Segment Test,是一种快速的角点检测算法。该算法的核心思想是加上合适的阈值t来和邻域像素的灰度值进行比较来确定是否角点。算法流程1.在图像中选取一个像素P,其像素值为Ip;2.以该像素点为中心画一个半径为3像素的离散化圆,这个圆的边界上有16个像素;3.设置一个阈值t;4.如果在这个大小为16个像素的圆上有n个连续的像素值都比Ip+t大,或者都比Ip−t小,那么它就是一

2021-01-17 11:47:29 1266

原创 Harris角点检测

Harris角点检测原理灰度变化描述检测流程及代码Opencv函数算法特点原理Harris角点检测是在灰度图上,设置一个局部窗口向多个方向随意平移,通过判断窗口内像素值有无明显变化判断有无角点的一种角点检测方法。灰度变化描述检测流程及代码1.计算图像(灰度图)的水平和竖直方向的梯度Ix,Iy;img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)Dx = cv2.Sobel(img,cv2.CV_32F,1,0,ksize=ksize)Dy = cv2.S

2021-01-15 20:54:27 303 1

原创 交叉熵损失函数Cross-entropy loss及比较

交叉熵损失函数Cross-entropy loss及比较交叉熵和Sigmoid交叉熵和对数损失函数交叉熵和极大似然函数交叉熵和平方差损失函数交叉熵和Sigmoidsigmoid一般在神经网络中作为激活函数,交叉熵作为损失函数。但是交叉熵可以由sigmoid推导而来。交叉熵和对数损失函数两者本质上没有差别。交叉熵和极大似然函数联系:交叉熵可由极大似然函数在伯努利分布的条件下推导出来,最小化交叉熵函数的本质就是对数似然函数的最大化。区别:交叉熵函数使用来描述模型预测值和真实值的差距大小,越

2021-01-15 19:28:44 1957

原创 PCA主成分分析

PCA主成分分析概述计算过程求解协方差矩阵的特征值和特征向量PCA与SVD的联系概述主成分分析(Principal Component Analysis, PCA),是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。其目的是找到k个坐标轴使得数据集在新的坐标轴下的方差最大。计算过程1.样本矩阵进行均值化;2.计算协方差矩阵;3.通过特征值分解或SVD分解计算协方差矩阵的特征值与特征向量

2021-01-08 21:56:53 350

原创 SVD奇异值分解

SVD奇异值分解概述定义求解过程图像压缩案例概述SVD应用:1.用于数据降维、压缩和去噪;2.用于PCA降维;3.推荐系统、自然语言处理等。SVD诞生:Ax=λx,对A进行特征值分解A=WΣWT要求A必须为方阵、实对称矩阵(即A=AT),如果A不是方阵,SVD可以对矩阵A进行分解。定义求解过程图像压缩案例import numpy as npimport cv2import matplotlib.pyplot as pltpath = 'lena.jpg'data = cv

2021-01-07 21:37:25 296 2

原创 最大似然估计、贝叶斯估计和最大后验估计

最大似然估计、贝叶斯估计和最大后验估计参数估计最大似然估计概述前提假设核心思想推导过程求解过程最大后验估计概述前提假设核心思想推导过程贝叶斯估计最大似然估计和最大后验估计的对比参数估计参数估计是根据从总体中采样来估计总体分布中包含的未知参数的方法。参数估计包括点估计和区间估计。点估计方法:矩估计、最小二乘估计、极大似然估计、贝叶斯估计;区间估计:利用已知的抽样分布、利用区间估计与假设检验的联系、利用大样本理论。关系:区间估计 = 点估计 ± 边际误差最大似然估计概述最大似然估计MLE:ma

2020-12-23 17:43:08 667

原创 目标检测map计算

目标检测map计算一级目录一级目录

2020-12-02 18:44:57 250

原创 yolov5和yolov4、yolov3对比

yolov5和yolov4、yolov3对比性能曲线模型结构iou-Loss性能曲线MSCOCO数据集的测试结果:模型结构yolov5模型大小:iou-Loss回归框loss的发展路线:Smooth L1 Loss—— IoU Loss(2016)——GIoU Loss(2019)——DIoU Loss(2020)——CIoU Loss(2020)...

2020-12-01 20:55:21 13611 1

原创 卷积神经网络参数量和计算量内存计算

神经网络常用模型参数量一级目录二级目录一级目录二级目录

2020-11-17 20:41:51 4208 1

原创 拉普拉斯算子Laplace

拉普拉斯算子Laplace概述算子模板应用原理opencv代码效果展示概述定义:拉普拉斯算子是n维欧几里德空间中的一个二阶微分算子,定义为梯度(▽f)的散度(▽·f),函数 f 的拉普拉斯算子▽2f 又可以写成▽·▽f。拉普拉斯算子是一种各向同性微分算子,它具有旋转不变性。一个二维图像函数的拉普拉斯变换是各向同性的二阶导数。求导阶数:二阶求导。拉普拉斯算子 (Laplace) 作用:1.对图像进行边缘检测;2.锐化图像;3.判断模糊。算子模板邻域系统是4或8邻域的Laplacian

2020-11-17 16:16:21 15666

原创 图像仿射变换和透视变换

仿射变换和透视变换概述仿射变换透视变换概述1.仿射变换:应用在二维平面中,主要包括旋转,平移,缩放,裁剪,反转,可以保证图像物体的形状的平行性。2.透视变换:应用在三维空间中,不能保证物体的平行性。3.仿射变换是透视变换的子集。仿射变换仿射变换是一种二维坐标到二维坐标之间的线性变换,任意的仿射变换都能表示为乘以一个矩阵(线性变换),再加上一个向量 (平移) 的形式。变换矩阵为2x3维度。方程组有6个未知数,需要求解3组映射点,三个点确定一个平面。#创建一个2*3的矩阵#p1、p2分别为

2020-11-11 21:36:10 453

原创 sobel和canny边缘检测算子

sobel和canny边缘检测算子sobel算子步骤具体过程代码实现canny算子步骤具体过程代码实现sobel算子和canny算子比较sobel算子sobel算子是一种离散微分算子,它通过计算图像亮度值变化的近似梯度,从而识别出图像边缘。步骤1.高斯平滑;2.微分求导。具体过程1.高斯模糊平滑目的是为了去噪,防止把噪点也检测为边缘。2.对原图分别进行水平方向和垂直方向的卷积(x和y两个方向求导),来计算某个像素的梯度变化幅值和方向。3.给定一个阈值就可以得到sobel算子计算出的图像边缘

2020-10-29 18:07:39 5323

原创 yolov4/yolov3预测代码解析

yolov4/yolov3预测代码解析代码组成预测框解码计算每个特征图和对应的anchorsReshape和特征图合并NMS处理代码组成预测部分由两步组成:1.由特征图获得全部的预测框2.NMS对所有的预测框进行处理预测框解码计算每个特征图和对应的anchors该部分计算每个预测框的中心点坐标、wh、是否有目标的概率,目标类别的概率四个值。def __decode_feature(feature, anchor, width, height): shape = tf.shape(fe

2020-10-29 16:48:42 819

原创 opencv求解图像轮廓记录

opencv求解图像轮廓记录寻找轮廓绘画轮廓计算轮廓的特征点到轮廓的距离寻找轮廓针对二值化图像,轮廓是针对白色物体的,所以先反色,不然会有图像大框。函数:cv2.findContours()import cv2img = cv2.imread('1.jpg')img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)ret, thresh = cv2.threshold(img_gray, 0, 255, cv2.THRESH_BINARY_INV + c

2020-10-24 12:22:53 142

原创 Keras Application常用模型记录

Keras Application常用模型记录模型参数模型代码模型权重下载模型参数模型代码链接: https://github.com/keras-team/keras-applications/tree/master/keras_applications.模型权重下载链接: https://github.com/fchollet/deep-learning-models/releases.vgg/resnet权重链接: https://github.com/fchollet/deep-le

2020-10-20 17:23:47 222

原创 keras模型部署服务器

keras模型部署server端client端server端from flask import Flask, request, Responseimport base64import flaskimport jsondef base64_decode_image(a): if sys.version_info.major == 3: a = bytes(a, encoding="utf-8") return base64.b64decode(a)app =

2020-08-28 14:16:10 522

原创 python中变量名和字符串的相互转换

python中变量名和字符串的相互转换字符串作为变量名变量名作为字符串字符串作为变量名可以使用locals(),globals(),vars()进行转换。代码示例:ls = ['A', 'B', 'C']for i in ls: globals()[i] = [1,2,3] print(A,B,C)输出为:[1, 2, 3] [1, 2, 3] [1, 2, 3]变量名作为字符串代码示例:import inspectdef retrieve_name(var):

2020-08-24 18:09:02 6710

原创 vgg系列网络

vgg系列网络创新点网络结构参数量和精度对比代码实现创新点vgg提出了通过3x3大小的卷积滤波器和2x2的最大池化层堆叠,将网络深度增加到16-19层,显著提升了大规模图像识别的准确性。网络结构其中,D、E分别为vgg16和vgg19网络。参数量和精度对比参数量可以看出,虽然从A到E的网络逐渐加深,但是网络的参数量并没有增长很多,这是因为全连接层没变。精度可以看出,vgg16的错误率更低一点。代码实现以vgg16网络为例:# 224,224,3image_input = In

2020-08-16 09:46:50 1274

原创 resnet系列网络

resnet系列网络解决的问题创新点网络结构resnet和vgg参数量对比解决的问题resnet的提出,是为了解决随着网络深度的增加,出现的精度退化问题,导致更高的训练误差。resnet提升了网络的深层表达能力。创新点为了解决优化的难题,提出了残差块结构。假设原始的映射为H(x),则残差网络拟合的映射为:F(x)=H(x)-x。网络结构其中,残差块结构有两种:ResNet-50以下(resnet18/34)使用两个3x3卷积结构。ResNet-50/101/152采用bottlenec

2020-08-15 21:58:13 3933

原创 文本识别网络CRNN

CRNN文字识别网络简介网络结构CNN层LSTM层CTC Loss代码实现简介CRNN,全称Convolutional Recurrent Neural Network,卷积循环神经网络。它是一种基于图像的序列识别网络,可以对不定长的文字序列进行端到端的识别。它集成了卷积神经网络(CNN)和循环神经网络(RNN)的优点。网络结构CRNN网络结构由CNN + BLSTM + 转录层(CTC Loss)组成。CNN层CNN层可以采用VGG网络,如下所示特征提取过程中用了7次Convolutio

2020-08-02 18:46:13 1964 1

空空如也

空空如也

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

TA关注的人

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