Author Topic: 求指点,关于如何通过OpenCV实现物体识别  (Read 12310 times)

但丁

  • Newbie
  • *
  • Posts: 15
  • 长路漫漫
求指点,关于如何通过OpenCV实现物体识别
« on: May 16, 2013, 05:04:22 PM »
想通过OpenCV实现对物体的检测,比如一个杯子,一个球,某种蔬菜(茄子等等),当然为了降低难度会选择特征明显一些的物体,比如说单色的杯子,单色的球。另外,还想实现物体跟踪(三维),比如让四轴飞行器跟着球运动....先前看了一些网上最基本的教程,只涉及到通过颜色实现跟踪以及通过轮廓进行识别,这貌似远远不够....然后现在在看基于opencv 1.0的《Learning OpenCV》这本书,有点头大,而且OpenCV更新了好多内容= =.....希望大神们指点一下,给个学习的方向(比如物体识别的相关方法,算法等等)!

谢谢!
爱折腾的家伙
www.zlzdesign.com

vinjn

  • Moderator 版主
  • Hero Member
  • *****
  • Posts: 587
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #1 on: May 16, 2013, 06:09:45 PM »
在我尝试回答这个其难无比的问题前,先问你
“你在实现了物体识别之后想做什么?”

xarray

  • Newbie
  • *
  • Posts: 5
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #2 on: May 16, 2013, 06:17:07 PM »
CV的Feature Detection,最传统的方法就是对图像下采样然后模糊灰度处理,提取特征字然后再与样本库比较,估计匹配度。当然样本库不是天上掉下来的,需要大量的训练,或者用别人的训练成果。(但是不一定让人满意,比如美国人训练的人脸放在东方就不一定很合适)
至于特征的提取方法,可以去了解一下SIFT,SURF,FAST,BRIEF,FREAK,BRISK这些乌七八遭的算法。。。。总之,基于视觉的识别,准确率永远都达不到100%,因为它是一种基于经验模型和各种Trick的方法。所以您的手很可能被识别成一种蔬菜,或者您的飞行器随时可能丢掉球的位置——所以还是有必要做好这个心理准备,然后再考虑是否真的适合某个应用的需求
« Last Edit: May 16, 2013, 06:19:04 PM by xarray »

但丁

  • Newbie
  • *
  • Posts: 15
  • 长路漫漫
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #3 on: May 16, 2013, 09:24:26 PM »
在我尝试回答这个其难无比的问题前,先问你
“你在实现了物体识别之后想做什么?”

嗯,希望做到的是,当让四轴飞行器(AR.Drone)看到杯子,蔬菜,球时会有不同的自主反应.....也就是说让这个飞行器类似宠物鸟一样,给他看吃的,玩的,它喜欢的,它讨厌的,它会有不同的反应......好吧,我个菜鸟可能把问题想得太简单了,但是这个项目已经开始了,只能想办法试试了
爱折腾的家伙
www.zlzdesign.com

但丁

  • Newbie
  • *
  • Posts: 15
  • 长路漫漫
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #4 on: May 16, 2013, 09:36:44 PM »
CV的Feature Detection,最传统的方法就是对图像下采样然后模糊灰度处理,提取特征字然后再与样本库比较,估计匹配度。当然样本库不是天上掉下来的,需要大量的训练,或者用别人的训练成果。(但是不一定让人满意,比如美国人训练的人脸放在东方就不一定很合适)
至于特征的提取方法,可以去了解一下SIFT,SURF,FAST,BRIEF,FREAK,BRISK这些乌七八遭的算法。。。。总之,基于视觉的识别,准确率永远都达不到100%,因为它是一种基于经验模型和各种Trick的方法。所以您的手很可能被识别成一种蔬菜,或者您的飞行器随时可能丢掉球的位置——所以还是有必要做好这个心理准备,然后再考虑是否真的适合某个应用的需求

嗯嗯,谢谢指点!原来只想过挺难,没想到会这么难!关于这个项目做出来的效果还算是有心理准备的(因为看很多例子的时候,通常会有备注说这个方法不完全适用于实际生活,因为还有噪音等等各种因素影响),现在至少有个大致方向了,试试吧。再次感谢!
爱折腾的家伙
www.zlzdesign.com

vinjn

  • Moderator 版主
  • Hero Member
  • *****
  • Posts: 587
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #5 on: May 16, 2013, 11:06:25 PM »
做人脸检测+识别吧,CV里面人脸是比较准确的
让AR.Drone跟着主人飞比较可行
这是学校项目?

关于书籍,现阶段最好的还是Learning OpenCV,虽然是1.0的API,但是其实差别并没有那么可怕
并且这是唯一一本讲OpenCV内部原理的书
今年预计有2.X版本,详情见亚马逊
« Last Edit: May 16, 2013, 11:08:27 PM by vinjn »

但丁

  • Newbie
  • *
  • Posts: 15
  • 长路漫漫
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #6 on: May 16, 2013, 11:18:13 PM »
做人脸检测+识别吧,CV里面人脸是比较准确的
让AR.Drone跟着主人飞比较可行
这是学校项目?

关于书籍,现阶段最好的还是Learning OpenCV,虽然是1.0的API,但是其实差别并没有那么可怕
并且这是唯一一本讲OpenCV内部原理的书
今年预计有2.X版本,详情见亚马逊

恩恩,是学校的项目,项目本身的要求只是关于AR.Drone的,具体的计划书是自己想的,年少无知啊= =....谢谢指点了!
爱折腾的家伙
www.zlzdesign.com

xarray

  • Newbie
  • *
  • Posts: 5
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #7 on: May 17, 2013, 05:58:03 AM »
您的想法还是挺有意思的,不妨先看看著名的捕食者算法(Tracking-Learning-Detection)好了,也许可以拿来主义也说不定:
Matlab惊世原版:https://github.com/zk00006/OpenTLD
OpenCV C++版本:https://github.com/alantrrs/OpenTLD
国人的解析文章:http://blog.csdn.net/zouxy09/article/details/7893011

Contra

  • SuperManager
  • Sr. Member
  • *****
  • Posts: 347
  • AC, game dev, new media art&tech.
    • i'm Contra
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #8 on: May 17, 2013, 10:18:02 AM »
飞行角度不一样,貌似果然当真非常难。
配合其他辅助手段有没有用,除了摄像头,超声波神马的?

ChocolateUniverse

  • Jr. Member
  • **
  • Posts: 97
  • BigQ 勤劳勇敢,爱好艺术
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #9 on: May 17, 2013, 05:07:05 PM »
飞行角度不一样,貌似果然当真非常难。
配合其他辅助手段有没有用,除了摄像头,超声波神马的?

非常著名的宾夕法尼亚大学的UAV.  这里有一些资料可以参考

https://alliance.seas.upenn.edu/~kumar/wiki/index.php?n=Main.Projects
BigQ 勤劳勇敢 爱好艺术

但丁

  • Newbie
  • *
  • Posts: 15
  • 长路漫漫
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #10 on: May 17, 2013, 07:00:08 PM »
您的想法还是挺有意思的,不妨先看看著名的捕食者算法(Tracking-Learning-Detection)好了,也许可以拿来主义也说不定:
Matlab惊世原版:https://github.com/zk00006/OpenTLD
OpenCV C++版本:https://github.com/alantrrs/OpenTLD
国人的解析文章:http://blog.csdn.net/zouxy09/article/details/7893011

嗯嗯,有搜索到这个牛逼的算法!准备从这个开始了解!前辈的回复给再多感谢都不为过啊!
爱折腾的家伙
www.zlzdesign.com

但丁

  • Newbie
  • *
  • Posts: 15
  • 长路漫漫
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #11 on: May 17, 2013, 07:04:28 PM »
飞行角度不一样,貌似果然当真非常难。
配合其他辅助手段有没有用,除了摄像头,超声波神马的?

原来想项目计划书的时候我也是这么想的,结果教授说暂时不能加外设(这个飞行器只有一个USB口可以接别的东西),以后实验室才会有自制的四轴....争取pass这个项目,然后自己用Arduino再做个四轴= =
爱折腾的家伙
www.zlzdesign.com

但丁

  • Newbie
  • *
  • Posts: 15
  • 长路漫漫
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #12 on: May 17, 2013, 07:05:24 PM »
飞行角度不一样,貌似果然当真非常难。
配合其他辅助手段有没有用,除了摄像头,超声波神马的?

非常著名的宾夕法尼亚大学的UAV.  这里有一些资料可以参考

https://alliance.seas.upenn.edu/~kumar/wiki/index.php?n=Main.Projects

这个太牛逼,长路漫漫!
爱折腾的家伙
www.zlzdesign.com

Contra

  • SuperManager
  • Sr. Member
  • *****
  • Posts: 347
  • AC, game dev, new media art&tech.
    • i'm Contra
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #13 on: May 18, 2013, 04:23:06 PM »
飞行角度不一样,貌似果然当真非常难。
配合其他辅助手段有没有用,除了摄像头,超声波神马的?

非常著名的宾夕法尼亚大学的UAV.  这里有一些资料可以参考

https://alliance.seas.upenn.edu/~kumar/wiki/index.php?n=Main.Projects

看到,孤陋了。
顺手贴墙内视频链接
http://v.youku.com/v_show/id_XMzE5NTQzNzA0.html?f=18250978

jlmgalahad

  • Newbie
  • *
  • Posts: 30
Re: 求指点,关于如何通过OpenCV实现物体识别
« Reply #14 on: May 22, 2013, 10:26:01 AM »
现在四轴的运动姿态控制好像都是给vicon这种红外动捕来做啊,不知道 lz想怎么解决(memo akten的四轴舞台演出也是这样用的)

如果有的话,我在想其实把四轴和被捕捉目标上都放上标记点做设计会更精确。
感觉这种方法比较适合演出,但是如果必须体现 物体识别的技术难度 就另说了 ~ 

Tags: