计算机视觉
文章平均质量分 72
理想主义帕鲁
“你灵魂深处,总要有这样一个地方:永远在海面漂荡,在半空中飞扬;永远轻盈、永远滚烫,不愿下沉、不肯下降。”
展开
-
支付宝AR扫福背后的故事
马上要到二零二一年的农历新年了,在这里首先祝小伙伴们新年快乐。与往年除夕一样,支付宝提供了集五福、分红包的活动,以庆祝新年的到来。其中,AR扫福的部分是与计算机视觉技术紧密相关的,而它背后的技术也十分令人感兴趣。本文在这里对AR扫福相关的信息和技术进行了汇总,以期望对其他部署于移动端的深度学习系统的落地实践起到借鉴意义。本文的部分内容转载于网络,其版权归原作者所有。转载 2021-02-10 22:19:11 · 2459 阅读 · 0 评论 -
使用Contrastive Loss和Triplet Loss学习特征表达
在某些实际应用当中(例如人脸识别/鉴别、信息检索、行人重识别、内容推荐等等),我们也可以利用不同样本之间的关系,提升模型学习特征的能力。例如,我们可能希望相同类别样本的特征向量在某种度量空间(Metric Space)中是相近的,而不同类别样本的特征向量在该空间中尽可能远离。这里,我们可以使用对比误差(Contrastive Loss)或者三元组误差(Triplet Loss)来达到这一目的。原创 2021-02-10 01:43:59 · 963 阅读 · 0 评论 -
可训练的神经三维网格渲染器(Neural 3D Mesh Renderer)
如果说计算机视觉是将三维世界的视觉信息“编码”为机器可以理解的参数的过程,那么计算机图形学则是将参数化的三维模型“解码”为人类可以感知的三维世界的过程。从某种意义上来讲,如果不考虑转换过程中信息的损失,这似乎是一个可逆的过程;而如果能使用某种方式把计算机视觉的操作与计算机图形学的操作结合在一起,是不是能够像自动编码器(Autoencoder)一样而实现某种无监督学习的应用呢?原创 2021-01-29 08:34:32 · 4666 阅读 · 3 评论 -
利用生成式对抗网络(GAN)进行艺术创作
人类的创作过程,可以在某种意义上理解为“从无到有”(Creating)的过程或者“举一反三”(Translation)的过程。那么对于机器而言,我们可不可以使用某种模型来模拟这种过程呢?答案是肯定的。生成式对抗网络(Generative Adversarial Networks)是近年来计算机科学当中比较有趣的想法之一,本文将以创作数字图像为应用场景来对该模型进行介绍。原创 2021-01-22 08:59:28 · 1590 阅读 · 3 评论 -
使用自动编码器(Autoencoder)及其变体进行特征学习
自动编码器(Autoencoder)是一类无监督学习的特征提取方法,它由编码器(Encoder)和解码器(Decoder)两个部分组成。其工作的原理是,首先通过编码器将初始的特征映射到一个潜在的特征空间(通常该空间的维度远小于原始空间),再使用解码器将其重新映射到原始的特征空间当中。编码器和解码器通常使用神经网络结构来实现,在训练模型参数时会定义某种距离函数,来衡量输出数据与预期目标的误差。它主要的应用有数据压缩、数据去噪以及数据生成等等,这里给出一些示例代码以方便学习。原创 2021-01-18 23:38:25 · 5439 阅读 · 2 评论 -
将椭圆形图像归一化为圆形图像
很多图像中的Interested Detector得到的图像都是椭圆形的,为了能够方便提取图像特征,首先通常会将这个椭圆形的区域归一化为圆形区域,也可以理解为一个正方形区域。下面给出了这个功能的Matlab代码实现。 getEllipseImage.mfunction [ imageEllipse, imageCircle ] = getEllipseImage( image,原创 2013-08-01 10:56:25 · 8145 阅读 · 11 评论 -
利用Shape Context进行形状识别
什么是Shape Context Shape Context是一个用于形状识别的,非常经典的特征(一串便于计算机处理的数字)提取方法,它由Serge Belongie和Jitendra Malik 于2002年在他们的文章“Shape matching and object recognition using shape contexts”中提出。这种特征提取方法使得计算机能够衡原创 2013-06-09 01:31:09 · 20882 阅读 · 11 评论 -
局部二值模式(LBP)中间过程的可视化
局部二值模式(Local Binary Pattern - LBP)是广泛用于图像分类的一种图像特征,它的特点是,在图像发生光照变化时,提取的特征仍然能够不发生大的改变。提取LBP的过程首先是将原始图像转换为LBP图,然后统计LBP图的LBP直方图,并以这个向量形式的直方图来表示原始的图像。目前不少开源的LBP实现代码没有给出中间过程的可视化步骤,这里给出了由原始图转换为LBP图的C++代码。原创 2013-08-03 09:58:25 · 4794 阅读 · 2 评论 -
如何正确理解深度学习(Deep Learning)的概念
现在深度学习在机器学习领域是一个很热的概念,不过经过各种媒体的转载播报,这个概念也逐渐变得有些神话的感觉:例如,人们可能认为,深度学习是一种能够模拟出人脑的神经结构的机器学习方式,从而能够让计算机具有人一样的智慧;而这样一种技术在将来无疑是前景无限的。那么深度学习本质上又是一种什么样的技术呢? 深度学习是什么 深度学习是机器学习领域中对模式(声音、图像等等)进行建模的一原创 2013-05-31 23:50:38 · 12046 阅读 · 12 评论 -
如何使用廉价GPU运行基于MatConvNet的CNN程序
MatConvNet是一个基于MATLAB的工具箱。针对计算机视觉相关的应用,它实现了卷积神经网络(CNN)的各种基本功能。相对于Caffe或Tensor Flow等基于C/C++底层实现的CNN函数库来说,它具有便于学习、易于修改以及适合跨平台编程等特点,适合CNN的初学者来学习。 然而,因为某种原因,它对NVIDIA系列早期型号的显卡支持并不好。以现在Amazon上白菜价都能买到原创 2017-02-28 15:19:28 · 3494 阅读 · 0 评论 -
关于多元一次方程组更多的故事
稀疏编码(Sparse Coding)是前些年信号研究领域比较热门的技术,常用于对信号进行压缩编码,人们也经常称这种技术为压缩感知(Compressive Sensing)。而近些年也被引入到了机器学习、模式识别、计算机视觉等各个领域的研究当中,在各种应用当中也取得了比较好的实验结果。当然,这种技术从数学建模上来讲,实际上是某种求解多元一次(线性)方程组的方法,下面也分享一下这个关于求解方程组的一原创 2013-08-25 11:22:19 · 3822 阅读 · 0 评论 -
基于学习的索引算法
如果我们想进行数据的查找,最直接的方法就是将待查询的数据与数据库中的数据逐个比对一遍(顺序查找),当然这种方法查找的时间复杂度也是最高的,只能用于数据库容量较小的应用场景,因此我们需要想一些办法来降低查找的时间复杂度。为了进行快速的查找,通常的思路是:1)对数据库中的数据进行预处理,建立某种便于快速查找的数据结构。2)使用多个线程、进程或是机器来并行的查找。原创 2013-06-30 04:06:27 · 3727 阅读 · 0 评论 -
OpenCV 2.2.0及以上版本CvvImage的使用
前几日,OpenCV 2.2.0版本出现了...但是...以前版本的CvvImage类不见了...为了能够继续使用这个类,下面把这个类的源代码贴出来,使用的时候将该代码加入到工程中便可以使用了。为了方便切换OpenCV的版本,这里用到了一些条件编译宏,来保证代码的灵活性。 不过从OpenCV 2.2.0开始,OpenCV取消了CvvImage这个类,一定是有它的原因的,具体可以在做实原创 2011-01-17 10:32:00 · 12946 阅读 · 16 评论 -
使用OpenCV进行视频读写
OpenCV视频读写的代码,用的是其C++形式的API。输入文件为完全无压缩的avi格式视频文件。原创 2011-03-14 15:38:00 · 5703 阅读 · 6 评论 -
Topic Model
下面介绍一下 Topic Model 是怎么转化为计算机视觉的模型的。原创 2010-12-10 10:54:00 · 1579 阅读 · 0 评论 -
Ground Knowledge
一些计算机视觉的基础知识,分享一下。原创 2010-11-21 20:03:00 · 1077 阅读 · 0 评论 -
OpenCV中协方差矩阵的计算
下面给出了OpenCV中协方差矩阵的计算方法,其输入输出特性与Matlab中的cov函数相同,但是可能由于OpenCV程序本身的问题,自带的归一化功能是按照除以矩阵行数(R)来计算的,但实际上应该除以(R-1)进行归一化,所以这里没有用其自带的归一化功能。将所得的协方差矩阵每个元原创 2010-11-02 18:56:00 · 8080 阅读 · 1 评论 -
OpenCV中矩阵深度类型转换
在OpenCV中,cv::Mat类提供了一个名为converTo的方法来进行矩阵类型转换。当然使用时需要注意的是,该函数只能进行矩阵深度类型的转换,而不能进行矩阵通道数的转换。若需要进行矩阵通道数的转换,可能需要采取进行其他的方法来变通实现。下面对该函数进行测试。原创 2011-08-15 21:32:29 · 4924 阅读 · 3 评论 -
OpenCV 2.2.0 摄像头捕获视频问题的解决
OpenCV升级到2.2之后,原来写的用摄像头捕获视频的程序用不了。经过Google发现这是一个OpenCV2.2已知的错误,解决的方案如下所述。 进入OpenCV的根目录,找到/modules/highgui/src/precomp.hpp这个文件,将其中的代码原创 2011-03-12 22:55:00 · 4803 阅读 · 7 评论 -
OpenCV HOGDescriptor 参数图解
最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类来进行封装,其中也有现成的行人检测的接口。然而,无论是OpenCV官方说明文档还是各个中英文网站目前都没有这个类的使用说明,所以在这里把研究的部分心得分享一下。 首先我们进入HOGDescriptor所在的头文件,看看它的构造函数原创 2011-03-11 10:35:00 · 79987 阅读 · 82 评论 -
Matlab与C/C++混合编程调用OpenCV
好久没写博客了,今天一个师兄问到了一个关于在Matlab与C/C++混合编程时,使用OpenCV库的编译问题,所以借此机会总结成文字分享一下过程。 在使用Matlab编译包含OpenCV库的代码之前,首先假设下面的几项工作已经完成。 1)下载并解压某个版本的OpenCV至硬盘的某个目录上,并将其运行时库添加到环境变量中。 2)安装了某个版本的VC编原创 2013-04-10 22:16:34 · 8784 阅读 · 10 评论 -
一个 Dense SIFT 算法的 matlab 实现
Ce Liu, Jenny Yuen, Antonio Torralba,JosefSivic, andWilliam T. Freeman 版权所有。 修改的部分函数与变量的名字,使其好懂了一些。不过这个算法由于没有salient keypoint detection和rotation normalization,所以对尺度以及旋转这些affine transform没有移不变的性原创 2011-01-08 21:40:00 · 10469 阅读 · 16 评论 -
the Denser the Better ?
对图像进行密集地特征取样,聚类效果会更好么?原创 2011-01-08 21:40:00 · 3428 阅读 · 1 评论