image
文章平均质量分 91
高精度计算机视觉
人工智能与视像技术,对技术有点执着
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
图像处理方面期刊和计算机视觉领域期刊(更新中)
参考网上的资料,作个备注,抓到篮子里都是菜,见到一个收录一个,不断更新中一、国际会议会议名称 会议介绍 ICCV: IEEE International Conference on Computer Vision 领域顶级国际会议,录取率20%左右,2年一次,中国大陆每年论文数不超过10篇 CVPR: IEEE Conf on Comp Vision and Patte...转载 2019-01-14 08:38:36 · 33501 阅读 · 5 评论 -
图像处理: AlphaBlend
AlphaBlend(D, cr, alpha);alpha blend的计算公式很简单,D= cr*alpha + D*(1-alpha)D表示原始底色,可以是向量,如RGB,为了减少计算量,一般计算方式是,R = (cr.r – R)*alpha>>8 + RG= (cr.g – G)*alpha>>8 + GB= (cr.b – B)*alp...原创 2019-06-13 10:26:51 · 3157 阅读 · 0 评论 -
图像处理:rgb2gray
这个函数比较简单,matlab 网站上给出的大约是这个样子,0.2989R+ 0.5870G + 0.1140B注意,如果程序中直接写成浮点乘法,相对比较消耗时间,一般我会写成整数乘法的形式,gray = (R*77 + G*150 + B*29) >> 8; ...原创 2019-06-13 10:04:25 · 4015 阅读 · 0 评论 -
机器学习备注:YOLOV3在visual studio2015(version: update3)上的编译调试
用linux没有windows那么多,用起来觉得vc的调试工具还是比linux里好用,于是把YOLOv3(Darknet)整到visual studio里去玩玩。记录下碰到的问题,项目的下载地址在这里,https://github.com/AlexeyAB/darknet感谢作者,整个过程还算顺利,安装可以参考这里https://github.com/AlexeyAB/darkne...原创 2018-09-21 15:33:02 · 759 阅读 · 0 评论 -
机器学习备注:Linux上运行anaconda3+Mask_RCNN
# Anaconda命令关于conda和pip命令到底干了些啥,包下载到了哪里,包的地址保存在何处等问题,建议参考下面的文章,这里就不重复了。apt-get、conda、pip安装东西的细节:https://blog.youkuaiyun.com/hsqyc/article/details/82893601apt-get一般会把包下载到:/var/cache/apt/archives/conda一...原创 2018-09-24 20:59:53 · 1862 阅读 · 1 评论 -
机器学习备注:Windows上运行Mask_RCNN模型
准备工作这些模型在Linux上运行比较方便,不过想起Windows便捷的各种工具,总是忍不住弄过来,原模型的地址在这,https://github.com/matterport/Mask_RCNN当然github上还有很多其他版本的,tensorflow, pytorch是主流,大家可自行搜索,安装使用过程大同小异。下面的是一个tensorflow的版本。注意:windows下的p...原创 2018-09-24 14:12:10 · 4660 阅读 · 3 评论 -
机器学习中,如何使用SpaceView完成图片批量转换和裁剪功能
因为tensorlow, caffe, openCV等数据训练时,经常需要使用大批量的同尺寸图片,因此,我特别在SpaceView中加入了批量大小转换和裁剪功能。使用非常简单,下面我们来看一下,第一步,打开批处理对话框第二步,设置批处理参数和模式:模式:stretch,只做图片拉伸,不会删减内容。crop表示剪切,比如下图,crop center表示剪切中间的256x256个像...原创 2018-09-10 10:43:28 · 1759 阅读 · 2 评论 -
OpenCV源码解析:多尺度检测的训练trainCascade
(没时间一次性写完,更新中)该项目在Opencv Application的一部分,项目名称为opencv_trainCascade,它即可以用来训练lbp特征分类器,也可以是haar特征,有人说lbp特征训练起来更快,我没有专门比较过,不作评论;根据个人经验,lbp在很多场合会更稳定,所以我一般会选lbp特征。这里和检测(detectMultiScale)对应,这里我们仍然以汽车外形检测为例。...原创 2018-08-24 17:32:59 · 1321 阅读 · 1 评论 -
Tensorflow报错:Python: FailedPreconditionError: Attempting to use uninitialized value
Python: FailedPreconditionError (see above for traceback): Attempting to use uninitialized value matching_filenames_7《machine learning with tensorflow》上第5章有这样一段代码,原来的代码是这样的,import tensorflow as...原创 2018-08-31 15:55:18 · 5209 阅读 · 0 评论 -
OpenCV3.1录制视频+把图片合成视频(同时解决一个OpenCV不能打开自己录制的视频的小问题)
记一下,备忘。用OpenCV打开OpenCV录制的视频,发现报错,代码如下 cv::VideoCapture capture; capture.open("E:\\opencv.avi");追踪了一下,原来是打开要求用MJPG,bool AviMjpegStream::parseStrl(MjpegInputStream& in_str, uint8_t strea...原创 2018-10-06 13:33:00 · 1030 阅读 · 1 评论 -
各领域公开数据集下载
各领域公开数据集下载(转过来的,原贴来源不详,未能标注出处。参考:https://blog.youkuaiyun.com/c2a2o2/article/category/7194279)使用的数据集THCHS30是Dong Wang, Xuewei Zhang, Zhiyong Zhang这几位大神发布的开放语音数据集,可用于开发中文语音识别系统。为了感谢这几位大神,我是跪在电脑前写的本帖代码。下载...转载 2018-09-29 13:23:13 · 1363 阅读 · 0 评论 -
OpenCV源码解析:目标检测trainCascade算法剖析之LBP基础
本文重点讲解LBP特征及OpenCV中LBP特征的基本处理。目标检测,也叫目标提取,是一种基于目标几何和统计特征的图像分割。用级联分类器实现目标检测在AI人工智能识别中应用十分广泛。正样本的选取原则正样本的尺寸不是必须一致的,从源码可以看到,这个是可以在输入图片文件的尺寸时设置大小从而实现在CreateSamples中进行裁剪的(参考cvCreateTrainingSamplesF...原创 2018-10-27 12:40:19 · 2083 阅读 · 0 评论 -
OpenCV源码解析之在图片中找四边形-FindSquares
这个FindSquares算是比较典型的综合技能项目吧,用到的小技巧还不少,我们先看一下几个函数吧,函数static double angle的作用是求角度根据余弦定理:在平面座标中通过计算变换,最后可以得到:嗯,函数中直接用了这个结果。其余函数的说明1.函数Canny进行边缘检测,和Sobel原理差不多,不过相对加了些料,稍有点复杂,以后有时间再说吧。 2.函数...原创 2018-12-04 17:47:04 · 3388 阅读 · 1 评论 -
OpenCV源码解析之findContours
说明:openCv的contours是分级的,其寻边理论依据(方式)参考suzuki的论文《Topological structural analysis of digitized binary images by border following》。Contour 的寻边模式ModeopenCV通过一个矩阵来管理等级,矩阵的元素表示方法是:[Next, Previous, Fir...原创 2018-12-12 16:04:44 · 8497 阅读 · 1 评论 -
SIFT算法相关的几个常见疑问
参考博客:SIFT算法的Matlab实现https://www.sun11.me/blog/2016/sift-implementation-in-matlab/SIFT特征详解https://www.cnblogs.com/wangguchangqing/p/4853263.html下面我列一下博客中讲到,但涉及源码时又不够透彻的地方(其实是否透彻还是取决于个人的经验和理解)用到...原创 2018-12-07 10:52:56 · 1014 阅读 · 0 评论 -
图像处理: 可见光波长(wavelength)与RGB之间的转换
关于颜色转换,有时间看标准当然最好,不过我手头一时没有相关标准,所以参考了一些网上的资料,380nm 到 760nm的可见光 对应的RGB大概是这个样子的,C语言版本程序,//指定波长转换成RGBA颜色std::vector<int> lambdaToColor(double lambda,double gamma = 0.8,double intensityMax...原创 2019-06-12 23:57:53 · 25163 阅读 · 2 评论 -
Blender源码下载地址
发现一个收录比较全的blender源码下载地址,Markup一下,转自:https://www.cnblogs.com/kekec/p/3856713.htmlblender源代码编译blender源码路径(svn):https://svn.blender.org/svnroot/bf-blender/trunk/blender/依赖外部Lib(svn):https://svn.ble...转载 2019-07-09 11:07:27 · 4959 阅读 · 2 评论 -
一个便捷的免费图像标注工具AutoSeg Professional
最新版2019-09-25版本更新信息请参考:https://blog.youkuaiyun.com/tanmx219/article/details/101379732正文由于经常大量标注,我先后用了不少标注工具,但总觉得使用起来有诸多不便。有的只能标注多边形,有的只能标注标注拉框。所以后来决定自己开发一个标注工具,目前已经开发了一些基本功能,如拉框标注,多边形标注,面积标注(语义分割)...原创 2019-09-03 23:30:58 · 5227 阅读 · 2 评论 -
OpenCV源码解析:多尺度检测detectMultiScale
准备工作本例是一个汽车外形的识别程序。源码下载:https://download.youkuaiyun.com/download/tanmx219/10623808xml分类器及检测原理训练得到的xml分类器文件内容如下所示,<?xml version="1.0"?><opencv_storage><cascade> <stageType...原创 2018-08-24 10:07:34 · 12104 阅读 · 2 评论 -
OpenCV源码解析:动态内存管理(CvMemStorage与CvSeq)
整体上说,OpenCV的内存管理比较复杂。他不象其他很多库文件,把内在管理交给操作系统,而是通过大量的类,函数,和结构,自己实现对内存的动态管理。1. 内存存储器CvMemStorage一个对象性不强的结构体,它的作用还是在和CvSeq、文件读取等配合中体现出的。1.1 CvMemStorage结构图结构图如下所示,每个block内存块的头部,都是一个CvMemBlock的结构,然...原创 2018-08-24 08:38:19 · 2740 阅读 · 1 评论 -
OpenCV源码详解之InputArray, OutputArray
在OpenCV中,有两个代理类是经常出现的:InputArray和OutputArray,它巧妙地利用了C++的定义转换,辅助完成对矩阵的管理。定义typedef const _InputArray& InputArray;typedef InputArray InputArrayOfArrays;typedef const _OutputArray& OutputA...原创 2018-12-12 20:05:49 · 12560 阅读 · 1 评论 -
OpenCV源码解析:协方差矩阵的计算--calcCovarMatrix
协方差矩阵在统计学与概率论中,协方差是指两个向量元素之间的相关性。设为n维随机变量方差的定义为:当存在两个随机变量X,Y时,其各个维度偏离其均值的程度就可以用协方差来定义:在物理上的理解,你可以认为协方差是指两个向量之相互影响的程度,单从数值上来看,协方差的数值越大,表示两个变量对其均值的变化同向的程度越大。当随机变量有多个的时候,一般不再使用X,Y这样的表述...原创 2018-08-11 23:25:03 · 4916 阅读 · 0 评论 -
OpenCV中,使用C++类的构造函数进行定义转换
OpenCV中采用了很多类似下面方式,在类的构造函数中动态进行定义转换#include "stdafx.h"class Mat {public: int val; void init() { val = 100; }};class holder{public: Mat* pMat; holder(Mat& test) { test.val = 101;...原创 2018-08-10 14:26:02 · 744 阅读 · 0 评论 -
Visual Studio 2017中OpenCV源码解读入门篇:配置OpenCV3.4.1生成VC项目并进行编译
对于大多数程序猿,图像视频音频等的开发学习,其实最难的不是界面,也不是代码风格,而是算法。而要了解算法,有两条是必经之路,第一是对原理的理解,大部情况下,这是一个数学问题;第二条,就是对源码的解读,你必须 清楚地知道数学理论是如何变成代码,并最终产生想要的结果的。学习OpenCv,也是如此。不过从OpenCV提供的源码来看,跨平台确实考虑得比较全面。当然如果你习惯于其他操作系统,这些可能都不是...原创 2018-08-06 13:07:02 · 2113 阅读 · 7 评论 -
Visual Studio 2017下配置使用OpenCV3.4.1
安装OpenCV首先,到opencv.org上把opencv的windows包下载下来,我是一上去把就能下的几个全部down下来,免得以后要其他的还得再上来,如下,一个android包,一个ios包,windows下用的包就是这个:opencv-3.4.1-vc14_vc15.exe然后自己把这个包解压(安装)到你自己喜欢的目录,比如我自己的给目录名称就是D:\AOpencv,就是这个...原创 2018-08-06 10:07:21 · 5679 阅读 · 0 评论 -
OpenCV 源码详解之基本原理:卷积运算及其意义
卷积运算是如何进行的一维卷积定义:理解与计算举例:x(n)={x1, x2, x3, x4}; h(n)=(h1, h2, h3, h4);那么:Y(0)=x(0)h(0); //序号和=0+0=0Y(1)=x(0)h(1)+x(1)h(0) //序号和=0+1=1+0=1Y(2)=x(0)h(2)+x(1)h(1)+x(2)h(0); //序号和=0+2=...原创 2018-08-09 11:54:50 · 4189 阅读 · 1 评论 -
OpenCV源码解析之Mat类理解及内存管理
在OpenCV中,Mat是一个基础的类,也是最重要的类之一,它直接实现对图像的内存管理和数据操作。Mat的常见属性Mat类可以看作是一个数据结构,它以矩阵的形式来存储和管理数据,里面定义了大量的相关属性。而理解这些属性,是我们灵活运用OpenCV的基础。 属性 说明 data uchar型的指针。Mat类分为了两...原创 2018-08-09 10:24:22 · 7000 阅读 · 3 评论 -
OpenCV源码解析:FloodFill(漫水填充)函数
花木成畦手自栽 !先来两张wikipedia上的图,分别为4连通填充和8连通填充的示意图。FloodFill,一般的翻译是漫水填充,也就是把相邻的满足填充要求的颜色换成某个颜色的过程。填充方式一般是4连通,也就是扩展方向是上下左右4个方向,当然你也可以采用8连通填充,把角上那4个也包括进来直观地来说,可以这样填充,以stack堆栈为基础的递归填充一个很简单的...原创 2018-08-09 10:47:03 · 4644 阅读 · 0 评论 -
OpenCv源码解析:对HAL硬件加速层的支持
OpenCV的硬件加速层全称是OpenCV Hardware Acceleration Layer (HAL),一般来说,硬件厂商或开发人员可能会根据自己的实际情况,开发出独立于OpenCV的运算函数,以支持硬件优化,加快运算速度。这些功能性模块有可能是闭源的。为了实现顺利对接,OpenCV提供了一个简单的接口模块,当各厂家需要开发自己的运算模块时,只要实现这些接口即可。根据【1】,OpenC...原创 2018-08-12 15:24:45 · 6717 阅读 · 0 评论 -
OpenCV源码解析:直方图均衡化的详细算法和过程
理论基础所谓直方图,在图像中,指的就是各个像素的统计值,就是一个像素在整幅图像中出现次数。例如下面这张16个像素的图片,其直方图就是直方图均衡化,是将给定图像的直方图改造成均匀分布的直方图,从而扩大像素灰度值的动态范围,达到增强图像对比度的效果。OpenCV中的直方图均衡化OpneCv中,可以用calcHist进行图像的均衡化,也可以使用equalizeHist可...原创 2018-08-15 12:10:14 · 2712 阅读 · 2 评论 -
OpenCV源码解析:Hash链表的生成(cvGetFileNode)与读取(cvGetFileNodeByName)
从父节点派生子节点cvGetFileNode从CvFileNode* _map_node中,根据key生成一个node,设置后返回这个生成的node。举个应用的例子: 在函数icvXMLParseValue中,当读取XML分类器中一个map_node”<_>”时,其相应的key为key(rect),一个rect有4个参数(左上角x,y,右下角x,y),icvXMLParseVa...原创 2018-08-23 21:26:53 · 1166 阅读 · 0 评论 -
OpenCV的函数简要说明(不断收集扩充中)
机器学习函数关于机器学习的函数,很多在OpenCV的中文官网上有解释,这里不再重复贴出,链接如下,http://wiki.opencv.org.cn/index.php/机器学习中文参考手册CvSeq内存管理函数简要说明(1)CreatSeq功能:函数cvCreatSeq创建一序列并返回指向该序列的指针.格式CvSeq* cvCreatSeq(int s...原创 2018-08-23 20:14:12 · 1085 阅读 · 0 评论 -
OpenCV源码解析:partition分类(聚类)
功能:把数据类型为_Tp的一组集合进行聚类,也就是根据相似或相同的某特征进行归类,最后分成若干个类别。这里是以相似矩形的分类为例进行讲解,重点内容都在注释中。整体过程就是先判断两个矩形是否相似,如果相似,就决让其中一个做父节点,一个做子节点,然后再检查这个关系是否影响了其他节点的关系,如果有影响,就调整。检查完之后就沿所有的节点找到顶级父节点,如果该 父节点还没有分类,就分类成一个新的分类值...原创 2018-08-23 18:09:29 · 1494 阅读 · 0 评论 -
OpenCV源码解析:Jacobi法计算矩阵的特征值和特征向量
(注:优快云不适合写公式,只好上传图片格式)其中Pkk=Pll=cosθ, Plk=Pkl=sinθ,形式上就是这样,A*PT Aik = Aik×Pkk+Ail×Pkl Ail = Aik×Plk+Ail×PllP*A Aki = Pkk×Aki+ Pkl×Ali Ali = Plk×Aki+ Pll×Ali实际计算时,只计算那些必...原创 2018-08-13 21:39:20 · 2996 阅读 · 0 评论 -
从OpenCV源码了解traincascade训练报错:Train dataset for temp stage can not be filled.
如果你在测试trainCascade时,资料目录没有放在项目目录中,很有可能触发下面的报错:Train dataset for temp stage can not be filled.我们很容易定位这个错误的来源,在cascadeClassifier.cpp中bool CvCascadeClassifier::train( const string _cascadeDirName...原创 2018-08-17 22:52:34 · 1618 阅读 · 3 评论 -
写一个OpenCV源码解析的博客 -- 图像开发处理之基础介绍
这里先写一个序,是督促自己常常来更新博文(名字没想好,叫OpenCV程序设计的艺术?)!很久了,想写一点关于OpenCV,FFMPEG,X264等源码解析的博客。考虑到基础都是相通的,所以决定先写一些基础性的知识。相对于FFMPEG和X264,OpenCV的基础性更强,计算功能也更单一。换句话说,你完全可以理解OpenCV的一个类型的计算方式而不用理会是否理解了另一个类型,这可能...原创 2018-08-08 10:13:08 · 2228 阅读 · 0 评论 -
图像处理常识:内存中的图像宽度的计算
先说公式,sz对齐的到n位的计算方法是(sz + n-1) & -n;或者(sz + n-1) & ~n; 取决于系统要求,图像在内存中的存储,往往和原来的图片尺寸不一样,在windows图像宽度必须是bytes (32 bits) aligned,这里要注意的是sz和n的数据类型,因为他们决定了位数,比如int是32位的,最大只能32位长的数据。如果已...原创 2018-08-08 09:14:51 · 2130 阅读 · 0 评论 -
OpenCV源码解析之基本数据类型操作与概念
Mat是何处理数据类型的在OpenCV中,矩阵在创建时,会传入一个数据类型,比如create函数要求传入_type; 然后,数据类型会被保存到flags中,create函数原型如下,inlinevoid Mat::create(int _rows, int _cols, int _type){ _type &= TYPE_MASK; if( dims <...原创 2018-08-09 10:07:02 · 963 阅读 · 0 评论
分享