相似图片搜索算法介绍
前言
之前对图片聚类有一丢丢的研究,最近发现,使用一些相似图片搜索算法也可以实现图片聚类的目标:将同类别或差不多的图片聚在一起。所以整理出相似图片搜索算法介绍这篇文章,主要介绍AutoEncoder、based CNN、Hash等算法,细分又包括:AutoEncoder、Siamese Network、2-channel、Central-surround two-stream network、aHash、pHash、dHash等算法。
AutoEncoder
Based CNN
Siamese Network
2-channel
Central-surround two-stream network
SSP
Hash Method
aHash
步骤:
1.缩放图片:为了保留结构去掉细节,去除大小、横纵比的差异,把图片统一缩放到8*8,共64个像素的图片。
2.转化为灰度图:把缩放后的图片转化为256阶的灰度图。
3.计算平均值: 计算进行灰度处理后图片的所有像素点的平均值。
4.比较像素灰度值:遍历灰度图片每一个像素,如果大于平均值记录为1,否则为0.
5.得到信息指纹:组合64个bit位,顺序随意保持一致性即可。
6.对比指纹:计算两幅图片的指纹,计算汉明距离(从一个指纹到另一个指纹需要变几次),汉明距离越大则说明图片越不一致,反之,汉明距离越小则说明图片越相似,当距离为0时,说明完全相同。(通常认为距离>10 就是两张完全不同的图片)
pHash
步骤:
1.缩小图片:32 * 32是一个较好的大小,这样方便DCT计算
2.转化为灰度图:把缩放后的图片转化为256阶的灰度图。(具体算法见平均哈希算法步骤)
3.计算DCT:DCT把图片分离成分率的集合
4.缩小DCT:DCT是32*32,保留左上角的8*8,这些代表的图片的最低频率
5.计算平均值:计算缩小DCT后的所有像素点的平均值。
6.进一步减小DCT:大于平均值记录为1,反之记录为0.
7.得到信息指纹:组合64个信息位,顺序随意保持一致性即可。
8.对比指纹:计算两幅图片的指纹,计算汉明距离(从一个指纹到另一个指纹需要变几次),汉明距离越大则说明图片越不一致,反之,汉明距离越小则说明图片越相似,当距离为0时,说明完全相同。(通常认为距离>10 就是两张完全不同的图片)
dHash
步骤:
1.缩小图片:收缩到9*8的大小,一遍它有72的像素点
2.转化为灰度图:把缩放后的图片转化为256阶的灰度图。(具体算法见平均哈希算法步骤)
3.计算差异值:dHash算法工作在相邻像素之间,这样每行9个像素之间产生了8个不同的差异,一共8行,则产生了64个差异值
4.获得指纹:如果左边的像素比右边的更亮,则记录为1,否则为0.
参考资料
相似图片搜索算法介绍相关推荐
- 图片文字介绍滑动效果代码介绍
代码 链接 结果展示 代码 <!DOCTYPE html> <html lang="en"><head><meta charset=&qu ...
- LPA* 路径搜索算法介绍及完整代码
1.简介 LPA*算法(全称Lifelong Planning A*算法)是由Koenig和Likhachev在2004年提出的,是一种参考人工智能的增量搜索进行改进的A*算法.它被用来处理动态环境下 ...
- 一维搜索算法介绍及其实现
一维搜索算法介绍及其实现 当进行优化算法实现时.一般都要进行一系列如下格式的迭代运算 x(k+1) = x(k) + a(k) *s(k),其中s(k)是变量变化的方向,而a(k)可以确定变量变化的大 ...
- 科讯CMS--使用sql标签在商品内容页调用品牌详情,如品牌名称,图片,介绍等...
使用sql标签在商品内容页调用品牌详情,如品牌名称,图片,介绍等 转自:http://hi.baidu.com/wufeng20128/item/f3a69295016a08df1a49df38 sq ...
- Bitmap.Config 属性详解及不同格式图片区别介绍
博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此 博主:威威喵 | 博客主页:https://blog.csdn.net/ ...
- 20X46 FCPX模板美好回忆电子相册图片文字介绍展示Past Memories
20X46 FCPX模板美好回忆电子相册图片文字介绍展示Past Memories [插件介绍] FCPX模板-美好回忆照片墙电子相册图片文字介绍展示 Past Memories + 使用教程,时长1 ...
- 工业互联网---人工智能技术-仿谷歌图片搜索算法SimilarImageSearch
仿谷歌图片搜索算法SimilarImageSearch,汉明距离 import com.datac.opencv.domain.ImgInfo; import com.datac.opencv.uti ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- 【转载】选择性搜索算法介绍——Selective Search
RCNN中提出了SS算法用于初步产生2k左右的候选框,最开始觉得这个算法很普通,和滑动窗口这类的笨方法一样.然而现在发现并不是这样,这个方法很精巧,其中包含的图像相似度计算似乎还能用到其他地方.这一切 ...
- redmine 图片_redmine介绍
一.基本介绍 Redmine是一个开源的.基于web的项目管理和缺陷跟踪工具.它用日历和甘特图辅助项目及进度可视化显示,同时它支持多项目管理.Redmine是一个自由开放源码软件的解决方案,它提供集成 ...
最新文章
- 作业要求 20181127-1 附加作业 软件工程原则的应用实例分析
- [MetalKit]34-Working-with-memory-in-Metal内存管理
- armv8/armv9页表属性(page descriptor)的详细介绍
- 初学__Python——Python数据类型之列表和元组
- linux 串口工具_Zynq下linux系统搭建
- shiro框架采取MD5+salt方式加密密码
- python 创建json_使用Django和Python创建Json response的方法
- PAT (Basic Level) 1091 N-自守数(模拟+stl)
- 华为鸿蒙全能家居,能兑现多少?华为智慧屏十年不过时,用鸿蒙理念做智能家居...
- python每隔30s检查一次_用Python写一个“离线语音提示器”来提醒我们别忘记了时间...
- react学习(4)----两个全选中就是key值一样了
- sphinx (coreseek)——2、区段查询实例
- Voovan网络编程介绍
- android 模拟蓝牙,【android 模拟器支持蓝牙】 CSDN
- android在体检报告叫什么,体检报告检测分析app
- 雄迈视频板使用调试串口作为普通串口通信
- java毕业设计鞋类秒杀商城Mybatis+系统+数据库+调试部署
- /usr/bin/xauth: file /home/wj/.Xauthority does not exist
- java软连接_硬链接和软连接
- pulsesensor传感器以及STM32相关学习笔记
热门文章
- SpringBoot官方文档学习
- 文本分类——怎么将二分类模型应用到多分类问题?
- 101 200 之间的素数
- python数字图像处理——边缘检测算子(Laplacian算子、Roberts算子、Prewitt算子和Sobel算子)
- vscode中文vsix_离线安装vscode vsix插件
- 高级电工、模电、数电、电力拖动实验室成套设备
- Redis缓存——快速入门
- 【UE4】UE4蓝图基础
- 手机版qq邮箱一直连接服务器失败,手机qq邮箱网页版无法登录 求高手 QQ邮箱登不上去 显示找不到服务器15?请问我咋用不...
- 一句话说明sync, fsync, fdatasync的区别