add tracking ID to the Detection Message#19
add tracking ID to the Detection Message#19Kukanani merged 6 commits intoros-perception:kinetic-develfrom OUXT-Polaris:master
Conversation
|
Does anyone check this PR? |
msg/Detection2D.msg
Outdated
| bool is_tracking | ||
|
|
||
| # Unique ID which was set by tracker. | ||
| uuid_msgs/UniqueID tracking_id No newline at end of file |
There was a problem hiding this comment.
Can we change the comments to the following, for better readability? (on both message definitions)
# If true, this message contains object tracking information.
# ID used for consistency across multiple detection messages.
There was a problem hiding this comment.
Please rename tracking_id to object_id because it can also be used in other contexts, where the result is not generated from a tracker.
Moreover, I would remove the is_tracking field. This can be easily derived from the context, e.g. the publishing node or that tracking_id/object_id is different from 0 or "".
There was a problem hiding this comment.
@mintar I disagree with you. In my opinion, detector cannot set object ID because they did not do time series processing.
I think this will be a magic number and it will become a technical debut in the future.
e.g. the publishing node or that tracking_id/object_id is different from 0 or "".
So, I also disagree with this opinion.
There was a problem hiding this comment.
@Kukanani OK! This modification is good!
So I will update my comment.
There was a problem hiding this comment.
@hakuturu583 I'm not too adamant about removing is_tracking. What do you mean by that a a detector, in this instance a tracker, does not do time series processing.
By tracker I understand a program that tracks one object across multiple frames, e.g. a person walking in the image from left to right. The tracker retains state (bounding box in last frame + features) to find the object in the next frame. So the tracker does indeed do time series processing on the series of frames.
There was a problem hiding this comment.
Maybe I just don't understand the meaning of tracking_id. Assume I track a person walking from left to right in the image in multiple frames: Does each message get the same tracking_id because it is the same person as outputted by the tracker?
msg/Detection3D.msg
Outdated
| bool is_tracking | ||
|
|
||
| # Unique ID which was set by tracker. | ||
| uuid_msgs/UniqueID tracking_id No newline at end of file |
There was a problem hiding this comment.
Update comments, see note above
|
After further reflection (and as pointed out in #17), I think a string would be a more flexible representation to use. A string could be used to store a UUID if desired (using any UUID generator), but wouldn't require additional dependencies from everyone who wants to use this feature. |
A string needs more overhead because the length has to be saved etc. We should use the same type for id and tracking_id. Both are foreign keys into a collection of classes/objects. So both of them should be int64 or both of them should be strings. Using strings for classes is even better: This would make is easy to just enter the class name without lookup, enter WikiData IDs, e.g. Q470112, or URLs (keyword: linked data). |
|
@mintar Do you think how to treat same class objects at the same scene?? |
|
I've switched the tracking_id field to a string to avoid the UUID dependency. Of course, if you'd like, you can still store a string representation of the UUID, but this is more flexible. Thanks for the PR! |
|
@Kukanani |
I want to add tracking infomation I described in this Issue.
#18