- 博客(141)
- 资源 (20)
- 问答 (2)
- 收藏
- 关注
原创 回归分析
回归分析回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。该技术通常用于预测分析,时间序列模型,特征(变量)之间的因果关系。常用回归技术回归技术的划分主要参考三个度量自变量个数因变量类型回归线形状主要的回归算法如下:Linear Regression线性回归Logistic Regression逻辑回归Polynomial Regression多项式回归Stepwise Regression逐步回归Ridge Regression岭回归
2021-05-01 08:59:31 730 1
原创 DNN神经网络的反向传播算法
我之前写过全连接神经网络的反向传播算法(BP算法),连接:https://blog.csdn.net/qq_41398808/article/details/90904934这篇文章是在我初学机器学习时写的文章,所以这篇文章是根据西瓜书中的推导过程进行讲述的,权重梯度的计算是针对所有参数逐个推导的,而在现实应用中是逐层递推的。求导过程涉及矩阵求导,请自行查询相关文档一:让我们换个视角...
2020-04-06 15:24:31 798
原创 darknet中的图像缩放算法(双线性内插值法)
一:双线性内插值法设原图像的height,width,channels分别为h,w,c目标图像(resize结果)的height,width,channels分别为h_r,w_r,c_r则长宽的调整比例分别为:,那么目标图像中的像素点(a, b, c),对应原图像的像素点...
2020-03-31 22:20:27 1311 2
原创 由darknet框架源码窥探CNN中的batch normalization(批次归一化)的实现
batch normalization用于卷积层后的归一化。卷积神经网络每一层的参数更新后会导致数据分布的变化,使得网络学习更加困难,损失变化也更加振荡。通过归一化后,将每一层的输出数据归一化在均值为0方差为1的高斯分布中。批次归一化的方法于z-score数据标准化的方法是一致的,计算方法如下:设数据集,数据集的均值为,数据集的标准差为对A中的所有数据进行z-score标准化,计算过程...
2020-03-31 17:42:27 796
原创 yolov3 + CCTSDB (交通标志识别)——使用yolov3原始网络结构训练数据集
darknet框架的下载及配置本文不再叙述。CCTSDB:CSUST Chinese Traffic Sign Detection Benchmark 中国交通数据集由长沙理工大学综合交通运输大数据智能处理湖南省重点实验室张建明老师团队制作完成。来源于 A Real-Time Chinese Traffic Sign Detection Algorithm Based on Modified ...
2020-01-26 17:05:25 9066 32
原创 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; ...
2019-12-17 16:16:59 1062
原创 yolov3源码解析——文件读取方式以及存储引用方式
虽然在上一篇文章中说到了相关内容,但是不够具体,本文我们把这一部分的代码单独分析,更清楚的分析源代码中的文件引用方式。先引出两个结构体,定义在include/darknet.h中:typedef struct node{ void *val; struct node *next; struct node *prev;} node;typedef struct...
2019-12-16 13:46:23 432
原创 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...
2019-12-15 22:37:51 878
原创 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...
2019-12-12 20:24:42 741
原创 大律法(OTSU) ——图像数据二值化
二值化的目的,是确定一个像素值,以像素为分界,将图像划分为前景和背景,前景的像素值取相同值,背景的像素也取相同值,从而将前景和背景的差异,在图像中最大化,或者说可以突出前景或者背景信息。二值化可以有效的降低噪声,并且可以一定程度的增强目标特征我使用一下,这篇文章的配图:https://blog.csdn.net/bigat/article/details/80889636该文是关于图像...
2019-12-05 15:30:05 7101 3
原创 数字图像处理——中值滤波降噪
使用滤波模板中像素点的中值点作为目标像素,这就称为中值滤波降噪(顾名思义)Python实现过程如下:图像数据为:图像中存在典型的椒盐噪声,而中值降噪,对椒盐噪声的作用是非常有效的。导入要使用的库:import PIL.Image as Imageimport matplotlib.pyplot as pltimport numpy as np读入图片数据,并可...
2019-11-21 20:24:12 2919
原创 数字图像处理——加权均值滤波器
均值滤波器中,模板内像素的权重都为一,其只是简单的像素加法平均而,加权均值滤波器,对模板中的像素点赋予不同的权重,求的是像素的加权平均,典型的模板,例如高斯模糊,其模板权重呈现钟型的高斯分布: 下面使用上式表示...
2019-11-21 20:09:43 12133 1
原创 数字图像处理——平滑线性滤波器
平滑线性滤波器的输出为滤波模板中像素的简单平均值,所以又称为均值滤波器一般滤波模板的大小m*n,m和n都是奇数,这样目标像素才能在模板的正中心以下是使用Python的实现过程,图像数据使用与《数字图像处理》——刚萨雷斯,书中相同图像数据原数据为单通道灰度图像,上图可能已经不是单通道了,所以数据集请自行寻找(CSDN上就有)要使用的库:from PIL import Im...
2019-11-21 19:47:14 2883
原创 数字图像处理——比特图像分层与重构
一:比特图像分层常见的256级灰度图片中,每个像素灰度值由8个比特组成,分别将这8个比特分离,形成8幅新的图片,称为比特图像分层。举个????:有一副四个像素(2*2)的图像,像素值分别为1,2,3,4: 这些值...
2019-11-17 15:47:42 4245
原创 数字图像处理——灰度级分层
灰度级分层的两种基本形式如下:一:将感兴趣的范围内的灰度值显示为一个值,而其他灰度值显示为另一个值二:将感兴趣的范围内的灰度值变亮或变暗,而其他灰度值保持不变Python实现过程如下:使用的图像资源为:定义新图片生成函数和分层函数:def logarithm_transformation(img, func): img_data = np.array(img...
2019-11-17 15:05:27 5297
原创 线性代数的本质——矩阵乘法与线性变换复合
本文是对BiliBili上的一个系列视频的学习记录,非常推荐大家去B站上观看,记得三连,不要白嫖,链接:https://www.bilibili.com/video/av6731067?p=5很多时候,我不单单满足于描述单一的线性变换,在一个变换后再进行另一个变换,而这两个连续作用的线性变换,其结果可以表示为一个单一变换的结果,称为前n个独立连续线性变幻的“复合变换”。例如:对向量先做旋转...
2019-11-14 21:29:01 922
原创 基本的灰度变换函数——幂律(伽马)变换
幂律变换的基本形式为:,其中和是常数有时考虑到偏移量,上式也写为。然而,偏移量是一般显示标定问题,因而作为一个结果,通常在上式中忽略不计。与对数变换情况类似,部分值得幂律曲线将较窄范围的暗色值,映射位较宽的目标输出值,相反,对于输入高灰度级值时也成立。>1的值所生成的曲线和<1所生成的曲线的效果完全相反,当c==1时简化为了恒等变换。下面使用Python实现幂律变换:...
2019-11-14 20:11:58 4553
原创 基本的灰度变换函数——对数变换
对数变换的通用形式为:,其中c是一个常数,由对数函数的性质可知,改变换将范围较窄的低灰度值映射为较宽范围的灰度值,相反地,对高输入灰度值也是如此。我们使用这种类型的变换来扩展图像中,暗像素的值,同时压缩更高灰度级的值。反对数变换的作用与此相反。下面用Python实现图像的对数变换:使用的图片数据为:导入要使用的第三方库:from PIL import Imagei...
2019-11-14 19:46:39 1597
原创 图像反转
顾名思义,图像反转即反转图像灰度级,可以得到等效的照片底片设一幅图片的灰度级为,则反转图像公式如下: s为目标图像的像素点的像素值,r为原图像像素点的像素值下面使用Python实现图像反转:使用的图像数据为:...
2019-11-14 19:20:49 2735
原创 最近邻内插值法
内插是使用已知数据来估计未知位置的数据的处理方法。以图像放大为例,将一张50X50像素的图片放大10倍到500X500。通过其缩放的比例,来获取原图中最接近的像素,并把该像素灰度赋值给新像素。设:原图大小为n*m像素的图片,要扩展到a*b像素的图片则纵向缩放比例为:,同理横向缩放比例为:那么未知像素点,对应的原图像的像素点,对应关系为: ...
2019-11-14 19:03:26 1955
原创 线性代数的本质——矩阵与线性变换
本文是对BiliBili上的一个系列视频的学习记录,非常推荐大家去B站上观看,记得三连,不要白嫖,链接:https://www.bilibili.com/video/av6731067?p=4Unfortunately, no one can be told what the Matrix is. You have to see it for yourself. -Morpheus很遗憾,...
2019-11-14 18:21:03 492
原创 线性代数的本质——线性组合,张成空间和基
本文是对BiliBili上的一个系列视频的学习记录,非常推荐大家去B站上观看,记得三连,不要白嫖,链接:https://www.bilibili.com/video/av6731067/?p=2上文中说到,向量坐标中的数字,可视为对基向量的拉伸或压缩,同样也说到,可以选择不同的基向量,构建完全合理的坐标系:通过选择两个标量 ,分别用于缩放二者的其中之一,然后相加,我们会得到不同的结果,...
2019-11-04 21:21:23 2013
原创 线性代数的本质——什么是向量?
本文是对BiliBili上的一个系列视频的学习记录,非常推荐大家去B站上观看,记得三连,不要白嫖,链接:https://www.bilibili.com/video/av6731067/?p=2一:对于向量的三种不同观点1:计算机专业视角(不是对立的而是相通的)对于做机器学习,数据分析方面的人来说,我们常用“特征向量”,所以对于我们来说,向量是数据列表,是建模目标的特征值。2:物理...
2019-11-04 19:45:47 1331
原创 python + pyqt5 QTreeWidget 实现文件资源管理
这是VSCode的文件资源管理或者叫资源文件导航,这是一个树形结构的,我们使用QTreeWidget来实现一下,最终的结果如下:我先把代码贴出来,UI界面的编程,不可能把每一行代码都讲清楚,我只讲一些思路和需要注意的细节吧:第一个文件(fileopen.py),UI设计的文件,是QT Designer设计好的ui文件直接转换为的Python文件:# -*- codi...
2019-10-31 15:45:27 7874 4
原创 Python+Pyqt5 创建新窗口
首先创建一个窗口,添加一个按钮,并将.ui设计文件转化为.py的Python源代码,源代码如下:# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'NewWindow.ui'## Created by: PyQt5 UI code generator 5.13.0## WARNI...
2019-10-30 11:42:13 3778
原创 Python+Pyqt5 文件选择对话框
办公类应用软件都有打开文件或文件夹的功能,如下图:让我们使用pyqt5来实现文件选择:首先使用可视化设计工具QTdesigner来创建一个应用窗口并添加一个菜单栏,添加一个菜单选项fileopen。当然大神可以直接敲代码,但是大神还会来看这个文章吗?使用指令pyuic5 -o filename.py filename.ui (filename为你命名的文件名)来将.ui设计文...
2019-10-30 10:51:07 34086 2
原创 matplotlib:subplot——子图绘制
在matplotlib中一个figure可以包含多个子图,使用subplot可以实现,先看下面的实例:plt.figure(1)plt.subplot(2, 2, 1)plt.subplot(2, 2, 2)plt.subplot(2, 1, 2)plt.show()效果如下:subplot有三个参数: numRows,numCols,PlotNumnumRows代表...
2019-10-20 19:39:39 1454
原创 线性代数——二次型
一:通过矩阵研究二次方程二次型的定义:把含有n个变量的二次齐次函数或方程称为二次型,例如:二次型可以用矩阵来表示:可以表示为更一般的情况:可以表示为令:,,则上式表示为,这就是我们常见的二次型表示方式。在《Linear Algebra and Its Applications》中译本《线性代数及其应用》中,二次型的定义如下:在向量计算中常遇到的,求向...
2019-10-19 21:42:38 8887
原创 Python函数定义的第二种方式——lambda函数
我第一次遇到lambda函数是在一个排序语句中:如下一段代码:if __name__ == "__main__": a = [[1, 2, 3], [1, 3, 4], [1, 4, 5]] a = sorted(a, key = lambda list:list[1], reverse = True) print(a)PS C:\Users\...>...
2019-10-18 18:43:46 334
原创 Python函数装饰器
一:Python可将函数作为变量赋值创建一个函数,将函数赋值给一个变量,如下:def test1(): print("hello world!")if __name__ == "__main__": a = test1 a() test1()test1是一个简单的打印hello world!的函数,将函数test1赋值给变量a,调用a()可以看到...
2019-10-18 17:42:21 192
原创 什么是Python之禅?
作为一个Python开发者,如果不知道什么是Python之禅,那是不可饶恕的。打开Python IDE,输入import this会出现一段文字,这就是《The Zen Of Python》:Python 3.7.3 (default, Apr 24 2019, 15:29:51) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win3...
2019-10-17 17:19:21 1294
原创 FPS显示和修改——unity3D
一:FPS显示FPS值得含义就是Update函数一秒内的执行次数,通过记录一段时间内Update的调用次数,再除以这段时间(秒为单位),就计算出FPS了。该实例继续使用螺旋升天的Cube。创建用于记录和控制的变量://记录时间段private float accum = 0;//记录Update调用次数private int frames = 0;//FPS...
2019-10-17 16:36:30 660
原创 旋转升天的Cube——unity3D脚本控制
目标是实现一个按钮控制的Cube,实现螺旋上升,螺旋下降,和停止。新建项目,并添加Cube,新建一个C#脚本:我们开始编辑控制脚本:private UnityEngine.Vector3 TranslateSpeed = Vector3.up * Time.deltaTime * 0;private UnityEngine.Vector3 RotateSpeed = Ve...
2019-10-04 15:53:26 1571
原创 机器学习 KNN(K-Nearest Neighbor)
K近邻算法是一种典型的“懒惰学习”算法,该算法没有常规意义上的学习过程。KNN通过计算待预测数据与训练数据的相似度(距离),选取距离最近的K个训练数据,这K个数据中出现最多的标签类型,作为待预测数据的预测标签,实现过程如下:导入需要的包:import pandas as pdimport numpy as npimport random读取数据:采用的是鸢尾花数据集da...
2019-09-27 16:17:08 330
原创 机器学习 学习向量量化(Learning Vector Quantization,LVQ)
学习向量量化与K均值算法类似,但是K均值算法是在原数据没有类别标记的情况下,是一种无监督算法,而学习向量量化算法是在数据集类别标签的这些监督信息来辅助聚类。LVQ的目标是学得一组n维原型向量,每个原型向量代表一个聚类簇。计算待分类的数据与原型向量的差异度(欧氏距离),距离最近的原型向量的标签作为该数据的分类标签。LVQ算法过程如下:生成初始的原型向量我采用的是鸢尾花数据集,该数据集...
2019-09-26 20:47:59 2722
原创 机器学习 K均值聚类(K-means) 鸢尾花数据集
聚类的目标是使聚类后的各个簇,具有簇内聚合,簇间分离的特点。如何度量簇之间,簇内样本之间的差异度?常用距离计算,最常用的是“闵可夫斯基距离”(Minkowski distance),其与向量范数相对应。K均值算法的优化目标是最大化:簇内样本围绕簇均值向量的紧密程度即最大化簇内样本的相似度簇均值向量的定义如下:设总样本集,划分为k个簇为,则簇的均值向量定义如下 ...
2019-09-25 16:42:22 7055
原创 鸢尾花数据集可视化分析
在搜索鸢尾花数据集时看到一篇基于鸢尾花数据集的文章,其中数据可视化部分做的很好,所以自己在此复现一下,原文链接如下:https://www.jianshu.com/p/52b86c774b0b一:导入需要的库%matplotlib inlineimport matplotlib.pyplot as pltimport numpy as npimport pandas as pdi...
2019-09-24 16:43:40 14098 4
原创 机器学习 PCA(Principal Component Analysis)主成分分析
在讨论PCA之前,先说一说什么是协方差矩阵:设是一组数据,每一个数据是有p个特征值列向量,则数据是一个的矩阵。样本均值M定义为: 对数据进行中心化: ...
2019-09-03 20:38:22 273
原创 自动飞行的Airplane——Unity 5.X 3D游戏开发技术详解与典型案例 实例二(复现FlightControl)
一:创建3D项目二:导入飞机模型包和地形资源包三:为飞机模型添加刚体组件四:飞控脚本实现创建C#脚本,命名为FightControl.cs,并添加到飞机模型上双击文件,打开编辑器开始编写,我使用的Visual Studio,一下是原书自带项目实例的脚本文件。using UnityEngine;using System....
2019-09-02 21:21:32 1458 2
如何在宏中初始化结构体如下?
2021-08-25
pyinstaller 打包python文件为exe时出错
2018-04-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人