几天前我开始学习图像识别,我想做一个项目,需要在Android中识别不同的品牌标识。
对于Ex:如果我在Android设备上拍摄Nike徽标,那么它需要显示“Nike”。
为此,我做了一些工作并开始学习OpenCV示例。
什么是最适合我的图像识别。
1)我从模板匹配中了解到,它们的适用性主要受可用计算能力的限制,因为识别大型和复杂模板可能非常耗时。 (所以我不想用它)
2)基于特征的探测器,如SIFT / SURF / STAR(据我所知,这对我来说是更好的选择)
3)深度学习和模式识别概念如何? (我正在挖掘这个,不知道它是否适合我)。你能否告诉我是否可以使用这个以及为什么与1和2相比,这对我来说是更好的选择。
4)Haar caascade分类器(从SO中的一个帖子中,我开始知道通过使用Haar它在旋转和比例不变的情况下不起作用,所以我没有太多关注这个)。如果我专注于此,这对我来说是否是更好的选择。答案 0 :(得分:1)
我现在正在运行我的一个宠物项目,并且需要进行人脸识别 - 在照片上检测面部区域,如果它与Raspberry pi一起存在,那么我已经对该任务进行了一些分析
我找到了this方法。关键的想法是通过扫描不同大小的窗口来避免扫描整个图片,就像在OpenCV中一样,但是通过将整个照片分成49(7x7)个方格并训练模型不仅用于检测每个内部的类之一方形,也用于确定检测对象的位置和大小
这只是49次训练模型,所以我认为即使在最先进的智能手机上也可以在不到一秒的时间内执行此操作。无论如何,它将在准确性和性能之间进行权衡 关于模型
我将使用类似vgg的模型,可能比vgg11A更简单一些。
我的案例就绪数据集已经exists。所以我可以用它训练卷积网络
为什么深度学习方法优于你提到的1-3?因为它对这类任务的准确性更高。它已经得到了实践证明。你可以在kaggle中查看。大多数分类竞赛的顶级模型都基于卷积网络
唯一的缺点 - 可能需要创建自己的数据集来训练模型
答案 1 :(得分:0)
以下是我认为对您有用的帖子:Image Processing: Algorithm Improvement for 'Coca-Cola Can' Recognition。另一个:Logo recognition in images。
2)基于特征的探测器,如SIFT / SURF / STAR(据我所知) 这对我来说是更好的选择)
请记住,SIFT和SURF都已获得专利,因此您需要获得任何商业用途的许可(免费用于非商业用途)。
4)Haar caascade分类器(从SO中的一个帖子中,我开始知道通过使用Haar它在旋转和比例不变的情况下不起作用,所以我没有太多关注这个)。如果我专注于此,这对我来说是否是更好的选择。
它有效(如果我理解你的问题),这很大程度上取决于你如何训练你的分类器。你可以训练它来检测所有类型的旋转和比例。无论如何,我不鼓励你选择这个选项,因为我认为其他可能的解决方案更适合这种情况。