gpt4 book ai didi

android - 使用 OpenCV SVM 进行目标检测

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:56 25 4
gpt4 key购买 nike

我无法在互联网上的一个地方找到好的解释。东西太多了,我没有弄清楚该怎么做,反而变得更加困惑。

我的目标:创建一个使用摄像头实时检测物体的 Android 应用程序(我的物体是方向盘和汽车轮胎。)

到目前为止,我尝试了 haar 分类器,但它很难训练,花费了很多时间并且无法正确训练它,所以我决定寻找另一种方法来实现我的目标。

现在我了解了特征检测器和 SVM 训练。我的问题是:

1:我应该使用哪种算法(SURF、ORB、FREAK 等)?

2:您如何看待 HOG + Bag-Of-Words?

3:你能告诉我如何训练 SVM 吗?如果有的话给个链接? - 我没有找到任何关于此的教程。我一直在寻找,但我的时间有限,所以我决定问问。

4:哪种算法会给出最好的结果?

5:我应该用Android NDK在原生实现还是Java实现不会有这么大的区别?

如果您有任何教程或引用资料,请将它们添加到您的答案或评论中。很抱歉问了这么长的问题,正如我所说的,我的时间有限(这是一个学校项目。)而且我认为,如果人们能在一个地方找到这些答案,那就太好了。我会感谢每一个答案,即使它不是一个完整的答案。提前致谢!

最佳答案

1:没有适用于所有情况的最佳算法,只有根据应用要求适合某些非常具体情况的算法。

您可以尝试 SIFTSURF,它们是最流行的描述符,但效率不高(速度慢)并且需要大量内存。如果效率是您的目标,您可以尝试使用二进制描述符(例如 BRIEF、ORB、BRISK、FREAK),这些描述符效率更高且需要的存储空间更少。也看看 FAST 检测器。

2:图像分类问题的词袋是一种识别对象类别的方法,给定一组包含对象类别的正训练图像,以及一组不包含对象类别的负训练图像

Bag-Of-Words 将为您提供每个训练图像的向量表示

得到这个之后,你将不得不训练一个分类器来区分对应于正(方向盘和汽车轮胎)和负训练图像的向量。您可以为此使用SVM 分类器。

3:这里有 OpenCV 2.3 中完整方法(BOW + SVM)的教程。您需要对代码进行一些更改,但总体思路是:http://www.morethantechnical.com/2011/08/25/a-simple-object-classifier-with-bag-of-words-using-opencv-2-3-w-code/

此外,SVM 的 OpenCV 教程: http://docs.opencv.org/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html

4:前面说过,没有完美的算法,所以无法回答你。我认为在对 (1.) 中的备选方案进行一些测试后,您将能够向我们回答。 :)

5.我认为你应该使用 Android NDK,但我对 Android 开发了解不多。

http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/android_dev_intro.html http://opencv.org/platforms/android.html

关于android - 使用 OpenCV SVM 进行目标检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27409256/

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