自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 机器学习(4-1):神经网络(Neural Network)之一:基本概念

神经网络实际上是一个相对古老的算法,因为以前的算力不行,沉寂了一段时间,不过到了现在它又成为许多机器学习问题的首选技术。之前我们已经介绍过线性回归(可以实现复杂曲线模拟)和逻辑回归(可以实现多分类)算法了,似乎可以解决较复杂的问题,那为什么还要研究神经网络?这是因为:1、即便只有两个输入特征时,对于复杂的情况,我们可能需要如下的比较复杂的假设函数:然而对于许多复杂的机器学习问题而言,涉及的输入特征往往多于两个。这样就造成了假设函数变得异常复杂。

2025-05-19 10:33:37 905

原创 机器学习(3-3):逻辑回归【分类(Classification)】之三——多分类

读取数据——可视化数据集——损失函数——梯度——数据处理(X加偏置项,y降维)——一对多分类器——利用最优函数得到最优参数——预测。

2025-05-18 10:20:19 1017

原创 机器学习(3-2):逻辑回归【分类(Classification)】之二——二分类

由线性回归的代价函数:若我们定义:则有:称为逻辑回归的单样本代价函数称为逻辑回归的代价函数,我们将代入代价函数,则有:该函数是个非凸函数,这会导致在梯度下降时没有全局最优解。于是我们必须另外选择一个代价函数。如:这个函数看起来很复杂,但画出图形如下:通过上面图形,我们知道:预测:如果,预测y=1,此时Cost=0。(正常预测)如果,预测y=1,此时Cost=0.8。(正常预测)如果,预测y=1,此时Cost→∞。(极不正常预测)反之:如果。

2025-05-13 20:19:38 1032

原创 机器学习(3-1):逻辑回归【分类(Classification)】之一——基本概念

虽然我们人类都不喜欢被分类,被贴标签,但数据研究的基础正是给数据“贴标签”进行分类。类别分得越精准,我们得到的结果就越有价值。分类是一个有监督的学习过程,目标数据库中有哪些类别是已知的,分类过程需要做的就是把每一条记录归到对应的类别之中。由于必须事先知道各个类别的信息,并且所有待分类的数据条目都默认有对应的类别,因此分类算法也有其局限性,当上述条件无法满足时,我们就需要尝试聚类分析。

2025-05-12 16:13:12 1061

原创 机器学习(2-4):线性回归之四:多元线性回归

比如对于多元线性回归,假设函数表示为其中为模型参数,为每个样本的个特征值。这个表示可以简化,我们增加一个特征,这样设向量假设样本个数为m,具体为。设输入特征向量,输出特征向量设矩阵,则有1、假设函数:或2、参数:或3、样本:样本数为m,具体为或输入特征向量,输出特征向量4、代价函数:12m(XθyT(Xθy由于样本不同特征的取值范围不一样,可能导致迭代很慢,为了减少特征取值的影响,可以对特征数据归一化。一般地而言,将每个输入的特征值限制在,n。

2025-05-12 16:01:21 469

原创 机器学习(2-3):线性回归之三:梯度下降(Gradient descent)

在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是,简称或者。对于在点的具体梯度向量就是.或者,如果是3个参数的向量梯度,就是∂以此类推。

2025-05-11 17:46:09 669

原创 机器学习(2-2):线性回归之二:一元线性回归

一元线性回归分析预测法,是根据自变量x和因变量Y的相关关系,建立x与Y的线性回归方程进行预测的方法。由于市场现象一般是受多种因素的影响,而并不是仅仅受一个因素的影响。只有当诸多的影响因素中,确实存在一个对因变量影响作用明显高于其他因素的变量,才能将它作为自变量,应用一元相关回归分析市场预测法进行预测。一个经济指标的数值往往受许多因素影响,若其中只有一个因素是主要的,起决定性作用,则可用一元线性回归进行预测分析。(即,假设函数的曲线和训练集中所有的样本数差值的平方最小)对同样的样本,可以采用不同的拟合曲线。

2025-05-08 09:46:56 442

原创 机器学习(2-1):线性回归之一:机器学习中的俗语

对于给定的训练集,假设函数为。称为假设函数的代价函数。对于一元线性回归,其代价函数为。

2025-05-08 09:29:06 674

原创 机器学习(1):概述

从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说, 机器学习是一种通过利用数据训练出模型,然后使用模型预测的一种方法。

2025-05-08 09:06:29 1225

原创 OpenCV(27):深度神经网络dnn模块简介

OpenCV中的深度学习模块(DNN)只提供了推理功能,不涉及模型的训练,支持多种深度学习框架,比如TensorFlow、Caffe、Torch和Darknet。

2025-05-08 08:28:30 990

原创 OpenCV(26-3):视频分析之三:光流估计

光流估计需要满足一定前提亮度恒定:同一点随着时间的变化,其亮度不会发生改变。小运动:随着时间的变化不会引起位置的剧烈变化,只有小运动情况下才能用前后帧之间单位位置变化引起的灰度变化去近似灰度对位置的偏导数。空间一致:一个场景上邻近的点投影到图像上也是邻近点,且邻近点速度一致。因为光流法基本方程约束只有一个,而要求x,y方向的速度,有两个未知变量。所以需要连立n多个方程求解。如果下面这辆车正向我们缓缓开来,右图是车辆的光流,它代表车辆在行驶过程中,每一帧图像的瞬时速度和方向。

2025-05-07 15:31:33 268

原创 OpenCV(26-2):视频分析之二:背景建模

背景建模需要满足一定条件,保证摄像机拍摄位置不变,保证背景是基本不发生变化的。如路口的监控摄像机,只有车流人流等前景部分能发生移动,而马路树木等背景不能发生移动。判断视频中前景和背景的方法主要有两种:帧差法、混合高斯模型。

2025-05-07 10:18:49 760

原创 OpenCV(26-1):视频分析之一:视频的捕捉、保存、和释放

视频是由大量的,连续的图像构成的,把其中的每一幅图像称作一帧,帧数指的是视频文件中含有的图像的总数,帧数越多,视频播放时越流畅,在播放视频过程中,把每秒显示的图像的数量称作帧速率(FPS,单位:帧/s),帧宽度指得是图像在水平方向上含有的像素总数,帧高度指的是图像在垂直方向上含有的像素总数。VideoWriter类中的常用方法包括VideoWriter类的构造方法,write()方法和release()方法,其中VideoWriter类的构造方法用于创建VideoWriter类对象。释放已经捕捉的视频源,

2025-05-07 10:08:11 691

原创 OpenCV(25-2-6):cv2.feature2d模块之二:Opencv的xfeatures2d模块

实验证明,ORB远优于之前的SIFT与SURF算法,ORB算法的速度是sift的100倍,是surf的10倍。kNN算法则是从训练集中找到和新数据最接近的k条记录,然后根据他们的主要分类来决定新数据的类别。kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。

2025-05-07 09:46:46 1066

原创 OpenCV(25-2-5):cv2.feature2d模块之二:特征点检测之LoG和DoG比较

虽然DoG需要在每层金字塔多做一次高斯操作(即为了得到S+2张DoG图需要S+3张高斯模糊图),但通过减法取代LoG核的计算过程,显著减少了运算次数,大大节省了运算时间。对于LoG每组金字塔内有S+2张图像(S=-1,0,1,2,3),需要做S+1次高斯模糊操作(后一张图像由前一张做高斯模糊得到);对于最后需要S张图像寻找极值点,需要S+2张DoG图像,S+3张高斯图像。在实际计算时,三种方法计算的金字塔组数noctaves,尺度空间坐标σ,以及每组金字塔内的层数S是一样的。一个直观的比较结果,使用。

2025-05-07 09:25:55 233

原创 OpenCV(25-2-4):cv2.feature2d模块之二:特征点检测之Step4

与求主方向不同的是,此时,每个子区域梯度方向直方图将0°~360°划分为8个方向区间,每个区间为45°。用来作为 目标匹配的依据(所以描述子应该有较高的独特性,以保证匹配率),也可使关键点具有更多的不变特性,如光照变化、3D视点变化等。为了保证特征矢量具有旋转不变性,要以特征点为中心,在附近邻域内旋转θ角,即旋转为特征点的主方向。像元),在子区域内计算8个方向的梯度直方图,绘制每个方向梯度方向的累加值,形成一个种子点。,即4×4个子区域,所以最终共有4×4×8=128个数据,形成128维SIFT特征矢量。

2025-05-07 09:19:04 230

原创 OpenCV(25-2-3):cv2.feature2d模块之二:特征点检测之Step3

通常使用一个带箭头的圆或直接使用箭头表示SIFT区域的三个值:中心表示特征点位置,半径表示关键点尺度(r=2.5σ),箭头表示主方向。在梯度方向直方图中,当存在另一个相当于主峰值80%能量的峰值时,则将这个方向认为是该关键点的辅方向。(为了统计简单,分为8个柱,每45°为一个柱),下图是从高斯图像上求取梯度,再由梯度得到梯度方向直方图的例图。,即位置、尺度和方向,具有多个方向的关键点可以被复制多份,然后将方向值分别赋予复制后的特征点,一个特征点就产生了多个坐标、尺度相同,但方向不同的特征点。

2025-05-07 09:16:17 335

原创 OpenCV(25-2-2):cv2.feature2d模块之二:特征点检测之Step2

寻找DoG极值点时,每一个像素点和它所有的相邻点比较,当其大于(或小于)它的图像域和尺度域的所有相邻点时,即为极值点。如下图所示,比较的范围是个3×3的立方体:中间的检测点和它同尺度的8个相邻点,以及和上下相邻尺度对应的9×2个点——共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。以上得到的极值点是DOG空间的局部极值点,而且这些点均为离散点【在离散空间进行搜索的(每个像素的位置)】,由下图可以看到,在离散空间找到的极值点不一定是真正意义上的极值点。所以每层的点搜索两次。

2025-05-07 09:10:52 371

原创 OpenCV(25-2-1):cv2.feature2d模块之二:特征点检测之Step1

另外,降采样时,金字塔上边一组图像的第一张图像(最底层的一张)是由前一组(金字塔下面一组)图像的倒数第三张隔点采样得到。相邻图像相减,数值差异不大的地方相邻图像的对应位置变化不大,数值差异大的地方相邻图像的对应位置变化大就是图像的特征点,。我们需要同时考虑图像在多尺度下的描述,获知感兴趣物体的;另外如果不同的尺度下都有同样的关键点,那么在不同的尺度的输入图像下就都可以检测出来关键点匹配,也就是。而对于二维图像,一个传统的金字塔中,每一层图像由上一层分辨率的长、宽各一半,也就是四分之一的像素组成:。

2025-05-07 09:01:24 781

原创 OpenCV(25-1):cv2.feature2d模块之一:角点检测

xfeature2d模块是contrib中对于feature2d模块的扩展,该模块用于2D特征检测,描述与匹配。研究如何使用OpenCV中的特征点检测子,特征点描述子以及匹配框架。在计算机视觉中,我们通常需要寻找两张图上的匹配关键点。为什么?因为一旦我们知道了两张图是相关联的,我们就可以使用 *both特性可识别的独一无二性。

2025-05-07 08:43:41 811

原创 OpenCV(24-9):图像轮廓之九:轮廓矩

矩函数在图像分析中有着广泛的应用,如模式识别、目标分类、目标识别与方位估计、图像的编码与重构等。从一幅图像计算出来的矩集,不仅可以描述图像形状的全局特征,而且可以提供大量关于该图像不同的几何特征信息,如大小,位置、方向和形状等。轮廓矩代表了一个轮廓、一幅图像、一组点集的全局特征。,那么一幅灰度图像可以用二维灰度密度函数来表示,因此可以用矩来描述灰度图像的特征。矩是概率与统计中的一个概念,是随机变量的一种数字特征。也可以是灰度图像、二维数组,例如提取的轮廓结果。空间矩的实质是图像的质量。是对应位置的灰度值。

2025-05-07 08:20:31 827

原创 OpenCV(24-8):图像轮廓之八:由计算而来的轮廓的特征

24.11由计算而来的轮廓的特征。

2025-05-07 08:19:55 269

原创 OpenCV(24-7):图像轮廓之七:minMaxLoc、findNonZero、mean

而图像中的最大值其实就是最亮的像素点,图像中的最小值其实就是最暗的像素点,该函数的输入参数是一张灰度图像,该函数会返回最大值、最小值、最大值所在位置和最小值所在位置等,咱们能够根据得到的位置信息绘制结果。在有些现实场景中,咱们须要去使用算法自动的寻找到图片中的最亮的区域,这个区域是咱们感兴趣的目标所在的位置,比较典型的是一个应用是。图像中的最小值、最大值、最小值、最大值所在的位置,其中位置是一个二元组(要检测出图像中最亮的区域,咱们能够直接使用。,该函数是用来获取图像中的最大值和最小值。

2025-05-07 08:18:27 360

原创 OpenCV(24-6):图像轮廓之六:椭圆拟合和直线拟合

椭圆拟合法的基本思路是:对于给定平面上的一组样本点,寻找一个椭圆,使其尽可能接近这些样本点。也就是说,将图像中的一组数据以椭圆方程为模型进行拟合,使某一椭圆方程尽量满足这些数据,并求出该椭圆方程的各个参数。在OpenCV中,函数cv2.fitEllipse()可以用来构建最优拟合椭圆,还可以在返回值内分别返回椭圆的中心点,轴长,旋转角度信息。就椭圆拟合而言,就是先假设椭圆参数,得到每个待拟合点到该椭圆的距离之和,也就是点到假设椭圆的误差,求出使这个和最小的参数。的数组,前两个表示直线的方向,即。

2025-05-07 08:17:27 419

原创 OpenCV(24-5):图像轮廓之五:创建包围轮廓的矩形和圆形边界框

这个边界矩形是面积最小的,他考虑了对象的旋转。用函数cv2.minAreaRect(),返回的是一个Box2D结构,其中包含矩形左上角角点的坐标(x,y),以及矩形的宽和高(w,h),以及旋转角度。但是要绘制这个矩形需要矩形的4个角点。:一个直矩形,没有进行旋转。它不会考虑对象是否旋转,所以该边界矩形的面积不是最小的。最小外接圆是对象的外切圆,它是所有包含目标对象的圆中面积最小的一个,我们使用函数。返回值中,(x,y)是矩阵左上角的坐标,(w,h)是举行的宽和高。

2025-05-07 08:16:48 192

原创 OpenCV(24-4):图像轮廓之四:轮廓匹配

OpenCV附带了一个函数cv.matchShapes(),它使我们能够比较两个形状或两个轮廓,并返回一个显示相似性的度量。结果越低,匹配越好。它是基于hu矩值计算的。当点在轮廓线外时,返回的距离为负,点在轮廓线内时返回的距离为正,点在轮廓线上返回的距离为零。:retval:该函数确定点是在轮廓线内、外还是在边缘上(或与顶点重合)。相应地,它返回正(内部)、负(外部)或零(沿边)值。结果越低,匹配越好。它是基于hu矩值计算的。返回值为该点与最近的轮廓边之间的有符号距离;

2025-05-06 18:33:37 333

原创 OpenCV(24-3):图像轮廓之三:凸包和凸包缺陷

凸包是计算机几何图形学中的概念,简单来说,给定二维平面点集,凸包就是将最外层的点连接起来构成的凸多边形,它能够包含物体中所有的点。物体的凸包常应用在物体识别,手势识别及边界检测等领域。在OpenCV中检测凸包的API是:函数原型:hull = cv2.convexHull(points, clockwise, returnPoints)参数:返回:凸包和本体的任何偏差都可以认为是凹凸缺陷。在OpenCV中检测凸包的API是:函数原型:defects = cv2.convexityDefects(co

2025-05-06 18:27:22 332

原创 OpenCV(24-2):图像轮廓之二:面积和长度、轮廓近似

假设我们要在一幅图像中查找一个矩形,然而这个图凹凸不平,直接提取轮廓无法提取到一个完美的矩形。因此我们就可以使用轮廓近似函数来近似这个形状了。轮廓近似是将轮廓形状近似为到另外一种由更少点组成的轮廓形状,新轮廓的点的数目由我们设定的准确度来决定。

2025-05-06 18:21:17 258

原创 OpenCV(24-1):图像轮廓之一:轮廓查找和绘制

边缘检测虽然能够检测出边缘,但边缘是不连续的,检测到的边缘并不是一个整体。图像轮廓是指将边缘连接起来形成的一个整体,用于后续的计算。图像轮廓是图像中非常重要的一个特征信息,通过对图像轮廓的操作,我们能够获取目标图像的大小、位置、方向等信息。轮廓是一些列相连的点组成的曲线,代表了物体的基本外形,相对于边缘,轮廓是连续的,边缘并不全是连续的。

2025-05-06 18:11:42 637

原创 OpenCV(23):模板匹配

模板匹配可以实现在源图像中查找特征图像,特征图像一般是一个矩形图像。在前面的文章中也介绍到过一些关于“匹配”功能的方法,比如形态学变换中的匹配,它的要求非常高,如果像素值存在任何细小差别就会导致不能匹配,另外比如直方图反映射,可以用来匹配某种颜色的区域。

2025-05-06 18:00:17 1019

原创 OpenCV(22):直方图均衡化

反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式。简单的讲, 所谓反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的该特征。

2025-05-06 17:46:25 1272

原创 OpenCV(21-3):几何变换之三:透视变换

英文称为matrix decomposition或matrix factorization是将矩阵拆解为数个矩阵的乘积,可分为三角分解、满秩分解、Jordan分解和SVD(奇异值)分解等,常见的有三种:1)三角分解法 (Triangular Factorization),2)QR 分解法 (QR Factorization),3)奇异值分解法 (Singular Value Decompostion)。透视变换矩阵, 而有了这个矩阵,我们就能对框里面的每个像素做透视变换,得到最终的图片了。

2025-05-06 11:52:36 876

原创 OpenCV(21-2):几何变换之二:仿射变换

点1, 2 和 3 (在图一中形成一个三角形) 与图二中三个点一一映射, 仍然形成三角形, 但形状已经大大改变. 如果我们能通过这样两组三点求出仿射变换 (你能选择自己喜欢的点), 接下来我们就能把仿射变换应用到图像中所有的点.变换矩阵的获取需要至少三组变换前后对应的点坐标,设取原图上的三个点组成矩阵points1,变换后的三个点组成的矩阵points2。要先设置一个2×3变换矩阵M,然后使用cv2.warpAffine()函数对原图像和变换矩阵M进行仿射操作。:为2x3阶的仿射变换矩阵。

2025-05-06 11:30:20 607

原创 OpenCV(21-1):几何变换之一:缩放、翻转、重映射

图像的几何变换是指将一幅图像映射到另一幅图像内。有缩放、翻转、仿射变换、透视、重映射等操作。

2025-05-06 11:15:55 862

原创 OpenCV(20):霍夫圆变换

而对圆来说,我们需要三个参数来表示一个圆,如上文所说现在原图像的边缘图像的任意点对应的经过这个点的所有可能圆是在三维空间有下面这三个参数来表示了,其对应一条三维空间的曲线。, 也叫2-1霍夫变换(21HT), 它的原理依据是圆心一定是在圆上的每个点的模向量上, 这些圆上点模向量的交点就是圆心, 霍夫梯度法的第一步就是找到这些圆心, 这样三维的累加平面就又转化为二维累加平面. 第二步根据所有候选中心的边缘非0像素对其的支持程度来确定半径。表示圆心的位置 (下图中的绿点) 而。

2025-05-06 10:27:35 350

原创 OpenCV(19):霍夫线变换

检测。

2025-05-06 10:17:01 816

原创 OpenCV(18):Canny边缘检测流程(Canny算子)

Canny边缘检测算法是 John F. Canny 于 1986年开发出来的一个多级边缘检测算法,也被很多人认为是边缘检测的最优算法。

2025-05-06 10:00:50 1220

原创 OpenCV(17-2):图像梯度之二:Scharr算子、laplacian算子

你会发现在一阶导数的极值位置,二阶导数为0。但是, 二阶导数的0值不仅仅出现在边缘(它们也可能出现在无意义的位置),但是我们可以过滤掉这些点。这是由于Sebel算子在计算相对较小的核时,其近似计算导数的精度比较低,例如使用3*3的Sobel算子时,在梯度角接近水平或垂直方向时,其不精确度就非常明显。,其基础来自于一个事实,即在边缘部分,像素值出现”跳跃“或者较大的变化。Scharr算子又称为Scharr滤波器,也就是计算x或y方向上的图像差分,在openCV中主要是配合Sobel算子的运算而存在的。

2025-05-06 09:39:33 987

原创 OpenCV(17-1):图像梯度之一:Sobel算子

可以把图像看成二维离散函数:图像梯度其实就是这个二维离散函数的求导:其中:其中,是图像像素的值(如:RGB值),为像素的坐标。图像梯度一般也可以用中值差分:图像边缘一般都是通过对图像进行梯度运算来实现的。图像梯度的最重要性质是,梯度的方向在图像灰度最大变化率上,它恰好可以反映出图像边缘上的灰度变化。上面说的是简单的梯度定义,其实还有更多更复杂的梯度公式。

2025-05-06 09:27:13 654

原创 OpenCV(16):边界填充

前面我们学习了图像的卷积操作。一个很自然的问题是如何处理卷积边缘。当卷积点在图像边界时会发生什么,如何处理这个问题?大多数用到卷积操作的OpenCV函数都是将给定图像拷贝到另一个轻微变大的图像中,然后自动填充图像边界(通过下面示例代码中的各种方式)。这样卷积操作就可以在边界像素安全执行了(填充边界在操作完成后会自动删除)。边界填充将源图像复制到目标图像的中间并在图像周围形成边框。如果你想给你的图片设置边界框,就像一个相框一样的东西,你就可以使用函数。

2025-05-06 09:04:39 384

空空如也

空空如也

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

TA关注的人

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