自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【mmdetection安装】在线安装和离线安装

记录mmdetection安装过程,网络环境好久就选择在线安装,记录离线安装是因为超算网络环境太恶劣…

2024-04-30 20:38:27 814 1

原创 Machine Vision Technology:Lecture11 Camera Model

在欧式空间(笛卡尔空间)中,使用坐标描述2D/3D几何非常合适,例如2维欧式空间中的点表示为(x , y),3维空间中点表示为(x , y , z)。我们从针孔/透镜模型中得到了摄像机坐标系转换到像平面坐标系的公式,但真实的像素坐标系的坐标原点在左下角,因此还需要加个偏移,将像平面坐标转换为像素坐标。,当一个点位于无穷远处时,该点的欧氏空间坐标中会出现。,这显然不合适,而使用齐次坐标能够很好的解决此问题。当点在二维空间的无穷远处时,它的笛卡尔坐标系为。笛卡尔坐标与齐次坐标是一对多的关系,齐次坐标族。

2024-03-21 14:45:42 1076

原创 Machine Vision Technology:Lecture10 Object Detection

Faces are rare: 0–10 per image 人脸罕见:每张图片0-10哥人脸。Feature design and scoring 特征设计和评分。详情看论文,没听太明白。就积分图有点像二维联合分布函数的矩形公式。是 value of rectangle feature,是 Strong classifier 强分类器,通过几个分类器组合起来得到最终分类器。是 Features vector,是Weak classifier,是threshold。1.找到正确率大于0.5的分类器。

2024-03-21 14:36:23 884

原创 Machine Vision Technology:Lecture9 Recognition | bag of features

To handle intra-class variability, it is convenient to describe an object categories using probabilistic models 为了处理类内的可变性,使用概率模型来描述对象类别是很方便的。不同层级的向量合并起来构成更多维,即是两幅图像的level0相同,在更细的层次上level1可能不同。),比较经典的有 Moravec 算子、Forstner 算子以及 Harris 算子等。occlusion 遮挡。

2024-03-21 14:33:17 1049

原创 Machine Vision Technology:Lecture8 Segmentation

得到的向量y可能不是整数,可以通过threshold调整为整数。最小割:在图论中,去掉其中所有边能使一张网络流图不再连通(即分成两个子图)的边集称为图的割(英语:cut (graph theory))(英语:cut),一张图上最小的割称为最小割(英语:minimum cut或min-cut)。把一个集合V切割成两个集合A和B,要求切割掉的边的权重之和最小,但是这样很容易得到A为一个点,B为其余点的情况,所以才提出了这样的一个cost:避免孤立点的分割,避免把A切成一个像素B切成一个整体或者相反的情况。

2024-03-21 14:11:56 862

原创 Machine Vision Technology:Lecture7 Texture

2.分割Segmentation、分类classification。3.合成synthesis。1.从纹理中恢复形状。

2024-03-21 13:57:42 301

原创 Machine Vision Technology:Lecture6 Blob detection斑点检测

下面图中每个小方格的8方向的直方图表示为八个方向的线段,线段的长度表示该方向的灰度强度。如上图中右下角的图像,上面这里的极大值是最后一个信号的Laplacian滤波之后,对比与前面三个两个极小值的峰值的叠加。然后继续计算这个新的区域的M矩阵。求区域每一点的梯度,做梯度方向的直方图,然后找到直方图中最大的一个角度,将其转这个角度到水平位置,这样两个图像对应的区域的角度差异就可以得到纠正。可以得到同一个点的不同尺寸的圆:在尺度空间某一点比较连续三个图层、或者连续5个图层的响应值,可得到2个不同半径的圆。

2024-03-16 16:43:45 901

原创 Machine Vision Technology:Lecture5 Local feature:Corners角点

We want corner locations to be invariant to photometric transformations and covariant to geometric transformations我们希望角点的位置对光度变换是不变的,对几何变换是协变的。指的是上图中的三个红点,在进行变换前后部分角点同样被检测出来。下面每个椭圆对应着对应位置的二阶矩矩阵,可以发现,椭圆的短轴对应梯度变化快的方向,对应的矩阵的特征值小。为挪动新的坐标时,新的窗口与原窗口的差异值,反映挪动。

2024-03-16 16:32:02 1032

原创 Machine Vision Technology:Lecture4 Fitting

总之,霍夫变换用图像空间中的像素点给参数空间中的点投票,得票数高的参数即是我们要求的参数。在直线检测中,图像空间中的点xy(x,y)xy利用ρxcos⁡θysin⁡θρxcosθysinθ投票给参数空间ρθρθ处,ρθρθ处的分数加1。在圆形检测中,图像空间中的点xy(x,y)xy利用xyr∇Ixyxyr∇Ixy或者xy−r∇Ixyxy−r∇Ixy投票给参数空间abr。

2024-03-15 17:38:42 908

原创 Machine Vision Technology:Lecture3 Edge detection | Fitting

在边上的某一点,沿着该点的梯度方向(与边的方向垂直),寻找左右两个邻居像素点,如对上面的q点,找到梯度方向的两个点r和p,如果q比r与q都大,则保留q点,如果q比r与q都小,则q剔除不保留。由于噪声影响太大,一阶导数的极值点有很多,便很难找到边缘。这些点中有一些噪声点。对原图进行卷积操作:使用x方向的卷积模版求x方向的导数,使用y方向的卷积模版求y方向的导数。提取的是 135度方向的边,在边中像素差距不大,边的两边像素差距大。表示点在单位法向量上的投影,即求点在单位法向量上投影的和的最小值满足的。

2024-03-15 17:28:59 905

原创 Machine Vision Technology:Lecture2 Linear filtering

设fff为图像,ggg为核,fff和ggg的卷积输出定义为f∗gf*gf∗gf∗gmn∑klfm−kn−lgklf∗gmnkl∑​fm−kn−lgklf∗gmn∑klfm−kn−lgkl∑k−1k1∑l−1l1fm−kn−lgklf∗gmn​kl∑​fm−kn−lgklk−1。

2024-02-29 23:07:23 1021

原创 Machine Vision Technology:Lecture1 Introduction

Vision as a source of semantic information 视觉作为语义信息的来源。Vision as measurement device 视觉作为测量装置。

2024-02-29 22:49:18 381

原创 string的模拟实现

第二个成员是size。在等号赋值的过程中,如果赋值的字符串较短,则在原来的内存空间中直接复制。2.当n=15时,也就是n>size,需要插入数据,直接调用reserve扩容为n个空间,然后将剩下的插入指定字符c。而查看str2的字符串视图:发现buf数组为随机值,ptr指向实际的字符串,size和res分别为字符个数和容量。发现buf是包含16个字符的数组,里面存放了字符串,ptr为空,size和res分别为字符个数和容量。值得说的是,有了上面的reserve,我们在扩容时,代码上就可以更简洁,不用进行。

2024-01-08 00:35:37 1198 1

原创 error C2666: “Date::operator ==”: 重载函数具有类似的转换

【代码】error C2666: “Date::operator ==”: 重载函数具有类似的转换。

2024-01-02 23:51:51 865 1

原创 USTC Fall2023 高级人工智能期末考试回忆版

5.神经网络的隐藏层的:1和2可以减少参数的数量。a.注意力机制、自注意力机制、交叉注意力机制分别是什么?1(10‘).举一个蒙特卡洛搜索树的例子,详细介绍计算细节。3.函数f的近似值h,评价h的优劣:完备性、准确性、复杂性。10个判断题一个一分,记不得有什么了,好像大部分都是对的。2(10‘).什么是子博弈?什么是子博弈精炼纳什均衡。3(10‘).详细介绍爬山法和模拟退货算法及其差异。公式的填空,并给出Q、K、V的维度。4.遗传算法的东西:交叉、什么和什么。4(10‘).强化学习中的。

2023-12-06 15:52:32 456

原创 动手学深度学习:2.线性回归pytorch实现

对于标准深度学习模型,我们可以使用框架的预定义好的层。这使我们只需关注使用哪些层来构造模型,而不必关注层的实现细节。我们首先定义一个模型变量net,它是一个Sequential类的实例。Sequential类将多个层串联在一起。当给定输入数据时,Sequential实例将数据传入到第一层, 然后将第一层的输出作为第二层的输入,以此类推。在下面的例子中,我们的模型只包含一个层,因此实际上不需要Sequential。但是由于以后几乎所有的模型都是多层的,在这里使用Sequential。

2023-11-04 16:00:41 772 1

原创 动手学深度学习:1.线性回归从0开始实现

我们必须定义模型,将模型的输入和参数同模型的输出关联起来。要计算线性模型的输出, 我们只需计算输入特征XXX和模型权重www的矩阵-向量乘法后加上偏置bbb。注意,上面的XwXwXw是一个向量,而bbb是一个标量,由于广播机制: 当我们用一个向量加一个标量时,标量会被加到向量的每个分量上。"""线性回归模型"""因为需要计算损失函数的梯度,所以我们应该先定义损失函数。这里使用平方损失函数。"""均方损失"""

2023-11-04 15:05:07 534

原创 Python11-正则表达式

正则表达式(Regular Expression)是一种用于匹配、查找和操作文本的工具。它是由一系列字符和特殊字符组成的模式,用于描述字符串的特征。在Python中,可以使用内置的re模块来使用正则表达式。re模块提供了一系列函数来进行正则表达式的匹配、查找和替换等操作。Q:将下面的word中的数字取出else:if number!= '':import re通过上面的例子我们体会到了使用正则表达式对字符串处理的便捷。下面我们将介绍python中正则表达式的使用。

2023-10-24 10:52:35 522 1

原创 Python10-使用urllib模块处理URL

是 Python 标准库中的一个模块,提供了用于处理 URL(Uniform Resource Locator)的功能。返回值:返回response对象,类似文件的对象(file-like的对象),可以使用。类,你可以设置请求的 URL、数据、请求头等信息。对象作为参数传递,发送了 HTTP 请求,并得到一个响应对象。提供了解析 URL、构建 URL 和查询字符串处理等功能。打开指定的 URL,并返回一个类似文件的对象,可以使用。可以打开 URL 并读取其内容,使用。(打开和读取URL)、

2023-10-19 21:19:10 283

原创 Python9-基于socket的网络编程

套接字(Socket)是计算机网络编程中的一种抽象概念,用于在网络中传输数据。它提供了一种通信机制,使得不同计算机上的进程(或线程)能够通过网络进行相互通信和数据交换。套接字可以看作是网络通信的端点,类似于两个进程之间的通信通道。每个套接字都与一个特定的IP地址和端口号相关联,它们用于标识网络中的进程和服务。套接字可以分为两种类型:流套接字(Stream Socket)和数据报套接字(Datagram Socket)。

2023-10-19 21:13:41 285 1

原创 OpenCV17-图像形态学操作

根据两者的特性,将图像腐蚀和膨胀适当结合,便可以既去除图像中的噪声,又不缩小图像中主要区域的面积;在定义结构元素之后,将结构元素的中心点依次放到图像中每一个非零元素处,如果原图中某个元素被结构元素覆盖,但是该像素的像素值不与结构元素中心点对应的像素点的像素值相同,那么将原图中该像素的像素值修改为结构元素中心点对应点的像素值。对于输出图像中的每个像素位置(x, y),将结构元素B的中心与输入图像I的对应位置(x, y)对齐,然后在结构元素B覆盖的区域内选择输入图像中的最小像素值作为输出图像中的像素值。

2023-10-19 17:16:26 1545 3

原创 Python8-使用json模块解析JSON文件

JSON (JavaScript Object Notation) 是一种用于存储和交换数据的轻量级数据格式。是一种常用的数据格式,用于在不同应用程序之间交换数据。JSON 文件由键值对组成,键和值之间使用冒号分隔,键值对之间使用逗号分隔。键必须是字符串,值可以是字符串、数字、布尔值、数组、对象或者 null。"age": 30,JSON 还支持嵌套结构,可以在值中包含数组或对象。"age": 30,

2023-10-18 22:12:24 258

原创 Python7-使用pickle模块将Python对象序列化

模块序列化的字节流是Python特定的格式,不适用于与其他编程语言交互。模块是Python的标准库之一,用于序列化(即将Python对象转换为字节流)和反序列化(即将字节流转换为Python对象)。:序列化是将Python对象转换为字节流的过程,而反序列化则是将字节流转换回Python对象的过程。模块可以将复杂的对象(包括自定义类的实例)转换为字节流,以便在存储或传输时使用。:如果将对象序列化为字节流,而不是保存到文件中,你可以使用。函数将对象序列化并保存到文件中。函数用于序列化,以及。

2023-10-18 22:10:16 293

原创 OpenCV16-图像连通域分析

函数可以实现图像中多个连通域的统计,但是只能通过标签将图像中的不同连通域分开,无法得到更多的统计信息。有时,我们希望得到每个连通域中心位置或者在图像中标记出连通域所在的矩形区域,该函数用于计算二值图像中连通域的个数,并在图像中不同的连通域用不同的数字标签标记,其中标签0表示图像中的背景色。函数返回图像中连通域的数目。根据两个像素相邻定义方式不同,得到的连通区域也不相同,因此,在分析连通域的同时,一定要声明是在哪种邻域条件下分析得到的结果。连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域。

2023-10-16 17:13:18 1838

原创 OpenCV15-图像边缘检测:Sobel、Scharr、Laplace、Canny

图像的边缘指的是图像中像素灰度值突然发生变化的区域,如果将图像中的每一行像素和每一列像素都描述成一个关于灰度值的函数,那么图像的边缘对应在灰度值函数中是函数值突然变大的区域。通过上面的梯度公式,得到正数值表示像素值突然由低变高,得到的负数值表示像素值由高到低,这两种都是图像的边缘,因此,为了在图像中同时表示出这两种边缘信息,需要将计算的结果求取绝对值。下面的代码中,通过设置不同的阈值来比较阈值的大小对图像边缘检测效果的影响,可以发现,较高的阈值会降低噪声信息的影响,但是也会减少边缘信息。

2023-10-16 17:06:58 2059 4

原创 OpenCV14-图像平滑:线性滤波和非线性滤波

相比于均值滤波,中值滤波对于脉冲干扰信号和图像扫描噪声的处理效果更佳,同时,在一定条件下,中值滤波对图像的边缘信息保护效果更佳,可以避免图像细节的模糊,但是,当中值滤波尺寸变大之后,同样会产生图像模糊的效果。图像的线性滤波与图像的卷积类似,卷积操作中的卷积模版(卷积核)在图像滤波中称为滤波模版、滤波器或者领域算子。无论是图像卷积还是滤波,在原始图像上移动滤波器的过程中每一次的计算结果都不会影响到后面过程的计算结果,因此图像滤波是一个并行算法,在可以提供并行计算的处理器中可以极大地加快图像滤波的处理速度。

2023-10-15 18:05:36 2248 1

原创 OpenCV13-图像噪声:椒盐噪声和高斯噪声

考虑到椒盐噪声会在图像中的任何一个位置随机产生,因此对于椒盐噪声的生成,需要使用OpenCV中能够产生随机数的函数。OpenCV中也没有专门为图像添加高斯噪声的函数,对早在图像中添加椒盐噪声的过程,可以根据需求利用能够产生随机数的函数来完成在图像中添加高斯噪声的任务。椒盐噪声又称作脉冲噪声,他会随机改变图像中的像素值,其样子就像是在图像上随机地撒上一些盐粒和黑椒粒,因此被称为椒盐噪声。函数能够产生均匀分布或者高斯分布的随机数,可以利用该函数产生符合高斯分布的随机数,之后在图像中加入这些随机数即可。

2023-10-14 18:36:59 3936 2

原创 OpenCV12-图像卷积

下面的例子中,卷积结果偏移了2。归一化后的矩阵中每个元素的数值都在一定范围内。再利用相同的卷积模板对彩色图像进行卷积,虽然卷积前后图像内容一致,但是图像整体变得模糊一些。由于边界外没有任何图像信息,因此可以使用。第6个参数是像素边界外推标志,在。OpenCV中提供了。

2023-10-14 18:34:49 584

原创 Python6-wxPython库

import wx# 自定义窗口类super().__init__(None, title="第一个Python程序", size=(400, 300), pos=(100, 100))# 你的代码# 创建应用程序对象# 创建窗口对象# 显示窗口frm.Show()# 进入主事件循环。

2023-10-14 15:48:26 1547

原创 Python5-tkinter库

Tkinter是Python中最常用的图形用户界面(GUI)库之一。它是Python标准库的一部分,因此不需要单独安装。Tkinter提供了一组工具和控件,用于创建各种GUI应用程序,从简单的对话框到复杂的应用程序。简单易用:Tkinter提供了简单且易于使用的接口,使得创建GUI应用程序变得容易上手。跨平台:Tkinter是跨平台的,可以在多个操作系统上运行,包括Windows、macOS和Linux。控件:Tkinter提供了多种预定义的GUI控件,例如按钮、标签、文本框、列表框、复选框等。

2023-10-14 15:44:52 1237

原创 OpenCV11-图像的模版匹配

的方式在图像中寻找模版图像,由于直方图不能直接反映图像的纹理,因此,如果两幅不同的模版图像具有相同的直方图分布特性,那么在同一幅图中对着两幅模版图像的直方图进行反向投影,最终结果将不具有参考意义。第三个参数为相似性矩阵,滑动窗口与模板的相似性系数存放在滑动窗口左上角第一个像素出,因此输出的相似性矩阵尺寸小于原始图像的尺寸,如果原始图像尺寸为。在图像中寻找模版图像时,可以直接通过比较图像像素的形式来搜索是否存在相同的内容,这种通过比较像素灰度值来寻找相同内容的方法称作图像的模版匹配。,那么相似性矩阵尺寸为。

2023-10-13 19:05:32 563 1

原创 OpenCV10-图像直方图:直方图绘制、直方图归一化、直方图比较、直方图均衡化、直方图规定化、直方图反射投影

直方图规定化与直方图均衡化相似,都是对图像的直方图分布形式进行改变,只是直方图均衡化后的图像是均匀分布的,而直方图规定化后的直方图可以任意指定,即在执行直方图规定化操作时,首先要知道变换后的灰度直方图分布形式,进而确定变换函数,直方图规定化有目的地增强某个灰度区间。如果一个图像的直方图都集中在一个区域那么整体图像的对比度比较小,不便于图像中纹理识别。如果通过映射关系,将图像中灰度值的范围扩大,增加原来两个灰度值之间的差值,就可以提高图像的对比度,进而将图像中的纹理凸显出来,这个过程称为图像直方图均衡化。

2023-10-13 18:56:26 1771 1

原创 Python4-检查用户主目录中是否存在目录,如果不存在则创建目录

函数会递归地创建目录,如果目录已经存在,则不会再次创建。它会按照给定的路径依次创建目录,如果路径中的某个目录不存在,则会创建该目录。函数只会扩展路径中的波浪号(~),不会进行其他路径的解析或转换。只检查路径是否存在,并不区分文件和目录。如果路径存在,不论它是文件还是目录,都会返回。函数只能创建单层目录,如果需要递归地创建多层目录,可以使用。因此,如果需要递归地创建多层目录,建议使用。函数用于创建单层目录,如果目录已经存在,则会抛出。如果您需要区分文件和目录,请使用其他函数,如。例如,在上面的示例中,如果。

2023-10-12 22:49:44 632

原创 Python3-批量重命名指定目录中的一组文件,更改其扩展名

函数只能用于获取普通对象(具有实例变量)的属性和属性值,而不能用于获取内置对象(如列表、字典)的属性和属性值。只是将路径组合成一个字符串,它不会检查路径是否存在或验证路径的有效性。它只是简单地将给定的路径部分连接在一起,形成一个完整的路径字符串。函数接受一个路径作为参数,并返回该路径下的所有文件和文件夹的列表。函数只能对存在的文件或目录进行重命名操作,而且它不会递归地重命名目录下的所有子目录和文件。是一个内置函数,用于返回对象的属性和属性值的字典。模块中的函数,用于将多个路径组合成一个完整的路径。

2023-10-12 22:31:35 807

原创 OpenCV9-窗口交互操作

一种绘制轨迹的方法时每次调用回调函数获得鼠标位置时更改周围的图像像素值,这种方法比较直观但是回调函数有一定执行时间,因此当鼠标移动较快时绘制的图像轨迹会出现断点。下面的例子中:如果鼠标右键被按下,就会提示“点击鼠标左键才可以绘制轨迹”,如果单机鼠标左键,就会输出当前鼠标坐标,并将该坐标定义为某段轨迹的起始位置。之后按住左键移动鼠标,会绘制鼠标的移动轨迹。鼠标响应就是当鼠标位于对应图像窗口内时,时刻监测鼠标状态,当鼠标状态发生改变时,调用回调函数,并根据回调函数中的判断逻辑选择执行相应的操作。

2023-10-11 16:09:21 874

原创 OpenCV8-图像金字塔

由于每次图像的尺寸都缩小为原来的一半,图像尺寸缩小的速度非常快,因此常见的高斯”金字塔“的层数为3~6层。假设我们有了一个高斯图像”金字塔“,对于其中的第i层图像(高斯”金字塔“最下面为第0层),首先通过下采样得到一个尺寸缩小一半图像,即高斯”金字塔“中的第i+1层或者不在高斯”金字塔“中,之后对这福图像进行上采样,将图像尺寸恢复到第i层图像的大小,最后求取高斯”金字塔“第i层图像与经过上采样后的图像的残差图像,这个残差图像就是拉普拉斯”金字塔“的第i层图像。

2023-10-11 16:08:03 299

原创 OpenCV7-copyTo截取ROI

有时候,我们只对一幅图像中的部分区域感兴趣,而原图像又十分大,如果带着非感兴趣区域一次处理,就会对程序的内存造成负担,因此我们希望从原始图像中截取部分图像后再进行处理。我们将这个区域称作感兴趣区域(Region of Interest,ROI)。

2023-10-11 16:06:24 956

原创 OpenCV6-图形绘制

下面是绘制多边形的方法:可以一次绘制多个多边形。目前只支持英文文本的输出。

2023-10-11 16:04:18 586

原创 OpenCV5-图像几何变换

本程序中实现通过ImageWatch插件查看了拍摄图像二维码4个角点的坐标,并希望透视变换后二维码可以填满全部的图像,因此在程序中手动输入4个对应点的像素坐标。dsize用来调整输出图像大小,fx和fy一起也可以调整输出图像,因此两类参数在实际使用时只需要使用一类,当根据两个参数计算出来的输出图像尺寸不一致时,以dsize设置的图像尺寸为准。图像的尺寸变换实际上就是改变图像的长和宽,实现图像的缩放。可以将一个圆形图像变换成一个矩形图像,圆形图案边缘上的文字经过极坐标变换后可以垂直地排列在新图像的边缘。

2023-10-10 15:55:25 356

原创 C++ string类使用

头文件<string>// basic_string类模板// 此外还实例化了以下宽度不同的字符串处理类。

2023-10-09 21:35:01 123

空空如也

空空如也

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

TA关注的人

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