- 博客(35)
- 收藏
- 关注

原创 Semi-Global Matching(SGM)算法原文理解
参考:@迷雾forest http://blog.youkuaiyun.com/wsj998689aa/article/details/49464017,原博主对SGM算法的精髓理解的很透,我是在参考他文章的基础上,才能看懂SGM算法几处关键的地方。本文的不同在于加入了一些我自己的理解,并且调整了一下整个算法阐述的思路,当是自己的一个阅读笔记。后边打算再做一下SGM原始算法与OpenCV的SGBM算法实现的对
2017-06-17 19:16:52
26637
11

原创 libdecodeqr库不能识别大角度二维码问题解决
首先声明使用的是libdecodeqr-0.9.3版本的二维码识别库,其他版本有没有这个问题不是很清楚,这个库是基于OpenCV1写的,但是比较轻量,项目使用挺方便的。但是使用中发现,二维码旋转角度超过15°,顺着程序往下读,发现问题出现在定位框的识别部分。下面详细说明。 libdecodeqr只能识别QR码,QR码就是最常见的那种,它有三个定位框,这三个定位框在QR码中比较重要,解码程
2017-04-24 19:06:16
2942
1

原创 OpenCV实现基于Zernike矩的亚像素边缘检测
在做物体检测时,由于成本和应用场合的限制,不能够一味地增加相机的分辨率,或者已经用了分辨率很高的相机,但是视野范围很大,仍然无法实现很高的精度,这时就要考虑亚像素技术,亚像素技术就是在两个像素点之间进行进一步的细分,从而得到亚像素级别的边缘点的坐标(也就是float类型的坐标),一般来说,现有的技术可以做到2细分、4细分,甚至很牛的能做到更高,通过亚像素边缘检测技术的使用,可以节约成本,提高识别精
2017-04-09 17:17:16
23916
139

原创 使用OpenCV3进行SURF特征提取和暴力匹配代码详解
首先声明,程序代码来自于http://blog.youkuaiyun.com/taily_duan/article/details/53112896,这里使用MiddleBury的图片集进行了测试,并且对代码做一个详细的解释。 之前使用OpenCV2.4.9,升级到3.2.0以后发现SURF特征提取的使用发生较大的变化,配置好新版本的opencv稳定模块和contrib模块后,原来的代码还是提示
2017-03-29 11:07:23
15132
2

原创 工业相机运动拍摄拖影问题及解决
最近做的机器视觉项目需要相机运动拍摄,结果速度稍大以后就无法识别,保存图像发现都有了拖影。现在把问题解决思路记录下。 一开始怀疑相机不支持动态拍摄,后来知道全局曝光的相机基本都是可以动态拍摄的。这里涉及全局曝光和卷帘曝光的概念,CCD相机都是全局曝光,而CMOS相机有全局曝光和卷帘曝光两种,卷帘曝光是逐行曝光,存在拖影,拍摄运动物体不行,所以问题不在这里。
2017-03-20 22:16:43
20016
2
原创 Linux+v4l2自动设置相机曝光时间
在Ubuntu环境下使用工业相机,安装了v4l2库设置相机的参数,之前发现了曝光时间对于运动拍照的清晰度影响较大,所以需要使用v4l2-ctl -d /dev/video0 -c exposure_absolute=20(所用相机默认为127)。为了方便使用,可以把这条指令放到开机执行里面,开机执行这条指令我找到了两种方法。 第一种:写到gedit /etc/rc.local,把v4l2
2017-11-15 09:56:53
6839
原创 自己整理的水泥地雪地土地图片集
因为要做一个地形分类的模型用在机器人导航上面,所以需要收集沙地,水泥&沥青,雪地三种地形的图片,去搜集了几种数据集:ImageNet里面有一种沙地的标签,不是路的类型,很多都是景点,类似于黄石公园那种;CBCL街区场景数据集里面有大量的城市街道场景,都是沥青路的;还有CURET和Synthesizability纹理数据集,这些都是很细的纹理。既然都不怎么符合我的要求,索性让朋友一起帮忙整理了三种图
2017-08-15 20:47:01
1253
原创 深度学习中Batch_size相关问题汇总
1.Batch_size的使用意义及大小的选择 Batch_size不宜选的太小,太小了容易不收敛,或者需要经过很大的epoch才能收敛;也没必要选的太大,太大的话首先显存受不了,其次可能会因为迭代次数的减少而造成参数修正变的缓慢。 http://blog.youkuaiyun.com/ycheng_sjtu/article/details/49804041这篇文章很详细的介绍了Bat
2017-07-26 20:52:25
17572
2
原创 最小二乘法拟合亚像素坐标时不准确问题查找
前面的文章http://blog.youkuaiyun.com/zilanpotou182/article/details/69848610介绍了使用Zernike矩进行亚像素边缘细化的方法,如果我们是检测圆形物体,那么可以使用最小二乘法拟合圆来拟合出圆的半径和坐标,本方法的代码在下面列出。 有的朋友发现拟合出来的边缘打印出来看着没问题,边缘点是一个圆形的形状,但是拟合出来的圆却偏离这个圆心,并且半
2017-07-19 20:08:39
2249
1
转载 深度学习视觉领域常用数据集汇总
转自:数据派ID:datapi 作者:刘念宏、付睿链接:http://www.jianshu.com/p/9990284bc4d5[导读] “大数据时代”,数据为王!无论是数据挖掘还是目前大热的深度学习领域都离不开“大数据”。大公司们一般会有自己的数据,但对于创业公司或是高校老师、学生来说,“Where can I get large datasets open
2017-07-18 21:51:47
2156
转载 神经网络-激活函数-Activation
转载自:http://blog.youkuaiyun.com/cyh_24/article/details/50593400,感谢原博主的整理和分享。 日常 coding 中,我们会很自然的使用一些激活函数,比如:sigmoid、ReLU等等。不过好像忘了问自己一(n)件事:为什么需要激活函数?激活函数都有哪些?都长什么样?有哪些优缺点?怎么选用激活函数? 本文
2017-07-08 20:58:13
681
原创 Ubuntu总是默认进入客人会话问题解决
问题描述:昨天在HTPC上面安装Ubuntu,结果今天一开机总是默认进入到客人会话,选择切换用户又自动进入到客人会话,周而复始,烦人的很。这里记录一下解决方法。解决方法:(1)Ctrl+Alt+F1,进入到终端,注意Ctrl+Alt+T这时不管用(2)vi /etc/lightdm/lightdm.conf(3)然后整个conf文件修改为: [SeatDefau
2017-06-17 22:02:01
10376
原创 SURF特征提取算法原文翻译与理解(下)
上一部分主要是针对特征点的提取,下面的内容是特征点的描述,并在最后总结一下全部的步骤。4.SURF特征描述子 SURF算法使用的描述子跟SIFT相比复杂度更低。第一步是对每个兴趣点,基于其圆形区域内的信息,确定一个可重复的方向。第二步在兴趣点上构造一个与选定方向对齐的方框,从这个方框中提取SURF描述符。这两步下面会解释。最后,提出一种直立版本的描述符(U-SURF),它并不
2017-06-04 11:38:36
4056
原创 SURF特征提取算法原文翻译与理解(上)
SURF的优点以及与其他特征提取算法的比较前面总结过了,而且通过实际的使用发现算法的稳定性着实很好,这里分享一下对Speeded Up Robust Features原文的翻译和理解,文章是去年翻译的,那时候刚开始看特征提取所以翻译的比较细,才疏学浅,有的地方可能理解的不对,欢迎大家拍砖。分成两部分,第一部分是特征点的提取,第二部分是特征点的描述,以及整个方法的总结。正文开始: 1.引言
2017-06-02 22:27:18
23592
原创 整理使用SVM实现分类的步骤
之前SVM进行项目中待识别物体的分类,过去挺长时间结果有点生疏了,这里梳理一下。因为当初是根据《深入理解OpenCV》自动分类的例程,所以这里仍以此为例。这里只是列出了SVM使用环节的代码,而且本来就是一个小例子,其中测试集训练集的选取、特征的选择等都是最简单的考虑,真正应用,要进行更加全面的考虑。 这个例程是从传送带中找到螺母、螺钉和垫圈,使用的特征是外轮廓的长宽比和面积的大小,也就是
2017-05-25 22:37:28
7649
原创 梳理OpenCV各立体匹配算法的分类和理论基础(更新中)
最近总有一个困惑,论文或者说研究中的立体匹配算法和OpenCV中实现的立体匹配算法有什么对应关系,特别是经常看到资料中一谈到OpenCV立体匹配函数,就是BM、SGBM和GC成套的出现,那么这三个算法的理论来源是什么,它们三个是什么样的“江湖地位”,OpenCV还有没有实现其他算法没有被介绍,在这里,对这些问题做个小总结。遗漏的地方欢迎大家批评补充。 1.立体匹配算法分类:从算法本身的角
2017-05-19 16:12:47
5728
原创 BM、GC、SGBM三种算法的比较和BM在OpenCV3下的参数设置
第一部分BM、GC和SGBM算法的性能比较转自:http://blog.youkuaiyun.com/chenyusiyuan/article/details/5967291,其中原博主推荐的Stefano Mattoccia大神的讲义Stereo Vision:algorithms and applications,我看了以后觉得非常受用,讲的非常条理全面,里面的参考文献也很经典。第二部分为原创,主要是
2017-05-16 19:35:07
19422
原创 OpenCV3.2+VS2013+Tesseract3.02.02配置
分享一下Tesseract3.02.02版本在Windows下的配置。我的环境VS2013+win8 64bit+OpenCV3.2。 需要下载:tesseract-orc-setup-3.02.02.exe和tesseract-3.02.02-win32-lib-include-dirs.zip,这个比较好下载。 安装和配置步骤: (1)先执行tessera
2017-05-12 18:45:10
2792
转载 从机器学习谈起
转自博客园:http://www.cnblogs.com/subconscious/p/4107357.html 一篇分享量很大的文章,关于机器学习的基本定义、分类、方法和应用,解析的非常清楚简洁,尤其在机器学习范围部分,介绍机器学习与模式识别、数据挖掘、统计学习、计算机视觉、语音识别、自然语言处理等领域的关系,也非常精到,入门者绝对值得一看的文章。
2017-05-10 19:12:27
393
原创 ubuntu开机自动运行用Qt写的程序
这里介绍一种在ubuntu系统开机自动运行使用Qt编写的程序的方法。首先要注意要自动运行Qt编的程序,不需要先打开Qt,而是直接运行编译好的与工程名同名的可执行文件即可,比如我要运行的工程为QRDecode,则使用QtCreater编译之后,在该工程目录下有一个叫QRDecode的可执行文件(即文件类型为application/-xexecutable),那么直接执行这个文件就可以,而不用先打开Q
2017-05-04 18:31:30
11276
6
原创 V4L2调用相机select timeout一种可能的原因
linux下调用相机出现select timeout错误,有可能是相机(尤其是USB2.0相机)插在2.0接口上时,端口供电能力不足。如果排查了其他问题还没有解决,可以看看有没有这个端口的问题。 V4L2的select函数的最后一个参数是timeout,timeout是用来设置超时时间的,设置了timeout以后,如果select在没有文件描述符监视可用的情况下,会等待这个time
2017-04-28 10:19:52
15649
10
原创 Qt+OpenCV在不同ubuntu系统移植时SIGSEGV问题解决
Ubuntu下,在Qt+OpenCV开发项目,在Label里面显示一幅用cvLoadImage加载的图片,在自己电脑上没问题,结果移动到另一台同样Ubuntu&Qt&OpenCV版本的电脑就出现问题: Signal received The inferior stopped because it received a signal from the Operat
2017-04-24 19:03:20
1163
原创 解决问题:Gedit warning: GtkScrolledWindow is mapped but visible child GtkScrollbar...
freescale imx6q移植Qt时,使用gedit修改qmake.conf文件时出现Gedit warning: GtkScrolledWindow is mapped but visible child GtkScrollbar is not mapped的错误,看了一下外国友人的方案: sudo apt-get update sudo apt-get install
2017-04-20 22:21:57
1519
原创 静态相机检测运动物体
最近学习了视频监控方面的小例子,利用静态放置的相机检测运动物体,并且有简单背景差分法和简单帧差值法两种方法的OpenCV实现,算是作为对OpenCV的一个拓展了解把。 第一种简单背景差分法原理简单。背景差分认为图像分为前景和背景,对于一个固定的场景,先做一个背景的模板,然后对于每一帧新图像,计算当前帧与背景图像的差值,得到前景,前景就对应这移动的物体或人。但是简单的背景差分法有一个问题,
2017-04-19 18:26:00
2040
原创 邻域、邻接、通路、连通、连通集、区域概念区分
有些概念就是这样,刚开始挺明白,后来长时间不看越来越模糊,都混成一团了,这里重新总结一下。 1.邻域:数字图像中,邻域分为4邻域和8邻域,4邻域就是某个(x,y)点的上下左右四个点,8邻域再加上左上右上左下右下四个点。如果p在q周围的8个点内,就是p在q的8邻域内。 2.邻接:邻接算是包含了邻域,如果说p和q是邻接,那么p和q必须互在邻域内,而且这两个的像素还要都在同一个集合V
2017-04-16 20:10:19
19705
3
原创 Qt+OpenCV实时显示在地图空间中的位置
有个类似于自动行驶小车的项目,使用摄像头检测贴在地上的地标,并在上位机实时显示当前小车所处的位置,上位机是Ubuntu系统。 做上位机的界面用的是Qt,里面也配置好了OpenCV,用起来很方便,现在要解决的是如何设计一个地图,并且每次实时显示当前的位置。因为没有可借鉴的资料,我就根据激光雷达那个数据界面的启发,想到办法,可能比较笨,如果大家有更好的方法,请务必指教!我考虑的方法是先把地上
2017-04-15 19:47:40
3690
1
原创 OpenCV分水岭算法中标记图的妙用
分水岭算法不是第一次看见了,因为项目中没用过,就一直没详细看里面标记图的用法,而且感觉看过的OpenCV书里面解释的都很不明白,其实是自己的学习方法有问题,这个问题说简单也很简单,一步步的试验看看中间输出结果,还有什么难的呢。 下面进入正题,首先这个标记图作用是什么(分水岭算法原理这里就不说了),在一些分割算法如watershed和grabCut算法中,如果直接对原图进行处理,那么将图像
2017-04-12 22:06:38
3289
原创 OpenCV中使用面具等非矩形图像
在《OpenCV实例精解》一书中,有一个识别人脸然后加上面具的例子,刚开始看的时候就有一个疑惑,面具的图像是矩形的,糊到脸上要怎么使用掩膜呢。后来发现例子里面用的方法很巧妙,这里重新把面具处理部分的代码总结一下: Mat faceMaskSmall = imread("facemask.jpg"); if ( !faceMaskSmall.data )
2017-04-07 16:45:34
1496
1
转载 基于OpenCV实现二值图细化,骨骼化并求出端点和交叉点
转载自:http://m.blog.youkuaiyun.com/article/details?id=53135866 所谓细化就是经过一层层的剥离,从原来的图中去掉一些点,但仍要保持原来的形状,直到得到图像的骨架。骨架,可以理解为物体的中轴,例如一个长方形的骨架是它的长方向上的中轴线;正方形的骨架是它的中心点;圆的骨架是它的圆心,直线的骨架是它自身,孤立点的骨架也是自身。得到了骨架,
2017-04-05 19:33:36
4209
1
原创 OpenCV中核的尺寸不可轻视
首先要反思一点:以前在使用自适应阈值二值化、中值滤波还有其他很多函数的时候,都会涉及到选取一个多大的核,这个核一看很简单,就是多少个元素参与计算,而且一般书上写的是3,5,7等奇数,所以就下意识的以为,选择起来基本用不到太大的,357足够,还觉得尺寸越大一定就会越慢,今天做了一个应用,才发现错大了,相信很多人应该不会 犯像我这么低级的错误吧,以后还是要,不能想当然,警醒自己。 今天做了一
2017-04-05 19:29:52
1438
原创 libdecodeqr二维码识别库内存泄漏检测
上一篇可能我操作错误删掉了,只好重新发一遍。 最近在做的二维码解码项目,使用QR码储存信息,然后使用libdecodeqr二维码解码库来进行解码。libdecodeqr库是基于OpenCV1开发的,优点是识别速度很快,单个二维码的解码速度在30ms-100ms之间(取决于背景复杂度、码子的大小、光照条件等因素),适合快速移动下的解码应用,正是因为速度满足了项目要求,所以才下决心去
2017-03-31 08:52:36
1882
1
原创 单目相机提高标定精度的经验
为了提高单目相机标定的精度,认真看了张正友标定法的原文,并且学习过网上一些牛人的方法,但是大部分时候说的很笼统,自己把这些经验总结起来并都测试了一下,感觉靠谱的结论列出如下:(1)在标定时,标定模板所在平面与成像平面(image plane)之间的夹角不能太小,实验表明:当两者之间夹角较小时,会产生很大的误差。(2)图像中标定板与相机的相对位姿,一般要让标定板占据整张图像的一半左右
2017-03-30 19:23:45
11051
11
原创 SURF SIFT ORB三种特征检测算法比较
我们知道,双目立体测距的基础是利用视差求距离,而视差就是计算左右图像中对应点的像素坐标之差,这个左右图中的对应点是由通过立体匹配得来。 立体匹配从大的方面说分为两种,全局匹配和局部匹配,全局匹配精度高,但是计算速度慢,不能满足实时的要求,局部匹配速度快,可以满足实时的要求,但是精度不如前者,考虑到项目实际,需要实时的判断机器人与环境的关系,就重点研究局部匹配。局部匹配又分为基于区域的匹配
2017-03-26 20:40:30
37717
9
原创 工业相机传输方式选择
工业相机常见的有USB2.0,USB3.0,CameraLink,千兆以太网(GigE)四种接口,开始做项目时候只是大体根据视野和精度估算了分辨率然后确定帧率,但是到了使用中还是发现了其他问题,在此记录一下。 USB 3.0接口:速度快但距离短,理论速度极限大约为500MB/s,但是其传输距离短,超过3米就要用质量很高的线,超过5米,基本就不能使用了; 千兆以太网接口:注意是1
2017-03-21 19:04:06
5821
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人