首页 文章

Android中最快的移动物体识别和跟踪

提问于
浏览
8

我正在研究增强现实游戏,它需要识别和跟踪快速移动的物体 . 我尝试过以下图像处理库,

1. Opencv

2. BoofCv

3. FastCv

我已经尝试过TLD算法来跟踪对象,跟踪成功但是性能确实需要提高 . 如果对象移动得更快,则结果需要时间,因为算法需要处理时间 . 我也尝试过循环,类似于boofcv的算法 .

检查这些演示:

OpenTLD using FastCv

Boofcv Demonstration

这两个演示中的对象跟踪似乎很好,但计算需要时间 .

我可以使用以下方案更快地完成此操作

  • 提取要跟踪的对象的r,g,b矩阵

  • 拍摄相机帧并将其转换为r,g,b矩阵,并在相机帧中搜索跟踪的物体矩阵 .

有没有更好的方法来做到这一点?

2 回答

  • 2

    我建议使用灰度而不是RGB,就像它通常在图像处理中那样,你的计算减少到1矩阵而不是3 .

    如果您需要检查颜色,只需在需要时使用rgb,但不要在整个计算过程中使用 .

    跟踪快速移动的物体总是很困难 . 尝试使用可以每秒拍摄更多帧的相机,尽管您需要处理更多图像,我想您是在移动设备上

    您还可以做的是根据先前的对象位置将处理的图像大小缩小到较小的窗口,您可以估计下一个位置并将其限制为某个vecinity并仅处理图像的那些位 . 简而言之,仅在图像的某些部分执行光学流动(使用灰度级) .

  • 3

    我认为 SIFTSURF 算法最适合此目的 . SIFT或SURF可以像任何其他功能检测器和提取器一样使用:

    FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB); 
    // May be SIFT,   SURF, etc 
    detector.detect(mat, keypoints); 
    DescriptorExtractor extractor =     DescriptorExtractor.create(DescriptorExtractor.ORB); 
    // May be SIFT, SURF, etc 
    extractor.compute(mat, keypoints, features);
    

    使用openCv了解更多信息 . 当然,您可以找到解决方案 . 继续尝试 .

相关问题