forked from ZouCheng321/fusion_kitti
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreadTracklets.m
70 lines (49 loc) · 2.37 KB
/
readTracklets.m
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
function tracklets = readTracklets( filename )
% READTRACKLETS reads annotations from xml-files
%% read Document Object Model (DOM)
try
dom = xmlread(filename); % document node (the complete tree)
catch
error('Failed to read XML file %s.',filename);
end
%% Extract tracklets
allTracklets = dom.getElementsByTagName('tracklets'); % DeepNodeList
trackletsElement = allTracklets.item(0); % DeferredElement
objIdx = 1; % object index
for i = 0:trackletsElement.getChildNodes.getLength-1 % all children of 'tracklets'
element = trackletsElement.getChildNodes.item(i);
attributes = element.getAttributes();
if ~isempty(attributes)
%fprintf('No attributes\n')
%else
%fprintf('found: %s\n',char(element.getTagName))
if strcmp(element.getTagName,'count') % number of expected objects
count = str2double(element.getFirstChild.getData);
tracklets = cell(count,1); % init tracklets cell
%fprintf( '%d\n', count );
% print out version info
% elseif strcmp(element.getTagName,'item_version') % meta-data
% fprintf( '%d\n', str2double(element.getFirstChild.getData) );
elseif strcmp(element.getTagName,'item') % a tracklet
tracklet.objectType = ...
char(element.getElementsByTagName('objectType').item(0).getTextContent);
tracklet.h = str2double(element.getElementsByTagName('h').item(0).getTextContent);
tracklet.w = str2double(element.getElementsByTagName('w').item(0).getTextContent);
tracklet.l = str2double(element.getElementsByTagName('l').item(0).getTextContent);
tracklet.first_frame = ...
str2double(element.getElementsByTagName('first_frame').item(0).getTextContent);
poses = element.getElementsByTagName('poses').item(0);
tracklet.poses = extractPoses(poses);
tracklet.finished = ...
str2double(element.getElementsByTagName('finished').item(0).getTextContent);
% echoTracklet(tracklet);
tracklets{objIdx} = tracklet;
objIdx = objIdx+1;
end
end
end
% plausibility check
if count ~= objIdx-1
fprintf(2,'number of tracklets (%d) does not match count (%d)!',objIdx,count);
end
end