计算机视觉目标检测的框架与过程

FROM:http://blog.csdn.net/zouxy09/article/details/7928771

个人接触机器视觉的时间不长,对于机器学习在目标检测的大体的框架和过程有了一个初步的了解,不知道对不对,如有错误,请各位大牛不吝指点。

 

目标的检测大体框架:

目标检测分为以下几个步骤:

1、训练分类器所需训练样本的创建:

训练样本包括正样本和负样本;其中正例样本是指待检目标样本(例如人脸或汽车等),负样本指其它不包含目标的任意图片(如背景等),所有的样本图片都被归一化为同样的尺寸大小(例如,20x20)。

2、特征提取:

由图像或波形所获得的数据量是相当大的。例如,一个文字图像可以有几千个数据,一个心电图波形也可能有几千个数据。为了有效地实现分类识别,就要对原始数据进行变换,得到最能反映分类本质的特征。这就是特征选择和提取的过程。一般我们把原始数据组成的空间叫测量空间,把分类识别赖以进行的空间叫做特征空间,通过变换,可把在维数较高的测量空间中表示的模式变为在维数较低的特征空间中表示的模式。

3、用训练样本来训练分类器:

这得先明白分类器是什么?百度百科的解释是:“使待分对象被划归某一类而使用的分类装置或数学模型。”我觉得可以怎么理解,举个例子:人脑本身也算一个分类器(只是它强大到超乎想象而已),人对事物的识别本身也是一个分类的过程。人在成长或者学习过程中,会通过观察A类事物的多个具体事例来得到对A类事物性质和特点的认识,然后以后遇到一个新的物体时,人脑会根据这个事物的特征是否符合A类事物性质和特点,而将其分类为A类或者非A类。(这里只是用简单的二分类问题来说明)。那么训练分类器可以理解为分类器(大脑)通过对正样本和负样本的观察(学习),使其具有对该目标的检测能力(未来遇到该目标能认出来)。

从数学来表达,分类器就是一个函数y=f(x),x是某个事物的特征,y是类别,通俗的说就是例如,你输入张三的特征x1,分类器就给你认出来这个是张三y1,你输入李四的特征x2,它就给你认出来这个是李四y2。那么分类器是个函数,它的数学模型是什么呢?一次函数y=kx+b?高次函数?等等好复杂的都有,我们需要先确定它的模型;确定了模型后,模型是不是由很多参数呢?例如上面的一次函数y=kx+b的k和b,高斯函数的均值和方差等等。这个就可以通过什么最小化分类误差、最小化惩罚啊等等方法来确定,其实训练分类器好像就是找这些参数,使得达到最好的分类效果。呵呵,不知道自己说得对不对。

另外,为了使分类检测准确率较好,训练样本一般都是成千上万的,然后每个样本又提取出了很多个特征,这样就产生了很多的的训练数据,所以训练的过程一般都很耗时的。

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

       得到了分类器就可以用来对你输入的图像进行分类了,也就是在图像中检测是否存在你想要检测的目标。一般的检测过程是这样的:用一个扫描子窗口在待检测的图像中不断的移位滑动,子窗口每到一个位置,就会计算出该区域的特征,然后用我们训练好的分类器对该特征进行筛选,判定该区域是否为目标。然后因为目标在图像的大小可能和你训练分类器时使用的样本图片大小不一样,所以就需要对这个扫描的子窗口变大或者变小(或者将图像变小),再在图像中滑动,再匹配一遍。

5、学习和改进分类器

现在如果样本数较多,特征选取和分类器算法都比较好的情况下,分类器的检测准确度都挺高的了。但也会有误检的时候。所以更高级点的话就是加入了学习或者自适应,也就是说你把这张图分类错误了,我就把这张图拿出来,标上其正确的类别,再放到样本库中去训练分类器,让分类器更新、醒悟,下次别再给我弄错了。你怎么知道他弄错了?我理解是:大部分都是靠先验知识(例如目标本身存在着结构啊或者什么的约束)或者和跟踪(目标一般不会运动得太快)等综合来判断的。

其实上面这个模式分类的过程是适合很多领域的,例如图像啊,语音识别等等。那么这整一个过程关键点在哪呢?

(1)特征选取:

感觉目标比较盛行的有:Haar特征、LBP特征、HOG特征和Shif特征等;他们各有千秋,得视你要检测的目标情况而定,例如:

拳头:纹理特征明显:Haar、LBP(目前有将其和HOG结合);

手掌:轮廓特征明显:HOG特征(行人检测一般用这个);

(在博客中,我会参考各牛人的博客和资料来整理Haar特征、LBP特征、HOG特征和Shif特征等这些内容,具体见博客更新)

(2)分类器算法:

感觉目标比较盛行的有:SVM支持向量机、AdaBoost算法等;其中检测行人的一般是HOG特征+SVM,OpenCV中检测人脸的一般是Haar+AdaBoost,OpenCV中检测拳头一般是LBP+ AdaBoost;

在计算机视觉领域,涉及到的特征啊,算法啊等等还是非常非常多的,不断有牛人在提出新的东西(简单的哲学+复杂的数学),也不断有牛人在改进以前的东西,然后随着岁月的脚步,科技在不停地狂奔着!

计算机视觉目标检测的框架与过程相关推荐

  1. 目标检测如何计算召回率_计算机视觉目标检测的框架与过程

    计算机视觉 个人接触机器视觉的时间不长,对于机器学习在目标检测的大体的框架和过程有了一个初步的了解,不知道对不对,如有错误,请各位大牛不吝指点. 目标的检测大体框架: 计算机视觉 目标检测分为以下几个 ...

  2. Facebook发布Detectron2,下一个万星目标检测新框架

    作者 | CV君 来源 | 我爱计算机视觉(ID:aicvml) Detectron是Facebook于2018年发布的专注于目标检测的深度学习框架,基于Caffe2深度学习框架,实现了众多state ...

  3. CVPR 2020 | 港中文提出3D目标检测新框架DSGN

    ©PaperWeekly 原创 · 作者|张承灏 学校|中科院自动化所硕士生 研究方向|双目深度估计 本文介绍的是香港中文大学贾佳亚团队在 CVPR 2020 上提出的 3D 目标检测新框架--深度立 ...

  4. 何恺明团队最新研究:3D目标检测新框架VoteNet,两大数据集刷新最高精度

    [导读]FAIR何恺明等人团队提出3D目标检测新框架VoteNet,直接处理原始数据,不依赖任何2D检测器.该模型设计简单,模型紧凑,效率高,在两大真实3D扫描数据集上实现了最先进的3D检测精度. 当 ...

  5. 通用目标检测开源框架YOLOv6在美团的量化部署实战

    基于美团目标检测模型开源框架 YOLOv6,本文介绍了一种通用的量化部署方案,在保持精度的同时大幅提升了检测的速度,为通用检测的工业化部署探索出一条可行之路,希望能给大家带来一些启发或者帮助. 1. ...

  6. PyTorch—计算机视觉目标检测 mmdetection

    一.前言 商汤和港中文联合开源了 mmdetection-基于 PyTorch 的开源目标检测工具包. 工具包支持 Mask RCNN 等多种流行的检测框架,读者可在 PyTorch 环境下测试不同的 ...

  7. 【计算机视觉 | 目标检测】CORA: Adapting CLIP for Open-Vocabulary Detection with Region Prompting and Anchor

    基于区域提示和锚点预匹配的开放词汇检测. CORA 在目标检测任务中提出了一种新的 CLIP 预训练模型适配方法,主要包括 Region Prompting 和 Anchor Pre-Matching ...

  8. 目标检测-Yolo框架

    文章目录 基本概念 目标检测 目标检测算法分类 目标检测原理 数据表示 效果评估 非极大值抑制(NMS) Yolov Yolov1 基本思想 网络结构 优点与缺点 YOLOV2 与YOLOV1区别 Y ...

  9. 计算机视觉目标检测算法总结5——RCNN系列算法

    Faster RCNN介绍 Boss B.Girshick在2016年提出 目标检测任务 给定图片中精确定位物体位置,预测物体类别 尺度变化.视角变化.姿态变化.场景不确定.多个类别 RCNN-> ...

最新文章

  1. unbutu18.04.4 截图工具 flameshot
  2. python中怎么比较两个列表-如何比较python中的两个列表并返回匹配
  3. centos中卸载php,在Centos 7上完成PHP的卸载和重新安装
  4. vba怎么安装_VBA还要学吗?怎么入门Excel VBA?
  5. java装饰模式模拟流_Java 装饰模式 io流
  6. SDOI 2006 - 保安站岗
  7. 你羡慕了吗?10万个数字人民币红包派发,每个200元
  8. python写网页插件_用python 实现activex网页控件
  9. 程序安装mysql数据库,安装mysql数据库
  10. 刨根问底--struts-default.xml
  11. C语言基础专题 - 头文件引用
  12. bzoj 3530: [Sdoi2014]数数 数位dp
  13. 实战Fibre Channel之六: 发起端和目的端常用命令
  14. 防火墙和端口,防火墙的功能和作用
  15. MySql使用存储过程开发
  16. tmux简洁教程及config关键配置
  17. Python os.symlink创建软链接
  18. colt mrr_Learning To Rank 介绍
  19. Communication error with Jack server
  20. 【已修复】windows10更新:你的设备中缺少重要的安全和质量修复。

热门文章

  1. acwing算法题--01背包问题
  2. leetcode算法题--数组中数字出现的次数 II
  3. leetcode算法题--使序列递增的最小交换次数★
  4. 09、redis哨兵的多个核心底层原理的深入解析(包含slave选举算法)
  5. Linux设备模型(热插拔、mdev 与 firmware)
  6. 第十五章 shell正则表达式
  7. Docker、Kubernetes、Apache Mesos 之争 | 一个与传说不同的故事
  8. 电子商务和ERP的关系主要体现
  9. Java基础-重写方法
  10. 函数模块:POPUP_TO_INFORM