Question

Can anyone recommend a tool to quickly label several hundred images as an input for classification? I have ~500 microscopy images of cells. I want to assign categories such as 'healthy', 'dead', 'sick' manually for a training set and save those to a csv file.

basically the same as described in this question, except I don't have proprietary images, so maybe that opens up additional possibilities?

Was it helpful?

Solution

I just hacked together a very basic helper in python it requires that all images are stored in a pyton list allImages.

import matplotlib.pyplot as plt
category=[]
plt.ion()

for i,image in enumerate(allImages):
    plt.imshow(image)
    plt.pause(0.05)
    category.append(raw_input('category: '))

OTHER TIPS

Checkout Labelbox (https://www.labelbox.io/)

Labelbox is a tool to label any kind of data, you can simply upload data in a csv file for very basic image classification or segmentation, and can start to label data with a team. It is probably the fastest tool to get you started with data labeling.

Labelbox supports basically any data as long as it can be loaded into a browser. They have open source labeling frontend, i.e., you could create your own frontend with basic HTML and javascript that suits your data labeling needs. See their github repo to learn more: https://github.com/Labelbox/Labelbox

This is how easy it is to setup a project and getting started with labeling: enter image description here

Try Supervisely.

For your task you could create classes: 'healthy', 'dead', 'sick' and associate them with Rectangle tool. Then you just put a box around each cell with corresponding class. Below is an example:

  1. Definitions of classes enter image description here
  2. Labeling enter image description here

If your categories are not mutually exclusive, you may create “cell” class (and associate it with rectangle) and then create several tags - one for each of your categories. Below is an example:

  1. Definitions of classes and tags enter image description here
  2. Labeling enter image description here

I have created a code doing what you need, it is available on GitHub as image-sorter2. Instead of "labelling" images, it puts the images into a new folder, but creating the csv you are talking about is a straight forward extension. Compared to the other suggested scripts here image-sorter2 is 100% free of charges and you don't need to spend time on drawing bounding boxes - the script simply opens a GUI for you, you click on one of multiple buttons and correspondingly each image is sorted into the desired class-folder, e.g. "cats", "dogs", "trucks" a.s.o.

enter image description here

Licensed under: CC-BY-SA with attribution
Not affiliated with datascience.stackexchange
scroll top