• 大小: 10.08MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-08
  • 语言: 其他
  • 标签: 图像检索  VLAD  sift  

资源简介

基于局部视觉特征聚合的图像检索,用VLAD方法降低图像特征向量维数。

资源截图

代码片段和文件信息

clear; 
close all;
clc;
% 加载用于训练的sift描述子向量
load siftTrain.mat;

opts = statset(‘MaxIter‘300);
% 对每一段进行k-means聚类,k=16
[IdxC] = kmeans(siftDescriptorTrain‘16‘Options‘opts);
C = C‘;
% 加载每帧图像的sift特征
siftDim = 128;
allFiles = dir(‘test images‘);
SiftFeat = cell(201);
paraFeat = cell(201);
featNum = zeros(201);
fndex = cell(201);
nc = 0;
for i = 3 : length(allFiles)
    fileName = allFiles(i).name;
    if strcmp(fileName(end-5 : end) ‘.dsift‘) == 1
        nc = nc + 1;
        fndex{nc} = fileName;
        featPath = [‘./test images/‘ fileName];
        fid = fopen(featPath ‘rb‘);
        featNum(nc) = fread(fid 1 ‘int32‘);
        SiftFeat{nc} = zeros(siftDim featNum(nc)); 
        paraFeat{nc} = zeros(4 featNum(nc));
        for j = 1 : featNum(nc) 
            SiftFeat{nc}(: j) = fread(fid siftDim ‘uchar‘); 
            paraFeat{nc}(: j) = fread(fid 4 ‘float32‘);     
        end
        fclose(fid);
    end
end


v1 = cell(201);
vlad = zeros(20  128*16);
for i = 1 : 20
    minposition = zeros(1featNum(i));
    % 判断待匹配图像的每一个特征点各属于哪一类(基于上述相应的codebook进行量化)
    for j =1 : featNum(i)
        tmpFeat = repmat(SiftFeat{i}(:j)116);
        d1 = sum((tmpFeat - C).^2); % distance
        minposition(j) = find(d1==min(d1));
    end
    v1{i} = zeros(12816);
    
    for j =1 : featNum(i)
        v1{i}(:minposition(j)) = v1{i}(:minposition(j)) + SiftFeat{i}(:j) - C(:minposition(j));
    end

    vlad(i:) = reshape(v1{i}1128*16);    
end

% 将每幅图像作为查询图像,计算与其余19幅图像的距离
dist = zeros(2020);
for i = 1 : 20
    for j = i+1 : 20
        dist(ij) = sum((vlad(i:)-vlad(j:)).^2);
        dist(ji) = dist(ij);
    end
end

v = zeros(2020);
ind = zeros(2020);
% 距离从小到大排序
[v(1 : 20:) ind(1 : 20:)] = sort(dist(1 : 20:)  2);
% 取前4个
ind = ind(:2:5);

index = zeros(201);
for i = 1 : 20
    fndex{i} = fndex{i}(end-14 : end-10);
    index(i) = str2double(fndex{i});
end

% 统计排在前4的图像中的相关图像的数目
count = zeros(201);
for i = 1 : 20
    tmp = floor(index(i)/4);
    for j = 1 : 4
        if floor(index(ind(ij))/4) == tmp
            count(i) = count(i) + 1;
        end
    end
end
% 算平均值
mean(count)
    






 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-11-15 15:42  test images\
     文件      243673  2013-12-05 23:17  test images\ukbench00000.jpg
     文件      696244  2014-03-16 05:45  test images\ukbench00000.jpg.dsift
     文件      246526  2013-12-05 23:17  test images\ukbench00001.jpg
     文件      545332  2014-03-16 05:45  test images\ukbench00001.jpg.dsift
     文件      218653  2013-12-05 23:17  test images\ukbench00002.jpg
     文件      741028  2014-03-16 05:45  test images\ukbench00002.jpg.dsift
     文件      269422  2013-12-05 23:17  test images\ukbench00003.jpg
     文件      674068  2014-03-16 05:46  test images\ukbench00003.jpg.dsift
     文件      152703  2013-12-05 23:17  test images\ukbench00012.jpg
     文件      154228  2014-03-16 05:46  test images\ukbench00012.jpg.dsift
     文件      155830  2013-12-05 23:17  test images\ukbench00013.jpg
     文件      154948  2014-03-16 05:46  test images\ukbench00013.jpg.dsift
     文件      175983  2013-12-05 23:17  test images\ukbench00014.jpg
     文件      103828  2014-03-16 05:46  test images\ukbench00014.jpg.dsift
     文件      168753  2013-12-05 23:17  test images\ukbench00015.jpg
     文件      107284  2014-03-16 05:46  test images\ukbench00015.jpg.dsift
     文件      153642  2006-10-05 01:11  test images\ukbench00052.jpg
     文件      140404  2014-03-16 05:47  test images\ukbench00052.jpg.dsift
     文件      160703  2006-10-05 01:11  test images\ukbench00053.jpg
     文件      149332  2014-03-16 05:47  test images\ukbench00053.jpg.dsift
     文件      144807  2006-10-05 01:11  test images\ukbench00054.jpg
     文件      153508  2014-03-16 05:47  test images\ukbench00054.jpg.dsift
     文件      151801  2006-10-05 01:11  test images\ukbench00055.jpg
     文件      139252  2014-03-16 05:47  test images\ukbench00055.jpg.dsift
     文件      172114  2006-10-05 01:11  test images\ukbench00080.jpg
     文件      114628  2014-03-16 05:48  test images\ukbench00080.jpg.dsift
     文件      181878  2006-10-05 01:11  test images\ukbench00081.jpg
     文件      135940  2014-03-16 05:48  test images\ukbench00081.jpg.dsift
     文件      154145  2006-10-05 01:11  test images\ukbench00082.jpg
     文件      162436  2014-03-16 05:48  test images\ukbench00082.jpg.dsift
............此处省略13个文件信息

评论

共有 条评论