gpt4 book ai didi

OpenCV 目标检测边界框

转载 作者:行者123 更新时间:2023-12-02 17:51:35 25 4
gpt4 key购买 nike

我正在使用 OpenCV 中的 SVM 进行实时对象检测。我的对象包括书本、杯子、盒子、监视器和负训练样本。

  • 特征检测器 - SURF
  • 每个正图像的样本 - 每个 200 个(从 Web 获取)
  • 负样本 - 400 张图片

  • 训练 SVM 后,我可以正确识别包含对象的帧。但我无法在对象周围放置正确的边界框。

    对于单个对象和场景图像, http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html OpenCV 的本教程提供了有关如何执行检测和放置边界框的见解。

    现在就我而言,我有 200 个对象的裁剪图像,如何确定环境中对象周围正确边界框的正确位置和大小。这就是我如何知道训练集中的哪个图像是最佳匹配的。

    最佳答案

    如果您现在,从您的 SVM 中,哪个对象可能在图像中,您可以使用仅包含您的对象的图像作为“对象图像”,将当前样本作为“场景图像”。
    比你可以关注 Example “Features2D + Homography to find a known object”(你已经提到过)来找到你的对象在场景中的位置。如果您只想绘制边界框(而不是匹配的特征),只需从对象中提取角点(示例中的代码):

     //-- Get the corners from the image_1 ( the object to be "detected" )
    std::vector<Point2f> obj_corners(4);
    obj_corners[0] = cvPoint(0,0);
    obj_corners[1] = cvPoint( img_object.cols, 0 );
    obj_corners[2] = cvPoint( img_object.cols, img_object.rows );
    obj_corners[3] = cvPoint( 0, img_object.rows );

    并将它们转换为场景坐标
    std::vector<Point2f> scene_corners(4);

    perspectiveTransform( obj_corners, scene_corners, H);

    假设您已经计算了单应矩阵 H .

    现在您在场景坐标中有了角点,并且可以简单地在角点之间绘制线以获得您的边界框(示例中的代码):
    //-- Draw lines between the corners (the mapped object in the scene - image_2 )
    line( img_matches, scene_corners[0] + Point2f( img_object.cols, 0), scene_corners[1] + Point2f( img_object.cols, 0), Scalar(0, 255, 0), 4 );
    line( img_matches, scene_corners[1] + Point2f( img_object.cols, 0), scene_corners[2] + Point2f( img_object.cols, 0), Scalar( 0, 255, 0), 4 );
    line( img_matches, scene_corners[2] + Point2f( img_object.cols, 0), scene_corners[3] + Point2f( img_object.cols, 0), Scalar( 0, 255, 0), 4 );
    line( img_matches, scene_corners[3] + Point2f( img_object.cols, 0), scene_corners[0] + Point2f( img_object.cols, 0), Scalar( 0, 255, 0), 4 );

    重要的是您的“object_image”只包含对象而不包含其他内容。

    如果您想从您的类(class)中获得最好的样本,您必须计算每个样本的分数。这可以使用 Wu 等人的“通过成对耦合进行多类分类的概率估计”中描述的方法来完成。人。你可以找到 here .

    然而,这对于实时应用程序来说可能太慢了。

    关于OpenCV 目标检测边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20185895/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com