im2col原理详解 图像的卷积计算有很多种算法,目前各个开源框架常用的都是im2col+gemm的方式该方法的做法,就是将卷积过程转化为矩阵乘法,其好处在于可以通过优化矩阵乘算法,优化计算过程,并且有利于CUDA等并行计算设有图像A,它的一个通道数据如下:卷积核W,展开为列向量如下:我们将每次卷积计算时,卷积核覆盖的元素分别列出如下:将这些展开的元素行向量组合为矩阵如下:则卷积过程可表示为如下矩阵乘:则每一次卷积运算可表示如下:一些细节图像的多
回归分析 回归分析回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。该技术通常用于预测分析,时间序列模型,特征(变量)之间的因果关系。常用回归技术回归技术的划分主要参考三个度量自变量个数因变量类型回归线形状主要的回归算法如下:Linear Regression线性回归Logistic Regression逻辑回归Polynomial Regression多项式回归Stepwise Regression逐步回归Ridge Regression岭回归
DNN神经网络的反向传播算法 我之前写过全连接神经网络的反向传播算法(BP算法),连接:https://blog.csdn.net/qq_41398808/article/details/90904934这篇文章是在我初学机器学习时写的文章,所以这篇文章是根据西瓜书中的推导过程进行讲述的,权重梯度的计算是针对所有参数逐个推导的,而在现实应用中是逐层递推的。求导过程涉及矩阵求导,请自行查询相关文档一:让我们换个视角...
darknet中的图像缩放算法(双线性内插值法) 一:双线性内插值法设原图像的height,width,channels分别为h,w,c目标图像(resize结果)的height,width,channels分别为h_r,w_r,c_r则长宽的调整比例分别为:,那么目标图像中的像素点(a, b, c),对应原图像的像素点...
由darknet框架源码窥探CNN中的batch normalization(批次归一化)的实现 batch normalization用于卷积层后的归一化。卷积神经网络每一层的参数更新后会导致数据分布的变化,使得网络学习更加困难,损失变化也更加振荡。通过归一化后,将每一层的输出数据归一化在均值为0方差为1的高斯分布中。批次归一化的方法于z-score数据标准化的方法是一致的,计算方法如下:设数据集,数据集的均值为,数据集的标准差为对A中的所有数据进行z-score标准化,计算过程...
yolov3 + CCTSDB (交通标志识别)——使用yolov3原始网络结构训练数据集 darknet框架的下载及配置本文不再叙述。CCTSDB:CSUST Chinese Traffic Sign Detection Benchmark 中国交通数据集由长沙理工大学综合交通运输大数据智能处理湖南省重点实验室张建明老师团队制作完成。来源于 A Real-Time Chinese Traffic Sign Detection Algorithm Based on Modified ...
yolov3源码解析——图像数据读取test_detector(02) test_detector函数中image **alphabet = load_alphabet();实现对data/labels下的图像数据进行读取,本文主要解读这一部分设计的内容。load_alphabet()函数在include/darknet.h中声明,在src/image.c中实现,代码如下:image **load_alphabet(){ int i, j; ...
yolov3源码解析——文件读取方式以及存储引用方式 虽然在上一篇文章中说到了相关内容,但是不够具体,本文我们把这一部分的代码单独分析,更清楚的分析源代码中的文件引用方式。先引出两个结构体,定义在include/darknet.h中:typedef struct node{ void *val; struct node *next; struct node *prev;} node;typedef struct...
yolov3源码解析——test_detector(01) 上文说到darknet.c中主函数detect条件分支,即调用test_detector函数下面对test_detector函数进行逐句分析,该函数在include/darknet.h中声明,在examples/detector.c中实现,源码如下:void test_detector(char *datacfg, char *cfgfile, char *weightfile, cha...
yolov3源码解析——主函数调用过程 实验环境:Ubuntu 18.4.0.1文本编辑器:Vscodeyolo官网上,调用主函数的命令如下:./darknet detect cfg/yolov3.cfg cfg/yolov3.weights data/person.jpg可以看出输入的参数分别是(他们都是以字符串形式输入的):0:./darknet 1:detect 2:cfg/yolov3.cfg 3:c...
大律法(OTSU) ——图像数据二值化 二值化的目的,是确定一个像素值,以像素为分界,将图像划分为前景和背景,前景的像素值取相同值,背景的像素也取相同值,从而将前景和背景的差异,在图像中最大化,或者说可以突出前景或者背景信息。二值化可以有效的降低噪声,并且可以一定程度的增强目标特征我使用一下,这篇文章的配图:https://blog.csdn.net/bigat/article/details/80889636该文是关于图像...
数字图像处理——中值滤波降噪 使用滤波模板中像素点的中值点作为目标像素,这就称为中值滤波降噪(顾名思义)Python实现过程如下:图像数据为:图像中存在典型的椒盐噪声,而中值降噪,对椒盐噪声的作用是非常有效的。导入要使用的库:import PIL.Image as Imageimport matplotlib.pyplot as pltimport numpy as np读入图片数据,并可...
数字图像处理——加权均值滤波器 均值滤波器中,模板内像素的权重都为一,其只是简单的像素加法平均而,加权均值滤波器,对模板中的像素点赋予不同的权重,求的是像素的加权平均,典型的模板,例如高斯模糊,其模板权重呈现钟型的高斯分布: 下面使用上式表示...
数字图像处理——平滑线性滤波器 平滑线性滤波器的输出为滤波模板中像素的简单平均值,所以又称为均值滤波器一般滤波模板的大小m*n,m和n都是奇数,这样目标像素才能在模板的正中心以下是使用Python的实现过程,图像数据使用与《数字图像处理》——刚萨雷斯,书中相同图像数据原数据为单通道灰度图像,上图可能已经不是单通道了,所以数据集请自行寻找(CSDN上就有)要使用的库:from PIL import Im...
数字图像处理——比特图像分层与重构 一:比特图像分层常见的256级灰度图片中,每个像素灰度值由8个比特组成,分别将这8个比特分离,形成8幅新的图片,称为比特图像分层。举个????:有一副四个像素(2*2)的图像,像素值分别为1,2,3,4: 这些值...
数字图像处理——灰度级分层 灰度级分层的两种基本形式如下:一:将感兴趣的范围内的灰度值显示为一个值,而其他灰度值显示为另一个值二:将感兴趣的范围内的灰度值变亮或变暗,而其他灰度值保持不变Python实现过程如下:使用的图像资源为:定义新图片生成函数和分层函数:def logarithm_transformation(img, func): img_data = np.array(img...
线性代数的本质——矩阵乘法与线性变换复合 本文是对BiliBili上的一个系列视频的学习记录,非常推荐大家去B站上观看,记得三连,不要白嫖,链接:https://www.bilibili.com/video/av6731067?p=5很多时候,我不单单满足于描述单一的线性变换,在一个变换后再进行另一个变换,而这两个连续作用的线性变换,其结果可以表示为一个单一变换的结果,称为前n个独立连续线性变幻的“复合变换”。例如:对向量先做旋转...
基本的灰度变换函数——幂律(伽马)变换 幂律变换的基本形式为:,其中和是常数有时考虑到偏移量,上式也写为。然而,偏移量是一般显示标定问题,因而作为一个结果,通常在上式中忽略不计。与对数变换情况类似,部分值得幂律曲线将较窄范围的暗色值,映射位较宽的目标输出值,相反,对于输入高灰度级值时也成立。>1的值所生成的曲线和<1所生成的曲线的效果完全相反,当c==1时简化为了恒等变换。下面使用Python实现幂律变换:...
基本的灰度变换函数——对数变换 对数变换的通用形式为:,其中c是一个常数,由对数函数的性质可知,改变换将范围较窄的低灰度值映射为较宽范围的灰度值,相反地,对高输入灰度值也是如此。我们使用这种类型的变换来扩展图像中,暗像素的值,同时压缩更高灰度级的值。反对数变换的作用与此相反。下面用Python实现图像的对数变换:使用的图片数据为:导入要使用的第三方库:from PIL import Imagei...