Skip to content

Body tracking algorithm#

Body tracking algorithm differs from the faces one. Tracker feature isn't used at all, only detect/redetect are used. For matching tracks with new detections IOU metrics is used as well. The parameter human:iou-connection-threshold is used for threshold. For better tracking accuracy the ReIdentification feature is used to merge different tracks of one human (for ReIdentification details see the next section).

For face tracking algorithm when detect/redetect fails, then track is updated with tracker, but for body tracking in that case (or under some other conditions) it moves to the group of inactive tracks. Tracks from this group are invisible for all observers and they don't participate in common tracking processing except of ReId.

Note, that the parameter skip-frames doesn't affect on body tracking algorithm. Body tracks are finished according to their own logic. Now there is only one case, when trackEnd is called for body track (see TrackEndCallbackData reasonfield): inactive track is finished by timeout set by config parameter human:inactive-tracks-lifetime. Value of inactive-tracks-lifetime should be greater than reid-matching-detections-count.

Some algorithm notes and parameters relation. After detect/redetect all found detections are filtered by some conditions: - Overlapped detections may be removed. For overlapping estimation IOU metric is used. If IOU is higher than threshold parameter other:kill-intersection-value, then no one, both or detection with lower detection score is removed from further processing, depending on parameter remove-overlapped-strategy. - detections, considered to be horizontal are removed. remove-horizontal-ratio sets detection width to height ratio threshold, used for removing horizontal detections.