Object Labeling in the Camera SDK

Post Reply
karrer
Posts: 2
Joined: Mon Jan 20, 2014 6:41 am

Object Labeling in the Camera SDK

Post by karrer »

While trying to get reliable object labels from the SDK, I found two modules that seem to be there for just this purpose: moduleactivelabel and modulepoorlabel.

1)
The first problem is that when I try to #include moduleactivelabel.h, the compiler gives an error that cTrajectorizer2D is undefined. Looking at the header, this turns out to be true: moduleactivelabel.h defines a subclass of cTrajectorizer2D and includes trajectorizer2d.h but the latter is empty in my copy of the SDK.

Am I missing some crucial step here?

2)
Also, any documentation on these labeler classes is missing. I gathered that the "poor" labeler basically does nothing and just fills in the label iVar of all objects in their order of arrival. The active labeler hopefully performs some kind of multi-model kalman tracking to give consistent labels to all objects.

Does anybody know what the active labeler is doing exactly?


Thanks for any help,
Thorsten
beckdo
Posts: 520
Joined: Tue Jan 02, 2007 2:02 pm

Re: Object Labeling in the Camera SDK

Post by beckdo »

Thorsten,

Thanks for testing all of our modules! I've ticketed moduleactivelabel.h issue as well. This module is a powerful one for the Camera SDK. If you attach it to a camera, it will track objects and label each one with a fixed label until it goes out of view or becomes occluded.

modulepoorlabel is a effectively a "no overhead" labeler. It will label objects by where they are in the object list. For example the 5th object in the list is labeled 5. Nothing special here. However, it is very useful in some cases where only a rough hint is needed to speed calculation.

Contact support if you'd like to get a nightly build with the fix to the active labeler. I'll make sure you get one to test.

D
beckdo
Posts: 520
Joined: Tue Jan 02, 2007 2:02 pm

Re: Object Labeling in the Camera SDK

Post by beckdo »

I wanted to post a follow-up to this ticket regarding 2D labeling.

The Camera SDK includes one useful module for 2D labeling: cModulePreLabel. This is the module you want for labeling 2D markers. It's the best offering from the Camera SDK. The way this module works is that it will track the trajectories of all 2D markers and try to label them reliably. Whenever a new 2D marker appears it gets assigned a label. As long as it stays in view, it will maintain that label over a number of frames. If it goes out of view and comes back into view, it will have a fresh label assigned to it.

Notes:
- Any camera that has this module attached will be able to query object labels via cObject.Label().
- Instantiate and attach one cModulePrelabel per camera.
- Any cameras that don't have this module attached will report 0 for cObject.Label().
Post Reply