免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 25842 | 回复: 37
打印 上一主题 下一主题

[算法] 用 gabor 和 MultiBoost 做图像识别 [复制链接]

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-22 14:06 |只看该作者 |倒序浏览
本帖最后由 zhujiang73 于 2010-10-12 12:05 编辑

新改进的 gacv065, Gacv 目标检测图像识别 0.65 版,现在检测一幅图像大约用十秒左右。   参见: http://code.google.com/p/gacv/

gacv05 完成,gacv 名字取自 gabor , adaboost , opencv ,他用了gabor特征,AdaBoost(MultiBoost)分类器和opencv开发库,这是第五个测试版叫gacv05。gacv05使用仿射变换模板匹配预分类器可以检测倾斜的目标,和上一个版本相比,gacv05使用多线程并行检测技术在多处理器或多核处理器系统中可以大大提高检测速度,这个版本的仿射变换模板也有改进。

参见本人 CU 空间:http://hi.chinaunix.net/index.php?uid-14281799-action-viewspace-itemid-47869

gacv05运行截图:程序在一张图像中寻找“五月日历”,找到的用蓝色圆环标记出来,运行试验脚本cale.cmd寻找目标。



gabor  滤波  http://blog.csdn.net/yao_zhuang/archive/2008/06/10/2532279.aspx

  还有 MultiBoost  http://multiboost.sourceforge.net/

   编程把这两个组合起来就可以工作了:

gacv04 完成,gacv 名字取自 gabor , adaboost , opencv , 他用了 gabor滤波,AdaBoost (MultiBoost )
分类器和 opencv 开发库,这是第四个测试版叫 gacv04 。gacv04 使用新设计的仿射变换模
板预分类器可以检测倾斜的目标。

参见本人 CU 空间:http://hi.chinaunix.net/index.ph ... wspace-itemid-46859

gacv04 下载:http://hi.chinaunix.net/index.ph ... wspace-itemid-46858

gacv04 运行截图:程序在一张图像中寻找“猫脸座垫”,找到的用蓝色圆环标记出来,
运行试验脚本 gacv.cmd 寻找目标。



gacv03 完成了, 主要在 gacv02 基础上改进了预分类算法。

详见本人 CU 空间:
http://hi.chinaunix.net/index.ph ... wspace-itemid-42881

gacv03 下载: http://hi.chinaunix.net/index.ph ... wspace-itemid-42880


最新版的检测程序 gacv02 新鲜出炉:

    gacv 名字取自 gabor , adaboost , opencv , 他用了 gabor滤波,AdaBoost (MultiBoost )
分类器和 opencv 开发库,这是第二个测试版叫 gacv02 。这个程序的第一个测试版 gacv01
可以检测大小有一定变化的目标,但是不能检测平面旋转的目标。gacv02 改进了算法可以处
理目标的大小变化和平面旋转,检测速度也有了提高。

   详见本人 CU 空间: http://hi.chinaunix.net/index.ph ... wspace-itemid-42167

    gacv02 下载:http://hi.chinaunix.net/index.ph ... wspace-itemid-42166

    gacv02 运行截图:程序在一张图像中寻找目标(猫脸座垫),找到的用蓝色圆环标记出来。






以下是老版本 gacv01 的截图:

  试验在图像中搜索特定图形:
  在下图中寻找 "A"


   找到的用一个红色矩形标记出来。



  大家认为怎么样?

真实物体搜索识别,找我家的“猫脸座垫”。



找到的用一个红色矩形标记出来:



[ 本帖最后由 zhujiang73 于 2009-10-4 22:00 编辑 ]

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
2 [报告]
发表于 2009-06-23 11:26 |只看该作者

回复 #1 zhujiang73 的帖子

搞图形学的那几位在吗?  

现在的问题是 Gabor 运算比较耗时,为了搜索目标图形我扫描一张 320*240 的图像需要计算 1320 个 60*60 的子图的 Gabor 变换,这还没考虑目标的大小和方向变化,这在我的 amd  Athlon64  3200+ 上大约需要六分钟。现在要想办法优化 Gabor 运算。考虑到我在一张子图的 Gabor 变换中只抽样取 9*9 个采样点的数据,是不是可以只计算采样点上的 Gabor  变换?这样速度可以提高几十倍。

采样图:



[ 本帖最后由 zhujiang73 于 2009-6-23 11:28 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-06-23 13:36 |只看该作者
采样后的效果试验没有?

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
4 [报告]
发表于 2009-06-23 14:32 |只看该作者
原帖由 reiase 于 2009-6-23 13:36 发表
采样后的效果试验没有?


     Gabor  变换的相邻数据是高度相关的,对形变也有一定容忍,采样后的数据表现力还是不错的,1楼的图就是采样后试验效果。子图和子图的 Gabor 变换都是 60*60 的,我在子图的 Gabor 变换结果中等距离的取了 9*9 个数据 (2楼图中的小白点就是采样点) 构成特征向量送 MultiBoost  分类,其它点的数据没用。浪费很大呀   我发现 cvgabor.cpp 计算 Gabor  变换时是用 OpenCV 中的 cvFilter2D()  ,可能重点在这里,我不需要全部数据,我只要得到采样点上的数据就行了。

论坛徽章:
0
5 [报告]
发表于 2009-06-23 14:41 |只看该作者

回复 #2 zhujiang73 的帖子

特征提取你可以离线自动计算?

论坛徽章:
0
6 [报告]
发表于 2009-06-23 15:04 |只看该作者
gabor特征,有空看看,之前研究的时候没找到比较好的资料,楼主有推荐没?

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
7 [报告]
发表于 2009-06-26 23:54 |只看该作者
原帖由 zhujiang73 于 2009-6-23 11:26 发表
搞图形学的那几位在吗?  

现在的问题是 Gabor 运算比较耗时,为了搜索目标图形我扫描一张 320*240 的图像需要计算 1320 个 60*60 的子图的 Gabor 变换,这还没考虑目标的大小和方向变化,这在我的 amd  A ...


我把 1楼中提到的 Gabor 程序改成了只计算取样点上的抽样值,原程序计算 Gabor 特征时是根据卷积定理在频域内进行的,不过抽样点较少时不变换到频域直接计算抽样点 Gabor 特征会快些。我把原来的 9*9 抽样改成 7*7 抽样,把目标检测扫描的间距从 6像素提高到 10像素,开启了 gcc 的优化选项,现在检测一张 640*480 的图像需要两分多钟,速度提高了十几倍,检测准确度没发现有明显下降。



我修改后的 Gabor 程序:

scvgabor.zip (6.04 KB, 下载次数: 175)


原来的 Gabor 程序:

cvgabor.zip (5.55 KB, 下载次数: 108)

[ 本帖最后由 zhujiang73 于 2009-6-26 23:59 编辑 ]

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
8 [报告]
发表于 2009-06-27 00:04 |只看该作者
原帖由 cugb_cat 于 2009-6-23 15:04 发表
gabor特征,有空看看,之前研究的时候没找到比较好的资料,楼主有推荐没?


我就推荐这个:   

  gabor  滤波  http://blog.csdn.net/yao_zhuang/archive/2008/06/10/2532279.aspx

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
9 [报告]
发表于 2009-06-27 17:23 |只看该作者

回复 #1 zhujiang73 的帖子

我的程序好像认为,猫耳朵和猫脸相似。  这要查一查,然后是处理检测目标的大小和方向的变化问题。

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
10 [报告]
发表于 2009-06-28 17:28 |只看该作者
原帖由 ziggler 于 2009-6-23 14:41 发表
特征提取你可以离线自动计算?



我写了一个训练文件生成程序:
imgtotrn.zip (6.77 KB, 下载次数: 153)
训练分类器时,先用 imgtotrn 计算一组正负样本的 gabor  特征生成 MultiBoost  训练文件,然后用 “multiboost  -train  mygabor.trn  600” 生成分类器文件 “shyp.xml”。我把 multiboost  中的 Classifier 修改了一下嵌入到自己的目标检测程序中,检测时不生成中间文件直接调用 Classifier  。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP