Skip to content
This repository has been archived by the owner on Feb 29, 2024. It is now read-only.

how to create and save rotation bounding box? #20

Open
taopanpan opened this issue Sep 29, 2016 · 16 comments
Open

how to create and save rotation bounding box? #20

taopanpan opened this issue Sep 29, 2016 · 16 comments

Comments

@taopanpan
Copy link

I want to create and save the rotation bounding box by record the rotation angle,

@tzutalin
Copy link
Contributor

tzutalin commented Dec 2, 2016

@taopanpan ,
Have you tried to implement it?

@taopanpan
Copy link
Author

@tzutalin I tried,but failed. can you help me?

@tzutalin
Copy link
Contributor

tzutalin commented Dec 2, 2016

@taopanpan ,
How can I help you?

@arasharchor
Copy link

arasharchor commented Mar 9, 2017

@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 :)

@tzutalin
Copy link
Contributor

@smajida ,
Cool. Web based tool is nice for most of the people.

@ujsyehao
Copy link

@taopanpan Hi, you want to detect rotation bounding box? I am working on it, can we work together?

@ms10058
Copy link

ms10058 commented Jul 28, 2017

@ujsyehao ,
If you can add this feature, it will be helpful to others._

@wangzhe0623
Copy link

I am trying to implement this function, But I am new in PyQt. It's so hard for me````````````

@fastlater
Copy link

fastlater commented Feb 12, 2018

@tzutalin @smajida Are rotated bounding boxes valid to use for training the tensorflow object detection api?

@vdalv vdalv mentioned this issue May 24, 2018
@danzigjabalpur
Copy link

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?

@juliusHuelsmann
Copy link

juliusHuelsmann commented Sep 27, 2018

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:

  1. 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.
  2. 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)

asdf

@MarStarck
Copy link

@juliusHuelsmann wonderful job. Could you share your windows binaries?

@juliusHuelsmann
Copy link

juliusHuelsmann commented Oct 8, 2018

@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.

@zexihan
Copy link

zexihan commented May 7, 2020

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 😁

@xqtbox
Copy link

xqtbox commented Jul 15, 2020

@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?

@engahmed1190
Copy link

engahmed1190 commented Oct 5, 2022

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests