时间:2015-06-17 来源:

BoW图像检索Python实战 【综合】

下文来自我的博客:BoW图像检索Python实战

#!/usr/local/bin/python2.7 #python search.py -i dataset/train/ukbench00000.jpg import argparse as ap import cv2 import imutils import numpy as np import os from sklearn.externals import joblib from scipy.cluster.vq import * from sklearn import preprocessing import numpy as np from pylab import * from PIL import Image from rootsift import RootSIFT # Get the path of the training set parser = ap.ArgumentParser() parser.add_argument("-i", required="True") args = vars(parser.parse_args()) # Get query image path image_path = args["image"] # Load the classifier, number of clusters and vocabulary im_features, idf, voc = joblib.load("bof.pkl") # Create feature extraction and keypoint detector objects fea_det = cv2.FeatureDetector_create("SIFT") des_ext = cv2.DescriptorExtractor_create("SIFT") # List where all the descriptors are stored des_list = [] im = cv2.imread(image_path) kpts = fea_det.detect(im) kpts, kpts) # rootsift #rs = RootSIFT() #des = rs.compute(kpts, des)) # Stack all the descriptors vertically in a numpy array descriptors = des_list[0][1] # test_features = np.zeros((1, "float32") words,voc) for w in words: test_features[0][w] += 1 # Perform Tf-Idf vectorization and L2 normalization test_features = test_features*idf test_features = preprocessing.normalize(test_features, im_features.T) rank_ID = np.argsort(-score) # Visualize the results figure() gray() subplot(5,1) imshow(im[:,::-1]) axis('off') for i,4,对某幅图像进行查询时div+css+js切图,只需在命令行里输入:

整个实战的代码可以在这里下载:下载地址.

#python search.py -i dataset/train/ukbench00000.jpg(查询图像的路径) 上面的代码中,div+css+js切图你可以看到rootSIFT注释掉了承接网站前端,你也可以去掉注释,承接网站前端采用rootSIFT,但这里实验中我发觉rootSIFT并没有SIFT的效果好.最后看看检索的效果,承接网页制作最上面一张是查询图像web外包,后面的是搜索到的图像:

前几天把HABI哈希图像检索工具包更新到V2.0版本后,手机网页制作小白菜又重新回头来用Python搞BoW词袋模型网页切图制作,另一方面也是为了CBIR群开讲的关于图像检索群活动第二期而准备的一些素材.关于BoW,网上堆资料讲得挺好挺全的了,网页重构报价小白菜自己在曾留下过一篇讲解BoW词袋构建过程的博文Bag of Words模型承接网站前端,所以这里主要讲讲BoW的实战.不过在实战前,承接网站前端小白菜还想在结合自己这两年多BoW的思考和沉淀重新以更直白的方式对BoW做一下总结.

上面的两个例子应该讲清楚了BoW词袋模型吧psd切图html,下面就来看看BoW词袋模型用Python是怎么实现的.

上面举的例子对于初次接触BoW的人来说可能讲得不是那么的直观,psd切图html小白菜可以举一个更直观的例子(虽然有些地方可能会不怎么贴切web外包,比如美国总统全国大选网页切图制作,假设有10000个比较有影响力的人参加总统竞选,网页切图制作这10000个人表示的就是聚类中心div+css+js切图,每个州类比成一幅图像承接网站前端,州里的人手里持的票就好比是SIFT特征点,页面div重构这样的话psd切图html,我们就可以对每个州做一个10000维的票数统计结果,psd切图html这个统计出来的就是上面第一个例子里所说的词频向量.另外web外包,我们还可以统计每个竞选人有多少个州投了他的票,手机网页制作那么就可以得到一个10000维长的对州的统计结果网页切图制作,这个结果再稍微和对数做下处理,div页面便得到了所谓的逆文档词频.

举两个例子来说明BoW词袋模型.第一个例子在介绍BoW词袋模型时一般资料里会经常使用到div+css+js切图,就是将图像类比成文档,div+css+js切图即一幅图像类比成一个文档承接网站前端,将图像中提取的诸如SIFT特征点类比成文档中的单词,承接网站前端然后把从图像库中所有提取的所有SIFT特征点弄在一块进行聚类psd切图html,再对每一幅图像中的SIFT特征点找距离它最近的聚类中心(单词),做词频(TF)统计,手机网页制作图解如下: 做完词频(TF)统计后网页切图制作,为了降低停用词带来的干扰,网页切图制作可以再算个逆文档词频(IDF),也就是给TF乘上个权重,网页重构报价该过程可以图解如下: 上面单词权重即逆文档词频(IDF),那时通过统计每个单词包含了多少个文档然后按设定的一个对数权重公式计算得来的,承接网站前端具体如下: 对于上传上来的查询图像psd切图html,提取SIFT然后统计tf后乘上上面的idf便可得到id-idf向量,psd切图html然后进行L2归一化web外包,用内积做相似性度量.

在做TF统计的时候,div切图排版我们知道一般为了取得更好的效果网页切图制作,通常单词数目会做得比较大,网页切图制作动则上万或几十万div+css+js切图,所以在做聚类的时候,div+css+js切图可以对这些类中心做一个K-D树承接网站前端,这样在做TF词频统计的时候便可以加快单词直方图计算的速度.

在线查询阶段相比于上面简单了些,页面div重构没有了聚类过程psd切图html, "--trainingSet", required="True") args = vars(parser.parse_args()) # Get the training classes names and store them in a list train_path = args["trainingSet"] #train_path = "dataset/train/" training_names = os.listdir(train_path) numWords = 1000 # Get all the path to the images and save them in a list # image_paths and the corresponding label in image_paths image_paths = [] for training_name in training_names: image_path = os.path.join(train_path, image_path in enumerate(image_paths): im = cv2.imread(image_path) print "Extract SIFT of %s image, i, des = des_ext.compute(im, des) des_list.append((image_path,:] #for image_path, descriptor[::downsampling, descriptor in des_list[1:]: descriptors = np.vstack((descriptors, %d key points" %(numWords, variance = kmeans(descriptors, 1) # Calculate the histogram of features im_features = np.zeros((len(image_paths), "float32") for i in xrange(len(image_paths)): words,voc) for w in words: im_features[i][w] += 1 # Perform Tf-Idf vectorization nbr_occurences = np.sum( (im_features > 0) * 1, 'float32') # Perform L2 normalization im_features = im_features*idf im_features = preprocessing.normalize(im_features, image_paths, numWords, "bof.pkl",前面主要是一些通过parse使得可以在敲命令行的时候可以向里面传递参数承接网站前端,后面就是提取SIFT特征,承接网站前端然后聚类psd切图html,得到单词直方图后再做一下L2归一化.一般在一幅图像中提取的到SIFT特征点是非常多的web外包,而如果图像库很大的话,手机网页制作SIFT特征点会非常非常的多网页切图制作,直接聚类是非常困难的(内存不够,网页切图制作计算速度非常慢),所以,网页重构报价为了解决这个问题承接网站前端,可以以牺牲检索精度为代价,承接网站前端在聚类的时候先对SIFT做降采样处理.最后对一些在在线查询时会用到的变量保存下来.对于某个图像库psd切图html,可以在命令行里通过下面命令生成BoF: sh python findFeatures.py -t dataset/train/

点击次数:6584
作者:
web前端行业资讯
Web new NewsList
Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日苹果经典电脑Lisa源代码修复完成将于2018年开源 ,,2017年12月28日腾讯浏览指数发布年终榜单2017年人们都关注哪些AI话题? ,,2017年12月28日除了发现开普勒90,NASA还靠AI做了什么? ,,2017年12月28日柯洁宣布:明年4月,将再次与围棋AI交锋 ,,2017年12月28日百度无人车美国首秀CES将发布Apollo2.0 ,,2017年12月28日这四种技术发展趋势将在2018年改变世界 ,,2017年12月28日2017:谷歌DeepMind团队的年度回顾 ,,2017年12月28日封杀这个公式,AI智商将为零 ,,2017年12月28日微软AI高管:要让所有人、所有机构都用上人工智能 ,,2017年12月28日为什么Linux桌面年一直未到来 ,,2017年12月28日AppleLisa操作系统将开源 ,,2017年12月28日2018年9大技术趋势预测 ,,2017年12月28日谷歌研究院发布NIMA:能评价图像有多美,还能让图像变得更美 ,,2017年12月28日苹果为2019年iPhone开发大容量电池新技术 ,,2017年12月28日谷歌发布Tacotron2:能更简单地训练AI学习演讲 ,,2017年12月21日TensorFlow漏洞爆发背后:关于AI安全我们的傻与天真 ,,2017年12月21日Android端Edge浏览器新版发布:常规性能优化和BUG修复 ,,2017年12月21日三星开发出全球最小的DRAM芯片技术领先优势扩大 ,,2017年12月21日腾讯绝艺AI下一步将学习AlphaGozero自对弈训练 ,,2017年12月21日Facebook社交VR应用Spaces扩大覆盖面:入驻HTCVive ,,2017年12月21日设计图曝光:三星双屏折叠手机原来是这样的 ,,2017年12月21日微信支付和支付宝已成为世界移动支付的"老师" ,,2017年12月21日新专利表明FaceID未来有望装备在iPad、MacBook和iMac等设备 ,,2017年12月21日首批九个建议加入EE4J的项目 ,,2017年12月21日这就是SurfacePhone?微软可折叠手机概念图曝光 ,,2017年12月21日继“Angel”开源后,腾讯又开放TDinsight机器学习平台 ,,2017年12月21日从汇编看c++中函数里面的static关键字的使用说明2014年01月30日【BZOJ1019】【SHOI2008】汉诺塔 【系统运维】2015年01月24日php中如何同时使用session和cookie来保存用户登录信息2014年01月29日csu1328:近似回文词 【编程语言】2015年05月11日JVM如何实现对象访问(详解)【互联网】2015年04月24日iOS编译错误:【__NSCFConstantStringcount】:unrecognizedselectorsenttoinstance0x1ada02c 【移动开发】2015年01月21日百度地图开发入门【不同图层及覆盖物】 【移动开发】2015年05月05日我的考研经历 【移动开发】2015年05月18日BZOJ3157国王奇遇记&BZOJ3516国王奇遇记加强版 【编程语言】2015年02月28日AnsycTask2.3版本及3.0后版本使用比较【移动开发】2015年03月19日hdu5093二分匹配【移动开发】2014年11月04日linux网络参数配置方法详解2014年01月30日View的getWidthgetHeight与getMeasuredWidthgetMeasuredHeight的区别【编程语言】2015年05月19日Python模块搜索及模块安装 【编程语言】2015年01月04日【程序员面试金典】1001.字符串变换 【综合】2015年08月14日js鼠标放图片上抖动效果2014年01月29日Win2003自带防火墙的设置图文教程2014年01月30日uva147Dollars(DP)【编程语言】2015年03月16日SSL协议会话建立过程解析 【Web前端】2014年12月11日javascript的Document属性和方法集合2014年01月29日nginx设置上传目录无执行权限的方法2014年01月29日HDU1042.N!【高精度乘法】【8月24】 【综合】2015年08月24日使用Aspose.Words设置word文档多倍行距【编程语言】2015年02月09日python爬虫爬取腾讯新闻科技类的企鹅智酷系列(1) 【编程语言】2015年05月20日PLSQL不能不学的快捷技能 【架构设计】2015年03月02日数据结构----二叉搜索树 【云计算】2015年07月16日docker未来之我见=一个dockerfile+一个script 【互联网】2015年02月09日libxml教程(图文详解)2014年01月30日华为OJ(一)——字符串最后一个单词的长度 【编程语言】2015年09月01日Solr地理空间搜索实践(SpatialSearch) 【编程语言】2015年03月12日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)