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
reason
field):
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.