首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenCV3.1.0级联分类训练与使用

OpenCV3.1.0级联分类训练与使用 级联分类第一次出现是由Viola-Jones在2001时候提出,其主要用来实现实时人脸检测,通过加载已经训练好的级联分类数据,实现快速的级联分类过滤,达到实时检测...在整个检测过程中训练好的级联分类数据作用直接决定着对象检测率。...OpenCV中自带的HAAR/LBP级联检测的数据多数都是关于人脸检测的,而在实际项目应用中,我们可能需要从不同的场景中检测某个相同对象,这种需求可以通过OpenCV中HAAR/LBP级联分类训练工具来生成自己的级联分类数据...,最终会完成样本训练得到cascade.xml文件,它就是级联分类特征数据,通过程序加载它,然后调用OpenCV中级联分类相关API即可实现对象分类检测。...分别采用HAAR与LBP级联训练得到的级联分类数据,演示效果如下: ?

2K110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于级联分类的多目标检测

    OpenCV中带的Haar特征级联分类就是这样一种方法,它位于app目录下,该目录下有两个实现,一个是老的实现haartraining,只支持Haar特征。...除此之外OpenCV的data目录下有很多训练好的级联分类(如人脸,眼睛检测等),load进来就可以用,无需训练。...官方例程中的objectdetection,facedetect等例子就是直接用了这些训练好的分类,如自带的face detection程序: 现实使用中我们经常需要训练针对各种应用的分类。...下面介绍如何训练一个自己的级联分类。整个过程大致可分为以下几步(基于OpenCV 2.4.4): 1. 收集数据 数据可分为正样本和负样本。正样本即要检测的目标,负样本则不包含目标。...基于Haar的级联分类训练时间一般很长(以天为单位)。LBP,HOG则快得多。 注意这毕竟不是产品,很多时候参数一给不好就挂掉了。

    2K10

    C++ OpenCV之级联分类--人脸检测

    前言 使用机器学习的方法进行人脸检测的第一步需要训练人脸分类,这是一个耗时耗力的过程,需要收集大量的正负样本,并且样本质量的好坏对结果影响巨大,如果样本没有处理好,再优秀的机器学习分类算法都是零。...OpenCV安装包里自带有已经训练好的人脸分类“haarcascade_frontalface_alt.xml”,位置在“XX\opencv\sources\data\haarcascades”里,我们可以直接拿来使用...这个文件夹下还有其他一些分类,像左右眼、上身、笑脸检测等等。 检测的基本原理 ? 我们先来看一下分类 ?...就是我们从中间的虚线来进行分类,分开后可以看到,上半部分红的多,所以出现了蓝色即为错误分类,下半部分蓝色多,出现了红色即为错误分类,像图2中放大的三个点,就是分类里面的错误分类。 ?...OpenCV里面自带了训练好的人脸检测的数据文件,我们先加载进来 ? 我们先加载训练文件 ? 然后我们再加载图像,并转为灰度图进行直方图的均衡化 ?

    96120

    人脸识别(二)——训练分类

    上一篇简单整理了下人脸识别的相关基础知识,这一篇将着重介绍利用pencv(2.4.9)已有的模型进行分类训练。...三、利用已有模型进行训练 1. 一个小测试 笔者参照了不少博客大神,受益匪浅。在正式开始实践前,先做了个小测试,即用较少的人脸数据进行训练和识别测试。...做小测试的时候,我是首先从ORL中选择了2个人的各自5张图片和自己的5张图片,共3个人15张人脸图片进行训练。...其中a1-a5对应一类(0),b1-b5对应一类(1 ),c1-c5对应一类(2),之后要做的就是将这些人脸图压进栈,即将照片(image.表示人脸图像)和标签(label表分类结果)下面以a类为例压进栈...在之后就是模型的训练了,opencv自带的Facerecognizer类。其中有人脸识别接下来会用到的几个函数(train、load、save、predict)。 ?

    2.3K50

    人脸识别(二)——训练分类

    (源码在第三篇) 上一篇简单整理了下人脸识别的相关基础知识,这一篇将着重介绍利用pencv(2.4.9)已有的模型进行分类训练。...三、利用已有模型进行训练 1. 一个小测试 笔者参照了不少博客大神,受益匪浅。在正式开始实践前,先做了个小测试,即用较少的人脸数据进行训练和识别测试。...做小测试的时候,我是首先从ORL中选择了2个人的各自5张图片和自己的5张图片,共3个人15张人脸图片进行训练。...其中a1-a5对应一类(0),b1-b5对应一类(1 ),c1-c5对应一类(2),之后要做的就是将这些人脸图压进栈,即将照片(image.表示人脸图像)和标签(label表分类结果)下面以a类为例压进栈...在之后就是模型的训练了,opencv自带的Facerecognizer类。其中有人脸识别接下来会用到的几个函数(train、load、save、predict)。 ?

    2.9K90

    如何用PyTorch训练图像分类

    它将介绍如何组织训练数据,使用预训练神经网络训练模型,然后预测其他图像。 为此,我将使用由Google地图中的地图图块组成的数据集,并根据它们包含的地形特征对它们进行分类。...但是现在,我只想使用一些训练数据来对这些地图图块进行分类。 下面的代码片段来自Jupyter Notebook。你可以将它们拼接在一起以构建自己的Python脚本,或从GitHub下载。...torch.nn.functional as F from torchvision import datasets, transforms, models 接下来,我们将定义train/validation数据集加载,...我们还创建了标准(损失函数)并选择了一个优化(在这种情况下为Adam)和学习率。...然后计算损失函数,并使用优化在反向传播中应用梯度下降。 PyTorch就这么简单。下面的大多数代码是每10个批次显示损失并计算的准确度,所以你在训练运行时得到更新。

    1.5K20

    pytorch训练kaggle猫狗大战分类

    preface 这篇文章来写一下用 pytorch 训练的一个 CNN 分类,数据集选用的是 kaggle 上的猫狗大战数据集,只有两个 class ,不过数据集还是挺多的,足够完成我们的分类任务。...这份数据集分为 train 和 test 两个文件夹,装着训练集和测试集,还有一个 sample_submission.csv 用来提交我们训练的模型在测试集上的分类情况。...值得注意的是,训练集是带标签的,标签在文件名中,如 cat.7741.jpg,而测试集是不带标签的,因为我们模型在测试集中测试后分类的结果是要填到 csv 文件中提交的,所以不能拿测试集来评估模型,我们可以在训练集中划分出一个验证集来评估模型...[:int(0.7 * imgs_num)] else: self.imgs = imgs[int(0.7 * imgs_num):] # 作为迭代必须有的方法...model.train() train_acc = 0.0 for batch_idx, (img, label) in enumerate(trainloader): # 迭代

    86730

    使用Pytorch训练分类详解(附python演练)

    目录: 一.数据 二.训练一个图像分类 1. 使用torchvision加载并且归一化CIFAR10的训练和测试数据集 2. 定义一个卷积神经网络 3. 定义一个损失函数 4....图片一 cifar10 二、 训练一个图像分类 我们将按次序的做如下几步: 1. 使用torchvision加载并且归一化CIFAR10的训练和测试数据集 2. 定义一个卷积神经网络 3....定义一个损失函数和优化 让我们使用分类交叉熵Cross-Entropy 作损失函数,动量SGD做优化。...训练网络 这里事情开始变得有趣,我们只需要在数据迭代上循环传给网络和优化输入就可以。...目标: 深度理解了PyTorch的张量和神经网络 训练了一个小的神经网络来分类图像 四、 在多个GPU上训练 如果你想要来看到大规模加速,使用你的所有GPU,请查看:数据并行性(https://pytorch.org

    1.6K30

    Tensorflow实践:用神经网络训练分类

    任务: 使用tensorflow训练一个神经网络作为分类分类的数据点如下: 螺旋形数据点 原理 数据点一共有三个类别,而且是螺旋形交织在一起,显然是线性不可分的,需要一个非线性的分类。...最后输出层是一个逻辑回归,根据隐藏层计算出的50个特征来预测数据点的分类(红、黄、蓝)。 一般训练数据多的话,应该用随机梯度下降来训练神经网络,这里训练数据较少(300),就直接批量梯度下降了。...每1000步训练,打印交叉熵损失和正确率。...accuracy( predictions, labels)) w1, b1, w2, b2, w3, b3 = weights # 显示分类...step 48000: 0.112472 Training accuracy: 99.3% Loss at step 49000: 0.112358 Training accuracy: 99.3% 分类

    77830

    机器学习-使用TensorFlow for Poets训练图像分类

    背景介绍 今天我们学习如何训练图像分类,只需通过图像目录即可完成。比如说,你想要构建一个分类来区分霸龙和三角龙的图片: ? 或者你想区分莫奈或毕加索的画: ?...要通过TensorFlow for Poets训练一个图像分类,我们只需要提供一样东西 ——训练数据。也就是一个有很多图像的图像目录: ?...我们有了训练数据后我们就可以开始训练分类了,我们会使用TensorFlow来做这一步。...当然不是很长,事实上TensorFlow for Poets并不是从零开始训练分类,它是从一个现有的叫做Inception的分类开始训练的,Inception是谷歌最好的图像分类之一,并且它是开源的...也让我们重新定义Inception之前学习的一些参数,这样我们就可以用很少的训练数据创建一个高精准度的分类,现在训练结束了: ? 当我们有了一个训练好的分类后, 我们就可以测试它了。

    1.2K20

    numpy实现线性分类训练和预测

    介绍 这篇文章里,我们使用python + numpy实现一个线性分类,使用mnist的数据集对线性分类进行训练与预测。文章会详细介绍线性分类的实现细节包括,前向传播,反向传播实现。...12. 0. 0. 0. 0. 6. 13. 10. 0. 0. 0.] data type: image.png 线性分类结构简介...: 这里实现的线性分类很简单,首先将输入拉平为一个向量,我们使用一个权重矩阵乘以该输入得到输出向量,使用softmax得到 不同类别的分数,最终挑选分数最大的类别作为当前输入所属类别的预测结果。...),softmax这里会将所有在上一步得到的值缩放到大于0 的范围,然后给每个分类计算一个0-1的值,所有分类的值总和为1 image.png 前向传播 有个上述的分类结构,我们的前向传播就很好理解了...交叉熵损失函数对输入pc的导数较为复杂,但是 交叉熵加softmax整体对上面线性分类的输出z的导数解析形式很简单: 这里dz = pc - yc 关于这个式子由来的详细解释很多,例如这篇博客:https

    1.5K70

    【深度学习】PyTorch训练一个CNN分类

    Deep Learning with PyTorch: A 60 Minute Blitz 翻译:林不清(https://www.zhihu.com/people/lu-guo-92-42-88) 目录 训练一个分类...训练一个图像分类 我们将按照下列顺序进行: 使用torchvision加载和归一化CIFAR10训练集和测试集. 定义一个卷积神经网络 定义损失函数 在训练集上训练网络 在测试集上测试网络 1....定义损失函数和优化 我们使用交叉熵作为损失函数,使用带动量的随机梯度下降。...训练网络 这是开始有趣的时刻,我们只需在数据迭代上循环,把数据输入给网络,并优化。...实现的目标: 深入了解了PyTorch的张量库和神经网络 训练了一个小网络来分类图片 在多GPU上训练 如果你希望使用所有GPU来更大的加快速度,请查看选读:[数据并行]:(https://pytorch.org

    61430

    快速入门PyTorch(3)--训练一个图片分类和多 GPUs 训练

    快速入门Pytorch(1)--安装、张量以及梯度 快速入门PyTorch(2)--如何构建一个神经网络 这是快速入门 PyTorch 的第三篇教程也是最后一篇教程,这次将会在 CIFAR10 数据集上简单训练一个图片分类...,将会简单实现一个分类从网络定义、数据处理和加载到训练网络模型,最后测试模型性能的流程。...以及如何使用多 GPUs 训练网络模型。 本文的目录如下: 4. 训练分类 上一节介绍了如何构建神经网络、计算 loss 和更新网络的权值参数,接下来需要做的就是实现一个图片分类。...4.1 训练数据 在训练分类前,当然需要考虑数据的问题。...一些例子如下所示: 4.2 训练图片分类 训练流程如下: 通过调用 torchvision 加载和归一化 CIFAR10 训练集和测试集; 构建一个卷积神经网络; 定义一个损失函数; 在训练集上训练网络

    1.2K20

    PyTorch 60分钟入门系列之训练分类

    训练分类 前面的教程中我们已经学习了如何定义神经网络,计算损失并更新网络的权重。接下来,我们完整的训练一个神经网络模型,并测试其性能。...特别是对于图像,PyTorch创建了一个名为torchvision的软件包,该软件包具有常用数据集(如Imagenet,CIFAR10,MNIST等)的数据加载torchvision.datasets...,以及用于图像的数据转换torch.utils.data.DataLoader。...训练一个图像分类 我们要按顺序做这几个步骤: 使用torchvision来读取并预处理CIFAR10数据集 定义一个卷积神经网络 定义一个代价函数 在神经网络中训练训练集数据 使用测试集数据测试神经网络...通过对比神经网络给出的分类和已知的类别结果,可以得出正确与否。如果预测的正确,我们可以将样本加入正确预测的结果的列表中。 好的第一步,让我们展示几张照片来熟悉一下。

    66510
    领券