自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 编译原理 第五章笔记分享(3)

2024-12-13 19:39:34 54

原创 编译原理 第五章笔记分享(2)

2024-12-13 19:38:48 50

原创 编译原理 第五章笔记分享(1)

2024-12-13 19:37:56 53

原创 头歌-第5关:LoG 边缘算子

拉普拉斯算子对图像中的嗓声相当敏感,而且它常产生双像素宽的边缘,也不能提供边缘方向的信息。为此,马尔(Marr)和希尔得勒斯(Hildreth)根据人类视觉特性提出了一种边缘检测的方法,该方法将高斯滤波和拉普拉斯检测算子结合在一起进行边缘检测的方法,故称为 LoG(Laplacian of Gassian )算法,也称之为拉普拉斯高斯算法。然后使用定义的算子对图像进行卷积计算,图6描述了二维图像的卷积算法,即使用卷积核对原像素的相同大小部分的对应位置相乘,把相乘的结果相加,放在中心的像素位置上替代原像素。

2024-12-13 19:25:20 988

原创 人脸识别系统 —— OpenCV人脸检测 色彩空间及其转换

在科学研究一般不采用RGB色彩空间,它将色调,亮度,饱和度三个量放在一起表示,很难分开,这样难以对其进行数字化的调整。目前,色彩空间已经有上百种表示方式,被采用的大多数色彩空间都是面向硬件或面向应用的,大部分只是局部的改变或专用于某一领域。它是最通用的面向硬件的色彩空间。在OpenCV的灰度空间中,和一般的色彩空间相同,每一个颜色都有三个量,但是只有第一个亮度有值,所以表示为(亮度,0,0)。色彩空间(Color space)是对色彩的组织方式,是坐标系统和子空间的阐述,位于系统的每种颜色都有单个点表示。

2024-11-24 16:15:00 604

原创 人脸识别系统 —— OpenCV人脸检测 图片基本操作

本关任务:了解OpenCV计算机视觉库,学习使用OpenCV采集图片、读取图片、展示图片以及保存图片。补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。在完成图像的一系列操作之后,可以使用cv2.imwrite()将图片保存到本地。在接下来的实训中,我们会根据这个流程,一一讲解,带大家快速高效的入门人脸识别。第一个参数为图片路径,图片应该在当前的工作路径,或在指定的绝对路径下;第一个参数为图片路径,图片应该在当前的工作路径,或在指定的绝对路径下;

2024-11-23 13:30:00 888

原创 人脸识别系统 —— OpenCV人脸检测 绘制人脸与人眼区域

图片坐标以左上角为原点,(x,y)代表人脸区域左上角坐标,w代表人脸区域的宽度(width),h代表人脸区域的高度(height)。对于上图的红色人脸边框,可以指定左上角坐标为(x,y),右上角坐标为(x+w,y+h),颜色设定红色,边框线粗度为2。同样的(ex,ey,ew,eh)中(ex,ey)代表眼睛区域的左上角坐标,ew代表宽度,wh代表高度。所以,一般情况下,我们会先检测出人脸区域,然后在人脸区域中使用眼睛区域检测模型得到眼睛区域,进而绘制。使用OpenCV绘制人脸区域中眼睛区域。

2024-11-22 09:19:00 675

原创 人脸识别系统 —— OpenCV人脸检测 基于Harr特征的人脸检测分类器

图像中的特征通常是指,图片的像素点经过一系列的运算之后得到的结果,这些结果可能是向量、矩阵和多维数据等等。类Harr特征是一种反映图像的灰度变化的,像素分模块求差值的一种特征。红色的搜索框不断移动,检测出是否包含人脸。一般来说,输入的图片会大于样本,为了检索出不同大小的目标,分类器可以按比例的改变自己的尺寸,对输入图片进行多次的扫描。补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。特征模板的特征值计算的方式,是用黑色矩形像素总和的均值减去白色矩形像素总和的均值。

2024-11-22 09:17:59 681

原创 基于OpenCV的行人检测 实战:基于openCV的行人检测(三)

在任务九中我们有提到,OpenCV有封装好的行人检测器,但是为了更贴合我们自己的应用场景需求,我们使用自己训练的模型来进行预测,因此加载训练模型我们选择上一小节中的第一类方式,使用cv2.HOGDecriptor保存和加载模型,另外为了节省时间,这里我们不放取完整的训练预测数据集,仅仅放上其中的一小部分,以供同学们熟悉整个流程,测试的时候我们不使用这一小部分数据训练得到的模型,而是使用完整数据集离线训练好的模型来进行测试。这里我们使用的是第一种方式,使用cv2.HOGDecriptor保存和加载模型。

2024-11-22 09:17:29 585

原创 基于OpenCV的行人检测 实战:基于openCV的行人检测(二)

这里我们可以使用OpenCV中已经训练好的行人检测分类器,需要注意的是OpenCV自带的分类器是利用HOG论文作者Navneet Dalal和Bill Triggs提供的样本进行训练的,得到的模型不一定能够适用于你的应用场合,因此针对你的特定应用场景,很有必要进行重新训练得到适合的分类器,也就是创建并使用自己的数据训练一个SVM分类器。在前面的任务中我们介绍了使用OpenCV进行样本数据处理,以及HOG特征的提取,在本次任务中,我们将会基于OpenCV,使用提取的HOG特征来训练SVM分类器。

2024-11-22 09:05:01 927

原创 基于OpenCV的行人检测 实战:基于openCV的行人检测(一)

负样本是从不包含人体的图片中随机截取,每张样本图片截取10张图,顶点随机生成,大小同样为64 * 128。在前面的任务中我们介绍了使用OpenCV进行图像处理,图像HOG特征的提取,SVM分类器以及非极大值抑制(NMS),在之后的任务中,我们将会基于OpenCV,使用SVM来对提取的HOG特征进行分类,进行行人检测任务,这里我们不再讨论HOG或者SVM的理论部分,直接进入实战阶段,本次任务为基于OpenCV的行人检测的第一部分,编程实现相关内容,在实践中对相关内容有一个深刻认识。

2024-11-22 08:57:00 636

原创 基于OpenCV的行人检测 非极大值抑制算法

对于目标检测任务来说,使用训练好的模型预测图像是否存在目标对象时,获得到很多同类候选框,他们往往大部分是重叠在一起的,非极大值抑制的含义就是对于重叠度较高的一部分同类候选框来说,去掉那些置信度较低的框,只保留置信度最大的那一个进行后面的流程,这里的重叠度高低与否是通过 NMS 阈值来判断的。简单来说,就是找出不同候选框的置信度进行比较,并考虑不同候选框的重叠问题。选择测试结果列表中置信度最高的候选框加入到最终输出列表中,并将其从测试结果列表中删除;计算置信度最高的候选框与其他候选框的IoU;

2024-11-22 08:51:33 436

原创 基于OpenCV的行人检测 基于OpenCV实现支持向量机

OpenCV有一个Machine learning库—cv2.ml创建一个SVM模型来训练,OpenCV相关内容文档阅读(https://docs.opencv.org/3.4/d1/d2d/classcv_1_1ml_1_1SVM.html)。线性SVM:当训练数据不能线性可分但是可以近似线性可分时,通过软间隔(soft margin)最大化也可以学习到一个线性分类器,即软间隔SVM;SVM是用来解决分类问题的,如果解决两个变量的分类问题,可以理解成用一条直线把点给分开,完成分类。

2024-11-22 08:48:14 733

原创 基于OpenCV的行人检测 基于OpenCV提取HOG特征(二)

所以窗口每滑动一次,得到一个block,一个block有四个cell,在前面的步骤中,我们基于图像的梯度对每个cell创建了一个直方图,即有四个直方图,将这4个直方图拼接成长度为36的向量,然后使用L2范数对这个向量进行归一化。比如上面方向图中蓝圈包围的像素,角度为80度,这个像素对应的幅值为2,所以在直方图80度对应的bin加上2。右图是 8×8 的cell中表示梯度的原始数字,注意角度的范围介于0到180度之间,而不是0到360度, 这被称为“无符号”梯度,因为两个完全相反的方向被认为是相同的。

2024-11-22 08:41:56 759

原创 人脸识别系统——Dlib人脸检测 检测并绘制人脸区域

在Dlib中,已经有通过大量的数据和参数优化训练的效果非常的模型,该模型也是基于HOG+SVM的。print("所在区域: {}: Left: {} Top: {} Right: {} Bottom: {}".format(i, d.left(), d.top(), d.right(), d.bottom()))对于dets中的每一个元素d,都可以通过d.left(), d.top(), d.right(), d.bottom()分别获取到d对应的人脸区域的最左,最上,最右和最下的四个值。

2024-11-22 08:17:20 812

原创 人脸识别系统——Dlib人脸检测 训练人脸检测模型

大量的研究和实验表明,在物体检测的领域中,与HOG一起使用的算法中,SVM算法的效果是最好的。定义模型训练需要的参数, 其中:add_left_right_image_flips设置为True,SVM的惩罚因子C设置为5,CPU核数num_threads设置为4,be_verbose属性设置为假(False);在SVM中,C是惩罚系数,即对误差的宽容度。其中,training_xml_path是训练数据标记文件路径,options是我们前一步设置的值,将最后的检测器输出为 detector.svm文件。

2024-11-22 08:14:08 837

原创 人脸识别系统——Dlib人脸检测 HOG特征描述方法

举个简单的例子吧,现在有一个(5,55)对,首先梯度角度为55度,它位于[40度,60度]之间,那么它会映射到第3个bins,第3个bins的值会加上他的梯度,也就是加上5。图像是由一个个像素点组成的,可以将图像看成二维离散函数f(x,y),图像函数f(x,y)在点(x,y)的梯度G(x,y)是一个具有大小和方向的矢量,设为G x和 G y , 分别表示水平(x)方向和垂直(y)方向的梯度.其中 I(i,j)表示(i,j)像素点处的图像的像素值, Θ(i,j)表示(i,j)像素点梯度的方向。

2024-11-22 08:06:39 839

原创 编译原理 第四章笔记分享(7)

2024-11-18 21:06:51 63

原创 编译原理 第四章笔记分享(6)

2024-11-18 21:06:14 40

原创 编译原理 第四章笔记分享(5)

2024-11-18 21:05:09 43

原创 编译原理 第四章笔记分享(4)

2024-11-18 21:04:02 43

原创 编译原理 第四章笔记分享(3)

2024-11-18 21:03:05 393

原创 编译原理 第四章笔记分享(2)

2024-11-18 21:02:09 272

原创 编译原理 第四章笔记分享(1)

2024-11-18 21:00:24 164

原创 头歌 基于OpenCV的行人检测 使用OpenCV处理图像数据(三)

图像分辨率:图像的分辨率(Image resolution) 图像的分辨率是指单位打印长度上的图像像素的数目,表示图像数字信息的数量或密度,它决定了图像的清晰程度。在同样大小的面积上,图像的分辨率越高,则组成图像的像素点越多,像素点越小,图像的清晰度越高。使用OpenCV读取图像时,可以设置读取的图像为彩色图像或者灰度图,彩色图片也就是3通道图像,由三基色B(蓝)\G(绿)\R(红)通过不同的比例混合而成,在图像像素中用[0-255表示]表示B\G\R颜色的深浅。根据应用种类的不同,原色的种类也不同。

2024-11-16 11:30:00 697

原创 头歌 基于OpenCV的行人检测 使用OpenCV处理图像数据(二)

在上一次任务中,我们学习了如何使用OpenCV去读取、显示、保存以及更改图像数据,在本次任务中我们将学习进一步的图像处理操作,包括实现图像缩放、平移等处理。new_img5 = img[100:200,100:300] # 获取原图像中宽为100-200,高为100-300部分的图像内容。# 方法二:操作`cv2.imread()`返回的ndarray数据。# 方法二:操作`cv2.imread()`返回的ndarray数据。src(必需):原图像数据,numpy.ndarray类型。

2024-11-15 10:59:33 659

原创 头歌 基于OpenCV的行人检测

在程序执行过程中,如果不使用cv2.waitKey()函数,则图片显示的速度会很快,人肉眼无法观察到,这一个函数相当于一个键盘绑定函数(相当于让程序在这里挂起暂停执行),他接受一个单位为毫秒的时间,它等待指定时间的键盘事件,在指定时间内发生了键盘事件,程序继续执行,否则必须等到时间结束才能继续执行,参数如果为0表示等待无限长的事件。flags:指定以何种方式加载图片,有三种取值,分别为(cv2.IMREAD_COLOR:彩色图片,透明度被忽略,默认值;winname:字符串,表示显示图像窗口的名字;

2024-11-15 10:54:35 700

原创 头歌 SVM支持向量机分类 模型测试

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。同样的,我们可以给出一个数据,使用训练好的模型进行预测,该过程与训练数据的处理过程相同,不同之处在于,不需要进行模型的重新训练,直接使用训练好的模型进行预测。在右侧编辑器中的 Begin-End 之间补充 Python 代码,根据提供的一段评论,完成基于支持向量机模型的情绪预测。符号指的是一个个的单词,符号化的过程就是把字符串切分成符号的过程。本关任务:根据前述内容,构建支持向量机模型后,完成训练后进行模型的预测。

2024-11-15 10:33:46 670

原创 头歌 SVM支持向量机分类 SVM模型构建及训练

scikit-learn 中SVM的算法库分为两类,一类是分类的算法库,包括SVC, NuSVC,和LinearSVC 3个类。其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。常用的核函数有:线性核、多项式核、高斯核、拉普拉斯核、sigmoid核、通过核函数之间的线性组合或直积等运算得出的新核函数。本关任务:根据本关所学有关支持向量机的知识,编写支持向量机模型构建及训练过程的程序。支持向量机模型构建及训练。支持向量机基础知识;

2024-11-15 10:31:15 490

原创 头歌 SVM支持向量机分类 词向量的转化

TF-IDF方法会对常用的单词做惩罚,降低它们的权重。该技术采用一种统计方法,根据字词的在文本中出现的次数和在整个语料中出现的文档频率来计算一个字词在整个语料中的重要程度。比如词袋模型(Bag-Of-Words),TF-IDF,word Embeddings 之类的方法。下面,我们来学习一下 TF-IDF 具体操作的流程,输入一段文本后,使用 TfidfVectorizer生成词频矩阵,再计算 TF-IDF 值。本关任务:认识TF-IDF 词向量特征提取的基本流程,完成对数据进行提取的程序。

2024-11-15 09:26:46 1115

原创 头歌 SVM支持向量机分类 数据可视化

可以看出,饼图中三种类别在数据集的分布并不是平均的,因此可以事先使用数据增强的方法对类别少的数据进行补充,从而缓解数据集中本身存在的类别不平衡问题。下面,我们使用饼状图对财经新闻数据进行可视化,从而观察它数据分布情况,它的步骤是首先统计出数据中每个类别的总量,然后放入ax.pie()函数,它的参数label接受需要可视化的数据,然后绘制出饼状图。也可以用作制作动画。数据的统计分析能帮助我们更好的认识自己所进行的任务,有时候还可以帮助我们找到数据中的关键信息,帮助我们更好的训练模型。

2024-11-15 09:08:02 884

原创 头歌 SVM支持向量机分类 数据预处理

这一步的目的就是把那些噪声信息剔除掉,因为噪声信息对于情感分析没有什么贡献,比如那些标点符号,特殊字符,数字,以及对文本的权重贡献很低的内容。在财经数据集的第四行数据中,有一个单词‘focusing’,在余下的语料中也有更多的单词,例如 focus,focused 等等,其实都是一个词。如果我们能把这些词都归到它们的根源上,也就是都转换成 focus,那么我们就可以大大降低不同单词的数量,而不会损失太多信息。所以我们也把长度小于3的词去掉。符号指的是一个个的单词,符号化的过程就是把字符串切分成符号的过程。

2024-11-15 08:42:26 535

原创 头歌 角点检测

Harris 角点检测的基本思想:算法基本思想是使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与滑动后两种情况,窗口中的像素灰度变化程度,如果存在任意方向上的滑动,都有着较大灰度变化,那么我们可以认为该窗口中存在角点。最后的重点,我们对红色的框框进行移动,无论是往哪个方向进行偏移都会对框框内的像素值造成很大的变动,那么红色框框框住的区域的边角点,我们就称为角点。如图1有三个颜色的框框,如果我们对蓝色框框进行移动,无论是水平还是垂直的方向移动都不会对框框内像素造成很大的变化,这种是内部区域。

2024-11-11 12:30:00 795

原创 头歌 SVM支持向量机分类 数据集介绍及读取

read_csv 用来读取 csv 格式的数据文件,具体操作如下,需要注意的是在读取数据的代码中也是要插入文件路径的,如果要读取的文件保存在 Python 工作目录中就可以不用加路径,用 ’文件名.格式 ’就可以了。在本次的实践中,我们就使用了这样的一个数据。即我们的任务是区分情感中的类别,要实现的是根据财经文本的描述对其进行分类。在右侧编辑器中的 Begin-End 之间补充 Python 代码,完成财经数据集的读取,其中参数设置:delimiter=',',encoding='latin-1'。

2024-11-11 10:45:00 1921

原创 N皇后问题

n皇后问题是一个经典的算法和组合优化问题,其主要内容是在一个n x n的棋盘上放置n个皇后,使得任意两个皇后之间都不互相攻击。这个问题最早由国际象棋问题引出,但现在已广泛应用于计算机科学领域中,用于研究回溯、动态规划和约束满足等算法。

2024-11-10 22:33:41 527

原创 头歌 使用OpenCV进行霍夫变换~圆形(HoughCircles)

param2:特定方法参数,和method配合;circles = cv.HoughCircles(gray, cv.HOUGH_GRADIENT, 0.5, 100, param1=50, param2=30, minRadius=0, maxRadius=0) # dp设置为1.5。从运行结果看,返回的圆形是一个3维numpy数组,shape属性为(1, 5, 3),shape[0]固定为1,shape[1]为9表示包含9组圆形的参数,shape[2]的3个数值包含圆形的x,y坐标和半径的值。

2024-11-10 13:00:00 646

原创 头歌 边缘检测

最后,使用cv2.addWeighted函数将水平和垂直方向上的梯度加权合并,得到最终的边缘检测结果。然后,通过cv2.imshow函数显示原始图像和边缘检测结果,并使用cv2.waitKey和cv2.destroyAllWindows等函数来控制窗口的显示和关闭。具有高于高阈值的像素被视为强边缘,低于低阈值的像素被视为非边缘,而介于两个阈值之间的像素被视为弱边缘。这样可以细化边缘,使其变得更细。像素梯度高于第二个阈值的被认为是强边缘,低于第一个阈值的被认为是非边缘,介于两个阈值之间的被认为是弱边缘。

2024-11-10 10:45:00 891

原创 头歌 基于区域的图像分割——区域生长

具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素具有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中。将这些新像素当做新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来,这样,一个区域就长成了。它从队列中取出当前的种子点,将其标记为指定的标签,并遍历种子点的八个相邻像素。根据图像的不同应用选择一个或一组种子,它或者是最亮或最暗的点,或者是位于点簇中心的点,当然也可以手动选择种子点。

2024-11-09 13:45:00 1163

原创 头歌 分水岭算法

如图中展现了凹凸不平的地貌,视觉上明显的位置有盆地及丘陵,用一维曲线讲对应波峰与波谷,向盆地注水,水会顺这地势先注入地势最低的波谷,然后随着水势升高再注入高一级的波谷,为了保证先注满第一个波谷,需要在右侧波峰出修建大坝,随后依次分水岭注满。dst:可选参数,输出结果保存的变量,默认值为None,如果为非None,输出图像保存到dst对应实参中,其大小和通道数与输入图像相同,图像的深度(即图像像素的位数)由dtype参数或输入图像确。image:也就是输入图像,必须是二值图,即8位单通道图像。

2024-11-09 13:00:00 807

原创 头歌 基于直方图的特征提取

HOG会把这些像素分成若干个较大的正方形单元,单元通常是8*8,如果图片小一些,单元就相应小一些,8*8即有64个梯度值,HOG 会计算每个单元相同方向的梯度有多少,将这些梯度的幅值相加得到梯度强度。首先将一个图像灰度化,看作一个x,y,z的三维图像,采用Gamma校正法对输入图像进行颜色空间的标准化,其目的是为了调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,抑制噪音干扰。将图像划分为多个子区域(cell),并统计每个cell的梯度直方图,即获得每个 cell 的 descriptor。

2024-11-08 11:08:05 1022

空空如也

空空如也

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

TA关注的人

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