先把最后的问题提前:有没有减少循环的方法?
图 A,图集 B,从 B 中找 A 相似
图集 B,千万级,数据库,有字节、CRC32 、以及一些 image hash 数据等字段
要实现上述需求是否只有乖乖的逐个算?有没有偷懒(省点算力)的方法?
图 A,图集 B,从 B 中找 A 相似
图集 B,千万级,数据库,有字节、CRC32 、以及一些 image hash 数据等字段
要实现上述需求是否只有乖乖的逐个算?有没有偷懒(省点算力)的方法?
|
jtacmJul 1, 2020
1
kd tree
ball tree |
|
jtacmJul 1, 2020
2
approximate nearest neighbor search
|
|
GMJul 1, 2020
3
必然有快速算法,买下整个全世界服务器都不够 google 用
|
|
ddgwebJul 1, 2020
4
有,和搜索引擎思路一样,提前编码索引,然后对比交叉直接对比索引,和你图片没有关系了,哪怕你单张图片有 20M,识别只要 0.0001s
|
|
azcvczaJul 1, 2020
5
应该是会把整个图片矩阵算出一个特征值,然后根据特征值匹配的吧。应该不会实时跑矩阵相似运算的吧
|
|
zjsxwcJul 1, 2020
6
图片提取特征后,计算图片特征矩阵之间的距离范数应该没有多大计算量,真的数据量大了就加机器呗
|
|
triptipstopJul 1, 2020
7
请参见,机器学习,特征工程。
|
|
zjsxwcJul 1, 2020
8
而且可以先对 B 集里面每个图片归类,比如 B 集下面 可以有 猫、狗、人,鱼这 4 个归类的代表特征矩阵, 要搜索 A 时先 让 A 与 4 个归类的代表特征矩阵比较,然后再在最像的 归类下的 图片 比较;
类似的,对归类 再归类,这样多分几个层次,运算量就小下来了。 |
|
TromsoJul 1, 2020
9
关键词 simhash, faiss
|
|
zjsxwcJul 1, 2020
10
这归类的归类的 N 层分类,
可以 工程上, 定期,抽取 M 个随机图片 作为 第一级 归类的 M 个 代表特征矩阵, 然后 在 在 每个 归类特征 下 统一的方式 构建 第二级 归类, 其实就是索引了 |
|
MorriatyJul 1, 2020
11
抽象出的问题是 ANN (approximate nearest neighbor), 一般方法有
- LSH and multiprobe LSH for euclidean distance - partition trees for euclidean/cosine distance - clustering-based approaches, including product quantization python 的话就直接调用 annoy |
|
ruanimalJul 2, 2020
12
有,图库的图片先算好 simhash 或者 briefhash
|