自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 开发第一个基于PyQt5的桌面应用

python -m PyQt5.uic.pyuic + .ui(ui文件名) -o + .py(py文件名)必须使用两个类:QApplication和QWidget。都在PyQt5.QtWidgets。普通按钮、工具条按钮、单选按钮、多选按钮、连接命令按钮。布局——垂直布局、水平布局、栅格布局、表张布局。列表控件、树控件、表格控件、列控件、撤销控件。Qt-Designer的介绍。将.ui文件转换为.py文件。利用扩展文件PyUIC转换。创建设计了一个小窗口。

2023-07-10 16:41:04 400

原创 手写数字识别——算法

链码特征:字符图片的每一个像素,将依据其8-领域像素的分布情况,归入8种不同的方向编码;总体思想:用户在书写数字时,其笔划路径将按照先后顺序被等距采点,并存储成一个序列串,然后将该序列与预先设定好的模板进行匹配,找到距离最小的模板,从而实现分类识别。特征提取:用三次样条分别插值数字图片的左、右轮廓之后,即可利用三次样条二阶导数连续的性质,找出字符左、右轮廓的凹陷区。基本思想:人在识别一个数字字符时,只需要简单观察字符是否有环,有几个环,再观察字符整体的凹凸形状,借此就可以识别数字字符。

2022-09-28 17:23:03 1463 1

原创 图像处理的数学模型与高性能算法——介绍

图像去模糊(复原)在数学上是一个不适定反问题,难度在于模糊矩阵接近奇异,且观测信号被噪声污染。对复原的解x有先验(prior)的物理假设,光滑性,稀疏性等等。数值迭代方法在很多科学计算领域有着广泛的应用,如机器学习,深度学习,数值代数,最优化等等。其中模糊矩阵A和模糊图片b已知,噪声e未知,但噪声的值很小。任务:观测到的图像是模糊,带有噪声的,如何尽可能复原出清晰的图像?任务:观测到的图像是模糊,带有噪声的,如何尽可能复原出清晰的图像?矩阵A是模糊算子,x是未知清晰复原图像,b是观测到的模糊图像。

2022-09-27 09:54:35 1677 1

原创 数学建模——相关系数

在数理统计中,这里的原假设和备择假设中的𝑟应该改为𝜌, 其中𝜌为未知的总体相关系数,实际上我们关心的是总体的统计特征。(2)在不确定两个变量是什么关系的情况下,即使算出皮尔逊相关系数,发现很大,也不能说明那两个变量线性相关,甚至不能说他们相关,我们一定要画出散点图来看才行。这里,我们选择正态分布和要检验的随机变量,并对其做出QQ图,可想而知,如果要检验的随机变量是正态分布,那么QQ图就是一条直线。(1)如果两个变量本身就是线性的关系,那么皮尔逊相关系数绝对值大的就是相关性强,小的就是相关性弱;

2022-09-21 16:57:26 2917 3

原创 数学建模-插值算法、拟合算法

尽管我们可以选择分段的方法避免这种现象,但是更多时候我们更倾向于得到一个确定的曲线,尽管这条曲线不能经过每一个样本点,但只要保证误差足够小即可(最小损失函数),这就是拟合的思想。%产生一个a至b之间的随机矩阵,大小为1x5;%产生一个均值为0,标准差(方差开根号)为2的正态分布的随机矩阵,大小为3x4;%产生一个-5至5之间的随机整数矩阵,大小为1x10;%产生一个1至10之间的随机整数矩阵,大小为2x5;%产生一个0至1之间的随机矩阵,大小为1x5;% (3)normrnd:产生正态分布的随机数。

2022-09-20 15:04:16 335

原创 数学建模—模糊综合评价模型

秃子悖论:一个满头秀发的人,n为这个人掉头发的根数(1)当n=1时,这个人不是秃子;论域U={x1, x2, x3, ....., xn},模糊集合为A,隶属度为A(xi)= 1, 2, 3, ...., n。A:模糊集合,U(A)=[0, 1],注意与{0,1}的区别,{0,1}只有0和1两个元素,[0, 1]有无限种可能。模糊集合分类:(1)偏小型(年轻,小,冷);(2)中间型(中年,种,暖);(3)偏大型(年老,大,热);a. 集合:具有相同属性的物质的集合,例如:颜色,性别,手机品牌,自然数集。

2022-09-08 10:00:29 683

原创 数学建模—灰色关联分析

记两级最小差:a = min(min(xi(k)-x0(k))),记两极最大差:b=max(max(xi(k)-x0(k)));第六步:通过比较三个子序列和母序列的关联度可以得出:该地区在2000年-2005年间的国内生产总值受到第三产业的影响最大(因为其灰色关联度最大)。absx0_xi = abs(x - repmat(y,1,size(x,2))) % 计算|X0-Xi|矩阵(在这里我们把X0定义为了Y)(2)子序列(又称为比较序列,子指标):影响系统行为的因素组成的数据系列(类似于自变量X)。..

2022-09-01 14:45:46 2417

原创 数学建模-基于熵权法对Topsis模型的修正

topsis模型赋予权重有层次分析法,但层次分析法也有其弊端。层次分析法最大的缺点:判断矩阵的确定依赖于专家,如果专家的判断存在主观性的话,会对结果产生很大的影响。(主观性太强)针对层次分析法主观性太强的弊端,我们可以采用熵权法给topsis评价模型的各个指标赋权。...

2022-06-15 20:50:41 2147

原创 数学建模-TOPSIS法

TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution)可翻译为逼近理想解排序法,国内常简称为优劣解距离法。TOPSIS 法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。...

2022-06-10 17:25:58 12204 2

原创 数学建模-层次分析法

层次分析法:建模比赛中最基础的模型之一,其主要用于解决评价类问题(例如:选择哪种方案最好、哪位运动员或者员工表现的更优秀)。评价类问题可用打分来解决。解决评价类问题,首先要想到一下三个问题:① 我们评价的目标是什么?② 我们为了达到这个目标有哪几种可选的方案?③ 评价的准则或者说指标是什么?(我们根据什么东西来评价好坏)...

2022-06-07 11:16:51 506

原创 李沐动手学深度学习-过拟合和欠拟合

模型容量拟合各种函数的能力低容量的模型难以拟合训练数据高容量的模型可以记住所有的训练数据模型容量的影响估计模型容量难以在不同的种类算法之间比较: 例如树模型和神经网络给定一个模型的种类,将有两个主要因素:参数的个数,参数值的选择范围VC维统计学习理论的一个核心思想对于一个分类模型,VC等于一个最大的数据集的大小,不管如何给定标号,都存在一个模型来对它进行完美分类。VC维的用处:提供为什么一个模型好的理论依据,它可以衡量训练误差和泛化误差之间的间隔;但深度学习中很少使用,衡量不是很准确,计算深度学习模型的V

2022-06-06 20:52:26 296

原创 李沐-动手学深度学习-多层感知机的实现

简单介绍了多层感知机的原理,及各个层之间的对应关系,多层感知机的代码实现。

2022-06-06 09:25:31 575

原创 李沐-动手学深度学习-感知机及激活函数的介绍

线性模型的不足:任何特征的增大都会导致模型输出的增大(如果对应的权重为正), 或者导致模型输出的减小(如果对应的权重为负)。似然函数:似然函数是一种关于统计模型参数的函数。而p(x|θ)也是一个有着两个变量的函数。如果,你将θ设为常量,则你会得到一个概率函数(关于x的函数);如果,你将x设为常量你将得到似然函数(关于θ的函数)。下面举一个例子:有一个硬币,它有θ的概率会正面向上,有1-θ的概率反面向上。θ是存在的,但是你不知道它是多少。为了获得θ的值,你做了一个实验:将硬币抛10次,得到了一个正

2022-05-31 11:06:10 1142

转载 李沐-动手学深度学习-softmax回归的从零开始实现

就像我们从零开始实现线性回归一样,你应该知道实现softmax的细节。和之前线性回归的例子一样,这里的每个样本都将用固定长度的向量表示。将展平每个图像,将它们视为长度为784的向量。因为我们的数据集有10个类别,所以网络输出维度为10。在实现softmax回归模型之前,我们简要回顾一下sum运算符如何沿着张量中的特定维度工作。回想一下,实现softmax由三个步骤组成1. 对每个项求幂(使用exp);2. 对每一行求和(小批量中每个样本是一行),得到每个样本的规范化常数;

2022-05-28 21:51:08 795

原创 李沐-动手学深度学习-图像分类数据集

MNIST数据集是图像中广泛使用的数据集之一,但作为基准数据集过于简单。我们将使用类似但更复杂的Fashion-MNIST数据集。通过框架中的内置函数将Fashion-MNIST数据集下载并读取到内存中。Fashion-MNIST由10个类别的图像组成, 每个类别由训练数据集(train dataset)中的6000张图像 和测试数据集(test dataset)中的1000张图像组成。 因此,训练集和测试集分别包含60000和10000张图像。 测试数据集不会用于训练,只用于评估模型性能。

2022-05-27 17:57:08 876 1

原创 李沐-动手学深度学习-损失函数介绍

损失函数(Loss Function):损失函数(loss function)就是用来度量模型的预测值f(x)与真实值Y的差异程度的运算函数,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数的作用:损失函数使用主要是在模型的训练阶段,每个批次的训练数据送入模型后,通过前向传播输出预测值,然后损失函数会计算出预测值和真实值之间的差异值,也就是损失值。得到损失值之后,模型通过反向传播去更新各个参数,来降低真实值与预测值之间的损失,使得模型生成的预测值

2022-05-27 09:41:55 1081

原创 李沐-动手学深度学习-softmax介绍

回归估计一个连续值分类预测一个离散类别softmax函数的解释:Softmax从字面上来说,可以分成soft和max两个部分。max故名思议就是最大值的意思。Softmax的核心在于soft,而soft有软的含义,与之相对的是hard硬。很多场景中需要我们找出数组所有元素中值最大的元素,实质上都是求的hardmax。hardmax最大的特点就是只选出其中一个最大的值,即非黑即白。但是往往在实际中这种方式是不合情理的,比如对于文本分类来说,一篇文章或多或少包含着各种主题信息,我们更期望得到文章

2022-05-26 11:23:55 2601

原创 李沐-动手学深度学习-线性回归

回归(regression)是能为一个或多个自变量与因变量之间关系建模的一类方法。线性模型可以看做是单层神经网络。线性回归是对n维输入的加权,外加偏差。使用平方损失来衡量预测值和真实值的差异。线性回归具有显示解。基础优化算法:梯度下降步骤1:挑选一个初始值w0步骤2:重复迭代参数沿梯度方向将增加损失函数值学习率:步长的超参数学习率:不能太小:效率低;也不能太大:震荡没有下降;总结:梯度下降通过不断沿着反梯度方向更新参数求解小批量随机梯度下降是深度学习默认的

2022-05-24 21:55:10 791

原创 李沐-动手学深度学习-概率

使用%matplotlib命令可以将matplotlib的图表直接嵌入到Notebook之中,或者使用指定的界面库显示图表,它有一个参数指定matplotlib图表的显示方式。inline表示将图表嵌入到Notebook中。可以把分布(distribution)看作是对事件的概率分配, 稍后我们将给出的更正式定义。 将概率分配给一些离散选择的分布称为多项分布(multinomial distribution)。在估计一个骰子的公平性时,我们希望从同一分布中生成多个样本。我们使用深度学习框架的函数..

2022-05-23 21:23:20 203

原创 李沐-动手学深度学习-自动求导

假设我们想对函数y = 2xTx,关于列向量x求导。并对x赋予初值。在我们计算y 关于x 的梯度之前,我们需要一个地方来存储梯度。 重要的是,我们不会在每次对一个参数求导时都分配新的内存。 因为我们经常会成千上万次地更新相同的参数,每次都分配新的内存可能很快就会将内存耗尽。我们通过调用反向传播函数来自动计算y关于x每个分量的梯度,并打印这些梯度。默认情况下,会累积梯度,所以在求另一个函数的梯度时要进行清零操作。当将清零代码进行注释时,梯度会累加:当y不是标...

2022-05-23 20:26:11 346 1

原创 李沐-动手学深度学习-线性代数

tensor()里面给一个元素表示一个标量向量视为标量组成的列表也可以通过索引访问张量中的元素通过len()函数访问张量的长度矩阵的转置(A.T)计算其元素的和指定维度求和axis = 0,表示按第0个维度求和,就是消去第0个维度。默认情况下,调用求和函数会沿所有的轴降低张量的维度,使它变为一个标量。 我们还可以指定张量沿哪一个轴来通过求和降低维度。 以矩阵为例,为了通过求和所有行的元素来降维(轴0),我们可以在调用函数时指定axis=0。 由于输入矩阵沿0轴降维以生成输出向量,

2022-05-23 17:23:53 140

原创 李沐-动手学深度学习

n维数组是机器学习和神经网络的主要数据结构。首先导入torch:张量表示一个数值组成的数组,这个数组可能有多个维度arange(x): 表示0到x-1的整数数列,左闭右开张量的shape属性来访问张量的形状和张量中元素的总数张量的numel()属性来访问张量中元素的总数(标量)改变一个张量的形状而不改变元素数量和元素值,我们可以调用reshape()函数dtype确定张量的数值类型(dtype=torch.float32)32位的浮点数cat将两个张量..

2022-05-23 16:31:26 756

原创 如何使用opencv检测二维码和条形码

我们将学习如何使用opencv检测图像中的QR码和条形码,我们首先了解一下基础知识,然后我们将继续创建一个身份验证项目,在该项目中,根据上的QR码检查人是否被授权或未经授权。在python中,我打开一个新项目,第一件事是要导入我们所需要的库代码如下:import cv2import numpy as npfrom pyzbar.pyzbar import decode # 从pyzbar中导入解码器# img = cv2.imread('3.webp')cap = cv2.Vi.

2022-05-11 16:30:42 1448

原创 使用opencv进行角度测量

这个项目很简单,要做的就是,在两条线之间形成一个角度,因此我们将使用以下方式定义这些线,我们将定义三个不同的点,这三个点将创建两条不同的线,我们测量出这两线之间的角度,第一个点为角度顶点,第二点和第三点控制角度的张口大小。第一步:首先需要导入opencv库和math库:第二步:导入我们需要的图像:第三步:获取实际工作中鼠标的实际坐标值,定义点列表第四步:获得列表点,和角边线之后进行角度计算,这里的角度计算就是进行tan(a-b)的运算第五步:获取两点连线下的梯度.

2022-05-11 08:50:18 3199

原创 使用tesseract在Python OCR中使用OpenCV进行文本检测

第一步:首先我们要进入tesseract官网——tessdoc官网找到对应的软件安装包下载安装。

2022-05-08 11:58:56 852

原创 嵌入式——模块化编程

传统方法编程:所有的函数均放在main.c里,若使用的模块比较多,则一个文件内会出现很多的代码,不利于代码的组织和管理,而且很影响编程者的思路。模块化编程:把各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其它.c文件想使用其中的代码时,只需要#include"xxx.h"文件即可。使用模块化编程课极大的提高代码的可阅读性,可维护性,可移植性等。使用LCD1602液晶屏作为调试窗口,提供类似printf函数的功能,可实时观察单片机内部数据的变换情况便于调试和演示。模块化编

2022-04-10 20:33:28 1349

原创 嵌入式——动态数码管显示

单片机直接扫描:硬件设备简单,但会耗费大量单片机CPU时间专用驱动芯片:内部自带显存、扫描电路,单片机只需告诉它显示什么即可动态显示代码:#include <REGX52.H>//0~9µÄÊý×ÖÏÔʾunsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};void Delay(unsigned int xms) //@12.000MHz{ unsi...

2022-04-09 17:39:19 1682

原创 嵌入式——静态数码管显示

数码管介绍LED数码管:数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“8”字型的器件有两种连接方式:共阴极和共阳极138译码器:用三个输入端口控制8个输出端口双向数据缓冲器:用来进行数据缓冲数组:把相同类型的一系列数据统一编制到某一组别中,可以通过数组明加索引号简单快捷的操作大量数据子函数:将完成某一种功能的程序代码单独抽取出来形成一个模块,在其它函数中可随时调用此模块,以达到代码的复用和优化程序结构的目的。...

2022-04-09 17:02:01 1894

原创 李沐实用机器学习(class3, class4)

Class3: Web scrapingThe goal is to extract data from website Noisy, weak labels, can be spammy(噪点比较多,标号比较弱,可能是一些垃圾信息) Available at scale(数据规模大)Many ML datasets are obtained by web scrapingWeb crawling VS scrapping Crawling: in...

2022-04-08 16:57:36 990

原创 嵌入式——独立按键控制LED移位

51单片机代码:#include <REGX52.H>//ÑÓʱº¯Êývoid Delay(unsigned int xms) //@12.000MHz{ unsigned char i, j; while(xms) {i = 2; j = 239; do { while (--j); } while (--i); xms--; }}unsigned char LEDNu...

2022-04-06 22:07:13 387

原创 嵌入式——独立按键控制LED显示二进制

c语言代码展示#include <REGX52.H>//ÑÓʱº¯Êývoid Delay(unsigned int xms) //@12.000MHz{ unsigned char i, j; while(xms) {i = 2; j = 239; do { while (--j); } while (--i); xms--; }}void main(){ u...

2022-04-06 17:12:23 630

原创 李沐实用机器学习笔记(class1,class2)

Class 1: industrial ML ApplicationManufacturing: Predictive maintenance, quality controlRetail: Recommendation, chatbot, chatbot, demand forecastingHealthcare: Alerts from real-time patient data, disease identificationFinance: Fraud detection, appl

2022-04-06 16:26:59 1203

原创 重在左移(<<)运算符

左移(<<)运算符重载作用:可以输出自定义数据类型总结:重载左移运算符配合友元可以实现输出代码如下:#include<iostream>using namespace std;/////左移运算符重载class person//定义一个person类{public: //利用成员函数重载,左移运算符 p.operator<<(cout) 简化版本 p<<cout //不会利用成员函数重载<<运算符,因为无...

2021-10-27 11:03:39 80

原创 opencv快速入门—视频文件与摄像头的使用

贾志刚老师—opencv基于c++快速入门基础30讲(22)头文件:创建函数函数文件:函数的实现主程序文件:

2021-10-24 20:23:10 970

原创 opencv快速入门—图像翻转

贾志刚老师—opencv基于c++快速入门基础30讲(19)图像翻转函数:flipflip(InputArray src, OutputArray dst, int flipCode);flip(输入矩阵,输出矩阵,翻转代码);使用该函数的示例场景如下:垂直翻转图像(flipCode == 0)以在左上角和左下角的图像原点之间切换。这是Microsoft Windows* OS上视频处理的典型操作。水平翻转与后续图像的水平和绝对差分计算转移到检查种对称(flipCode > 0)...

2021-10-24 10:43:14 971

原创 opencv快速入门—图像像素类型转换与归一化

贾志刚老师—opencv基于c++快速入门基础30讲(19)首先关于归一化:图像归一化就是把需要处理的像素数据经过归一化处理后即通过某些算法,将这些数据限制在一定范围的之内。数据归一化的作用是为了后面数据处理的方便,其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化的目的,是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出

2021-10-23 21:32:54 456

原创 opencv块速入门—鼠标操作与响应

贾志刚老师—opencv基于c++快速入门基础30讲(18讲)本讲通过setMouseCallback函数实现利用鼠标绘制矩形的过程,详见代码头文件:创建鼠标绘制函数函数实现:主文件:调用函数...

2021-10-23 11:50:15 94

原创 opencv快速入门—多边形的绘制与填充

贾志刚老师—opencv基于c++快速入门基础30讲首先创建一个空白矩阵图像,再在空白图像中规定一些点,把这些点整成一个数组pts,再将规定的各点导入(push_back)数组中;最后是利用fillPoly填充函数,将多边形矩阵进行填充;利用polylines函数进行多边形边的绘制;第二种方法是利用drawContours函数:首先先将pts各点导入contours数组中,在同时填充多边形,此函数可以同时填充多个多边形头文件:创建函数,注:此函数不需要导入参数()内为空即可函数文件:函数

2021-10-22 22:36:47 1312

原创 opencv快速入门—随机数与随机颜色

贾志刚老师—opencv基于c++快速入门基础30讲RNG:提供随机数的一个种子头文件:建立函数文件函数文件:函数的具体实现,随机数的实现过程主程序文件:

2021-10-22 21:21:03 124

原创 opencv快速入门—图像几何形状的绘制

贾志刚老师—opencv基于C++快速入门30讲知识点:几何形状的绘制-绘制矩形:rectangle-绘制圆:circle-绘制直线:line-绘制椭圆:ellipse头文件:创建函数函数实现:主程序文件:...

2021-10-20 11:38:55 117

opencv基于c++个人笔记总结

opencv基于c++语言编程的入门教程,在visval studio 2017环境下,适合于小白入门,各种基础opencv的函数使用查询。

2022-04-10

空空如也

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

TA关注的人

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