【问题标题】:Train svm with ORB descriptors?用 ORB 描述符训练 svm?
【发布时间】:2017-10-19 01:32:07
【问题描述】:

您好,我一直在尝试训练具有特征的 svm,但我不明白如何处理使用 ORB 计算的关键点的描述符。我知道 svm 需要一个数据矩阵和一个标签矩阵,但我不知道如何将描述符 Mat 传递给有效格式。 我已经阅读过 BoF(词袋/功能),但我不知道如何使用它。 感谢您的帮助。

下面的代码允许我获取图像的描述符。下一步是什么?

            std::vector<KeyPoint> kp;
            Mat desc;
        // Default parameters of ORB
            int nfeatures = 128; 
            float scaleFactor = 1.2f; 
            int nlevels = 8;    
            int edgeThreshold = 15; // Changed default (31);
            int firstLevel = 0; 
            int WTA_K = 2; 
            int scoreType = ORB::HARRIS_SCORE; 
            int patchSize = 31; 
            int fastThreshold = 20;

            Ptr<ORB> myORB = ORB::create(nfeatures, scaleFactor, nlevels, edgeThreshold, firstLevel, WTA_K, scoreType,
                patchSize, fastThreshold);

            myORB->detectAndCompute(src, Mat(), kp, desc);

            features.push_back(desc);

【问题讨论】:

标签: c++ opencv svm orb


【解决方案1】:

我强烈建议您将 python 与 OpenCV 一起使用,这将为您节省大量时间。在 python 中,这将只有 10 行代码。

您可以参考此link 了解 ORB。一旦获得特征,就可以使用scikit-learn svm 来训练 SVM 分类器。

【讨论】:

    猜你喜欢
    • 2013-04-16
    • 2014-06-30
    • 2014-01-29
    • 2013-06-14
    • 2020-10-17
    • 1970-01-01
    • 2013-01-01
    • 2018-06-28
    • 2015-10-30
    相关资源
    最近更新 更多