Android中最快的移动对象识别和跟踪

我正在制作一个增强现实游戏,它需要识别和跟踪一个快速移动的对象。 我已经尝试了以下image processing库,

1. Opencv

2. BoofCv

3. FastCv

我曾经尝试过使用顶级域名(TLD)algorithm来跟踪对象,跟踪是成功的,但是性能确实需要改进。 如果对象移动得更快,则由于algorithm花费的处理时间,结果会花费时间。 我也尝试循环,像boofcvalgorithm的意思转移。

检查这些演示:

OpenTLD使用FastCv

Boofcv示范

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

我可以用下面的scheme去做这个更快,

  1. 提取待跟踪物体的r,g,bmatrix

  2. 取相机帧并将其转换为ar,g,bmatrix,并在相机框中search跟踪的目标matrix。

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

  • 在两幅图像之间绘制图像 - 图像识别
  • 在Java中打印opencvmatrix内容
  • android - 使用没有surfaceview或textureview的相机
  • 自定义视图调用了setOnTouchListener,但不覆盖performClick(class extends Activity NOT View)
  • 我怎样才能加快我的Android的openCV应用程序?
  • Android OpenCV绘制Hough线
  • 错误:在PATH中找不到程序“/ndk-build.cmd”
  • Android OpenCVfind轮廓
  • 我build议使用灰度而不是RGB,就像通常在image processing中那样,你的计算减less到1matrix而不是3。

    如果你需要检查颜色,只需在需要时使用rgb,而不是通过整个计算。

    跟踪快速移动的对象总是很困难。 尝试使用相机,可以采取更多的帧每秒,虽然你需要处理更多的图像,我想你是在移动设备上

    另外你可以做的是减less正在处理的图像大小到一个较小的窗口基于前一个对象的位置,你可以估计下一个位置,并限制它到一定的vecinity,只处理图像的位。 简言之,只在图像的某一部分进行光stream(使用灰度)。

    我认为SIFTSURFalgorithm最适合这个目的。 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了解更多信息。 当然你的方式可能会find解决办法。 继续尝试。