Caltech Pedestrian Dataset数据集的annotations就是以.vbb保存的,但是我们实际运用中一般都是保存为.txt文件或者.xml文件的格式,这就给我们带来了很大的不便性,Caltech Pedestrian Dataset数据集matlab代码下载:点击打开链接,下面的代码调用到了该链接的内容。结合Caltech Pedestrian Dataset数据集中给出的matlab代码,这里是对INRIA DataSet数据集进行操作。想必做行人检测接触过INRIA这个数据集的都知道,该数据集一个明显的缺点就是标签不够完整,训练集中有一部分行人是没有标签的,这在一定的程度上对模型训练很产生较大的影响。下面的链接对INRIA数据集进行了进一步的标签补充,可以自行下载:点击打开链接,可惜的是其标签保存形式亦为.vbb的形式。本博文主要是针对INRIA数据集的改进标签的.vbb文件转换为.txt文件。
%func: main.m
vbb2txt('InriaNewTrainingLabels.vbb','TrainingLabels.txt');
vbb2txt('InriaNewTestLabels.vbb','TestingLabels.txt');
%-------------------------------------------------------
%vbbName:需要转换的.vbb名称,txtName为转换后保存的.txt名称
%func: vbb2txt.m
%-------------------------------------------------------
function vbb2txt(vbbName,txtName)
vPath = 'F:\za\Model\pedestrain\INRIAPerson';
finalPath = [vPath,vbbName]%.vbb文件的路径
outpath = 'F:\za\Model\pedestrain\INRIAPerson\annotations';%保存路径
disp(finalPath);
A = vbb( 'vbbLoad', finalPath);
c = fopen([outpath,'\',txtName],'w')
for i = 1:A.nFrame
iframe = A.objLists(1,i);
iframe_data = iframe{1,1};
n1length = length(iframe_data);
for j = 1:n1length
iframe_dataj = iframe_data(j);
if iframe_dataj.pos(1) ~= 0 %pos posv
fprintf(c,'%d %f %f %f %f\n', i, iframe_dataj.pos(1),...
iframe_dataj.pos(2),iframe_dataj.pos(3),iframe_dataj.pos(4));
end
end
end
若有不当之处,望指教,谢谢!