-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add bounding box sensor #135
Comments
It would be interesting to add some more context about the use case for the sensor and what kind of data it should produce. I think it's especially important to define these clearly because this sensor wouldn't be replicating any real physical sensors. In the real world, this kind of data is obtained by operating on data provided by other sensors, like cameras. |
The original thought was to use this sensor to provide users with datasets that could be used for training machine learning models. Manually generating bounding boxes for images can be difficult and/or take a while, so the hope is that the process of data collection can be made easier by using this sensor with various scenes that are created in simulation. Regarding what data it should produce: the thought is to provide users with an image and a corresponding bounding box message which provides the bounding box information for all of the requested objects in a scene (a new bounding box message type needs to be created in
Yep 👍 this sensor is meant to provide a way for automatic bounding box generation so that users don't need to operate on data from things like cameras. As mentioned earlier in my comment, the main use case for this would probably be dataset generation for ML models, but perhaps users will find this useful for other use cases as well. @chapulina does that help answer your questions and/or clarify the design/motivation behind this sensor? Or is there anything else that needs to be addressed/considered? |
Thank you for all the clarification, this is great context 👍
As a reference, I'll also link to vision_msgs, which provides some different bounding box messages. Just some clarifications about the bounding box data:
|
Yes, I believe so - are there reasons/use cases that should make us consider using bounding boxes that aren't axis aligned?
Right now, development is being done for 2D bounding boxes only. However, I am sure that 3D bounding boxes would also be useful, so perhaps we can add in 3D functionality once the 2D implementation has been completed. |
I'm not sure, but bounding box messages in ROS are oriented, so I think it's worth documenting the rationale for orienting it or not. As a reference, here's some discussion on the vision message standards for ROS that could be useful. The vision_msgs README also has useful information.
My only concern is not to have to go back and change messages and APIs if we decide to support 3D later. If we want to leave the way open for it, we may want to use 3D types on the APIs for future-proofing. |
The bounding boxes in 3D datasets are always oriented boxes, but in 2D datasets are usually axis aligned.
Ok, I will work on that, on providing 3D boxes in rendering first, then will modify all the PRs of the bounding box stuff with the new format, which is the oriented boxes just like the ROS msg Is that make sense ? |
Also another thing, should we have a separate msgs for 2D boxes and 3D boxes ?? like the ROS msgs (BoundingBox3D, BoundingBox2D), or we can use the 3D boxes format with the 2D also and say "its ok the 2D will have the same format but with z=0 and zero orientation" ..... |
I'm ok with that, come to think of it, keeping them separate may help with setters and conversions.
My slight preference is for having a separate message to combine the box with the label, so users can choose to use the one with or without the label. We already have a 3D box message without a label. |
You mean that we need to use the exist AxisAlignedBox msg in the 2D boxes ?? and make a msg that combine that with the label ? .... The problem is that this msg is Axis aligned but in 3D, so I don't think it will be suitable to use that for 2D, I think we should create a msg for 2D boxes with the new format (same for 3D) |
Ah sorry, so I meant something like this:
But I don't have a strong preference. |
I like what you suggested for 2D axis-aligned bounding boxes, @chapulina (having separate message types for the bounding box and the annotated bounding box). We can take the approach of separate message types for 3D bounding boxes as well, but for 3D bounding boxes, we will probably need to create a new message type instead of using the existing For the 3D oriented bounding boxes, what if we did something like this?
Also, do we want the label in the annotated message types to be a |
is there a discussion about merging oriented bounding boxes into a single box? |
We start discussing it in the rendering PR |
Related to #134
Desired behavior
Add a bounding box sensor to Ignition.
Alternatives considered
N/A (this is a new feature)
Implementation suggestion
We will need functionality added to the following repositories:
ign-transport
Additional context
A lot of work for implementing this sensor is already underway. Here are all of the related PRs that have been opened:
The text was updated successfully, but these errors were encountered: