Skip to content
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

We need your feedback to improve RectLabel. #1

Open
ryouchinsa opened this issue Jun 13, 2017 · 58 comments
Open

We need your feedback to improve RectLabel. #1

ryouchinsa opened this issue Jun 13, 2017 · 58 comments

Comments

@ryouchinsa
Copy link
Owner

ryouchinsa commented Jun 13, 2017

We have an e-mail address to support RectLabel users.
[email protected]

Also we have a twitter account to inform new updates.
https://twitter.com/rectlabel

We had some feedback on e-mail and twitter.
"Awesome tool!! Any chance you could add templates to go into PASCAL VOC format or COCO, this would make it even easier."
https://twitter.com/EyeingChicago/status/858799956404183040

If you could find some problems for RectLabel, could you post the problem on this issues page?
We can share the problem and how to solve it among our users.

Best regards,
Ryo

@ryouchinsa ryouchinsa changed the title Post your feedback here! We need your feedback to improve RectLabel. Jun 13, 2017
@xvolks
Copy link

xvolks commented Jul 17, 2019

I have not used RectLabel for a while (since late 2017: see #18).
I'm disappointed now to see that it is unusable to just tag some images without paying.
Is there a way to get back the old version ?

@ryouchinsa
Copy link
Owner Author

We have updated RectLabel since 2017 according to feature requests from our users.
RectLabel is worth paying because there are features which reduce labeling time.

I'm disappointed now to see that it is unusable to just tag some images without paying.

Could you restore purchase on the purchase dialog?
You can label boxes and save them if you bought in 2017.
For extra features, you have to pay because those features were not when you bought.

@xvolks
Copy link

xvolks commented Jul 17, 2019

No I have not bought it, it was early stage and free in 2017.
I made some feedback then : https://github.com/ryouchinsa/Rectlabel-support/issues?utf8=✓&q=is%3Aissue+is%3Aclosed+author%3Axvolks+

@ryouchinsa
Copy link
Owner Author

Could you restore purchase and show us the screenshot of the purchase dialog which appears when you launch RectLabel?

@mdc101
Copy link

mdc101 commented Sep 21, 2019

I just started using it today. So far very good. However, I couldn't figure out how to create 'donut'-type of polygons (any shapes with hole somewhere in the middle). Is it possible in RectLabel?

@ryouchinsa
Copy link
Owner Author

Thanks for reporting the issue.
To label donut-shaped pixels, you can use polygon tool with erase mode on the brush dialog.

If you need to export the donut-shaped polygon as coordinates [x1, y1, ...], let us know the desired data format.

donut

@lautjy
Copy link

lautjy commented Apr 8, 2020

Any feels for Linux support?

@ryouchinsa
Copy link
Owner Author

We are working on the iPad version now.
We have requests for Both Linux and Windows version.

@adriantre
Copy link

Small feature request. Would be great to be able to select and copy the file name of the image shown. Currently this is not possible, so we end up typewriting it.

@ryouchinsa
Copy link
Owner Author

@adriantre
Thanks for writing the issue.
In the next update, you can copy the image file name to pasteboard by clicking on the top-left image file name area.
Why do you need to copy the image file name during labeling?

スクリーンショット 2020-06-05 17 00 07

@ryouchinsa
Copy link
Owner Author

@adriantre
The new update version 3.02.1 was released.
To show the new update on Mac App Store, press command + R to reload.

  • Restored "use difficult tag" feature.
  • Improved so that annotations are scaled to the current image size when you save.
  • To copy the current image file name, click on the image file name shown on the top-left corner.

@adriantre
Copy link

Why do you need to copy the image file name during labeling?

Awesome, thanks for notifying me! Sometimes we need to take a closer look at a specific image in some other data flow that we have. A general example could be manual hard example mining.

@ryouchinsa
Copy link
Owner Author

@adriantre
Thanks for the details.

@vhuttunen
Copy link

Hi!

We are using basically only SuperPixeltool for masking images. Only feature I'm missing is the ability to select multiple segments at once. i.e With specific selection tool or just by just going through segments with the cursor. Holding the mouse button or switching this feature on & off with a designated hotkey.

@ryouchinsa
Copy link
Owner Author

@vhuttunen
Thanks for writing the issue.

to select multiple SuperPixels at once holding the mouse button

When we could have some progress, we will let you know.

@ryouchinsa
Copy link
Owner Author

@vhuttunen

  • Improved so that you can select multiple SuperPixels dragging the mouse.

The new update version 3.02.4 was released.
To show the new update on Mac App Store, press command + R to reload.

Let us know your feedback.

@michaelktran
Copy link

great software.
It would be extra useful to add:
-option to display numbering of bouding boxes in correspondance to the list
-option to store the confidence at each bounding box of the inference done with Core ML inside the produced XML file, eg. like 0.99 , since it exists and is displayed in apple's makeML preview-

  • option to navigate using image name instead of image index
  • way to select all labels at once (keyboard shortcut), instead of selection them all with the mouse, so that there is a simple way to transfer (copy-paste) all label from one annotated image to the next un-annotated one.
  • way to export the image with the coloured bouding boxes as seen on screen inside an image file (jpg, png)
  • surely other features I forgot to mention.
    Best,

Michael

@ryouchinsa
Copy link
Owner Author

ryouchinsa commented May 27, 2021

@michaelktran
Thanks for your feedback.

option to display numbering of bouding boxes in correspondance to the list

You can use "Show label on the box".

option to store the confidence at each bounding box of the inference done with Core ML inside the produced XML file

If we saved the confidence in the XML file, for what purpose are you going to use?

option to navigate using image name instead of image index

You can use "Search images" by image name.

way to select all labels at once (keyboard shortcut)

You can use "command + a".

way to export the image with the coloured bouding boxes as seen on screen inside an image file

Why do you need the screenshot of bounding boxes?

Best regards,
Ryo

@ireneu
Copy link

ireneu commented Nov 5, 2021

Hi Ryo,
Would it be possible to have an option that makes annotationns tagged in a picture automatically applied to the next picture when pressing next (or the → key)?
This would be extremely useful when annotating frames from videos, since in many videos the same objects can be found in consecutive frames with little or no changes.
Best regards,
Ire

@ryouchinsa
Copy link
Owner Author

@ireneu
Thanks for writing the issue.

Added "Auto copy from previous image" on Label fast tab on the settings dialog.

We submitted the new update to Apple.
When the new update is released, we will let you know.
Thank you.

スクリーンショット 2021-11-07 11 53 06

@ryouchinsa
Copy link
Owner Author

@ireneu

The new update version 3.06.8 was released.
To show the new update on Mac App Store, press command + R to reload.

Added "Auto copy from previous image" on Label fast tab on the settings dialog.
Fixed the Hotkeys buttons disappearing problem on macOS Monterey.
Improved so that when you undo deleting polygons, polygon selections are restored.

FDoulXHaMAAOy7Z

FDoul2macAAj_p3

@morestart
Copy link

can we support other language ?

@ryouchinsa
Copy link
Owner Author

ryouchinsa commented Nov 29, 2021

@morestart
Currently we are supporting only english.

@ryouchinsa
Copy link
Owner Author

Hi, @morestart

We localized RectLabel apps to Chinese, Korean, Japanese, Italian, French, German, Russian, Spanish, Portuguese, Dutch, Polish, Swedish, and Czech languages.

The new update version 69 was released.
Please let us know your opinion.

hotkeys_zh-CN

@morestart
Copy link

Hi, @morestart

We localized RectLabel apps to Chinese, Korean, Japanese, Italian, French, German, Russian, Spanish, Portuguese, Dutch, Polish, Swedish, and Czech languages.

The new update version 69 was released. Please let us know your opinion.

hotkeys_zh-CN

Great Work!!

@Zoxive
Copy link

Zoxive commented Feb 14, 2023

When I'm still in the experimental phase and I'm exploring my dataset I only want to annotate certain groups of images. (I'm using fiftyone to explore and filter)

I have a very large dataset of thousands of pictures. It would be very useful to me if I could launch rectlabel with command line arguments to filter by a subset of images. Maybe an array of the image names?

@ryouchinsa
Copy link
Owner Author

FiftyOne looks a great datasets viewer.
https://docs.voxel51.com/

If you could use RectLabel combining with FiftyOne, it would be a great use-case.
A search feature using the image file names will be important to RectLabel.
Please let us have some time to implement.
Including the command line arguments, we will find a convenience way.
Another idea is to drag a text file which includes image file names to RectLabel.

@ryouchinsa
Copy link
Owner Author

We improved so that once opened images and annotations folders when the first launch, from the second launch, you can give command line arguments to RectLabel which image files should be opened.
You do not have to wait for loading all images and indexing all annotation files.

open -a RectLabel --args -images 000000000872.jpg,000000180011.jpg.
open -a RectLabel\ Pro --args -images 000000000872.jpg,000000180011.jpg

The new version 2023.02.20 was released.
Please give us your feedback.

@aloboa
Copy link

aloboa commented Feb 23, 2023

We are working on the iPad version now. We have requests for Both Linux and Windows version.

And are these (linux, Ipad and windows versions) going to actually happen?

@ryouchinsa
Copy link
Owner Author

ryouchinsa commented Feb 23, 2023

When we finish corresponding to feature requests of the macOS version, we will develop the other OS versions. We will make it happen.

@Zoxive
Copy link

Zoxive commented Mar 12, 2023

One more feature that would be useful to me is keyboard modifiers while dragging existing line points or polygons.

Heres my scenario:
I'm cleaning up some annotations to be more accurate.
It would be nice if i could hit [control] or [shift] or [command] (w/e keyboard shortcut makes sense) and shorten or lengthen my line.

For example in this image here
Screenshot 2023-03-12 at 12 32 15 PM
I'm changing my approach to how i label this line. It would help speed things up if i could simply hold say [control] while dragging the line point to shorten the line.

Right now since nothing "locks"/"snaps" i have to free hand the line each time, where if i could hold a keyboard modifier that locked the line angle and just let me change the line length it would be a big help.

Edit:
My best workaround right now is to copy the same label and clean up using it as reference. Then delete the original label and keep the "cleaned up" version.

@ryouchinsa
Copy link
Owner Author

@Zoxive,

Could you record the process how you label the line object using the line segment tool using QuickTime Player?

@Zoxive
Copy link

Zoxive commented Mar 17, 2023

Sorry for the delay.. Just came down with some not so fun sickness.

The summary of what I am trying to personally label is, cleanup my existing keypoints labels.
When i originally labeled my images i thought the best approach was to put my keypoints on the curved portion of the straight line (See fig 1). I have changed my mind and want to try "cleaning up" these and move the keypoint to the non-curved portion. (See fig 2)

If the software supported this line angle locking (I'm sure there is an industry term in like 3D software), this would speed up my labeling time to do this sort of cleanup. I think it would be a desirable feature to other users as well.

[Fig 1]
Screenshot 2023-03-17 at 11 16 15 AM

[Fig 2]
Screenshot 2023-03-17 at 11 16 25 AM

Heres a quick video (Fig 3) showing the desired behavior.

https://youtu.be/-YXZjiN0lZ8 [Fig 3]
00:00 - 00:05 Current behavior, no snapping
00:05 - 00:10 Pretend holding down a keyboard shortcut that "locks" the lines angle so i can shorten it and make my keypoint line up with the non-curved line. (You can notice my not so steady hand here lol)

@ryouchinsa
Copy link
Owner Author

We apologize that implementing the angle locking feature was late.

In the new update 2023.04.24, dragging an edit point pressing the shift key, the line angle between the edit point and the neighbor point is locked during the transformation.

Please let us know your feedback.

angle-locking

@Zoxive
Copy link

Zoxive commented Apr 25, 2023

@ryouchinsa thanks! Works just how I hoped!

@rromanchuk
Copy link

  • Is there a way to opt-out of backing up for a given project on possible destructive operations, assuming we accept the responsibility? It's very time consuming on large datasets.

  • Is there a way to search labels on NOT empty, i tried a few predicates like !NULL, NOT NULL, NOT ''

  • On export test/val/test and test/val/test txt, can you hint on the internal method/strategy being used. Is it independent of current sort and filenames (ieshuffle() is being used)?

  • On copy/move, All images sounds scary, even thought it's doing what i want it to "All (or current filtered)" Also would be nice to copy/move with a random fraction of total. For example, random 10% of currently filtered images.

  • Is there a way to "tag" an image that gets indexed (searched against), but has no influence on any export format? In object settings there is a "hide" option which sounds promising but i'm not exactly sure of the purpose. Example: I want to just tag, not "label" an image as background that can be filtered, but not annotated as "background" on any export. Filtering an empty string would not return the image.

@ryouchinsa
Copy link
Owner Author

We are sorry for our late reply.
We will implement one by one.

The new version 2023.09.27 was released.

  • Added "Skip backup dialog when overwrite" option on the settings dialog.
  • Improved search images feature so that you can search labeled images using "notempty" search text.

@zoomphoto
Copy link

I have an idea and maybe it's there, but I cannot find it.

  • Remove a file from the data, delete it from disk. This way sometimes when garbage files end up in the folder I can't find a way to remove it. Delete only deletes the current detection box I am working on. Maybe I am just missing something?

@Zoxive
Copy link

Zoxive commented Oct 28, 2023

I would love shortcut that allows me cut out a polygon from another polygon.

Heres an example of the dataset im playing with:

I have 3 objects here that overlap.

  1. the measuring board
  2. the fish
  3. the hand over the fish
Screenshot 2023-10-28 at 5 14 52 PM (In my example image i have not manually cut the fish or hand out of the measuring board but i will eventually)

It would be nice to annotate the hand first, then annotate the outline of the fish and "cut" the same shape out of the fish. And then cut both the hand and fish out of the measuring board.

Today i have to draw the same overlapping annotations 2-3 times when there is overlap.

Edit:
I found other tools call it Polygon edge sharing

@ryouchinsa
Copy link
Owner Author

On export test/val/test and test/val/test txt, can you hint on the internal method/strategy being used. Is it independent of current sort and filenames (ieshuffle() is being used)?

Improved exporting train/val/test features so that the shuffle checkbox is added and the output folder is remembered.

When the shuffle checkbox is ON, images are randomly shuffled everytime you export. When the shuffle checkbox is OFF, images are taken from the current sort according to the split ratio.

F-C3cYHbkAA-oAu

@ryouchinsa
Copy link
Owner Author

Hi @zoomphoto,

Using "Copy images" feature on File menu, only necessary images/annotation files are copied to another folder.

Using "Move images" feature on File menu, only necessary images/annotation files are moved to another folder. So that only gabage files remain in the current folder.

Please let us know your opinion.

@ryouchinsa
Copy link
Owner Author

On copy/move, All images sounds scary, even thought it's doing what i want it to "All (or current filtered)" Also would be nice to copy/move with a random fraction of total. For example, random 10% of currently filtered images.

Improved copy/move images features so that you can export a random fraction of total. And, the output folders are remembered.

スクリーンショット 2023-11-09 19 20 05

@ryouchinsa
Copy link
Owner Author

Improved exporting COCO JSON file feature so that you can split to coco_train.json, coco_val.json, and coco_test.json.

The new version 2023.11.12 was released.

スクリーンショット 2023-11-12 8 57 07

@rromanchuk
Copy link

@ryouchinsa I'm constantly surprised every update when I see my annoying feature requests already implemented, thanks! 🍻

@ryouchinsa
Copy link
Owner Author

We added "Copy as erase mask" and "Paste as erase mask" right click menus for polygons.
Using the "Copy as erase mask" menu, you can use the currently selected polygon as an erase mask.
Then, using the "Paste as erase mask", you can cut out the erase mask from the currently selected polygon.

In this example image, to correctly cut out,

  1. Copy the fish polygon as an erase mask.
  2. Paste the erase mask on the measuring board polygon.
  3. Copy the hand polygon as an erase mask.
  4. Paste the erase mask on the measuring board polygon.
  5. Paste the erase mask on the fish polygon.

copy-paste-erasemask

If we were in your situation, we would use "Create polygon using SAM" feature.
Please let us know your opinion.

sam-fish

@rromanchuk
Copy link

  • In "Convert video to images", it would be nice if I could specify the slice interval, frames per second, or something to control the max number of exported frames. I don't need anything super high fidelity, just something basic, "Export a frame every ~2 seconds".

@ryouchinsa
Copy link
Owner Author

ryouchinsa commented Dec 6, 2023

Hi @rromanchuk, I will add an input text box for the "Frames per second". When the new update is released, I will let you know.

@ryouchinsa
Copy link
Owner Author

Hi @rromanchuk,

The new version 2023.12.08 was released.
Improved so that when converting video to image frames, you can set frames per second.

video_to_frames

@rromanchuk
Copy link

you're my hero

@Zoxive
Copy link

Zoxive commented Jan 9, 2024

We improved so that once opened images and annotations folders when the first launch, from the second launch, you can give command line arguments to RectLabel which image files should be opened. You do not have to wait for loading all images and indexing all annotation files.
open -a RectLabel --args -images 000000000872.jpg,000000180011.jpg. open -a RectLabel\ Pro --args -images 000000000872.jpg,000000180011.jpg
The new version 2023.02.20 was released. Please give us your feedback.

Wow that was quick!

Works great too. Thank you! This speeds things up dramatically for me playing with large image datasets!

Im using this feature more and more, i actually wrote a custom operator plugin for https://github.com/voxel51/fiftyone to open up rectlabel using this!

The one thing that would be really nice, if its possible is to honor the ordering.

My current use case is im browsing my dataset in fiftyone and sorting it by mistaken labels, which i then can open in rectlabel to fix. Again this all works today, but when i open them in rectlabel they seem to be sorted by filename instead of the order i specified with --args -images

@ryouchinsa
Copy link
Owner Author

ryouchinsa commented Jan 23, 2024

Thanks for writing the issue.
In the latest version 2024.1.25, opening RectLabel with command line arguments, images are shown in the same order as you specified for -images.
open -a RectLabel\ Pro --args -images 000000010363.jpg,000000000872.jpg,000000000036.jpg

@ryouchinsa
Copy link
Owner Author

Improved erasing mask features. You can copy a polygon as an erasing mask and cut another polygon using the erasing mask.

スクリーンショット 2024-01-23 14 33 27

スクリーンショット 2024-01-23 14 33 36

@rromanchuk
Copy link

  • In "Open images and annotations folder" screen, add an option for a recursive/nested images read. Nothing changes for annotations.

Example: I have a global annotations folder of yolo txt files, i'm working on a dataset with fine grain classifications by directory name. I'd like to avoid flattening and load all nested nested images from specified root image path. This makes operations like resizing and filtering/evaluating much faster.

@ryouchinsa
Copy link
Owner Author

Hi @rromanchuk, thanks for writing the issue.
Could you show the detailed images and annotaitons folder structure?
Currently you can open multiple images/annotations folders.
I need to know why the nested option is necessary.

@ryouchinsa
Copy link
Owner Author

Hi @rromanchuk, in the latest version 2024.04.19, we added "Read images folder recursively" checkbox on the open images folder dialog.

recursive.mov

@ryouchinsa
Copy link
Owner Author

Hi @rromanchuk, in the latest version 2024.04.22, when using "Read images folder recursively", you can search sub folder names in searching image name feature. You can show images in a specific sub folder.

nested.mov

@rromanchuk
Copy link

rromanchuk commented Sep 26, 2024

I'm probably using RectLabel in a weird way, where I'm not actually exporting to split, but my workflow used to be cmd-f - notempty -> export yolo txt files, to a "distribution" labels folder then copy all images to a "distribution" image folder (leaving VOC annotations location unchanged, making it a NOOP )

My ground truth is the ingested to fiftyone via these exports. With the latest change I now have to 100/0/0 and then mv train/labels dist/labels and rm -rf train/images and use file -> copy -> copy all because I don't want source images down/upsampled to n-width at this stage.

I did a model run and noticed the model imploded. Reviewing GT, the mistakenness was through the roof with most recent data. Inspecting the exported yolo .txt, it looks like export now alpha-orders class index and ignores Settings -> Objects idx order, which is what my classes yaml idx follows.

Is there a way to export names/yaml array/dict according to RectLabel's objects order instead of alphabetical class names?

*update
I just needed to uncheck "Export used names only", and indexes are back to normal

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

No branches or pull requests