NvDCF Tracker - what does useColorNames parameter do?

useColorNames: 0 # use ColorNames feature

This parameter is provided in the sample tracker config files but is not documented in the Deepstream 5.0 SDK Guide. Can anyone provide some more info on how to use it and how it can make the tracker better?

• Hardware Platform (Jetson / GPU) ALL
• DeepStream Version DS5.0


There are two visual features that NvDCF tracker uses: one is ColorNames and the other is Histogram of Oriented Gradient (HOG). You can disable one of the visual features like useColorNames: 0 or useHog: 0.

So you can only use one at a time?

You can choose either or both.

1 Like

Thanks @Amycao.

And what do these feature extractors do? Can you point me to any documentation since the source is not available?

Under what circumstances is it best to use HOG and under what circumstances is it best to use Colors and under what circumstances is it best to use both?

1 Like


I asked a similar question, but like you i would like to understand in more detail.

This was @pshin answer

NvDCF tracker color features (e.g., ColorNames) and directional edge features (e.g., HOG) and uses correlation filter to localize the target. The visual similarity score reflects how much the tracker believes the target is at a particular location. When the background is cluttered and has similar features, it is possible that the tracker can yield a high confidence on a non-target location.

In my tests, i’ve noticed it turning off colorspace is beneficial when using the camera is in IR mode (at night). Also ive noticed that wearing a white shirt, with a white background can cause unique_id switching issues when the colorspace on.

As for the hog classifier, i’m not completely sure. It is slightly frustrating not knowing the circumstances that these options perform best in. For now i guess we need to just share our experiences with the trackers behavior to fill in the knowledge gap. I’m sure the documentation will be updated soon to answer some of our questions.

[Deepstream 5.0 nvdcf tracker behavior - #9 by rsc44]

My testing with a person walking around and being partially occluded with a very busy background shows much better accuracy when using ColorNames which is great.

Hello rsc44 and jason,

HOG is the edge features. So if your target has distinct edge features (e.g., human or vehicles) compared to the background, then it would be a good feature to use. Typically, strong edge features on targets around simple background is the best environment where HOG features works well.

For ColorNames, it would be ideal if the target has distinct colors compared to the background or other objects. Color features works well even in the case of complex background with targets that have simple textures.

So, HOG and ColorNames are quite complementary visual features. When both of them are used, NvDCF automatically decides weights for both visual features depending on the discriminative power against background.

1 Like