惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
大猫的无限游戏
大猫的无限游戏
S
Secure Thoughts
美团技术团队
Security Latest
Security Latest
月光博客
月光博客
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Simon Willison's Weblog
Simon Willison's Weblog
V
Vulnerabilities – Threatpost
N
News | PayPal Newsroom
T
Tailwind CSS Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Webroot Blog
Webroot Blog
L
LINUX DO - 最新话题
博客园 - Franky
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
云风的 BLOG
云风的 BLOG
L
Lohrmann on Cybersecurity
Apple Machine Learning Research
Apple Machine Learning Research
Attack and Defense Labs
Attack and Defense Labs
TaoSecurity Blog
TaoSecurity Blog
MyScale Blog
MyScale Blog
C
Cisco Blogs
P
Proofpoint News Feed
N
News and Events Feed by Topic
S
SegmentFault 最新的问题
N
News and Events Feed by Topic
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
P
Privacy & Cybersecurity Law Blog
NISL@THU
NISL@THU
P
Palo Alto Networks Blog
GbyAI
GbyAI
Project Zero
Project Zero
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Heimdal Security Blog
IT之家
IT之家
Stack Overflow Blog
Stack Overflow Blog
Schneier on Security
Schneier on Security
T
The Exploit Database - CXSecurity.com
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Application and Cybersecurity Blog
Application and Cybersecurity Blog
A
Arctic Wolf

See you soon

哟,好久不见,无线打印 | See you soon 试试将文章版本化管理吧 | See you soon 使用 Quadlet 将 Podman 中的 Postgres 当作 systemd 服务运行 | See you soon 大他者,那个无时无刻都在盯着你的东西 | See you soon Laws of Software Engineering,软件工程定律 | See you soon 浅记多因素身份认证 | See you soon Linux 内核中的度量单位 | See you soon 重置 GPG 智能密钥 | See you soon 向 NAS 引入 samba | See you soon 无法重复键入的 Fcitx5 | See you soon ZFS 降级事故 | See you soon 记被 XanMod Kernel 和 AppArmor 联合坑的一次踩坑 | See you soon agent 的 skill 与 toolcall | See you soon 记一次服务器被挂恶意挖矿二进制 | See you soon 活着的 Arc | See you soon 令 acme.sh 使用 Cloudflare 的 DNS API 签发与续签证书 | See you soon 于 Tokio 中卸载 CPU Bound 任务 | See you soon 如我所见,梦破碎的时候 | See you soon 74LS 家族手册 | See you soon JDK Projects 备忘录 | See you soon 关于历史 | See you soon 用 curl 下载 OnePlus 的 ROM | See you soon 实用命令切片 | See you soon 再见,Oh My Zsh。 | See you soon 你不应该复用 strings.Builder | See you soon 博客的明日 | See you soon 被 AppArmor 击杀的 Dockge | See you soon AI 时代的自我 | See you soon 支持删除的布隆过滤器 | See you soon 基于栈的虚拟机与基于寄存器的虚拟机 | See you soon RVA23 包含了什么 | See you soon Rust 的边界检查是否已经有很大的进步 | See you soon 使用 Rust 编写操作系统:Barebones | See you soon 使用 Rust 编写操作系统:引言 | See you soon 编译器笔记:rope | See you soon 编译器笔记:CST | See you soon Paradoxical 札记 | See you soon 简单的相似去重算法(基于向量) | See you soon 更加现代的 PaperMC Minecraft 插件设计指南 | See you soon 简单的 CFG 语法分析方法 | See you soon 简单地使用 Caddy 实现 CORS 配置 | See you soon 让 OpenCV 可以被静态链接 | See you soon 电路板设计笔记-保护 | See you soon 使用 Rust 实现 SnowflakeId | See you soon 农夫乐事 FaQ 启示 | See you soon 使用 Rust 实现拓展系统札记 | See you soon 遗传学定律的代码实现 | See you soon EN:The Journey of Rust and Procps | See you soon ZH:Rust 与 Procps 之旅 | See you soon 使用 debootstrap 与 schroot 构建一个纯净环境 | See you soon GPG添加新的用户信息 | See you soon GSoC2024 笔记:使用 Rust 重新实现 procps | See you soon JWT 小册 | See you soon 使用密钥登录 SSH | See you soon Guava:Cache | See you soon 编译器笔记:增量编译 | See you soon Gradle秘境:添加一个类似modCompileOnly的依赖块 | See you soon Minecraft:原始经济系统设计简述 | See you soon TinyRemapper笔记 | See you soon MicroOS:进阶 | See you soon MicroOS:起步 | See you soon Swapfile 指北 | See you soon GPG 物理密钥的安装与密钥的迁移 | See you soon 用GPG签名告诉大家这就是我的提交 | See you soon DFS:深度优先搜索 | See you soon 文章翻译:从init.vim到init.lua | See you soon 目录遍历攻击 | See you soon 如何挂载.img文件,以及如何使用QEMU模拟arm64环境 | See you soon 在树莓派上编译 OpenCV | See you soon 关于卸载BlueStacks后遇到的问题 | See you soon
图片搜索笔笺 | See you soon
Krysztal Huang · 2024-12-27 · via See you soon

图片搜索笔笺

这篇文章只是简单笔记,具体实现方式不作细致讨论

相似图合并实现

相似图合并组合了如下几种方案

  • 通过向量数据库搜索相似图
  • 通过文件哈希搜索相似图片
  • 通过灰度哈希搜索相似图片

通过向量数据库搜索相似图

该方案已应用于相似图搜索,因此该方案为主要搜索手段

在使用向量数据库搜索相似图片时涉及到向量距离的问题,我们可以认为两张图的特征向量距离越近则越相似。

该方案可以提取一张图的所有内容相似的图片。对于连续相似的 100 张图片序列而言,假设其每张图片向量特征距离为 0.01,那么在向量距离为 0.1 之下则均会被搜索出来

原理解释

在下文我们使用该方式来表达一组序列:{A..n}(x) 其中{A..n}代表图片的下标,(x) 代表该图片距离当前序列的参考向量的距离。

假设我们这组序列总共有两百张图片(换句话来讲,数据库中总共 200 张),并且每张图片之间的向量距离以 0.01 递增

A000(0.00) A001(0.01) A002(0.02) A003(0.03) A004(0.04) ... A100(0.10) ... A200(0.20)

考虑到我们的距离参数为 0.1,则以数据库中第一张图片 A000 开始搜索,那么我们会得到如下结果:

[0]:{A001, A002, ..., A100},

[1]:{A101, A102, ..., A200},

若我们将距离参数设置为 0.5,则以数据库中第一张图片 A000 开始搜索,那么我们会得到如下结果:

[0]:{A001, A002, ..., A050},

[1]:{A051, A052, ..., A100},

[3]:{A101, A102, ..., A150},

[4]:{A151, A152, ..., A200},

参与过的图片不会再参与搜索,他们会被排除掉。

问题

该方案依赖于数据库所有的图片均被训练,对于大批量数据极其有效并且快速。

但该方案需要图片已经被训练提取过特征,假如图片数量过大则需要等待图片训练完成才可能获得其向量,对用户的体验影响较为明显

因此需要引入一种效果略差但能提升用户体验的方案,以哈希为标准的查重方法。

通过文件哈希合并图片

该方案依赖于入库时计算对应的哈希,该方案能在用户关闭 AI 训练的前提下提供一定的去重查重能力。

但该方法受到图片的编码、色彩、大小等影响,因此提供的查询有限。但依然可以作为一种查询方式。

通过图片灰度特征查找相似图片

通过图片灰度特征查找相似图片是一种较为传统的方式——该方式对性能要求较低但依然需要入库时计算该图片的灰度特征哈希。

在对图片处理得出一定大小的灰度图后处理得到灰度特征,然后存入数据库内保留以备以后使用。

缺陷

由于搜索图片的灰度特征需要使用汉明距离(Hamming Distance),如果要对所有入库的图片进行高效搜索那么需要数据库提供对应的支持。使用 SQLite 则完全不支持汉明距离。