最新要闻
- 每日快播:华昌集团
- 全球聚焦:你几点睡?全国熬夜最狠城市揭晓:广东最牛 干这些行业的熬夜最多
- 金俊秀为什么叫细亚俊秀?金俊秀个人简介资料
- 已考上大学的简短四字祝福语有哪些?祝福前途似锦的古诗词有哪些?
- 强迫性动作属抑郁症吗?强迫性动作的自我疗法有哪些?
- 咬甲癖是心理疾病吗?咬甲癖怎么治疗?
- 皮肤剥离强迫症是什么?皮肤剥离强迫症怎么治疗?
- 中移动董事长喊话中小学必学编程:还有委员喊话取消英语主科学了没用 你支持谁?
- 【世界快播报】最受欢迎的豪华中大型SUV 新款宝马X5实车亮相:国产必卖爆
- 湖北省“最强9万元补贴”蔓延 云南东风本田抄作业:直补6万
- 热点在线丨比Dev渠道更“快”!微软为Windows新增Canary测试渠道
- 全球观热点:砸130亿元 日本又失败!新主力火箭发射后自毁 日本专家谈落后中国多少年
- 焦点!【ES三周年】Elasticsearch安全配置详解
- 车主称极氪001空调喷白粉末 官方回应:符合国标没有损害
- 世界今热点:育碧参与 巴黎圣母院加速修复:力争明年重新开放
- 世界速看:为什么小米手机不在美国卖?看完原因对雷军更有好感
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球百事通!以图搜图实现
此次需要使用到的工具:
(相关资料图)
IDE:eclipse,pydevPython:3.10Packages:Keras + TensorFlow + Pillow + Numpy
keras
Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。简单来说,keras就是对TF等框架的再一次封装,使得使用起来更加方便。
基于vgg16网络提取图像特征 我们都知道,vgg网络在图像领域有着广泛的应用,后续许多层次更深,网络更宽的模型都是基于此扩展的,vgg网络能很好的提取到图片的有用特征,本次实现是基于Keras实现的,提取的是最后一层卷积特征。
思路
主要思路是基于CVPR2015的论文《Deep Learning of Binary Hash Codes for Fast Image Retrieval》实现的海量数据下的基于内容图片检索系统。简单说来就是对图片数据库的每张图片抽取特征(一般形式为特征向量),
存储于数据库中,对于待检索图片,抽取同样的特征向量,然后并对该向量和数据库中向量的距离(相似度计算),找出最接近的一些特征向量,其对应的图片即为检索结果
from keras.applications.vgg16 import VGG16from keras.preprocessing import imagefrom keras.utils.image_utils import load_img,img_to_arrayfrom keras.applications.vgg16 import preprocess_inputimport numpy as npfrom numpy import linalg as LAimport osimport h5pyimport matplotlib.image as mpimgimport matplotlib.pyplot as pltfrom PIL import Imageclass soutu2: def __init__(self): self.input_shape = (244, 244, 3) self.weights = "imagenet" self.pooling = "max" self.model = VGG16(weights=self.weights, input_shape=self.input_shape, pooling=self.pooling, include_top=False) self.model.predict(np.zeros((1, 244, 244, 3))) self.h5f_index = "models/vgg_featureCNN.h5" #抽取某个目录中的图片特征并保存 def xunlian(self, dirpath): print("开始特征训练...") feats = [] names = [] img_list = self.get_imglist(dirpath) for i, img_path in enumerate(img_list): norm_feat = self.extract_feat(img_path) img_name = os.path.split(img_path)[1] feats.append(norm_feat) names.append(img_name) print("正在处理%s/%s图片" % (i+1, len(img_list))) feats = np.array(feats) h5f = h5py.File(self.h5f_index, "w") h5f.create_dataset("database_1", data=feats) h5f.create_dataset("database_2", data=np.string_(names)) h5f.close() print("训练完毕\n") #查找相似图 def chazhao(self, img_path): print("开始按输入图片特征查找...") h5f = h5py.File(self.h5f_index, "r") feats = h5f["database_1"][:] names = h5f["database_2"][:] h5f.close() img_paths = [] img_paths.append(img_path) query_feat = self.extract_feat(img_path) scores = np.dot(query_feat, feats.T) rank_id = np.argsort(scores)[::-1] rank_score = scores[rank_id] print("查找到以下图片") img_list = [] for i, index in enumerate(rank_id[0:3]): img_list.append(names[index]) img_path_in_db = "database/%s" % str(names[index], "utf-8") print("图片名称:%s,得分:%s" % (img_path_in_db, rank_score[i])) img_paths.append(img_path_in_db) self.show_imgs(img_paths) print("查找完毕\n") #提取图片的特征向量 def extract_feat(self, img_path): img = load_img(img_path, False, "rgb", target_size=(224, 224)) img = img_to_array(img) #扩展维度,因为preprocess_input需要4D的格式 img = np.expand_dims(img, axis=0) #对张量进行预处理 img = preprocess_input(img) feat = self.model.predict(img) norm_feat = feat[0] / LA.norm(feat[0]) return norm_feat def get_imglist(self, path): return [os.path.join(path, f) for f in os.listdir(path) if f.endswith(".jpg") or f.endswith(".jpeg") or f.endswith(".png") or f.endswith(".gif")] def show_img(self, img_path): query_img = mpimg.imread(img_path) plt.imshow(query_img) plt.show() def show_imgs(self, img_paths): fig = plt.figure(figsize=(12,4)) fig.canvas.manager.set_window_title("第一张为输入的搜索图,其余3张为搜索结果") for i,img_path in enumerate(img_paths): query_img = mpimg.imread(img_path) img_name = os.path.split(img_path)[1] ax = fig.add_subplot(2, 4, i + 1, xticks=[], yticks=[]) ax.set_title(img_name, color=("black" ), fontsize=6, ha="center") plt.subplots_adjust(wspace=0.05, hspace=0) plt.imshow(query_img) plt.show() if __name__ == "__main__": soutu2obj = soutu2() #soutu2obj.xunlian("database/") soutu2obj.chazhao("query/3.jpg")
训练:
搜索验证:
还挺好用
参考:
https://blog.51cto.com/captainbed/5572330
https://blog.csdn.net/starter_____/article/details/79340715
-
全球观焦点:(数据库系统概论|王珊)第十章数据库恢复技术-第四、五、六、七节:数据库恢复技术和数据库镜像
pdf下载:密码7281专栏目录首页:【专栏必读】(考研复试)数据库系统概论第五版(王珊)专栏学习笔记目...
来源: -
全球百事通!以图搜图实现
此次需要使用到的工具:IDE:eclipse,pydevPython:3 10Packages:Keras+TensorFlow+Pillow+NumpykerasKeras是一个高
来源: 全球观焦点:(数据库系统概论|王珊)第十章数据库恢复技术-第四、五、六、七节:数据库恢复技术和数据库镜像
全球百事通!以图搜图实现
每日播报!四步教会你如何画好流程图?
每日快播:华昌集团
全球聚焦:你几点睡?全国熬夜最狠城市揭晓:广东最牛 干这些行业的熬夜最多
金俊秀为什么叫细亚俊秀?金俊秀个人简介资料
已考上大学的简短四字祝福语有哪些?祝福前途似锦的古诗词有哪些?
强迫性动作属抑郁症吗?强迫性动作的自我疗法有哪些?
天天热点评!嫌弃之余,百度的这些搜索技巧真得会!
环球热议:EF7数据库提供者的自定义值生成器
全球热议:Use CMake notes
ArrayList和LinkedList的区别
咬甲癖是心理疾病吗?咬甲癖怎么治疗?
皮肤剥离强迫症是什么?皮肤剥离强迫症怎么治疗?
中移动董事长喊话中小学必学编程:还有委员喊话取消英语主科学了没用 你支持谁?
【世界快播报】最受欢迎的豪华中大型SUV 新款宝马X5实车亮相:国产必卖爆
湖北省“最强9万元补贴”蔓延 云南东风本田抄作业:直补6万
热点在线丨比Dev渠道更“快”!微软为Windows新增Canary测试渠道
全球观热点:砸130亿元 日本又失败!新主力火箭发射后自毁 日本专家谈落后中国多少年
焦点!【ES三周年】Elasticsearch安全配置详解
时讯:【MRTK】修改 HoloLens 应用的默认系统设置
新动态:开心档之Python3 面向对象
面试官要你介绍项目,怎么说?
每日速读!git的使用(一篇非常好的文章)
【快播报】老杜带你从零入门MyBatis,学MyBatis看这篇就够了!
bt种子是什么意思?bt种子怎么变成文件?
怎么查询手机号的号主姓名?怎么查询手机号用了多少年?
cpu怎么看性能参数?cpu检测软件哪个好?
车主称极氪001空调喷白粉末 官方回应:符合国标没有损害
世界今热点:育碧参与 巴黎圣母院加速修复:力争明年重新开放
世界速看:为什么小米手机不在美国卖?看完原因对雷军更有好感
天天快看:魅族20 Pro真机照出炉:“纽扣”四摄有意思
今日聚焦!《卧龙》超猛玩家穿着内裤打Boss 张梁吕布都无奈了
传真机是干什么用的?怎么发传真?
吉吉影音是什么?吉吉影音手机版离线缓存怎么用?
【世界播资讯】封装发送短信功能的封装过程
快报:什么是流程图?一篇文章就帮你搞定了
建立私人知识网站 cpolar轻松做到1 (部署DokuWiki)
热点!cad块属性定义及应用
叶辰是什么电视剧
环球观速讯丨迷惑行为!女司机给奥迪Q3加玻璃水:一股脑全倒进机油壶
天天热门:猪肉含量≥85% 一口全是肉:亚明猪肉烤肠2斤29.9元发车
全球最资讯丨看片、下载神器!四盘位NAS极空间Z4s史低价:2899元
世界即时:阿里影业总裁谈《长空之王》:展现了我们的意志力和信心
焦点!东风系疯狂补贴!雪铁龙、标致、本田大降价:12万能买C级轿车
天天简讯:长沙银行:向不特定对象发行可转债申请获上交所受理
全球百事通!tabby美观且实用的终端工具(windows/macos版 ,亲测有效!!!)
Spring6超全面教程,老杜带你玩转Spring6
更改windows桌面路径的教程
全球速读:亲测可用,ChatGPT 对话技巧
男子临时起意偷井盖 外卖小哥挺身而出上前制止
聚焦:N卡CPU占用率高的bug确认了 NVIDIA表态:即将修复
世界看点:中国著名雷达专家王小谟逝世 享年84岁
每天暴卖7000辆 但比亚迪的“卷杀”还没有要停下来的意思
世界关注:古巴一波音737客机撞鸟 引擎起火客舱浓烟弥漫
今日报丨开心档之Java 9 新特性
中信证券:海外锂价对国内出现明显溢价或对锂价形成支撑
全球快看:没商量余地!日本核污水排海将影响整个生物圈 海产品或都有辐射
《最后生还者》收视率再创新高
四川大学生组团去工地吃饭:13块随便吃 好吃又实惠
天天热文:浅谈基于Web的跨平台桌面应用开发
环球视讯!聊聊消息队列中的基础概念
今日热议:吉利汽车2月销量10.87万辆 极氪同比增长87% 可自主选择是否开启单踏板
全球信息:苹果iPhone掉熊窝被叼走 第一视角记录血盆大口
快报:荣耀赵明:苹果还是行业标杆 向苹果致敬 然后超越
环球快看:人口不断下降!一周工作时间增至69小时 韩国打工人也要迎来996
6g是什么概念
简讯:父母不给买鞋28岁女儿瞬间崩溃 跪地哀求200块都不给我花:网友感叹
天天新资讯:python-模块与包
男子在LV官网买包近2年未发货:最后商家取消订单
【快播报】男子挑战18元5片天价土豆火锅店:最后点了5盘土豆吃到崩溃
今日热讯:小伙早餐喝下20个生鸡蛋 网友:是个狠人 上一个这么喝的是周润发
环球热讯:弹幕也要放广告?!还能不能让人好好看剧了
视讯!避免延期发售?曝《GTA6》可能削减本体内容移到后续DLC
焦点热议:公称抗拉强度值_公称抗拉强度
教你用QQ邮箱如何发送文件
天天速看:南昌工学院开展“保护母亲河,争当河小青”净滩环保志愿活动
天天关注:收到背去世老人下楼订单?顺丰回应引围观 网友感叹这单也敢接
每日速读!拒绝ChatGPT后:苹果光速反悔
观众对《最后生还者》真人剧选角不满:女演员与想象不符
每日速讯:女子入职10天因老板娘不同意被开除:当事人感觉“很离谱”
2-高级特性
入门云原生,你需要了解的基础知识
俄罗斯国产新电脑启用!搭载自研8核ARM处理器、运行Linux定制系统
西班牙推出3D打印植物肉:模拟真肉口感
世界快消息!iOS从安卓抄来的这5个功能:苹果用户直呼真香?
世界快消息!学生免费领取7个月云服务器
每天吃的盐:一步步伤害你的身体
女子爱吃生腌海鲜:胆管长满活虫和虫卵
世界实时:iQOO Z7系列配置泄露:最高骁龙782G、支持120W闪充
精彩看点:地方融资平台
环球简讯:郑东新区“红立方·楼事会”荣获全市基层党建“十佳书记项目”
数据漂移问题及解决方案
全球新资讯:(数据库系统概论|王珊)第十章数据库恢复技术-第三节:故障种类
今日热搜:一次Java服务内存过高的分析过程
超划算!冷酸灵泵式牙膏5件套39元发车(送牙刷+漱口水)
天天热点!M.2 SSD秒变移动硬盘!酷冷至尊神钥Air图赏
焦点速讯:亚航被曝行李超重5公斤补收1807元:拍照被威胁不要上飞机
【全球新要闻】极氪官方二手车上线:不以盈利为目的 只收12万公里0事故车辆
精选!安卓“女皇”王雪红爆料苹果MR头显最快年中发布:HTC不担心竞争