I'm running a multi-object tracking script and I'm looking to implement parallel processing for one of my functions.
The problem is MATLAB only allows one to implement parfor when all indexes in a loop is done in terms of the loop variable. What I'm wondering is if anyone sees a way, provided all my assignments are unique, to implement parfor in the below function. I would greatly appreciate any help with this.
function tracks_Out = updateAssignedTracks(tracks, centroids, bboxes, assignments) tracks_Out=tracks; numAssignedTracks = size(assignments, 1); for i = 1:numAssignedTracks trackIdx = assignments(i, 1); detectionIdx = assignments(i, 2); centroid = centroids(detectionIdx, :); bbox = bboxes(detectionIdx, :); % Correct the estimate of the object's location
% using the new detection.
correct(tracks_Out(trackIdx).kalmanFilter, centroid); % Replace predicted bounding box with detected
% bounding box.
tracks_Out(trackIdx).bbox = bbox; % Update track's age.
tracks_Out(trackIdx).age = tracks_Out(trackIdx).age + 1; % Update visibility.
tracks_Out(trackIdx).totalVisibleCount = ... tracks_Out(trackIdx).totalVisibleCount + 1; tracks_Out(trackIdx).consecutiveInvisibleCount = 0; end end
Best Answer