Git Product home page Git Product logo

annotate's People

Contributors

earthwings avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

annotate's Issues

error while launching with annotation

Dear Earthwings!

i am trying to launch your code of annotation, the way you described but it prompts error, the error is following while launching with demo.launch.

[ WARN] [1646230664.838619041]: Failed to open /workspace/kitti/annotate3.yaml for writing. Annotations will not be saved.

looking forward to your solution.
thank you in advance

Allow to undo actions

Is your feature request related to a problem? Please describe.
Sometimes a wrong click moves a carefully aligned annotation away to some other position.

Describe the solution you'd like
It would be nice to have the possibility to revert a faulty action

Describe alternatives you've considered

  • Manual reversion is time-consuming and annoying
  • Restarting the annotation process is most times no solution, and time-consuming as well

Avoid typical ground point issues

Is your feature request related to a problem? Please describe.
When the pointcloud to be annotated consists of both ground and object points, typically these problems arise:

  • the "expand box" feature expands into ground points
  • the to-come (see issue #4) auto-fit feature either does not work or does include ground points
  • the "shrink to points" feature might (due to its margin) grow into ground points
  • the to-come warning about nearby points (see issue #6) will warn about nearby ground points

Describe the solution you'd like
These issues can be avoided by treating the z-axis special:

  • expand the box not towards the negative z-direction in the "expand box" feature
  • auto-fit should work without changes when box expansion handles it above
  • shrink to points should use a margin of 0 in the negative z-direction
  • the warning about nearby points will work without changes when it uses the same method as box expansion to determine nearby points

Provide an RViz Display Plugin

Is your feature request related to a problem? Please describe.
Right now the main functionality is provided in a ROS node, where communication happens over ROS topics. This works, but has some (albeit minor) drawbacks:

  • users have to start the node separately and provide a couple of configuration parameters
  • rviz has to be configured to show interactive markers and track markers
  • user interaction in RViz is limited to context menus and interactive markers

Describe the solution you'd like
A custom display plugin can setup interactive markers and track markers as children with a sane default configuration.

Describe alternatives you've considered
Keeping this as they are is an option as well of course.

Move automations from context menu to display plugin

Is your feature request related to a problem? Please describe.
The automations context menu provides optional automatic action triggering: E.g. after resizing the box, it can automatically shrink its size to fit the points. These settings currently apply to physical objects and therefore have to be set/changed for every object. It would be nicer to change it on a more global level.

Describe the solution you'd like
The automation settings currently available in the context menu as boolean properties could become boolean properties in the display plugin. From there on they can be propagated to all markers, so a change in the automation settings applies to all annotations directly.

While at it, it would be nice to have more automations:

  • unpause playback after commit (one click less in a series-annotation of an object)
  • pause playback after data arrives (to avoid having to configure rosbag play with --pause-topic)

Describe alternatives you've considered
Propagating the change from one marker to all others is technically doable, but seems less obvious to a user.

Auto-fit points

Is your feature request related to a problem? Please describe.
Objects typically change their bounding box size only slightly, e.g. moving pedestrians (hands/feet move) or cars (apparent object size changes slightly as distance and angle to the sensor vary). After an initial box size annotation, further annotations repeatedly increase the box and shrink it to fit the points. Doing that manually involves a couple of steps (clicking expand box / shrink to points several times, or adjusting individual axis several times and calling shrink to points).

Describe the solution you'd like
It would be nice to automate the above steps further with the help of an auto-fit feature: It should expand the box to include nearby points, and shrink it to the points inside finally. Ideally there is some kind of heuristic to avoid growing into nearby other objects.

Inform about nearby points

Is your feature request related to a problem? Please describe.
Sometimes it's easy to miss some object points in the annotation box. It happens for example when there are lots of points and one doesn't carefully examine all six axis borders. This is bad as the annotation quality degrades.

Describe the solution you'd like
There should be some kind of information or warning about such nearby points. For example the object's label text could inform about the number of points inside the box and near to it, or the commit menu text could include a warning. Alternatively a new pointcloud could be published that only contains nearby points. RViz can then be configured to show these points in an extra color or extra large size etc.

Finish documentation

Describe the solution you'd like
There should be (more complete) documentation

  • how to compile / setup everything to start annotating
  • how to annotate
  • how the file format looks like and how to use it for e.g. performance evaluation

time_offsets out of dual 32-bit range

Describe the bug
when i run the code,and clilck the target i want label, the code is not work and the errr is ๐Ÿ‘

terminate called after throwing an instance of 'std::runtime_error'026374               
  what():  Duration is out of dual 32-bit range

err_annote

so , i change one line code :

ann_change

it worked

so, is there anything i was wrong ?or the timstamp in ros-bag is different?

and ,the value time_offsets is to do what?is it a useful value?

thank you !

"Cannot get tf info for init message with sequence number 23. Error: "map" passed to lookupTransform argument target_frame does not exist."

Hi,
I tried running on my own kitti bag but I can't annotate unless reference frame map is used but my velodyne points from velo_link doesnt have transform to map
"Cannot get tf info for init message with sequence number 23. Error: "map" passed to lookupTransform argument target_frame does not exist."

any way to change the annotate tool to use velo_link or base_link as source frame?

Provide keyboard shortcuts

Is your feature request related to a problem? Please describe.
User interaction in RViz is currently limited to context menus, interactive markers and settings in the display plugin. It would be nice to have keyboard shortcuts for often used actions to speed up annotating.

Describe the solution you'd like
Provide keyboard shortcuts, including a user interface to show / configure shortcuts. Possible actions available in the panel:

  • shrink to points
  • auto-fit box
  • commit

And optionally some new features:

  • toggle rosbag play/pause (using the pause_playback service of rosbag play)
  • move the camera (animated?) to a viewpoint from top, from right side, from front, from left side, from back

The panel would need one current annotation for most actions. This could be done by extending the current click behavior (toggle between edit modes) to a selection behavior.

Describe alternatives you've considered
Keeping things as they are is an option of course.

Crash during annotation

[rviz-2] process has died [pid 1048166, exit code -6, cmd /opt/ros/noetic/lib/rviz/rviz -d /home/dell/PytorchWorkspace/annotate_ws/src/annotate/launch/demo.rviz __name:=rviz __log:=/home/dell/.ros/log/71712548-97d2-11ee-971c-9b50c91f07af/rviz-2.log].
log file: /home/dell/.ros/log/71712548-97d2-11ee-971c-9b50c91f07af/rviz-2*.log

Merge annotation tracks

Is your feature request related to a problem? Please describe.
When the first annotation of an object was started after it entered the scene, in a subsequent annotation run the same object might be annotated with a different track. After a later point in time both will be active and "collide" with each other. This causes at least an ID switch in the annotation track.

Describe the solution you'd like
To easily fix annotation problems like this, it would be nice to have an option to merge two tracks. This could be offered from the context menu, where a list of merge candidates is presented. These merge candidates should be filtered to include only relevant ones (e.g. close together in time and space).

Describe alternatives you've considered
Editing the annotation yaml file by hand is also possible, but requires quite some technical understanding of the file format.

Optional Automations

Is your feature request related to a problem? Please describe.
Annotation actions often repeat a similar pattern: Move forward in time, adjust the yaw angle, expand the box size to fit all points, shrink it to the points, commit. This can take quite some time per annotation box.

Describe the solution you'd like
To reduce the time needed for the repeated steps, it would be nice to have certain actions trigger other actions. In particular

  • after moving forward in time, automatically fit the box to nearby points
  • after changing box size, shrink the box to the points inside
  • before committing, always shrink the box to the points inside

Since that kind of automation will not work for all kind of situations, it should be configurable. Possibly via context menu actions like an Automations menu with entries

  • Auto-fit predicted box (default disabled)
  • Shrink to points after resizing (default disabled)
  • Shrink to points on commit (default enabled)

Add start and optional end time for annotation tracks

  • interactive markers should only appear after their start time (timestamp of first instance, usually equal to the timestamp when "New Annotation" was clicked)
  • there should be an option to end an annotation track (usually when the object leaves the scene), at which point the interactive marker should disappear

Support tags

Is your feature request related to a problem? Please describe.
During their lifetime in the scene, objects often have different states. They might be occluded by another object, or too far away to be easily recognizable. This does not change their label (object type) --. a pedestrian stays a pedestrian -- but still it would be nice to record such information as well.

Describe the solution you'd like
Similar to a set of configurable labels there should be a set of configurable tags. The user can choose zero, one or several tags for each annotation. When time progresses, tags should be kept until they are unset again.

Describe alternatives you've considered
Extending labels, e.g. "pedestrian, bicycle, car, occluded pedestrian, occluded bicycle, occluded car, pedestrian easy, pedestrian moderate, pedestrian hard, ..." does not scale well. Moreover it would be harder to process for training or evaluation. Tags on the other hand are easy to specify (above: labels are pedestrian, bicycle, car, and tags are occluded, easy, moderate, hard) and also easy to use as filters during later processing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.