智能手机上的实时图像识别
Realtime Image recognition on smartphones
我们的工作任务是创建可以从 Web 服务器下载一些模板图像并对这些图像执行实时识别的应用程序。我们做了一些研究,唯一合理的解决方案是:
我们从模板图像中提取特征描述符,并在应用程序启动时将它们存储到内存中。
从每个可用帧(不是每个,这取决于算法的速度)也提取了这个描述符,我们将它们与每个模板描述符进行匹配,并从中挑选出最好的。
在应用程序的第一个原型中(我们使用 OpenCV)iOS 这种方法很不错,但是 Android,尤其是低端设备,需要花费大量时间来提取和匹配这些方法描述符。我们使用 SURF 算法,因为我们发现它最适合这项任务,而对于描述符之间的匹配,我们使用 kNN 算法。
您认为我们的解决方案是正确的,还是存在更好的智能手机友好型解决方案?
谢谢
我做了一个类似于你的应用程序,因为 android 我们使用 boofCV,它的冲浪比 OpenCV 快得多。您可以在网站上了解它的性能。该方法完全没问题,您可以考虑根据您的域调整 SURF 算法的阈值,因为如果阈值很低,您将获得很多特征,获得的特征越多,计算量就越多发生并且您获得较低的帧速率。
我们的工作任务是创建可以从 Web 服务器下载一些模板图像并对这些图像执行实时识别的应用程序。我们做了一些研究,唯一合理的解决方案是:
我们从模板图像中提取特征描述符,并在应用程序启动时将它们存储到内存中。
从每个可用帧(不是每个,这取决于算法的速度)也提取了这个描述符,我们将它们与每个模板描述符进行匹配,并从中挑选出最好的。
在应用程序的第一个原型中(我们使用 OpenCV)iOS 这种方法很不错,但是 Android,尤其是低端设备,需要花费大量时间来提取和匹配这些方法描述符。我们使用 SURF 算法,因为我们发现它最适合这项任务,而对于描述符之间的匹配,我们使用 kNN 算法。
您认为我们的解决方案是正确的,还是存在更好的智能手机友好型解决方案?
谢谢
我做了一个类似于你的应用程序,因为 android 我们使用 boofCV,它的冲浪比 OpenCV 快得多。您可以在网站上了解它的性能。该方法完全没问题,您可以考虑根据您的域调整 SURF 算法的阈值,因为如果阈值很低,您将获得很多特征,获得的特征越多,计算量就越多发生并且您获得较低的帧速率。