3
$\begingroup$

I need to manually classify thousands of pictures into discrete categories, say, where each picture is to be tagged either A, B, or C.

Edit: I want to do this work myself, not outsource / crowdsource / whatever online collaborative distributed shenanigans. Also, I'm currently not interested in active learning. Finally, I don't need to label features inside the images (eg. Sloth) just file each image as either A, B, or C.

Ideally I need a tool that will show me a picture, wait for me to press a single key (0 to 9 or A to Z), save the classification (filename + chosen character) in a simple CSV file in the same directory as the pictures, and show the next picture. Maybe also showing a progress bar for the entire work and ETA estimation.

Before I go ahead and code it myself, is there anything like this already available?

$\endgroup$
1
  • $\begingroup$ The most appropriate SE site to ask for tools/software is probably this one: softwarerecs.stackexchange.com. So, next time, you should probably ask similar questions there. $\endgroup$ – nbro Nov 6 '20 at 19:27
3
$\begingroup$

There are a few tools that you can use to annotate (or label) data. For example, labelme or Labelbox. Have a look at this question for more alternatives.

$\endgroup$
3
  • $\begingroup$ Thank you, but all of these tools are either: 1. online services, 2. active learning, 3. collaborative, or 4. tools to label features inside images. None of them comes close to my needs. $\endgroup$ – Tobia Jun 4 '19 at 21:11
  • $\begingroup$ @Tobia Most of them are not active learning tools. They should also provide the feature to label the images (not just for image segmentation or object recognition). Maybe have a look at this other tool: github.com/wkentaro/labelme. I haven't personally explored them yet. $\endgroup$ – nbro Jun 4 '19 at 21:17
  • $\begingroup$ Labelme comes very close, I can probably customize it into what I need. $\endgroup$ – Tobia Jun 4 '19 at 21:58
3
$\begingroup$

I do not know a specific tool that meets all the mentioned requirements. However, a long time ago, I had to do a very similar task of labeling tons of images into 10 classes. This is how I did this:

  1. Used a very basic clustering tool to cluster images into clusters (I set the number of clusters larger than 10 as I new some classes have very different subclasses inside).
  2. Moved all images of each cluster to a separate folder. Named each folder after one of the classes/subclasses.
  3. Double checked the folders content to make sure there is no outlier or mismatched sample. In the case of wrong labels, I just moved them to the correct folder.
  4. Merged subclasses to form the 10 classes that I was interested in.
  5. Done!
$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.