有谁知道一个很好的 C++ 模式匹配/识别库(最好是 oss),它能够检测 vector 列表是箭头还是其他类?
我已经知道 OpenCV 但这意味着用于光栅图形(或者我错过了什么?)...但是我已经有了 vector 几何并且将它们转换回光栅图形听起来很奇怪再次检测边缘。
所以我需要的是一个库,它使用 vector 列表而不是光栅图形作为输入,并且可以识别 vector 是否是箭头(与方向无关)并提取箭头的部分(头/尖/尾部等)。
有谁知道这样的库或知道在哪里寻找此类问题(算法等)?
我尝试改变用户界面的使用方式。我已经尝试过 protractor 算法并将识别步骤分为不同的部分,例如对于箭头示例:
但我想一步完成所有 vector 线(无论顺序和方向如何)。有什么建议吗?
如果第一条是带角度的多段线,并且还可以识别插入符号,但后续符号系统需要在它们之间做出决定怎么办?
我想绘制命令而不是在繁重的菜单中搜索它们。但重要的是也要检测图形的各个部分(例如中心线,左线,...)并尽可能保持纵横比(尺寸),这意味着也应保持关键坐标(例如箭头提示)。这对于用更正后的标准图形替换手绘 vector 很重要。
将库作为单个任务是否可行,或者我应该停留在当前的概念上,即分别识别每条多段线并查看输入顺序(例如,第一行必须是方向)?
你可以看这里来了解一下:http://depts.washington.edu/aimgroup/proj/dollar/ 有 $1 Recognizer 算法和一些派生算法,您可以在线尝试。
问题是,我的“命令”由多行组成,每一行在上下文中可能具有不同的特殊含义以获得完整的图形。我已经知道的算法和库(如上面的 $1 识别器)更多地与单个手势相关,而不是与多个手势输入的复杂顺序相关,如果将其解释为整个草图,则可以获得精确的含义。
我认为继续分别解释每一行而不是将其放入整个上下文(识别整个草图)可能会导致死胡同。但也许混合方法可能会得到它。
现实生活比较:就像有人画马一样。如果他刚开始画第一条线,你不会说它是一匹马——你需要更多的输入,例如4条腿等
(好吧,我知道不是每个人都擅长绘画,有些马可能看起来像牛......但无论如何,这应该让你明白我的意思。)
有什么提示吗?
更新:我找到了一个视频 here这接近于问题。缺少的链接是在识别后如何访问结构的各个部分,但这也可以在单独的步骤中完成(在知道绘图显示的内容之后)。
最佳答案
以我的愚见,我不认为有一个图书馆可以满足这种特定的需求。最后,您将编写自定义代码。
无论哪种方式,您要做的第一件事就是从您检测到的每个手势中提取分类特征。然后,您必须将获得的特征向量放入特征空间中。一旦你这样做了,你实际上可以做一百万件事来将特征向量分类到可用的类之一(例如,箭头、三角形等)。例如,您提供的链接中来自华盛顿大学的人正在步骤 1、2 和 3 中进行特征提取,他们在步骤 4 中对获取的特征向量进行分类。
将手势分解为子手势的想法听起来很诱人,但我怀疑它会在某些方面引入问题(例如,如何检测子手势的结束和下一个子手势的开始)而且还会带来很大的开销 因为您最终会执行额外的步骤并且缺少决策树结构。
我在上面忘记提到的另一件事是,您还需要创建一个合理大小的训练数据集来训练您的分类器。
我不会陷入建议库、分类器、线性代数包等的麻烦,因为这首先超出了范围(即,我建议在网上搜索特定的组件,以帮助您构建您的应用程序)。
关于c++ - vector 的模式匹配/识别库(如用于图像输入的 OpenCV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21187906/
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
在我的应用程序中,我需要能够找到所有数字子字符串,然后扫描每个子字符串,找到第一个匹配范围(例如5到15之间)的子字符串,并将该实例替换为另一个字符串“X”。我的测试字符串s="1foo100bar10gee1"我的初始模式是1个或多个数字的任何字符串,例如,re=Regexp.new(/\d+/)matches=s.scan(re)给出["1","100","10","1"]如果我想用“X”替换第N个匹配项,并且只替换第N个匹配项,我该怎么做?例如,如果我想替换第三个匹配项“10”(匹配项[2]),我不能只说s[matches[2]]="X"因为它做了两次替换“1fooX0barXg
如何匹配未被反斜杠转义的平衡定界符对(其本身未被反斜杠转义)(无需考虑嵌套)?例如对于反引号,我试过了,但是转义的反引号没有像转义那样工作。regex=/(?!$1:"how\\"#expected"how\\`are"上面的正则表达式不考虑由反斜杠转义并位于反引号前面的反斜杠,但我愿意考虑。StackOverflow如何做到这一点?这样做的目的并不复杂。我有文档文本,其中包括内联代码的反引号,就像StackOverflow一样,我想在HTML文件中显示它,内联代码用一些spanMaterial装饰。不会有嵌套,但转义反引号或转义反斜杠可能出现在任何地方。
我有一个驼峰式字符串,例如:JustAString。我想按照以下规则形成长度为4的字符串:抓取所有大写字母;如果超过4个大写字母,只保留前4个;如果少于4个大写字母,则将最后大写字母后的字母大写并添加字母,直到长度变为4。以下是可能发生的3种情况:ThisIsMyString将产生TIMS(大写字母);ThisIsOneVeryLongString将产生TIOV(前4个大写字母);MyString将生成MSTR(大写字母+tr大写)。我设法用这个片段解决了前两种情况:str.scan(/[A-Z]/).first(4).join但是,我不太确定如何最好地修改上面的代码片段以处理最后一种
给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最
我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司