1
jtacm 2020-07-01 14:35:08 +08:00
kd tree
ball tree |
2
jtacm 2020-07-01 14:36:33 +08:00
approximate nearest neighbor search
|
3
GM 2020-07-01 15:33:56 +08:00
必然有快速算法,买下整个全世界服务器都不够 google 用
|
4
ddgweb 2020-07-01 15:49:39 +08:00
有,和搜索引擎思路一样,提前编码索引,然后对比交叉直接对比索引,和你图片没有关系了,哪怕你单张图片有 20M,识别只要 0.0001s
|
5
azcvcza 2020-07-01 16:14:38 +08:00
应该是会把整个图片矩阵算出一个特征值,然后根据特征值匹配的吧。应该不会实时跑矩阵相似运算的吧
|
6
zjsxwc 2020-07-01 16:48:39 +08:00
图片提取特征后,计算图片特征矩阵之间的距离范数应该没有多大计算量,真的数据量大了就加机器呗
|
7
triptipstop 2020-07-01 16:52:01 +08:00
请参见,机器学习,特征工程。
|
8
zjsxwc 2020-07-01 16:56:43 +08:00
而且可以先对 B 集里面每个图片归类,比如 B 集下面 可以有 猫、狗、人,鱼这 4 个归类的代表特征矩阵, 要搜索 A 时先 让 A 与 4 个归类的代表特征矩阵比较,然后再在最像的 归类下的 图片 比较;
类似的,对归类 再归类,这样多分几个层次,运算量就小下来了。 |
9
Tromso 2020-07-01 16:57:43 +08:00
关键词 simhash, faiss
|
10
zjsxwc 2020-07-01 17:01:45 +08:00
这归类的归类的 N 层分类,
可以 工程上, 定期,抽取 M 个随机图片 作为 第一级 归类的 M 个 代表特征矩阵, 然后 在 在 每个 归类特征 下 统一的方式 构建 第二级 归类, 其实就是索引了 |
11
Morriaty 2020-07-01 17:10:47 +08:00
抽象出的问题是 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 |
12
ruanimal 2020-07-02 10:25:02 +08:00
有,图库的图片先算好 simhash 或者 briefhash
|