-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHowToUse
30 lines (19 loc) · 3.07 KB
/
HowToUse
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
可扩展的图像检索平台
该平台主要有以下组成部分:
1、特征提取器:
其中包括8种特征:颜色直方图、颜色相关图、颜色一致性向量、颜色矩、LBP纹理、Gabor纹理、方向梯度直方图、边缘方向直方图。
每种特征提取器都有CPU和CUDA两个版本。因担心不同硬件配置不便,所以CUDA版本默认是不编译的:
make只编译CPU版
make all编译CPU和CUDA版,这里只开了四个CUDA版的(Makefile控制)
2、调度器:
Crawler:该程序从图像库读取一定数量的图片后,放入处理文件夹供Executavor使用。它模拟的是爬虫功能,因为个人计算机性能有限,所以仅仅用了1000张图片。但是从设计上来说Crawler可以不断更新图片,只要图像库中有新的图片。当Executavor未读取图片时,该程序阻塞。
Executavor:该程序读取Crawler放进处理文件夹中的图片,并用指定的特征提取器提取特征,之后存到特征数据库。其中要说明的是,特征提取器的选择在config.cfg中指定(默认全开),config.cfg中还有一些其他设置,后面再说。另一点,每个特征提取器都把图片特征存到了单独的数据库中。
Booster:该程序读取Executavor生成的各个数据库,计算数据库中每个图片最相似的Top-K张,然后存到cache数据库中,这样可以极大的加快查询速度。该程序在读数据库时会先备份数据库然后用备份数据库进行操作,以免Booster和Executavor同时读写时影响性能。
Publisher:该程序输入为图片和所用的特征提取器。它首先去相应的cache数据库中查找,若图片存在(因时间有限,现在用的文件名、以后改用Hash避免重名问题),则表明命中,直接输出cache数据库中的Top-K个图片;未命中则继续去Executavor生成的原始特征数据库中计算得出。
config.cfg:配置文件。其中可以设置平台要启用的特征提取器;可以设置Top-K的大小;设置batch的大小,也就是因为这四个调度程序都是积累够一定的数据之后才更新,batch太小磁盘读写太频繁,batch太大则会导致最终的cache数据库更新缓慢。这点要说明一下,在这些程序全部启动之后,就可以进行查询了,但效果不好,因为数据还不够多,但是随着图片越来越多,最终的cache一直在变动。
2.5、我们先等它算,后面再继续。
3、基于django的Web演示:
权重:8个特征的权重可以随意指定叠加,让检索更有针对性。比如:手绘图用纹理类就比颜色类效果好的多。这里系统在后台调用Publisher来计算,对每个指定的特征,都返回一组Top-K结果,然后在由权重综合得出最终的Top-K
库内检索:比如某图片特征已经提取好了,那么给出文件名,便可迅速得到结果,这就是cache数据库的好处
新图检索:这时将会去原特征数据库计算,可以感觉出来要比库内检索慢。这里我们来用手绘图检索一下。
:)