labelImg
labelImg copied to clipboard
how to create and save rotation bounding box?
I want to create and save the rotation bounding box by record the rotation angle,
@taopanpan , Have you tried to implement it?
@tzutalin I tried,but failed. can you help me?
@taopanpan , How can I help you?
@taopanpan @tzutalin I think we can work on it together to add this very valuable extension. Let us continue here:
https://github.com/tzutalin/ImageNet_Utils/issues/7
I have prepared a segmentation tool which is very good and efficient. Then we can integrate that into this tool to make it a multi-function tool.
Then let us make the whole tool webbased which annotators do not need to install anything except a web browser :)
@smajida , Cool. Web based tool is nice for most of the people.
@taopanpan Hi, you want to detect rotation bounding box? I am working on it, can we work together?
@ujsyehao , If you can add this feature, it will be helpful to others._
I am trying to implement this function, But I am new in PyQt. It's so hard for me````````````
@tzutalin @smajida Are rotated bounding boxes valid to use for training the tensorflow object detection api?
This guy has implemented a rotated Bbox function but it does not offer a YOLO format output. https://github.com/cgvict/roLabelImg
Similar to @fastlater , I would also like to know if rotated bounding box would affect training for YOLO?Since YOLO only requires center coordinates, width and height of the Bbox, I assume it wouldn't affect the training right?
Hey!
I implemented that feature (#20, #347) when I was considering to work with the labelImg tool. I did however decide against using it and thus did not entirely finish a minor part of the implementation (that can most likely be omitted). The version shipped in the referenced pull request is completely functional (should however be tested).
Two minor things I did not take care of:
- I did not finish the implementation of a rectangle angle check mechanism, that checks if the rectangle angle that is to be applied leads to a valid outcome having all edges in range of the image. The mechanism I implemented does not detect some cases where the rectangle is out of range and therefore I removed it via flag.
- The rectangle coordinates are floating point now, I am not sure if that can be used for the rest of the pipelines / if that works in accordance with the output formats. In case it does not, simple conversion to
int
on export is required.
Tested only via python3. My fork with open pull requests be found at https://github.com/juliusHuelsmann/labelImg
Quick demo
- sorry for the bad resolution
- The stuff I commented out (see 1. above) is shown last (it is possible to rotate the rectangle beyond the shape of the image because I disabled that feature)
@juliusHuelsmann wonderful job. Could you share your windows binaries?
@MarStarck I am sorry, I do not use Windows as my operating system on any of my computers and did not manage to setup a cross-compile workflow with wine (because the python3 installer always crashes).
If you are able to compile the project on windows however, making the exe
file should work straight out of the box:
If you can build the project (the link includes the patch I submitted), it suffices to (in case you have installed pip) execute the following two commands in the labelImg directory:
> pip install pyinstaller
> pyinstaller --onefile labelimg.py
after you have build the project once (with either qt5 or qt5) as described in the readme:
> pyrcc5 -o resources.py resources.qrc
> python labelImg.py
Edit:
Please be aware that it is very likely that the export function has to be adapted (I 'store' the coordinates as floating point numbers along with the rotation angle in memory, and depending on the future workflow the export output (which I did not touch at all) has to be changed), so do not start to label a lot of data before checking that everything really works out. I did not use the patch myself because when I finished implementing it, it turned out that I did not need a labeling tool for my work anymore.
Hey! I completed the work done by @juliusHuelsmann and added an additional output format for the rotated bounding box (type center_x center_y width height rotation). Specifically, the work is based on the latest version of labelImg and adds a 'KITTI BEV' format writer and reader. Please check it out: labelImg-kitti 😁
@taopanpan @tzutalin I think we can work on it together to add this very valuable extension. Let us continue here:
tzutalin/ImageNet_Utils#7
I have prepared a segmentation tool which is very good and efficient. Then we can integrate that into this tool to make it a multi-function tool.
Then let us make the whole tool webbased which annotators do not need to install anything except a web browser :)
@arasharchor
Hello, is the “webbased” completed?
Hi @zexihan . I have checked the tool but some images appeared to be rotated while the source image is not.
Do you mind to pull the latest changes at the master branch from the original repository and merged.