ios - iOS 中的稀疏图像匹配

标签 ios objective-c image-processing static-libraries image-recognition

我正在构建一个 iOS 应用程序,作为一个关键功能,它结合了图像匹配。问题是我需要识别的图像是小型定向运动 10x10 牌匾,上面有简单的大文字。它们可能非常反光并且会在外面(因此光线条件会变化)。示例图片

enter image description here

池中将有多达 15 种此类图像,实际上我需要检测的只是文本,以便记录用户去过的地方。

我面临的问题是,使用我尝试过的图像匹配软件 aurasma 和稍微成功一点的 arlabs,它们无法区分它们,因为它们主要是为处理详细图像而构建的。

我需要准确检测正在扫描的牌匾,并考虑使用 gps 来优化选择,但我发现的唯一可靠方法是让用户手动输入文本。我们以产品为基础的主要吸引力之一是能够检测到这些已经存在的图像,而无需设置任何额外的 Material 。

谁能推荐一款可以工作的软件(iOS 友好)或一种对用户有效且具有交互性/令人愉悦的检测方法。

示例环境: http://www.orienteeringcoach.com/wp-content/uploads/2012/08/startfinishscp.jpeg

环境可以发生巨大变化,基本上任何可以放置牌匾的地方;树木繁茂或开阔区域的栅栏、墙壁和柱子,但绝大多数在户外。

最佳答案

我不是iOs程序员,但我会尽量从算法的角度来回答。本质上,您有一个检测问题(“牙菌斑在哪里?”)和一个分类问题(“它是哪一个?”)。要求用户将牙菌斑保持在预先定义的区域中当然是个好主意。这解决了检测问题,在资源有限的情况下,检测问题通常比分类问题更难解决。

对于分类,我看到了两种选择:

  1. 经典的“计算机视觉”路线是特征提取和分类。 Local Binary PatternsHOG是众所周知的特征提取器,对于移动设备来说足够快(前者比后者快),而且它们实现起来也不太复杂。然而,分类器并非易事,您可能必须搜索合适的 iOs 库。

  2. 或者,您可以尝试将图像二值化,即将像素分类为“板”/白色或“文本”/黑色。然后,您可以使用容错相似性度量来将您的二值化图像与斑 block 的二值化引用图像进行比较。 chamfer distance measure是一个很好的候选人。它基本上归结为比较 distance transforms你的两个二值化图像。这比直接比较二值图像更能容忍错位。引用图像的距离变换可以预先计算并存储在设备上。

就我个人而言,我会尝试第二种方法。使用良好的图像处理库(OpenCV、Matlab + 图像处理工具箱、Python 等),第二种方法的(非移动)原型(prototype)相对容易编码和评估。

关于ios - iOS 中的稀疏图像匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14713002/

相关文章:

ios - 如何升级使用迦太基安装的现有框架

ios - 在 iOS 7 中保留 iOS 6 布局进行小更新?

iOS AF网络 3.0 : Is there a faster way to send multiple API requests and wait until all of it is finished?

objective-c - TTPostController 不会旋转

objective-c - 在 NSDictionary 中设置 NSDictionary 的值

Python、OpenCV——对齐和叠加多个图像,一个接一个

javascript - 如何从 Javascript 图像中删除线条

ios - 使用自定义布局获取 UICollectionViewCell 的动态高度

ios - 在 UIPageViewController 上查看类次

c++ - 在openCV中访问特定像素的强度值(灰度图像)