
深度学习
文章平均质量分 68
入门到应用
R-G-B
计算机硕士,机器视觉、图像处理
展开
-
【P19 机器学习-分类算法及应用实践】手写数字识别
通过0,1二值化把手写数字,变化成矩阵。原创 2022-06-26 16:44:24 · 142 阅读 · 0 评论 -
【P20 分类算法及应用实践】支持向量机
在上一节的KNN手写体识别的基础上,改动了如上图所示四行代码。原创 2022-06-26 22:11:45 · 200 阅读 · 0 评论 -
【P22 分类算法及应用实践】决策树
不剪枝,让他自己长;结果正确率3/7;原创 2022-06-30 23:03:43 · 140 阅读 · 0 评论 -
【P16 机器学习-分类算法及应用实践】KNN
机器学习-分类算法及应用实践 KNN分类核心思想就是相似;人以群分,物以类聚;出现黑豆里的是黑豆概率比较大,同样出现在绿豆里的是绿豆的概率比较大;距离,距离谁近,就大概属于谁;最近邻算法——KNN,K近邻这里的X,y表示一致样本x,未知样本y距离及排序电影类型1被统计3次,类型2 被统计1次maxType=0maxCount=-1for key ,value in classCount.items():if value >maxCount:maxT原创 2022-06-26 13:07:36 · 149 阅读 · 0 评论 -
opencv C++ 人脸识别+性别判断 网络模型
首先将整幅图输入到人脸检测网络,进行人脸识别,找到图像中的人脸区域;然后,检测并扩充后的人脸作为,性别判断网络的输入,进行性别判断。当exBoundray = 25时,性别错误判断1个。当exBoundray = 10时,性别错误判断1个。当exBoundray = 20或者15时。可以看到,下图中正确的识别了人脸和性别;原创 2023-04-28 20:50:45 · 276 阅读 · 0 评论 -
opencv C++图像风格迁移 深度神经网络模型的使用
风格迁移的也是深度学习中的一个小的计算机视觉任务。目的是将A图像的风格迁移到B图像。风格的定义在在深度学习中可以认为是一些底层的特征。比如纹理特征等。原创 2023-04-28 16:31:15 · 248 阅读 · 0 评论 -
opencv c++ 目标识别 深度神经网络模型的使用
深度学习:Opencv的blobFromImage是如何工作的OpenCV minMaxLoc()函数找出图像中最小值最大值【opencv 】reshape函数详解 示例演示OpenCV中blob的概念以及OpenCV中BLOB特征提取与几何形状分类。原创 2023-04-27 21:03:39 · 380 阅读 · 0 评论 -
OpenCV中blob的概念以及OpenCV中BLOB特征提取与几何形状分类
还可以提供相关斑点间的拓扑结构。在处理过程中不是对单个像素逐一分析,而是对图像的行进行操作。图像的每一行都用游程长度编码(RLE)来表示相邻的目标范围。这种算法与基于像素的算法相比,大大提高了处理的速度。经二值化(Binary Thresholding)处理后的图像中色斑可认为是blob。直观上来看,blob特征就是一团,一坨东西,它并不一定是圆形的,总之它就是那么。(颜色的)一小片,斑点。Blob分析:(Blob Analysis)是对图像中。首先要了解,什么是blob特征,我们来看下面两幅图片。转载 2023-04-27 20:47:18 · 1350 阅读 · 0 评论 -
深度学习:Opencv的blobFromImage是如何工作的
如果训练模型时图像的尺寸 与实际使用的图像尺寸不一致,需要对图像尺寸进行变换;blobFromImages()是专门对神经网络图像格式转换的函数;1. 整体像素值减去平均值(mean) 2. 通过缩放系数(scalefactor)对图片像素值进行缩放image:这个就是我们将要输入神经网络进行处理或者分类的图片。mean:需要将图片整体减去的平均值,如果我们需要对RGB图片的三个通道分别减去不同的值,那么可以使用3组平均值,如果只使用一组,那么就默认对三个通道减去一样的值。原创 2023-04-27 20:32:41 · 1229 阅读 · 0 评论 -
Python中with的用法
python中with用法讲解python的with用法Python中with的用法1 With语句是什么?有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。其中一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。我们都知道打开文件有两种方法:f = open()with open() as f:这两种方法的区别就是第一种方法需要我们自己关闭文件,f.close();而第二种方原创 2022-05-24 23:19:43 · 3154 阅读 · 0 评论 -
DeepVO:基于深度循环卷积神经网络的端到端视觉里程计
每天一分钟,带你读遍机器人顶级会议文章标题:DeepVO: Towards End-to-End Visual Odometry with Deep Recurrent Convolutional Neural Networks作者:Sen Wang, Ronald Clark, Hongkai Wen and Niki Trigoni来源:ICRA 2017编译:蔡纪源播音员: 王肃欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权摘要今天介绍的文章是“DeepVO: Tow原创 2021-05-31 22:03:27 · 548 阅读 · 0 评论 -
python matplotlib怎么在一张图上画多条曲线?Python处理多个csv文件生成叠加曲线图——综合示例:平滑处理、图注、图例、图题、范围缩放
当我们使用PyTorch可视化工具-Tensorboard打开训练曲线时,有时希望多条曲线放在一张图像显示、对比。这是我们需要,将数据导出,用python matplotlib处理多个csv文件,在一张图上画多条曲线。tensorboard显示的曲线是经过平滑处理过的(其灰黑色的背景就平滑处理前的波形);直接截图放文档里,可比性差,而且原来的坐标轴的数字太小不能修改,导致看不清。可以看到上面的曲线震荡的很厉害,不利于观察整体趋势,需要滤波处理;将曲线数据用表格的形式下载,然后用python自己绘制曲线图;原创 2023-03-31 16:25:18 · 2444 阅读 · 0 评论 -
python matplotlib 绘制训练曲线 综合示例——平滑处理、图题设置、图例设置、字体大小、线条样式、颜色设置
matplotlib 绘制训练曲线 综合示例——平滑处理、图题设置、图例设置、字体大小、线条样式、颜色设置原创 2023-03-31 15:07:36 · 2364 阅读 · 0 评论 -
python 曲线平滑处理——方法总结(Savitzky-Golay 滤波器、make_interp_spline插值法和convolve滑动平均滤波)
有时我们得到曲线震荡或者噪声比较多,不利于观察曲线的趋势走向,需要对其平滑处理,本文结介绍Savitzky-Golay 滤波器、make_interp_spline插值法和convolve滑动平均滤波,三种平滑处理方法。原创 2023-03-31 14:07:10 · 13429 阅读 · 0 评论 -
python 数据、曲线平滑处理——基于Numpy.convolve实现滑动平均滤波——详解
滑动平均滤波法 (又称:递推平均滤波法),它把连续取N个采样值看成一个队列 ,队列的长度固定为N ,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据(先进先出原则) 。把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。原创 2023-03-31 13:37:55 · 16966 阅读 · 1 评论 -
python 数据、曲线平滑处理——插值法对折线平滑处理——详解
如图想对下面的折线 进行平滑处理。原创 2023-03-31 11:55:48 · 3910 阅读 · 0 评论 -
python 数据、曲线平滑处理——Savitzky-Golay 滤波器——详解
用Savitzky-Golay方法进行平滑滤波,可以提高光谱的平滑性,并降低噪音的干扰。由于高频某些点的波动导致高频曲线非常难看,为了降低噪声干扰,需要对曲线做平滑处理,让曲线过渡更平滑。对曲线进行平滑处理,通过Savitzky-Golay 滤波器,可以在scipy库里直接调用,不需要再定义函数。如果噪声在高频端,那么滤波的结果就是去除了噪声,反之,若噪声在低频段,那么滤波的结果就是留下了噪声。在寻找曲线的波峰、波谷时,由于数据帧数多的原因,导致生成的曲线图噪声很大,不易寻找规律。原创 2023-03-31 11:14:05 · 8863 阅读 · 0 评论 -
python 绘制训练曲线--基于Numpy.convolve曲线平均滤波
滑动平均的优缺点:优点: 对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。缺点: 灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM 。原创 2023-03-31 10:10:20 · 853 阅读 · 0 评论 -
python 绘制训练曲线--插值法 曲线平滑处理
实现所需的库: numpy、scipy、matplotlib插值法的常见实现方法:nearest:最邻近插值法zero:阶梯插值slinear:线性插值quadratic、cubic:2、3阶B样条曲线插值原创 2023-03-31 10:07:32 · 1626 阅读 · 0 评论 -
python 绘制训练曲线--Savitzky-Golay 滤波平滑处理
原因是tensorboard显示的曲线是经过平滑处理过的(其灰黑色的背景就平滑处理前的波形)震荡的非常厉害(下图绿色曲线),而tensorboard的曲线比较平滑(下下图黑色曲线),不同滤波参数的平滑效果。原创 2023-03-31 10:10:44 · 1197 阅读 · 0 评论 -
用Python绘制训练曲线,python读取.csv表格数据绘制曲线,Tensorboard可视化训练曲线导出数据用Python自己绘制训练曲线,python绘制Excel表格曲线
训练损失曲线数据,用.csv格式导出,数据如下表所示。用python绘制出 step和Value的关系曲线。我们使用PyTorch可视化工具-Tensorboard打开训练曲线如下;将曲线数据用表格的形式下载,然后用python自己绘制曲线图;当我们写论文时,下面的曲线图直接截图到文档里是不合适的,②横纵坐标刻度值的字体太小,也没有标题;总是直接截图放文档里,显得很不专业。①有背景阴影,难看;原创 2023-03-30 17:35:45 · 1983 阅读 · 0 评论 -
如何画出漂亮的神经网络图?
如何画出漂亮的神经网络图?1. draw_convnet2. NNSVG3. PlotNeuralNet4. Tensorboard5. Caffe6.Matlab7.Keras.js8. DotNet9. Graphviz11. ENNUI12. Neataptic昨天找的的深度学习模型图的模板大家还是蛮喜欢的如何画出漂亮的深度学习模型图?最接对绘图需求蛮多,论文了,报告了,神经网络图怎么绘制还是问题,于是我又去找了一下,在Github上又找到了一些神经网络绘图的工具,简直太棒了。一共有22个工具转载 2021-06-20 17:34:19 · 5747 阅读 · 0 评论 -
DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning,
eval.py:90: DeprecationWarning: `np.bool ‘是内置’ bool ‘的已弃用别名。要消除此警告,请单独使用’ bool ‘。这样做不会改变任何行为,而且是安全的。如果您特别需要numpy标量类型,请使用’ np.bool_”。问题描述在使用patchMatchNet网络进行三维重建时,执行。在NumPy 1.20中已弃用;打开链接可以看到,numpy已弃用的列表;根据提示找到eval.py:90行,将。第三列:numpy标量类型。第二列:相同的类型名。原创 2022-12-30 20:21:47 · 751 阅读 · 0 评论 -
Default upsampling behavior when mode=bilinear is changed to align_corners=False since 0.4.0.Please
问题描述在使用patchMatchNet网络进行三维重建时,出现如下错误提示的意思是:自从pytorch0.4.0以后,上采样行中当选择mode=bilinear[双线性差值]方式时,align_corners将默认设置为False。如果需要旧的行为,请指定align_corners=True。上样以获取详细信息,参见nn的文档。这是正常的warning而已,不用担心。原创 2022-12-29 22:53:44 · 2047 阅读 · 0 评论 -
UserWarning: Default grid_sample and affine_grid behavior has changed to align_corners=False since 1
问题描述在使用patchMatchNet网络进行三维重建时,出现如下错误(红色框下面的内容)用户警告:默认的grid_sample和affine_grid行为自1.3.0以来已更改align_corners=False。如果需要旧的行为,请指定align_corners=True。有关详细信息,请参阅grid_sample的文档。警告(“默认的grid_sample和affine_grid行为已经改变”这是正常的warning而已,不用担心。原创 2022-12-29 22:53:28 · 2315 阅读 · 0 评论 -
python中np.squeeze()、torch.squeeze()、torch.unsqueeze()、torch.expand()函数解析
场景:在机器学习和深度学习中,通常算法的结果是可以表示向量的数组(即包含两对或以上的方括号形式[[]]),如果直接利用这个数组进行画图可能显示界面为空(见后面的示例)。场景:在机器学习和深度学习中,通常算法的结果是可以表示向量的数组(即包含两对或以上的方括号形式[[]]),如果直接利用这个数组进行画图可能显示界面为空(见后面的示例)。秩等于1的矩阵是一类特殊的矩阵,它一定可以表示为一个非零列向量(列矩阵)与一个非零行向量(行矩阵)的乘积.根据矩阵乘法的结合律这类矩阵的乘法和方幂运算可以大大简化;原创 2022-12-28 11:04:53 · 707 阅读 · 0 评论 -
reshape()用法 【reshape(-1)、reshape(-1,1)、reshape(1,-1)、reshape(m,-1)、reshape(-1,m)、reshape(-1,m,n)】
numpy.arange(n).reshape(a, b) 依次生成n个自然数,并且以a行b列的数组形式显示mat (or array).reshape(c, -1) 必须是,才能使用 .reshape(c, -1) 函数, 表示将此矩阵或者数组重组,以 c行d列的形式表示-1的作用就在此: 自动计算d:d=数组或者矩阵里面所有的元素个数/c, d必须是整数,不然报错)原创 2022-12-26 19:41:12 · 2556 阅读 · 0 评论 -
pytorch中with torch.no_grad():
在使用pytorch时,并不是所有的操作都需要进行计算图的生成(计算过程的构建,以便梯度反向传播等操作)。而对于tensor的计算操作,默认是要进行计算图的构建的,在这种情况下,可以使用。是python中上下文管理器,简单理解,当要进行固定的进入,返回操作时,可以将对应需要的操作,放在with所需要的语句中。属性,表示,计算的结果在一计算图当中,可以进行梯度反传等操作。但是,两者计算的结果实际上是没有区别的。以下为一个文件写入使用with的例子。,强制之后的内容不进行计算图构建。而对应的不使用的情况。转载 2022-12-25 23:52:53 · 284 阅读 · 0 评论 -
卷积膨胀 Dilation
参考:卷积的dilation操作如果我们设置的dilation=0的话,效果如图:蓝色为输入,绿色为输出,可见卷积核为3*3的卷积核如果我们设置的是dilation=1,那么效果如图:蓝色为输入,绿色为输出,卷积核仍为3*3,但是这里卷积核点与输入之间距离为1的值相乘来得到输出好处就是卷积核的参数没变,但是感受野变大了2、dilation参考:【DL】卷积膨胀 Dilationdilation 是对 kernel 进行膨胀,多出来的空隙用 0 padding。用于克服 stride 中造成的 失真问原创 2022-12-03 22:23:06 · 4030 阅读 · 1 评论 -
pytorch中BatchNorm1d、BatchNorm2d、BatchNorm3d
pytorch中BatchNorm1d、BatchNorm2d、BatchNorm3d转载 2022-12-03 20:41:39 · 1433 阅读 · 1 评论 -
python中@用法详解
在python3.5以后的@符号有两种含义:①表示修饰符,②表示矩阵乘法(不常用)。@是一个装饰器,针对函数,起调用传参的作用。有修饰和被修饰的区别,‘@function’作为一个装饰器,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义)。虽然表示矩阵乘法不常用,但是也是很好的一个方法。结果1分析1@funA 修饰函数定义def funC(),将funC()赋值给funA()的形参。执行的时候由上而下,先定义funA、funB,然后运行funA(funC())。此时desA=funC()原创 2022-12-03 17:30:52 · 9455 阅读 · 0 评论 -
.split()和.split(‘:‘)[0].split(‘,‘)详解
split() 方法用于把一个字符串分割成字符串数组。2 .split(‘:’)[0].split(‘,’)lrepochs=“10,12,14:2”即,分隔符前面的字符串下标[0],后面的下标[1],以此类推应用实例原创 2022-12-03 16:35:42 · 2426 阅读 · 0 评论 -
什么是置信度?置信区间?
如果在一次大选中某人的支持率为55%,而置信水平0.95上的置信区间是(50%,60%),那么他的真实支持率有95%的机率落在50%~60%,因此他的真实支持率不足一半的可能性小于2.5%(假设分布是对称的,即正态分布)。我们看红框里面的重点内容,根据我上面置信度的解释,不难理解这个95%就是置信度,而这个58%-62%也确实就是置信区间,我们从这句话去反推置信区间可能的解释:样本里面目标占比的区间范围多少才值得95%的可信度。置信区间展现的是这个参数的真实值有一定概率落在测量结果的周围的程度。原创 2022-12-02 20:39:12 · 2857 阅读 · 0 评论 -
消融实验 Ablation Study是什么 ? 论文中w/o 与 w/ 什么意思?
消融实验简单来说就是控制变量法,当你提出多个思路提升某个模型时,为了验证这几个思路的有效性和起作用方式,就要采用消融实验。3. 给模型同时加入A方案和B方案,看效果。消融实验Ablation Study。1. 给模型加入A方案,看效果。2. 给模型加入B方案,看效果。原创 2022-12-02 17:05:59 · 5027 阅读 · 0 评论 -
有监督、无监督、自监督、半监督
有监督、无监督、自监督、半监督。原创 2022-11-25 15:54:04 · 218 阅读 · 0 评论 -
Python换源 (pip换源、apt换源)
apt-get,是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。有时由于网络问题,无法安装各种包,尤其是一些国外的包,就需要进行换源操作。但是,在服务器创建自己的虚拟环境,这时自己的虚拟环境下还需要自己换源,不然还是默认源,非常慢,可以用pip换源,推荐方法“3 永久换源”。在根目录下创建/修改 vim ~/.config/pip/pip.conf配置文件;apt 换源,需要sudo权限,作为普通用户,没法完成。原创 2022-10-10 22:07:14 · 4842 阅读 · 0 评论 -
pixel-wise,patch-wise,image-wise的区别
patch-wise介于像素级别和图像级别的区域,也就是块,每个patch都是由好多个pixel组成的,网络训练将整张图crop成了多个path~pixel-wise字面上的理解一样,一张图片是由一个个pixel组成的,这个是图像的基本单位,像素级别的;image-wise图像级别,比如一张图片的标签是狗,是对整个图片的标注;原创 2022-11-09 12:01:32 · 533 阅读 · 0 评论 -
1x1卷积(Conv 1*1)的作用
Conv 1×1 所实现的通道数增加/减少,本质上其实是通道之间信息的线性组合,这些组合能够使得网络提取更加丰富的高级特征,如上一部分中 28×28×192 的输入经过1×1×192×16 的卷积操作后输出为28×28×16,即该层输入中的原192 个特征经过 跨通道线性组合 变成了输出中的 16 个特征。对于多通道图像,Conv 1×1 会遍历图像的所有位置,将每个位置处所有通道的值作为其输入,与1×1 卷积核中对应通道的值进行线性运算。未使用 Conv 1×1 的情况下,输出通道数为卷积核的个数。转载 2022-11-07 13:36:54 · 3587 阅读 · 3 评论 -
一维卷积(1D-CNN)、二维卷积(2D-CNN)、三维卷积(3D-CNN)
比如:对3幅连续帧用三维卷积核进行卷积,可以理解为用3个不同的二维卷积核(二维卷积神经网络中使用的卷积核)卷积3张图,并将卷积结果相加(通过这种处理,网络就提取了时间之间的某种相关性);上图的三维卷积是对连续的三帧图像进行卷积操作(堆叠多个连续帧组成一个立方体,在立方体中利用三维卷积核进行卷积,这样得到的每个特征map都与上一层中3个邻近的连续帧相连);3(3为时间维度),即每次操作3帧图像,采用了2种不同的3D卷积核,增加了maps数量;2D卷积:卷积核在输入图像的二维空间进行滑窗操作。转载 2022-11-07 09:43:32 · 9104 阅读 · 0 评论 -
端到端的神经网络(end-to-end)
换句话说就是,**对原始数据进行初步的处理,输入的不是直接的原始数据,而是在原始数据中人工参与提取的一些关键特征。通过这种方式神经网络可以很好地学习到特征的描述,之前需要人工设计的特征算子,本身也可以通过神经网络的方式,让模型自己学习得到。端到端它缩减了人工预处理和后续的处理工作,尽可能使模型从原始输入到最终的输出,给模型更多可以根据数据自动调节的空间,增加了模型的整体契合度。随着深度学习神经网络的发展,可以让网络自己学习如何提取更好的特征,也就是通过一些配置能让网络去做以前需要人工参与的特征提取的工作。转载 2022-11-05 16:22:12 · 774 阅读 · 0 评论