目标检测

Posted on 2020-05-27 17:17  金色的省略号  阅读(193)  评论(0编辑  收藏  举报

  将计算机视觉技术和机器学习技术相结合,用于解决计算机视觉中的实际问题,这些问题中最重要的是目标检测技术;

  基于树的目标检测技术

  第一个是,级联分类器,cascade classifier,将Viola and Jones在人脸识别算法进行了一般化

  第二个是,软级联, soft cascade,该算法进一步进行演化,使用新的方法给出了一个在大多数情况下比级联分类器更棒的分类;

  这两种算法都非常成功地应用于人脸以外的其他许多目标检测,通常,具有刚性结构和强纹理的目标使用这两种方法会得到较好的检测效果

  级联分类器

  级联分类器,基于boosted拒绝级联这一重要概念构建而成;它与ML库的大部分格式都不同,因为它一开始是作为完整的人脸识别应用开发的,之后的更新比原始的实现更具有一般性;OpenCV的级联分类器实现了最先由Paul Viola和Michael Jones开发的人脸识别技术,它通常称为"Viola-Jones检测器";最开始,这个技术与其OpenCV实现只仅支持一个特定序列的特征--Haar小波,后来进行了扩展,使用了对角线特征,这个拓展的特征通常称为类Haar特征;人脸识别,后来称为Haar分类器;

  局部二值模式特征

  cv::CascadeClassifier(其父类cv::Algorithm),OpenCV将级联分类器作为对象进行了实现,对象结构是:

 

cv::CascadeClassifier::CascadeClassifier(
    const String& filename  //级联器存储文件
);

 

  级联分类器实际上使用的函数是cv::CascadeClassifier对象的detectMultiScale()方法

cv::CascadeClassifier::detectMultiScale(
    const cv::Mat& image, // Input (grayscale) image
    vector<cv::Rect>& objects, // Output boxes (boxen?)
    double scaleFactor = 1.1, // Factor between scales
    int minNeighbors = 3, // Required neighbors to count
    int flags = 0, // Flags (old style cascades)
    cv::Size minSize = cv::Size(), // Smallest we will consider
    cv::Size maxSize = cv::Size() // Largest we will consider
);

 

 

  使用支持向量机检测目标