![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图像
文章平均质量分 87
浩波的笔记
微信公众号:浩波的笔记
展开
-
CV之 HOG特征描述算子-行人检测
4.1 简介本次任务将学习一种在深度学习之前非常流行的图像特征提取技术——方向梯度直方图(Histogram of Oriented Gradients),简称HOG特征。HOG特征是在2005年CVPR的会议发表,在图像手工特征提取方面具有里程碑式的意义,当时在行人检测领域获得了极大成功。学习HOG特征的思想也有助于我们很好地了解传统图像特征描述和图像识别方法,本次任务我们将学习到HOG背后的设计原理,和opencv的实现。4.2 内容介绍1. HOG特征简介HOG特征是一种图像局部特征,其基原创 2020-07-06 22:26:05 · 379 阅读 · 0 评论 -
CV之Haar特征描述算子-人脸检测
3.1简介Haar-like特征最早是由Papageorgiou等应用于人脸表示,在2001年,Viola和Jones两位大牛发表了经典的《Rapid Object Detection using a Boosted Cascade of Simple Features》和《Robust Real-Time Face Detection》,在AdaBoost算法的基础上,使用Haar-like小波特征和积分图方法进行人脸检测,他俩不是最早使用提出小波特征的,但是他们设计了针对人脸检测更有效的特征,并对Ad原创 2020-07-02 11:33:05 · 436 阅读 · 0 评论 -
CV之LBP特征描述算子-人脸检测
2.1 简介LBP指局部二值模式(Local Binary Pattern),是一种用来描述图像局部特征的算子,具有灰度不变性和旋转不变性等显著优点。LBP常应用于人脸识别和目标检测中,在OpenCV中有使用LBP特征进行人脸识别的接口,也有用LBP特征训练目标检测分类器的方法,OpenCV实现了LBP特征的计算,但没有提供一个单独的计算LBP特征的接口。也就是说OpenCV中使用了LBP算法,但是没有提供函数接口。2.2 算法理论介绍2.2.1 LBP原理介绍 LBP特征用图像的局部领域的联合分原创 2020-06-28 23:34:31 · 444 阅读 · 1 评论 -
CV之Harris特征点检测器-兴趣点检测(详解)
1.1 简介在图像处理领域中,特征点又被称为兴趣点或者角点,它通常具有旋转不变性和光照不变性和视角不变性等优点,是图像的重要特征之一,常被应用到目标匹配、目标跟踪、三维重建等应用中。点特征主要指图像中的明显点,如突出的角点、边缘端点、极值点等等,用于点特征提取的算子称为兴趣点提取(检测)算子,常用的有Harris角点检测、FAST特征检测、SIFT特征检测及SURF特征检测。本次博客较为常用而且较为基础的Harris角点检测算法,它的思想以及数学理论能够很好地帮助我们了解兴趣点检测的相关原理。1.2内原创 2020-06-24 19:15:32 · 847 阅读 · 0 评论 -
天池-街景字符编码识别5-模型训练与验证
模型集成包括:集成学习方法、深度学习中的集成学习和结果后处理思路。集成学习方法在机器学习中的集成学习可以在一定程度上提高预测精度,常见的集成学习方法有Stacking、Bagging和Boosting,同时这些集成学习方法与具体验证集划分联系紧密。由于深度学习模型一般需要较长的训练周期,如果硬件设备不允许建议选取留出法,如果需要追求精度可以使用交叉验证的方法。下面假设构建了10折交叉验证,训练得到10个CNN模型。那么在10个CNN模型可以使用如下方式进行集成:对预测的结果的概率值进行平均原创 2020-06-03 14:23:48 · 214 阅读 · 0 评论 -
天池-街景字符编码识别4-模型训练与验证
4 模型训练与验证构造验证集在机器学习模型(特别是深度学习模型)的训练过程中,模型是非常容易过拟合的。深度学习模型在不断的训练过程中训练误差会逐渐降低,但测试误差的走势则不一定。在模型的训练过程中,模型只能利用训练数据来进行训练,模型并不能接触到测试集上的样本。因此模型如果将训练集学的过好,模型就会记住训练样本的细节,导致模型在测试集的泛化效果较差,这种现象称为过拟合(Overfitting)。与过拟合相对应的是欠拟合(Underfitting),即模型在训练集上的拟合效果较差。如图所示:随着模型复原创 2020-05-30 23:45:50 · 182 阅读 · 0 评论 -
天池-街景字符编码识别3-字符识别模型
3 字符识别模型3.1常用CNN网络模型LeNet-5——CNN经典网络模型详解(pytorch实现)AlexNet–CNN经典网络模型详解(pytorch实现)VGG——CNN经典网络模型(pytorch实现)GoogLeNet——CNN经典网络模型详解(pytorch实现)ResNet——CNN经典网络模型详解(pytorch实现)DenseNet——CNN经典网络模型详解(pytorch实现)MobileNet(v1、v2)——CNN经典网络模型详解(pytorch实现)3.2原创 2020-05-24 22:34:03 · 564 阅读 · 0 评论 -
天池-街景字符编码识别2-数据读取与数据扩增
本此使用【定长字符识别】思路来构建模型赛题地址零基础入门CV赛事- 街景字符编码识别关于更详细的数据预处理可=可以参考我的另一篇博文:卷积神经网络性能优化(提高准确率)2 数据读取与数据扩增2.2 图像读取由于赛题数据是图像数据,赛题的任务是识别图像中的字符。因此我们首先需要完成对数据的读取操作,在Python中有很多库可以完成数据读取的操作,比较常见的有Pillow和OpenCV。2.2.1 PillowPillow是Python图像处理函式库(PIL)的一个分支。Pillow提供了常见原创 2020-05-22 23:01:58 · 251 阅读 · 0 评论 -
天池-街景字符编码识别1-赛题理解
赛题地址零基础入门CV赛事- 街景字符编码识别前期环境运行环境及安装运行环境python3.7pytorch1.3.1有GPU首先在Anaconda中创建一个专门用于本次练习赛的虚拟环境。$conda create -n pytorch_gpu python=3.7激活环境,并安装pytorch1.3.1$source activate pytorch_gpu$conda install pytorch=1.3.1 torchvision cudatoolkit=1原创 2020-05-20 22:01:25 · 488 阅读 · 0 评论 -
卷积神经网络性能优化(提高准确率)
注:本文先讲解理论部分,之后会用pytorch给出示例神经网络是一种在很多用例中能够提供最优准确率的机器学习算法。但是,很多时候我们构建的神经网络的准确率可能无法令人满意,或者无法让我们在数据科学竞赛中拿到领先名次。所以,我们总是在寻求更好的方式来改善模型的性能。有很多技术可以帮助我们达到这个目标。本文将介绍这些技术,帮助大家构建更准确的神经网络。过拟合过拟合,典型的表现为训练集损失远远小于验证集损失。而欠拟合则表现为训练集损失大于验证集损失。保证神经网络在测试集上运行良好的第一步就是验证神经网络原创 2020-05-17 19:12:48 · 33388 阅读 · 3 评论 -
pytorch对卷积神经网络常见操作
pytorch中的Tensor通道排列顺序是:[batch, channel, height, width]我们常用的卷积(Conv2d)在pytorch中对应的函数是:torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros')其中:in_channels参数代表输入特征矩阵的深度即channe原创 2020-05-14 23:15:58 · 859 阅读 · 1 评论 -
使用pytorch查看中间层特征矩阵以及卷积核参数
推荐一个可视化工具:TensorBoard注:本次所使用的为AlexNet与ResNet34俩个网络,关于这俩个网络的详细信息可以在我另外俩篇blog查看ResNet——CNN经典网络模型详解(pytorch实现)AlexNet–CNN经典网络模型详解(pytorch实现)查看中间层特征矩阵AlexNetalexnet_model.pyimport torch.nn as nnimport torchclass AlexNet(nn.Module): def __ini原创 2020-05-14 18:01:48 · 5585 阅读 · 9 评论 -
MobileNet(v1、v2)——CNN经典网络模型详解(pytorch实现)
在之前的文章中讲的AlexNet、VGG、GoogLeNet以及ResNet网络,它们都是传统卷积神经网络(都是使用的传统卷积层),缺点在于内存需求大、运算量大导致无法在移动设备以及嵌入式设备上运行。而本文要讲的MobileNet网络就是专门为移动端,嵌入式端而设计。MobileNet v1MobileNet网络是由google团队在2017年提出的,专注于移动端或者嵌入式设备中的轻量级CN...原创 2020-05-06 23:53:45 · 4370 阅读 · 1 评论 -
计算机视觉基础-图像处理(边缘检测)cpp+python
6.1 简介6.1.1 什么是边缘?边缘是图像强度函数快速变化的地方6.1.2 如何检测边缘?为了检测边缘,我们需要检测图像中的不连续性,可以使用导数来检测不连续性。如上图所示,上图的第一幅图表示一张数字图片,我们对水平红线处进行求导,便可得到上图二中的关系,可以看到在边缘处有着较大的跳变。但是,导数也会受到噪声的影响,因此建议在求导数之前先对图像进行平滑处理(上图三)。但是,导数也会...原创 2020-05-01 23:28:49 · 1350 阅读 · 0 评论 -
DenseNet——CNN经典网络模型详解(pytorch实现)
一、概述论文:Densely Connected Convolutional Networks论文链接:https://arxiv.org/pdf/1608.06993.pdf代码的github链接:https://github.com/liuzhuang13/DenseNet作为CVPR2017年的Best Paper, DenseNet脱离了加深网络层数(ResNet)和加宽网络结构(...原创 2020-05-01 15:56:25 · 6936 阅读 · 0 评论 -
计算机视觉基础-图像处理(图像分割/二值化)cpp+python
5.1 简介该部分的学习内容是对经典的阈值分割算法进行回顾,图像阈值化分割是一种传统的最常用的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术。它特别适用于目标和背景占据不同灰度级范围的图像。它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。图像阈值化的目的是要按...原创 2020-04-29 22:54:41 · 1350 阅读 · 0 评论 -
Batch Normalization(BN)超详细解析
单层视角神经网络可以看成是上图形式,对于中间的某一层,其前面的层可以看成是对输入的处理,后面的层可以看成是损失函数。一次反向传播过程会同时更新所有层的权重W1,W2,…,WL,前面层权重的更新会改变当前层输入的分布,而跟据反向传播的计算方式,我们知道,对Wk的更新是在假定其输入不变的情况下进行的。如果假定第k层的输入节点只有2个,对第k层的某个输出节点而言,相当于一个线性模型y=w1x1+w2x...原创 2020-04-29 18:33:51 · 42300 阅读 · 6 评论 -
ResNet——CNN经典网络模型详解(pytorch实现)
1、前言ResNet(Residual Neural Network)由微软研究院的Kaiming He等四名华人提出,通过使用ResNet Unit成功训练出了152层的神经网络,并在ILSVRC2015比赛中取得冠军,在top5上的错误率为3.57%,同时参数量比VGGNet低,效果非常突出。ResNet的结构可以极快的加速神经网络的训练,模型的准确率也有比较大的提升。同时ResNet的推广...原创 2020-04-29 17:28:55 · 55169 阅读 · 11 评论 -
GoogLeNet——CNN经典网络模型详解(pytorch实现)
一、前言2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名、VGG获得了第二名,这两类模型结构的共同特点是层次更深了。VGG继承了LeNet以及AlexNet的一些框架结构,而GoogLeNet则做了更加大胆的网络结构尝试,虽然深度只有22层,但大小却比AlexNet和VGG小很多,GoogleNet参数为500万个,Al...原创 2020-04-29 12:05:39 · 3305 阅读 · 2 评论 -
计算机视觉基础-图像处理(图像滤波)cpp+python
4.1 简介图像的实质是一种二维信号,滤波是信号处理中的一个重要概念。在图像处理中,滤波是一种非常常见的技术,它们的原理非常简单,但是其思想却十分值得借鉴,滤波是很多图像算法的前置步骤或基础,掌握图像滤波对理解卷积神经网络也有一定帮助。4.2 学习目标了解图像滤波的分类和基本概念理解均值滤波/方框滤波、高斯滤波的原理掌握OpenCV框架下滤波API的使用4.3 内容介绍1、均值...原创 2020-04-27 23:33:49 · 970 阅读 · 0 评论 -
LeNet-5——CNN经典网络模型详解(pytorch实现)
一、LeNet-5这个是n多年前就有的一个CNN的经典结构,主要是用于手写字体的识别,也是刚入门需要学习熟悉的一个网络。原论文地址输入:32*32的手写字体图片,这些手写字体包含0~9数字,也就是相当于10个类别的图片输出:分类结果,0~9之间的一个数因此我们可以知道,这是一个多分类问题,总共有十个类,因此神经网络的最后输出层必然是SoftMax问题,然后神经元的个数是10个。LeNet...原创 2020-04-27 20:00:15 · 2226 阅读 · 9 评论 -
AlexNet--CNN经典网络模型详解(pytorch实现)
二、AlexNet在imagenet上的图像分类challenge上大神Alex提出的alexnet网络结构模型赢得了2012届的冠军,振奋人心,利用CNN实现了图片分类,别人用传统的机器学习算法调参跳到半死也就那样,Alex利用CNN精度远超传统的网络。1. conv1阶段DFD(data flow diagram):第一层输入数据为原始的2272273的图像,这个图像被11113的卷...原创 2020-04-27 19:58:31 · 16663 阅读 · 13 评论 -
计算机视觉基础——图像处理(彩色空间互转)cpp+python
3.1 简介图像彩色空间互转在图像处理中应用非常广泛,而且很多算法只对灰度图有效;另外,相比RGB,其他颜色空间(比如HSV、HSI)更具可分离性和可操作性,所以很多图像算法需要将图像从RGB转为其他颜色空间,所以图像彩色互转是十分重要和关键的。3.2 学习目标了解相关颜色空间的基础知识理解彩色空间互转的理论掌握OpenCV框架下颜色空间互转API的使用3.3 内容介绍1.相关颜...原创 2020-04-25 23:02:42 · 1098 阅读 · 1 评论 -
VGG——CNN经典网络模型(pytorch实现)
一、LeNet-5这个是n多年前就有的一个CNN的经典结构,主要是用于手写字体的识别,也是刚入门需要学习熟悉的一个网络。原论文地址输入:32*32的手写字体图片,这些手写字体包含0~9数字,也就是相当于10个类别的图片输出:分类结果,0~9之间的一个数因此我们可以知道,这是一个多分类问题,总共有十个类,因此神经网络的最后输出层必然是SoftMax问题,然后神经元的个数是10个。LeNet...原创 2020-04-23 15:51:22 · 17440 阅读 · 3 评论 -
CNN卷积神经网络(超详解析)
1、神经网络首先了解神经网络,大家移步这俩篇博客,一篇为纯理论,一篇为实战加理论。机器学习之神经网络学习及其模型入门讲解:使用numpy实现简单的神经网络(BP算法)2、卷积神经网络之层级结构cs231n课程里给出了卷积神经网络各个层级结构,如下图上图中CNN要做的事情是:给定一张图片,是车还是马未知,是什么车也未知,现在需要模型判断这张图片里具体是一个什么东西,总之输出一个结果:...原创 2020-04-23 13:11:17 · 28320 阅读 · 15 评论 -
计算机视觉基础---图像处理(几何变换)cpp+python
2.1 简介该部分将对基本的几何变换进行学习,几何变换的原理大多都是相似,只是变换矩阵不同,因此,我们以最常用的平移和旋转为例进行学习。在深度学习领域,我们常用平移、旋转、镜像等操作进行数据增广;在传统CV领域,由于某些拍摄角度的问题,我们需要对图像进行矫正处理,而几何变换正是这个处理过程的基础,因此了解和学习几何变换也是有必要的。这次我们带着几个问题进行,以旋转为例:1:变换的形式(公...原创 2020-04-22 18:17:22 · 970 阅读 · 0 评论 -
计算机视觉基础---OpenCV框架与图像插值算法(图像伸缩)cpp+python
1.1 简介在图像处理中,平移变换、旋转变换以及放缩变换是一些基础且常用的操作。这些几何变换并不改变图象的象素值,只是在图象平面上进行象素的重新排列。在一幅输入图象[u,v]中,灰度值仅在整数位置上有定义。然而,输出图象[x,y]的灰度值一般由处在非整数坐标上的(u,v)值来决定。这就需要插值算法来进行处理,常见的插值算法有最近邻插值、双线性插值和三次样条插值。1.2 今天学习目标了解插值...原创 2020-04-21 11:50:10 · 511 阅读 · 0 评论