如何用OpenCV训练自己的分类器

合集下载

opencv球类物体识别基本原理

opencv球类物体识别基本原理

opencv球类物体识别基本原理OpenCV是一款广泛使用的计算机视觉库,它提供了许多图像处理和计算机视觉算法。

在球类物体识别中,OpenCV可以用于提取图像特征,进行球类物体的检测和识别。

本篇文章将介绍球类物体识别的基本原理,包括图像处理、特征提取和分类器等关键技术。

一、图像处理在球类物体识别中,图像处理是基础步骤之一。

它包括对图像进行预处理、增强和转换,以提高图像的质量和可处理性。

常用的图像处理技术包括灰度转换、噪声去除、对比度增强、边缘检测等。

这些技术可以帮助我们更好地识别图像中的球类物体。

二、特征提取特征提取是球类物体识别中的关键步骤。

它通过从图像中提取出有意义的特征,如形状、纹理和颜色等,来提高识别的准确性。

在OpenCV中,有许多用于特征提取的算法,如SIFT、SURF、HOG等。

这些算法可以从图像中提取出关键点、方向、梯度和对比度等信息,以建立球类物体的特征模型。

三、分类器分类器是用于识别球类物体的另一种关键技术。

它通过将图像的特征输入到预定义的分类模型中,来预测图像中是否为球类物体。

常用的分类器包括支持向量机(SVM)、神经网络、决策树等。

这些分类器可以根据不同的数据集和任务进行调整和优化,以提高识别的准确性和鲁棒性。

四、应用案例下面是一个简单的应用案例,演示如何使用OpenCV进行球类物体的识别。

1. 准备数据:收集一些带有球类物体的图像,并将其分为训练集和测试集。

2. 图像预处理:对图像进行灰度转换、噪声去除和对比度增强等处理。

3. 特征提取:使用OpenCV中的SIFT或SURF算法,从图像中提取关键点和方向等信息。

4. 训练分类器:使用训练集中的图像和特征,训练一个支持向量机分类器。

5. 测试分类器:将测试集中的图像输入到训练好的分类器中,进行预测。

6. 结果评估:根据分类器的预测结果,评估识别的准确性和鲁棒性。

五、总结通过以上介绍,我们可以看到OpenCV在球类物体识别中的应用价值。

c++的opencv使用方法总结

c++的opencv使用方法总结

C++的OpenCV使用方法总结在计算机视觉和图像处理领域,OpenCV是一个非常强大的开源库,它提供了丰富的功能和工具,用于处理图像和视频。

作为C++程序员,了解并熟练使用OpenCV库是非常重要的。

本文将对C++中使用OpenCV的方法进行总结,并探讨一些常见的应用和技巧。

一、安装和配置OpenCV在开始使用OpenCV之前,首先需要安装和配置这个库。

在Windows评台上,可以通过下载预编译的二进制文件进行安装;在Linux评台上,可以通过包管理器进行安装。

安装完毕后,还需进行一些环境配置,确保编译器能够正确信息OpenCV库文件。

二、基本图像处理1. 读取和显示图像在C++中使用OpenCV读取和显示图像非常简单,只需几行代码即可完成。

首先需要使用imread函数读取图像文件,然后使用imshow 函数显示图像。

在进行图像显示后,需要使用waitKey函数等待用户按下某个键,以便关闭显示窗口。

2. 图像的基本操作OpenCV提供了丰富的图像处理函数,包括图像缩放、旋转、平移、通道拆分与合并等。

这些函数可以帮助我们对图像进行各种基本操作,从而满足不同的需求。

三、特征提取与描述1. Harris角点检测Harris角点检测是一种经典的特征点检测方法,它可以用来识别图像中的角点。

在OpenCV中,我们可以使用cornerHarris函数来实现Harris角点检测,然后对检测结果进行筛选和标记。

2. SIFT特征提取SIFT是一种广泛应用的特征提取算法,它具有旋转不变性和尺度不变性。

在OpenCV中,我们可以使用SIFT算法来提取图像的关键点和特征描述子,从而实现图像匹配和目标识别等功能。

四、图像分类与识别1. 使用支持向量机(SVM)进行图像分类OpenCV提供了对机器学习算法的支持,包括SVM分类器。

我们可以使用SVM对图像进行分类,从而实现图像识别和目标检测等功能。

2. 使用深度学习模型进行图像识别近年来,深度学习在图像识别领域取得了显著的成就。

opencv net使用方法

opencv net使用方法

opencv net使用方法OpenCV网络(OpenCV Net)是一个用于计算机视觉和机器学习任务的开源库,它提供了许多功能,包括图像和视频处理、计算机视觉算法、深度学习模型等。

OpenCV Net还提供了一些用于网络和深度学习的工具和库,例如Python API、C++ API、Matlab API等。

要使用OpenCV Net,您需要安装OpenCV库和相应的工具包。

您可以使用pip或conda等包管理器来安装OpenCV和相关工具包。

一旦您安装了所需的库,您就可以使用OpenCV Net提供的各种功能来处理图像和视频数据。

以下是一些使用OpenCV Net的基本方法:1. 加载图像:您可以使用OpenCV Net中的cv2.imread()函数来加载图像。

该函数将图像读入内存中,并返回一个NumPy数组表示图像数据。

```pythonimport cv2img = cv2.imread('image.jpg')```2. 预处理图像:您可以使用OpenCV Net中的各种预处理函数来对图像进行缩放、裁剪、旋转、滤波等操作。

例如,您可以使用cv2.resize()函数来调整图像大小,使用cv2.cvtColor()函数将图像从一种颜色空间转换为另一种颜色空间。

```pythonimg_resized = cv2.resize(img, (new_width, new_height))```3. 检测对象:您可以使用OpenCV Net中的计算机视觉算法来检测图像中的对象。

例如,您可以使用HOG特征描述符和SVM分类器来检测行人,使用YOLOv3或YOLOv4算法来检测移动对象等。

```python# 使用HOG特征描述符和SVM分类器检测行人features = detect_HOG(img)object_confidence = scores(features)detections = detect_objects(img, features, object_confidence) ```4. 提取特征:您可以使用OpenCV Net中的各种特征提取算法来从图像中提取特征。

java-opencv-训练自己的物体分类器

java-opencv-训练自己的物体分类器

java-opencv-训练⾃⼰的物体分类器收集正,负样本(刚开始可以先⽤50~100左右的样本量试试看,正,负样本数量最好⼤于1000,具体看个⼈感觉)。

正样本,需要做识别物体的图⽚(本⽂收集60张):正样本负样本,任意不包含正样本的图⽚(本⽂收集106张):第⼆步:调整样本,并⽣成样本描述⽂件调整样本----将正,负样本转换灰度(本⽂采⽤:IMREAD_GRAYSCALE),调整⼤⼩(本⽂采⽤:正20X20,负50X50)(据说,正20X20最佳)。

调整后正样本:调整后负样本:⽣成样本描述⽂件:cmd 进⼊posdata⽬录,执⾏ dir /b/s/p/w *.jpg > pos.txt同理进⼊negdata⽬录,执⾏ dir /b/s/p/w *.jpg > neg.txtpos.txt内容如下:neg.txt内容如下:修改pos.txt⽂件(neg.txt不⽤修改)如下:“1 0 0 20 20”,为固定格式,其中20指的是照⽚的像素⼤⼩。

第三步:⽣成.vec⽂件将\opencv\build\x64\vc14\bin 下的所有⽂件复制到posdata⽬录同级⽬录下;将上⼀步最后⽣成的pos.txt,neg.txt⽂件也放⼊该同级⽬录,如下:cmd 进⼊该⽬录,执⾏:opencv_createsamples.exe -vec pos.vec -info pos.txt -num 60 -w 20 -h 20其中-num 60,指的是图⽚的数量,-w 20 -h 20,指的是图⽚的规格。

创建traincascade.bat⽂件,添加内容:opencv_traincascade.exe -data xml -vec pos.vec -bg neg.txt -numPos 48 -numNeg 80 -numStages 10 -w 20 -h 20 -mode ALLpause其中-numPos 48为训练取的正样本的样本(取样本数量的0.8~0.9,本⽂取48),-numNeg 80为训练取的负样本的样本(取样本数量的0.8~0.9,本⽂取80),-numStages 10 表⽰训练的层数(建议15~20,本⽂取10),此时⽬录中⽂件如下;双击运⾏traincascade.bat,如下:在xml⽬录下⽣成的cascade.xml⽂件就是训练出来的分类器。

opencv级联分类器训练与使用

opencv级联分类器训练与使用

opencv级联分类器训练与使用什么是级联分类器?级联分类器是一种机器学习模型,用于目标检测和识别。

它是由多个分类器级联组成的模型,每个分类器都有不同的检测强度。

这种级联结构能够有效地筛选出具有较高置信度的正样本,从而加快目标检测速度,同时保持较高的检测准确性。

级联分类器的训练过程:1. 收集训练样本:首先需要收集一些正样本和负样本作为训练样本。

正样本是我们要识别的目标,而负样本则是与目标无关的背景图像。

这些样本应该尽可能覆盖实际应用中可能出现的情况。

2. 特征提取:对于每个训练样本,我们需要提取一些特征来描述图像中的目标。

OpenCV中常用的特征是Haar特征,它可以描述图像中的边缘和纹理等信息。

3. 训练分类器:利用提取的特征,我们可以使用AdaBoost算法训练分类器。

AdaBoost算法是一种迭代训练方法,它通过一系列弱分类器的加权组合来构建一个强分类器。

在每一轮迭代中,AdaBoost会根据分类错误的样本进行权重调整,以便更好地分类错误的样本。

4. 级联分类器的构建:通过训练得到的强分类器,我们可以将它们级联在一起,形成一个级联分类器。

级联分类器的结构通常是以层级的形式组织起来,每一层都包含若干个分类器。

级联分类器的使用过程:1. 加载分类器:首先需要加载训练好的级联分类器模型。

OpenCV提供了一个专门的类——CascadeClassifier来实现这个功能。

可以使用CascadeClassifier类的load方法来加载级联分类器的XML文件。

2. 图像预处理:在进行目标检测之前,我们需要对待检测图像进行一些预处理操作,以提高检测的准确性和速度。

这些预处理操作可以包括图像灰度化、直方图均衡化等。

3. 目标检测:通过调用CascadeClassifier类的detectMultiScale方法,传入待检测的图像,即可进行目标检测。

该方法会返回一组矩形框表示检测到的目标位置。

4. 结果展示:最后,我们可以在原始图像上绘制矩形框来标记检测到的目标位置,从而直观地展示检测结果。

opencv 项目案例

opencv 项目案例

opencv 项目案例OpenCV是一个开源的计算机视觉库,它提供了丰富的函数和算法,用于处理和分析图像和视频数据。

下面是一些基于OpenCV的项目案例以及相关参考内容,希望对您有所帮助。

1. 人脸识别人脸识别是计算机视觉领域的一项重要任务,可以应用于安防监控、人机交互等领域。

参考内容可以包括:- 人脸检测:使用OpenCV的人脸检测器(如Haar级联分类器)对输入图像进行人脸检测。

- 特征提取:使用OpenCV的特征提取算法(如局部二值模式直方图)从人脸图像中提取特征向量。

- 训练分类器:使用OpenCV的机器学习算法(如支持向量机)来训练一个人脸分类器。

- 人脸识别:使用训练好的分类器对新的人脸图像进行识别。

2. 手势识别手势识别可以应用于人机交互、虚拟现实等领域。

参考内容可以包括:- 手势检测:使用OpenCV的背景减除算法和运动跟踪算法对输入视频中的手部进行检测和跟踪。

- 手势识别:根据手势的形状、轮廓、手指数量等特征,使用OpenCV的图像处理和机器学习算法对手势进行识别。

- 手势控制:根据识别出的手势,实现对计算机或设备的控制(如控制鼠标、游戏操作等)。

3. 目标检测与跟踪目标检测与跟踪可以应用于安防监控、自动驾驶等领域。

参考内容可以包括:- 目标检测:使用OpenCV的目标检测器(如级联分类器、深度学习模型)对输入图像或视频中的目标进行检测。

- 目标跟踪:根据检测到的目标,使用OpenCV的运动跟踪算法(如卡尔曼滤波、均值漂移)对目标进行跟踪。

- 多目标跟踪:对于多个目标,使用OpenCV的多目标跟踪算法(如多种滤波方法的组合)进行跟踪与管理。

4. 图像处理与增强图像处理与增强可以应用于图像编辑、美颜相机等领域。

参考内容可以包括:- 图像滤波:使用OpenCV的滤波算法(如均值滤波、高斯滤波)对图像进行平滑处理或边缘增强。

- 图像增强:使用OpenCV的直方图均衡化、自适应直方图均衡化等算法对图像进行增强。

OpenCV——级联分类器(CascadeClassifier)

OpenCV——级联分类器(CascadeClassifier)

OpenCV——级联分类器(CascadeClassifier)级联分类器的计算特征值的基础类FeatureEvaluator功能:读操作read、复制clone、获得特征类型getFeatureType,分配图⽚分配窗⼝的操作setImage、setWindow,计算有序特征calcOrd,计算绝对特征calcCat,创建分类器特征的结构create函数。

⽬标级联矩形的分组函数groupRectangles⽤load函数加载XML分类器⽂件具体步骤如下: { PS:⽬前提供的分类器包括Haar分类器和LBP分类器(数据较少)}1.加载级联分类器CascadeClassifier face_cascade;face_cascade.load("haarcascade_frontalface_alt.xml");2.读取视频流3.对每⼀帧使⽤该分类器先对图像进⾏预处理——变成灰度图,并将其直⽅图均衡化若检测⼈脸,调⽤detectMultiScale函数,函数详情如下:void detectMultiScale(const Mat& image, //待检测灰度图像CV_OUT vector<Rect>& objects, //被检测物体的矩形框向量double scaleFactor = 1.1, //前后两次相继的扫描中搜索窗⼝的⽐例系数,默认为1.1 即每次搜索窗⼝扩⼤10%int minNeighbors = 3, //构成检测⽬标的相邻矩形的最⼩个数如果组成检测⽬标的⼩矩形的个数和⼩于minneighbors - 1 都会被排除//如果minneighbors为0 则函数不做任何操作就返回所有被检候选矩形框int flags = 0, //若设置为CV_HAAR_DO_CANNY_PRUNING 函数将会使⽤Canny边缘检测来排除边缘过多或过少的区域Size minSize = Size(),Size maxSize = Size() //最后两个参数⽤来限制得到的⽬标区域的范围);PS:flags对于新的分类器没有⽤(但⽬前的haar分类器都是旧版的,CV_HAAR_DO_CANNY_PRUNING利⽤Canny边缘检测器来排除⼀些边缘很少或者很多的图像区域,CV_HAAR_SCALE_IMAGE就是按⽐例正常检测,CV_HAAR_FIND_BIGGEST_OBJECT只检测最⼤的物体,CV_HAAR_DO_ROUGH_SEARCH只做初略检测)实例代码:face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30) );。

c语言opencv例程

c语言opencv例程

c语言opencv例程OpenCV 是一个用于计算机视觉和机器学习的开源库,在 C 语言中,你可以通过调用OpenCV 的库函数来实现各种图像处理和计算机视觉任务。

以下为你提供一些 OpenCV 的 C 语言例程:- adaptiveskindetector.cpp:利用 HSV 空间的色调信息的皮肤检测,背景不能有太多与肤色相似的颜色。

- bagofwords_classification.cpp:目前还看不懂。

- bgfg_codebook.cpp:前后背景分离。

开启摄像头或读取视频。

- bgfg_gmg.cpp:摄像头捕捉,根据运动进行前后背景分离。

- bgfg_segm.cpp:高斯处理视频。

跟踪运动做前背景分割。

BackgroundSubtractorMOG2类。

- blobtrack_sample.cpp:视频跟踪。

跟踪视频中的运动物体,用绿色线框出。

- brief_match_test.cpp:利用 brief 描述算子匹配二维图像特征点。

- build3dmodel.cpp:建立三维模型。

根据给出的检测器对原始进行建模。

- calibration.cpp:相机外定标。

根据自带的函数提取角点后定标。

- calibration_artificial:根据角点自动校准摄像。

初始化后寻找角点再用calibrateCamera 校准。

- chamfer.cpp:图像匹配。

把图像二值后在目标图像中寻找模板图像。

主要调用chamerMatching 函数。

- contours.c:轮廓查找与获取。

cvFindContours 一个函数搞定。

- convert_cascade.c:从文件中装载训练好的级联分类器或者从 OpenCV 中嵌入的分类器数据库中导入,然后另存为一个文件。

- convexhull.cpp:凸包。

产生随机点后计算凸包。

- cout_mat.cpp:OpenCV 中矩阵的输出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何用OpenCV训练自己的分类器2009-09-04 22:15最近要做一个性别识别的项目,在人脸检测与五官定位上我采用OPENCV的haartraining进行定位,这里介绍下这两天我学习的如何用opencv训练自己的分类器。

在这两天的学习里,我遇到了不少问题,不过我遇到了几个好心的大侠帮我解决了不少问题,特别是无忌,在这里我再次感谢他的帮助。

一、简介目标检测方法最初由Paul Viola [Viola01]提出,并由Rainer Lienhart [Lienhart02]对这一方法进行了改善。

该方法的基本步骤为:首先,利用样本(大约几百幅样本图片)的 harr 特征进行分类器训练,得到一个级联的boosted分类器。

分类器中的"级联"是指最终的分类器是由几个简单分类器级联组成。

在图像检测中,被检窗口依次通过每一级分类器,这样在前面几层的检测中大部分的候选区域就被排除了,全部通过每一级分类器检测的区域即为目标区域。

分类器训练完以后,就可以应用于输入图像中的感兴趣区域的检测。

检测到目标区域分类器输出为1,否则输出为0。

为了检测整副图像,可以在图像中移动搜索窗口,检测每一个位置来确定可能的目标。

为了搜索不同大小的目标物体,分类器被设计为可以进行尺寸改变,这样比改变待检图像的尺寸大小更为有效。

所以,为了在图像中检测未知大小的目标物体,扫描程序通常需要用不同比例大小的搜索窗口对图片进行几次扫描。

目前支持这种分类器的boosting技术有四种: Discrete Adaboost, Real Adaboost, Gentle Adaboost and Logitboost。

"boosted" 即指级联分类器的每一层都可以从中选取一个boosting算法(权重投票),并利用基础分类器的自我训练得到。

根据上面的分析,目标检测分为三个步骤:1、样本的创建2、训练分类器3、利用训练好的分类器进行目标检测。

二、样本创建训练样本分为正例样本和反例样本,其中正例样本是指待检目标样本,反例样本指其它任意图片。

负样本负样本可以来自于任意的图片,但这些图片不能包含目标特征。

负样本由背景描述文件来描述。

背景描述文件是一个文本文件,每一行包含了一个负样本图片的文件名(基于描述文件的相对路径)。

该文件创建方法如下:采用Dos命令生成样本描述文件。

具体方法是在Dos下的进入你的图片目录,比如我的图片放在D:\face\posdata下,则:按Ctrl+R打开Windows运行程序,输入cmd打开DOS命令窗口,输入 d:回车,再输入cd D:\face\negdata进入图片路径,再次输入dir /b > negdata.dat,则会图片路径下生成一个negdata.dat文件,打开该文件将最后一行的negdata.dat删除,这样就生成了负样本描述文件。

dos命令窗口结果如下图:正样本对于正样本,通常的做法是先把所有正样本裁切好,并对尺寸做规整(即缩放至指定大小),如下图所示:由于HaarTraining训练时输入的正样本是vec文件,所以需要使用OpenCV自带的CreateSamples程序(在你所按照的 opencv\bin下,如果没有需要编译opencv\apps\HaarTraining\make下的.dsw文件,注意要编译release版的)将准备好的正样本转换为vec文件。

转换的步骤如下:1) 制作一个正样本描述文件,用于描述正样本文件名(包括绝对路径或相对路径),正样本数目以及各正样本在图片中的位置和大小。

典型的正样本描述文件如下:posdata/1(10).bmp 1 1 1 23 23posdata/1(11).bmp 1 1 1 23 23posdata/1(12).bmp 1 1 1 23 23不过你可以把描述文件放在你的posdata路径(即正样本路径)下,这样你就不需要加前面的相对路径了。

同样它的生成方式可以用负样本描述文件的生成方法,最后用txt的替换工具将“bmp”全部替换成“bmp 1 1 1 23 23”就可以了,如果你的样本图片多,用txt替换会导致程序未响应,你可以将内容拷到word下替换,然后再拷回来。

bmp后面那五个数字分别表示图片个数,目标的起始位置及其宽高。

这样就生成了正样本描述文件posdata.dat。

2) 运行CreateSamples程序。

如果直接在VC环境下运行,可以在Project\Settings\Debug属性页的Program arguments栏设置运行参数。

下面是一个运行参数示例:-info D:\face\posdata\posdata.dat -vec D:\face\pos.vec -num 50 -w 20 -h 20表示有50个样本,样本宽20,高20,正样本描述文件为posdata.dat,结果输出到pos.vec。

或者在dos下输入:"D:\Program Files\OpenCV\bin\createsamples.exe" -info"posdata\posdata.dat" -vec data\pos.vec -num 50 -w 20 -h 20运行完了会d:\face\data下生成一个*.vec的文件。

该文件包含正样本数目,宽高以及所有样本图像数据。

结果入下图:Createsamples程序的命令行参数:命令行参数:-vec <vec_file_name>训练好的正样本的输出文件名。

-img<image_file_name>源目标图片(例如:一个公司图标)-bg<background_file_name>背景描述文件。

-num<number_of_samples>要产生的正样本的数量,和正样本图片数目相同。

-bgcolor<background_color>背景色(假定当前图片为灰度图)。

背景色制定了透明色。

对于压缩图片,颜色方差量由bgthresh参数来指定。

则在bgcolor-bgthresh和 bgcolor+bgthresh 中间的像素被认为是透明的。

-bgthresh<background_color_threshold>-inv如果指定,颜色会反色-randinv如果指定,颜色会任意反色-maxidev<max_intensity_deviation>背景色最大的偏离度。

-maxangel<max_x_rotation_angle>-maxangle<max_y_rotation_angle>,-maxzangle<max_x_rotation_angle>最大旋转角度,以弧度为单位。

-show如果指定,每个样本会被显示出来,按下"esc"会关闭这一开关,即不显示样本图片,而创建过程继续。

这是个有用的debug选项。

-w<sample_width>输出样本的宽度(以像素为单位)-h《sample_height》输出样本的高度,以像素为单位。

到此第一步样本训练就完成了。

恭喜你,你已经学会训练分类器的五成功力了,我自己学这个的时候花了我一天的时间,估计你几分钟就学会了吧。

三、训练分类器样本创建之后,接下来要训练分类器,这个过程是由haartraining程序来实现的。

该程序源码由OpenCV自带,且可执行程序在OpenCV安装目录的bin目录下。

Haartraining的命令行参数如下:-data<dir_name>存放训练好的分类器的路径名。

-vec<vec_file_name>正样本文件名(由trainingssamples程序或者由其他的方法创建的)-bg<background_file_name>背景描述文件。

-npos<number_of_positive_samples>,-nneg<number_of_negative_samples>用来训练每一个分类器阶段的正/负样本。

合理的值是:nPos = 7000;nNeg = 3000 -nstages<number_of_stages>训练的阶段数。

-nsplits<number_of_splits>决定用于阶段分类器的弱分类器。

如果1,则一个简单的stump classifier被使用。

如果是2或者更多,则带有number_of_splits个内部节点的CART分类器被使用。

-mem<memory_in_MB>预先计算的以MB为单位的可用内存。

内存越大则训练的速度越快。

-sym(default)-nonsym指定训练的目标对象是否垂直对称。

垂直对称提高目标的训练速度。

例如,正面部是垂直对称的。

-minhitrate《min_hit_rate》每个阶段分类器需要的最小的命中率。

总的命中率为min_hit_rate的number_of_stages次方。

-maxfalsealarm<max_false_alarm_rate>没有阶段分类器的最大错误报警率。

总的错误警告率为max_false_alarm_rate 的number_of_stages次方。

-weighttrimming<weight_trimming>指定是否使用权修正和使用多大的权修正。

一个基本的选择是0.9-eqw-mode<basic(default)|core|all>选择用来训练的haar特征集的种类。

basic仅仅使用垂直特征。

all使用垂直和45度角旋转特征。

-w《sample_width》-h《sample_height》训练样本的尺寸,(以像素为单位)。

必须和训练样本创建的尺寸相同。

一个训练分类器的例子:"D:\Program Files\OpenCV\bin\haartraining.exe" -data data\cascade -vec data\pos.vec -bg negdata\negdata.dat -npos 49 -nneg 49 -mem 200 -mode ALL -w 20 -h 20训练结束后,会在目录data下生成一些子目录,即为训练好的分类器。

训练结果如下:恭喜你,你已经学会训练分类器的九成功力了。

四:利用训练好的分类器进行目标检测。

这一步需要用到performance.exe,该程序源码由OpenCV自带,且可执行程序在OpenCV安装目录的bin目录下。

相关文档
最新文档