自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SQL基础

mysql基础

2023-03-01 02:01:24 306 2

原创 Mysql安装与启动

mysql基础

2022-12-07 22:56:26 490

原创 yolov3

一:深度学习目标检测回顾:1:R-CNN2:Fast-RCNN3:Faster-RCNNyolo的先验框一般采用K-means聚类(数据较多时比较费时间),有时单目标检测时有可进行目测估计

2022-06-02 21:01:30 195 1

原创 图像分割与提取

一:分水岭算法实现图像分割与提取1、原理任何一幅灰度图都可以看作是地理学上的地形表面,灰度值高的区域可以被看作是山峰,灰度值低的可以看作是山谷,根据灰度值在图像上的不同分布进行区域划分就可以实现图像的简单分割。然而由于噪声等因素的影响,采用一般的分水岭算法经常会将图像过度分割,分割图像会变成一个个稠密的独立小块,让分割失去意义。为了改善分割效果,又提出了基于掩模的改进分水岭算法,它允许用户将他认为在同一个分割区域的部分标注出来(被标注部分被称之为掩模),这样在分割时就会将标注的部分处理为同一个分割区域

2022-06-02 20:47:28 1520

原创 deeplab系列

一、deeplabv1单位:谷歌发表会议及时间:ICLR 2015分辨率:连续的池化或者下采样操作会导致图像的分辨率大幅度下降,从而损失原始信息,且在上采样的过程中难以恢复,因此,越来越多的网络都在试图减少分辨率的损失。比如空洞卷积或者卷积代替池化,实验证明,诸如此类方法的替代的确是有效的(有一定效果,但别抱太大希望)。感受野(对应原图的大小)太大,对小目标分割不友好,感受野太小,目标分割不全摘要:背景概述:cnns的最后一层不足以进行精确分割目标主要贡献:将深度卷积神经网络和CRF(条件随机

2022-06-02 20:47:01 442

原创 阿里天池大赛-工业蒸汽预测

一:赛题理解1.1:数据说明数据可以直接在阿里云天池官网下载。其格式如下:上图所示为训练数据,其中V0-V37共38个特征变量,target字段是目标变量。1.1:评估指标预测结果以均方差MSE为评判标准:from sklearn.metrics import mean_squared_errormean_squared_error(y_true, y_pred)1.2:赛题模型在机器学习中,常用的模型包括回归预测模型和分类预测模型1.2.1 回归预测模型回归预测模型的预测结果是一个

2022-06-02 20:45:43 919

原创 dbnet-文字检测

一: 文字检测常用方法(1):基于回归,如:Ctpn(2):基于分割,如:DBNet二:DBNet的网络结构解析1:传统二值化方法2:DBNet中的二值化方法在如上的DBNet结构的threshold map中,threshold并不像传统的二值化的阈值是固定的,它由训练得到,然后与segmentation map一起通过可微分的二值化得到approximate binary map。3:DBNet中的FPN卷积层采用可变形卷积该可变形卷积大致如下:(该卷积不必纠结,已被各个框架

2022-06-02 20:44:43 624 1

原创 git使用

git用法实操

2022-06-02 20:42:18 147 1

原创 物体轮廓检测

import cv2import osimport numpy as npimport pandas as pdfrom PIL import Image,ImageDraw,ImageFontimport copyimage_dir=r"D:\dataset\细条验证\del_bg_image"save_path=r"D:\dataset\细条验证\4_average_width"file=r"D:\dataset\细条验证\细条测试数据.xlsx"origin_dir=r"D:\da

2021-12-24 10:26:17 135

原创 opencv-人脸识别

人脸识别即程序对输入的图像进行判别是否有人脸,并识别出有人脸的图像所对应的人。即我们常说的人脸识别一般包含了人脸检测和人脸识别两部分。下面对其在opencv中的相应模块进行分别介绍。一:人脸检测在人脸检测中,其主要任务是构造能够区分包含人脸实例和不包含人脸实例的分类器,二:基本原理opencv中提供了三种训练好的级联分类器。级联分类器顾名思义即通过不同的特征进行一步步筛选,最终得出所属的分类,它将一个复杂的分类问题拆解为一个个简单的分类问题,随着级联条件的判断,能够一步步筛出大量的负样本,极大的提升

2021-07-12 23:35:32 22953 4

原创 k-均值聚类

根据训练数据是否有标签,我们可以将学习划分为监督学习和非监督学习,如:k近邻、支持向量机都是监督学习,提供有标签的数据给算法学习,然后对数据分类,而聚类是无监督学习,事先并不知道分类标签是什么,直接对数据分类,它能够将具有相似属性的对象划分到同一个簇中。聚类方法能够应用于所有对象,簇类的对象越相似,聚类效果越好。一:K均值聚类的基本思想K均值聚类是一种将输入数据划分为K个簇的简单聚类算法,该算法不断提取当前分类的中心点,并最终在分类稳定的时候完成聚类,它是一种迭代算法。其步骤如下:1:随机选取k个点作

2021-07-07 01:55:14 4224

原创 支持向量机

支持向量机(svm)是一种二分类模型,目标是寻找一个标准(超平面)对样本数据进行分割,分割的原则是确保分类最优化(类别之间的间隔最大)。 它在分类时,把无法线性分割的数据映射到高维空间,然后在高维空间找到分类最优的线性分类器。当数据集较小时,使用支持向量机非常有效,它是最好的现成(不加修改即可直接使用)分类器之一。一:理论如上图所示,划分不同数据类型的直线即是分类器。在已有数据中,找到离分类器最近的点,确保它们离分类器尽可能的远,而这些点到分类器的距离成为间隔,我们希望间隔尽可能的大,这样的分类器

2021-06-22 02:48:08 676

原创 k近邻算法

一:理论基础k近邻算法的本质是将指定对象根据已知特征值分类。为了提高算法的可靠性,在实施时会取k个近邻点,这k个近邻点中属于哪个类的较多,然后就将当前待识别点划分为哪个类。为了方便判断,k值通常取奇数。二:计算k近邻算法在获取各个样本的特征值后,计算待识别样本的特征值与各个已知分类的样本特征值之间的距离,然后找出k个最近邻的样本,根据k个最近邻样本中占比最高的样本所属的类别来确定待识别样本的分类。1:归一化在计算与特征值的距离时要充分考虑不同参数之间的权值,一般情况下,需要对参数进行处理,使其所有

2021-06-21 17:29:03 1477

原创 多任务级联神经网络-mtcnn

如上图所示,整个Mtcnn的推理过程分为以下几个步骤:1、对原图进行图像特征金字塔处理(一般设置缩放因子为0.7左右合适,太大增加推理时间,太小可能漏小框,具体还需根据实际情况处理),直到最小边小于12(P-net网络的最小输入为12*12)就停止缩放。然后将经缩放后各个尺寸的图像依次输入P-net中,得到分类置信度和位置偏移量,然后通过分类阈值筛选,再经过坐标反算得到候选框在原图的位置。最后经过nms去除部分重叠的框(候选框的去重操作也可以在图像金字塔的内部做,这样可以增加候选框的个数,避免漏框,但会.

2021-06-06 23:03:41 1119 1

原创 SSD:Single Shot MultiBox Detector(单点多尺度目标检测器)

一:目标检测的发展1、基于手工特征的目标检测2、基于深度学习的目标检测A、基于区域提名的目标检测B、基于端到端学习的目标检测二:SSD1、背景2、成果3、贡献5、论文摘要6、论文引言7、faster Rcnn介绍8、Yolo介绍9、SSD网络结构10、ssd default box设计当宽高比=1时,会额外增加一组框。11、ssd匹配策略12、ssd损失函数13、ssd难例挖掘14、ssd数据增强15、ssd与Faster Rcnn

2021-05-25 01:27:41 206

原创 facenet

一:人脸识别常用数据集及其发展一:人脸识别常用方法1、主流路线1:比较的方法(相同离得近,不同离得远)2:朴素的分类网络(逐渐发展为改变softmax)2、Triplet loss的缺点三:Facenet1、什么是Facenet 谷歌人脸识别算法,发表于 CVPR 2015,利用人脸在不同角度等姿态的照片下有高内聚性,不同人脸 有低耦合性,提出使用 cnn + triplet mining 方法,在LFW数据集上准确度达到 99.63%。通过 CNN 将人脸映射到欧式空

2021-05-24 23:11:35 1060

原创 ROC曲线

# 引入必要的库import numpy as npimport matplotlib.pyplot as pltfrom itertools import cycleimport osimport torchimport torchvisionfrom PIL import Imagefrom numpy import interpfrom sklearn.metrics import roc_curve, aucfrom sklearn.preprocessing import la

2021-04-16 16:08:00 83

原创 Hook函数与CAM算法

一、Hook函数概念Hook函数机制:不改变主体,实现额外功能,像一个挂件,挂钩,hook1、torch.Tensor.register_hook(hook)import torchflag=1if flag: w = torch.tensor([1.0], requires_grad=True) x = torch.tensor([2.], requires_grad=True) a = torch.add(x, w) b = torch.add(w, 1)

2021-03-31 22:43:28 274

原创 绘图及交互

opencv提供了绘制直线、矩形、圆、椭圆等多种图形,以及添加文字操作,同时也提供了针对鼠标的单击、双击、滑动、拖曳等常见鼠标操作识别。另外它还可以利用滚动条实现交互功能。一:绘图基础在绘图的函数中有一些共有的参数,主要用于设置源图像,颜色,线条属性等。img:绘制图形的载体color:颜色,通常BGR格式,如:(0,255,0)表示绿色,对于灰度图,则只能传入灰度值thickness:线宽,默认1,若设置为-1,则表示填充图像lineType:线条类型,默认8连接类型。(一般默认就好,有兴趣的

2021-03-22 20:42:35 174

原创 视频处理

视频是由一系列图像构成的,这一系列图像被称为帧,帧是以固定的时间间隔从视频中获取的,获取帧的速度称为帧速率,单位通常使用"帧/秒"表示,代表在1秒内所出现的帧数,对应英文FPS。Opencv提供了cv2.VideoCapture类和cv2.VideoWriter类来支持各种视频文件,在不同的操作系统中,它们支持的文件类型可能不同,但在所有操作系统中均支持AVI格式的视频文件。一:VideoCapture类它既能处理视频文件又能处理摄像头信息,该类的常用函数包含初始化、打开、帧捕获、释放、属性设置等1、

2021-03-19 03:52:36 703

原创 霍夫变换

霍夫变换是一种在图像中寻找直线、圆形以及其他简单形状的方法。它采用投票的方式来获取当前图像内的形状集合。一:霍夫直线变换1、霍夫变换原理(1)笛卡尔坐标系:(2)霍夫坐标系说明:如上图所示,在笛卡尔坐标系中,直线y=k0*x+b0对应霍夫坐标系中的点(k0,b0),即笛卡尔坐标系的斜率和截距与霍夫坐标系中的点对应。A:笛卡尔空间内一条直线确定霍夫空间内一个点B:霍夫空间内的一个点确定笛卡尔空间内的一条直线通过变换可得:A:笛卡尔空间内的点(x0,y0)映射到霍夫空间,就是直线b=-x0

2021-03-17 00:08:17 3783 1

原创 模板匹配

模板匹配是指在当前图像A内寻找图像B最相似的部分,一般将图像A称为输入图像,将图像B称为模板图像,模板匹配的操作方法是将模板图像B在图像A上滑动,遍历所有像素点以完成匹配一:模板匹配基础dst=cv2.matchTemplate(image,templ,method,mask=None)image:原始图像,必须为8位或者32位的浮点型图像templ:模板图像,它的尺寸必须小于或者等于原始图像,并且与原始图像具有相同的类型method:匹配方法。该参数通过TemplateMatchModes实现,

2021-03-12 00:43:15 257

原创 傅里叶变换

图像一般分为空间域处理和频率域处理,空间域处理是直接对图像内的像素进行处理,主要划分为灰度变换、空间滤波两种形式。频率处理是先将图像变换到频率域,然后在频率域对图像进行处理,最后再通过反变换将图像从频率域变换到空间域。傅里叶变换是一种常见的频域变换,它可以实现图像增强、图像去噪、边缘检测、特征提取、图像压缩和加密等。一:理论基础法国数学家指出:任何周期函数都可以表示为不同频率的正弦函数和的形式。它有三个关键的要素:频率、振幅、相位。二:Numpy实现傅里叶变换1、傅里叶变换dst=numpy.ff

2021-03-11 02:30:25 796

原创 直方图处理

直方图从图像内部灰度级的角度对图像进行表述,它包含十分丰富而重要的信息,从直方图的角度对图像进行处理,可以到达增强图像显示效果的目的。一:直方图的含义从统计的角度讲,直方图是图像内灰度值的统计特性和灰度图像值之间的函数,直方图统计图像内的各个灰度级出现的次数,从直方图的图像上观察,横坐标是图像中各像素点的灰度级,纵坐标是具有该灰度级(像素值)的像素个数。...

2021-03-10 00:20:22 678

原创 图像轮廓

边缘检测的结果是不连续的,它检测到的边缘不是一个整体。而图像轮廓是指将边缘连接起来形成一个整体,用于后续计算。一:查找并绘制轮廓在opencv中,函数cv2.findContours()用于查找图像轮廓,并根据参数返回特定方式的轮廓曲线。而cv2.drawContours()能够将查找的轮廓绘制到图像上。1、查找图像轮廓在opencv中,都是黑色背景中查找白色对象,因此,对象必须为白色,背景必须为黑色image,contours,hierarchy=cv2.findContours(image,

2021-03-07 22:44:20 1122

原创 图像金字塔

图像金字塔是由一幅图像的多个不同分辨率的子图所构成的图像集合,该组图像是由单个图像不断降采样产生的,最小的图像可能只有一个像素点,通常情况下,图像金字塔的底部是待处理的高分辨率图像(原始图像),而顶部则是其低分辨率的近似图像,向金字塔的顶部移动时,图像的尺寸和分辨率都不断的降低。一:理论基础1、最简单的图像金字塔可以通过不断的删除图像的偶数行和偶数列得到,通过不断重复该过程,就可得到该图像的图像金字塔。也可以对原始图像滤波,得到原始图像的近似图,然后将近似图像的偶数行和偶数列删除以获取向下采样的结果(

2021-02-18 11:29:25 320 1

原创 Canny边缘检测

Canny边缘检测是一种使用多级边缘检测算法检测边缘的方法一:Canny边缘检测基础步骤:(1):去噪,噪声会影响边缘检测的准确度,因此首先要将噪声过滤掉(2):计算梯度的幅度和方向(3):非极大值抑制,即适当的让边缘“变瘦”(4):确定边缘,使用双阈值算法确定最终的边缘信息1:应用高斯滤波去除图像噪声图像边缘容易受到噪声的干扰,为了避免检测到错误的边缘,通常需要对图像进行滤波以除 去噪声,滤波的目的是平滑一些纹理较弱的非边缘区域,以便得到更准确的边缘,在实际使用过程中,通常采用高斯滤波去

2021-02-13 20:21:54 295

原创 图像梯度操作

图像梯度计算的是图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯度值也较大,相反,对于图像中较平缓的部分,其灰度值变化较小,相应的梯度值也较小。一般情况下,图像梯度计算的是图像的边缘信息,(在此图像梯度并不是纯数学意义上的梯度(需要求倒数),图像梯度一般通过计算像素值的差值来得到梯度的近似值(近似导数值))一:sobel理论基础sobel算子是一种离散的微分算子,该算子结合了高斯平滑和微分求导运算,该算子利用局部差分寻找边缘,计算所得的是梯度的近似值。1、计算水平方向偏导数的近似值如上图所

2021-02-13 13:53:13 2184

原创 图像形态学操作

形态学操作主要包含:腐蚀,膨胀,开运算,闭运算,形态学梯度运算,顶帽(礼帽)运算,黑帽运算等,其中腐蚀与膨胀是其它形态学操作的基础。形态学处理主要用于视觉检测、文字识别、医学图像处理、图像压缩编码等领域一:腐蚀(1):能够将图像的边界点消除,使图像沿着边界向内收敛,也可以将小于指定结构体元素的部分去掉。(2):在腐蚀过程中,通常使用一个结构元来逐个像素的扫描要被腐蚀的图像,并根据结构元与被腐蚀图像的关系来确定腐蚀结果(每次判定的点都是结构元中心所对应的点)。结果的判定: a:如果结构元完全处在前

2021-02-10 16:00:35 453

原创 图像的平滑处理

在尽量保留图像原有信息的基础上,过滤掉图像的内部噪声,这一过程称为对图像的平滑处理,它会将图像周围像素值差异较大的值调整为周围像素的近似值。图像平滑处理通常伴随着图像模糊操作,因此,图像平滑处理又被称为图像模糊处理。常见的方法主要有:(1):均值滤波(2):方框滤波(3):高斯滤波(4):中值滤波(5):双边滤波(6):二维卷积(自定义滤波)一:均值滤波均值滤波是指用当前的像素点周围N*N个像素值的均值来代替当前像素值。然后使用该方法遍历图像内的每一个像素点,即可完成整幅图的均值滤波。

2021-02-09 17:23:49 4844

原创 图像的阈值处理

图像的阈值处理是指剔除图像内像素高于一定值或者低于一定值的像素点。在opencv中,函数cv2.threshold()或cv2.adaptiveThreshold()实现阈值处理。一:cv2.threshold()函数retval,dst=cv2.threshold(src,thresh,maxval,type)retval:代表返回的阈值dst:代表阈值分割结果图像,与原始图像具有相同的大小与类型。src:待进行阈值分割的图像,可以是多通道的,8位或32位浮点型数值。thresh:阈值max

2021-02-09 11:06:33 2487

原创 图像的几何变换

一:缩放dst=cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)interpolation默认采用双线性插值在指定了dsize的值,无论是否指定了参数fx与fy的值,都由dsize决定目标图像的大小,只有当dsize为None,fx,fy才能发挥作用。注意:dsize内的第一个参数是对应缩放后图像的宽度(width,即列数cols),第二个参数对应缩放后的图像高度(height,即行数rows),而img

2021-02-08 23:09:55 408

原创 色彩空间类型转换

一:色彩空间基础常见的色彩空间包括GRAY(灰度图像)、XYZ、YCrCb、HSV、HLS、CIELab、CIEL*u"*v、Bayer等。1、GRAY:通常指8位灰度图,其具有256个灰度级,像素值范围是[0,255](1):由RGB色彩空间转GRAY色彩空间时,其标准处理方式为: Gray=0.299*R+0.587*G+0.114*B(2):而GRAY色彩空间转RGB时只需 R=G=B=Gray2、XYZ:一种更便于计算的色彩空间,可与RGB相互转换(自行查表)3

2021-02-08 16:20:18 517

原创 图像运算

一:图像加法运算在灰度图像中,通常用1个字节来表示像素,像素值范围[0,255],在像素相加时,其值可能大于255,在不同的加法运算方式中,对超过255的数值有着不同的处理方式。1、加号运算符使用加号运算符“+”对图像a(像素值为a)与图像b(像素值为b)进行求和运算:a+b=mod(a+b,256)将a,b相加的直接结果对256取模(即小于256时得原结果,大于等于256时,得余数)2、cv2.add()函数计算结果=cv2.add(a,b),此处a,b既可以是单个像素,也可以是整张图像(

2021-02-07 02:51:48 581

原创 opencv的图像处理基础

一:图像的基本表示方法1:二值图像图像中只包含黑色和白色两种颜色,计算机将其处理为1/0以方便后续的存储和处理等操作(1bit位即可表示)2:灰度图像二值图像因仅有黑白二色,所表示的图像不够细腻,而灰度图像采用更多的数值以体现不同的颜色,故细节更丰富。计算机通常将灰度处理为256个灰度级(8bit,正好一个字节),用数值区间[0,255]来表示,其中255表示纯白,0表示纯黑,其余数值表示不同程度的灰度。有时也会使用8位二进制(1个字节)来表示一幅二值图像,此时使用255表示白色,0表示黑色(有

2021-02-05 01:36:38 398 1

原创 opencv的读入、保存以及保存

一:读入retval=cv2.imread(filename,flage)filename为读取图片的路径,flage用于控制读取文件的类型(默认flage=1,表示调整为BGR三通道输出,flage=-1时保持原图片格式不变,当为0时,则输出单通道的灰度图像,更多的可以查表看详情)读取出来的图片retval为一个numpy数组,若未读取到图片则返回的retval为“None”注意:大多数常用的opencv函数都在cv2模块中,与cv2模块对应的cv模块代表传统版本的模块,cv2模块并不是代表

2021-02-04 23:41:32 763

空空如也

空空如也

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

TA关注的人

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