- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 基于内容的图像检索技术综述 传统经典方法
今天我们来介绍一下图片检索技术,图片检索就是拿一张待识别图片,去从海量的图片库中找到和待识别图片最相近的图片。这种操作在以前依靠图片名搜图的时代是难以想象的,直到出现了CBIR(Content-based image retrieval)技术,依靠图片的内容去搜图。比较常见的图搜平台有百度、谷歌、拍立淘等,有些图搜技术已经能达到非常不错的效果。接下来我们做个测试,给出一个柯基宝宝的图片,分别用三...
2018-07-29 13:17:00 2985 1
原创 基于感知哈希算法的视觉目标跟踪
基于感知哈希算法的视觉目标跟踪 偶然看到这三篇博文[1][2][3],提到图片检索网站TinEye和谷歌的相似图片搜索引擎的技术原理。以图搜图搜索引擎的使命是:你上传一张图片,然后他们尽全力帮你把互联网上所有与它相似的图片搜索出来。当然了,这只是他们认为的相似,所以有时候搜索结果也不一定对。事实上,以图搜图三大搜索引擎除了上面的老牌的TinEye和Google外,还有百度上线...
2018-07-20 19:42:29 675
原创 pHash图像相似度比较算法汇总
翻译原文地址:http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html在过去的几个月,我不停地寻求“TinEye 如何工作”的答案,或者说它是如何搜索图片的。结果是我仍没法知道TinEye图片搜索引擎是如何工作的,他们并没有公开他们所用使用的算法细节。然而,根据它返回的结果,呈现给我的是感知哈希算...
2018-07-20 19:32:05 20325
原创 常见的图像相似度比较哈希算法实现(Python&OpenCV)
简述相似图像搜索的哈希算法有三种:均值哈希算法 差值哈希算法 感知哈希算法均值哈希算法步骤缩放:图片缩放为8*8,保留结构,出去细节。 灰度化:转换为256阶灰度图。 求平均值:计算灰度图所有像素的平均值。 比较:像素值大于平均值记作1,相反记作0,总共64位。 生成hash:将上述步骤生成的1和0按顺序组合起来既是图片的指纹(hash)。顺序不固定。但是比较时候必须...
2018-07-20 14:28:30 7235
原创 感知哈希算法(perceptual hash algorithm)相似图片搜索原理
感知哈希算法(perceptualhash algorithm),它的作用是对每张图像生成一个“指纹”(fingerprint)字符串,然后比较不同图像的指纹。结果越接近,就说明图像越相似。根据Neal Krawetz博士的解释,原理非常简单易懂。我们可以用一个快速算法,就达到基本的效果。下面是一个最简单的实现:第一步,缩小尺寸。将图片缩小到8x8的尺寸,总共64个像素。这一步的...
2018-07-20 14:16:59 3442 1
转载 重新发现语义分割,一文简述全卷积网络
选自Medium,作者:Farhan Ahmad,机器之心编译,参与:李诗萌、路。全卷积网络自 2012 年出现以来,在图像分类和图像检测领域取得了巨大成功。本文利用笔记本电脑构建了一个小型全卷积网络,详细介绍了全卷积网络的思路、过程等等,值得一看语义分割是一种学习如何识别图像中对象范围的机器学习技术。语义分割赋予机器学习系统与人类相似的理解图像内容的能力。它促使机器学习算法定位...
2018-07-19 20:24:30 531
原创 Python中统计程序运行时间的方法汇总
以下列举常用统计程序运行时间的方法。方法1:import datetimestarttime = datetime.datetime.now()#long running#do something otherendtime = datetime.datetime.now()print (endtime - starttime).secondsdatetime.datetim...
2018-07-17 12:51:48 16520
原创 Python递归深度错误:RecursionError: maximum recursion depth exceeded in comparison
python默认的递归深度是很有限的(默认是1000),因此当递归深度超过999的样子,就会引发这样的一个异常。 用Python写了一个递归脚本,脚本如下def fact(n): return fact_iter(n, 1) def fact_iter(num, product): if num == 1: return product ...
2018-07-16 20:06:13 21304 7
原创 numpy中三维数组中加入元素后位置详细说明
今天做数据处理时,遇到了从三维数组中批量加入二维数组的需求。其中三维数组在深度学习的特征数据处理时经常会使用到,所以读者有必要对该小知识点做到清楚了解并掌握。现对三维数组中的元素位置结合代码做详细归纳总结,方便日后查阅和为网友答疑!图示效果图: 直接贴代码:def test3D(): import numpy as np data_array = np.z...
2018-07-16 18:20:54 8801 1
原创 python:numpy库ndarray多维数组的维度变换方法:reshape、resize、swapaxes、flatten
numpy库对多维数组有非常灵巧的处理方式,主要的处理方法有:.reshape(shape) : 不改变数组元素,返回一个shape形状的数组,原数组不变 .resize(shape) : 与.reshape()功能一致,但修改原数组In [22]: a = np.arange(20)#原数组不变In [23]: a.reshape([4,5])Out[23]:array([[ ...
2018-07-15 10:14:26 15063
原创 从AlexNet理解卷积神经网络的一般结构
2012年AlexNet在ImageNet大赛上一举夺魁,开启了深度学习的时代,虽然后来大量比AlexNet更快速更准确的卷积神经网络结构相继出现,但是AlexNet作为开创者依旧有着很多值得学习参考的地方,它为后续的CNN甚至是R-CNN等其他网络都定下了基调,所以下面我们将从AlexNet入手,理解卷积神经网络的一般结构。先给出AlexNet的一些参数和结构图:卷积层:5层全连接层:...
2018-07-14 21:48:07 373
原创 多通道(比如RGB三通道)卷积过程
今天一个同学问 卷积过程好像是对 一个通道的图像进行卷积, 比如10个卷积核,得到10个feature map, 那么输入图像为RGB三个通道呢,输出就为 30个feature map 吗, 答案肯定不是的,输出的个数依然是 卷积核的个数。 可以查看常用模型,比如lenet 手写体,Alex imagenet 模型, 每一层输出feature map 个数 就是该层卷积核的个数。1、 一通道...
2018-07-14 21:29:54 2414
原创 数据集:人群行为识别数据库总结
开发十年,就只剩下这套Java开发体系了 >>> 参考论文:人群异常识别技术研究进展_魏永超 数据是人群行为识别研究的基础, 为了更加方便开展相关研究工作, 陆续有研究机构采集人群异常行为数据, 构建了相关数据库并进行公开, 从而一定程度推动了人群行为研究. 这些数据库为行为识别的研究提供了重要参考依据. 下面将对代表性的人群行为数据库的进行概括。(1)...
2018-07-09 11:33:00 5020 5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人