Featured Image

Data Labeling Tools For Machine Learning

The process of tagging data is a crucial step in any supervised machine learning projects. Tagging is the process of defining areas in an image and creating descriptions of which object belongs to these regions. By labeling the data, we prepare our data for ML projects and make them more readable. In most of the projects I’ve worked on, I’ve created sets in the dataset, I’ve done self-tagging, I’ve done my training with tagged images. In this article, I will introduce the data labeling tools that I encounter the most by sharing my experience in this field with you.
Labeling Image

📍COLABELER

Colabeler is a program that allows labeling in positioning and classification problems. Computer vision is a labeling program that is frequently used in the fields of natural language processing, artificial intelligence, and voice recognition [2]. The visual example that you see below shows the labeling of an image. The classes you see here are usually equivalent to the car class. In the tool section that you see on the left side, you can classify objects like curves, polygons, or rectangles. This selection may vary depending on the limits of the data you want to tag.
Labeling Colabeler
Then in the section that says ‘Label Info’, you type the name of the objects you want to tag yourself. After you finish all the tags, you save them by confirming them from the blue tick button. And so you can go to the next image with Next. Here we should note that every image we record is sorted to the left of this blue button. It is also possible to check the images you have recorded in this way. One of the things I like most about Colabeler is that it can also use artificial intelligence algorithms.
📌 I performed tagging via Colabeler in a project I worked on before, and it is a software with an incredibly easy interface.
📽 The video on Colabeler’s authorized websites describes how to make the labeling.
Localization of Bone Age
I gave a sample image of the project I worked on earlier above. Because this project is a localization project in the context of machine learning, labeling has been done by adhering to these features. Localization means isolating the subregion of the image where a feature is located. For example, trying to define bone regions for this project only means creating rectangles around bone regions in the image [3]. In this way, I have labeled the classes that are likely to be removed in the bone images as ROI zones. I then obtained these tags as Export XML/JSON provided by Colabeler. A lot of machine learning employees will like this part, it worked very well for me!

♻️ Export Of Labels

Exporting XML Output
At this stage, I have saved it as JSON output, because I will use JSON data, you can save your data in different formats. In the image I give below, you can see the places of the classes I created in the JSON output. In this way, your data was prepared in a labeled manner.
JSON Format

📍ImageJ

ImageJ is a Java-based image processing program developed at the National Institutes of Health and the Laboratory for Optical and Computational Instrumentation (LOCI, University of Wisconsin). ImageJ’s plugin architecture and built-in development environment have made it a popular platform for teaching image processing [3].

As I listed above, you can see a screenshot taken from ImageJ in Wikipedia. As can be seen, this software does not exist on an overly complex side. It is a tool that is used in many areas regardless of the profession. 📝The documentation provided as a user’s guide on authorized ImageJ websites describes how to perform labeling and how to use the software tool.
📌 I have also been to Fiji-ImageJ software tools for images that I had to tag in the machine learning project. I think its interface is much older than other labeling programs I’ve worked with. Of course, you can perform the operations that you want to do from a software point of view, but for me, the software also needs to saturate the user from a design point of view.
Fiji-ImageJ
The image I gave above was a screenshot I took during the project I was working on on my personal computer. In order to be able to activate the data while working on the Matlab platform, it was necessary to update with priority. For this reason, after updating, I continued to identify the images. Below is the package that will be installed during the installation of the Matlab plugin for ImageJ users.
ImageJ Matlab

📍Matlab Image Labeler

The Image Labeler app provides an easy way to mark rectangular area of interest (ROI) tags, polyline ROI tags, Pixel ROI tags, and scene tags in a video or image sequence. For example, using this app will start by showing you [4]:

  • Manually tag a picture frame from an image collection
  • Automatically tagging between image frames using an automation algorithm
  • Export tagged location fact data

Image Toolbox Matlab
In the image you see above, we can perform segmentation using Matlab image Labeler software. More precisely, it is possible to make labeling by dividing the data into ROI regions. In addition, you can use previously existing algorithms, as well as test and run your own algorithm on data.
Selection ROI
In this image I received from Matlab’s authorized documentation, the label names of the bounding regions you selected are entered in the left menu. A label Color is assigned according to the class of the object. It is also quite possible that we create our labels in this way. In the next article, I will talk about other labeling tools. Hope to see you ✨

REFERENCES
  1. https://medium.com/@abelling/comparison-of-different-labelling-tools-for-computer-vision-f3afd678da76.
  2. https://www.colabeler.com.
  3. From Wikipedia, The Free Encyclopedia, ImageJ, https://en.wikipedia.org/wiki/ImageJ.
  4. MathWorks, Get Started with the Image Labeler, https://www.mathworks.com/help/vision/ug/get-started-with-the-image-labeler.html.
  5. https://chatbotslife.com/how-to-organize-data-labeling-for-machine-learning-approaches-and-tools-5ede48aeb8e8.
  6. https://blog.cloudera.com/learning-with-limited-labeled-data/.

Makine Öğrenimi İçin Veri Etiketleme Araçları

Verilerin etiketlenmesi işlemi, gözetimli herhangi bir makine öğrenimi projelerinde çok önemli bir adımdır. Etiketleme, bir görüntüdeki alanları tanımlama ve bu bölgeler için hangi nesneye ait ise o nesnenin açıklamalarının oluşturulduğu işlemidir. Verilerin etiketlenmesi ile hem verilerimizi ML projelerine hazırlamış oluyoruz hem de onları daha okunabilir kılıyoruz. Çalıştığım projelerin çoğunda veri setindeki kümeleri oluştururken yeri geldi kendim etiketlemeler yaptım yeri geldi etiketlenmiş görüntüler ile eğitim işlemimi gerçekleştirdim. Bu yazıda sizler ile bu alanda tecrübelerimi paylaşarak en çok karşılaştığım veri etiketleme araçlarını tanıtacağım.
Labeling Image

📍COLABELER

Colabeler, konumlandırma ve sınıflandırma problemlerinde etiketleme yapmayı sağlayan programdır. Bilgisayarlı görü, doğal dil işleme, yapay zekâ ve ses tanıma alanlarında sıkça kullanılan bir etiketleme programıdır [2]. Aşağıda gördüğünüz görsel örnek bir görüntü etiketlenmesini göstermektedir. Burada gördüğünüz sınıflar genellikle araba (car) sınıfına denk gelmiştir. Sol tarafta gördüğünüz araç bölümünde nesneleri eğri, poligon veya dikdörtgen olarak sınıflandırmanız mümkündür. Bu seçim etiketlemek istediğiniz verinin sınırlarına göre değişebilmektedir.
 

Labeling Colabeler
Ardından ‘Label Info’ yazan bölümde kendiniz etiketlemek istediğiniz nesnelerin ismini yazıyorsunuz. Tüm etiketlemeleri bitirdikten sonra mavi tik olan butondan onaylayarak kaydediyorsunuz. Ve böylelikle bir sonraki görüntüye Next ile geçebiliyorsunuz. Burada dikkat etmemiz gereken nokta, kaydettiğimiz her görüntü bu mavi butonun soluna sıralanmaktadır. Bu şekilde kaydettiğiniz görüntüleri de kontrol etmeniz mümkündür. Colabeler’ın en çok sevdiğim yanlarından bir tanesi içerisinde yapay zeka algoritmalarını da kullanılabilir olmasıdır. 
📌 Daha önce çalıştığım bir projede Colabeler üzerinden etiketleme gerçekleştirdim ve inanılmaz kolay bir arayüze sahip bir yazılımdır.
📽 Colabeler’ ın yetkili web sitelerinde yer alan videoda etiketlemelerin nasıl yapılacağı açıklanmıştır.
Localization of Bone Age
Daha önce çalıştığım projenin örnek bir görüntüsünü yukarıda verdim. Bu proje, makine öğrenimi bağlamında yerelleştirme (localization) projesi olduğu için bu özelliklere bağlı kalınarak etiketleme yapılmıştır. Yerelleştirme, bir özelliğin bulunduğu görüntünün alt bölgesini izole etmek anlamına gelir. Örneğin, bu proje için kemik bölgelerinin tanımlanmaya çalışılması yalnızca görüntüdeki kemik bölgelerinin etrafında dikdörtgenler oluşturmak anlamına gelir [3]. Bu şekilde kemik görüntülerinde çıkarılması muhtemel sınıfları ROI bölgesi olarak etiketlemiş oldum. Ardından bu etiketleri Colabeler’ın sağladığı Export XML/JSON olarak elde ettim. Bu kısım birçok makine öğrenimi çalışanlarının hoşuna gidecektir, benim çok işime yaramıştı!

♻️ Etiketlerin Dışarıya Aktarılması

Exporting JSON Output
Bu aşamada ben JSON veriler kullanacağım için JSON çıktısı olarak kayıt etmiştim, siz verilerinizi farklı formatlarda kayıt edebilirsiniz. Aşağıda verdiğim görselde ise oluşturduğum sınıfların JSON çıktısındaki yerlerini görmektesiniz. Bu şekilde verileriniz etiketli bir şekilde hazırlanmış oldu.
JSON Format

📍ImageJ

ImageJ, Ulusal Sağlık Enstitüleri ve Optik Hesaplamalı Enstrümantasyon Laboratuvarı’nda (LOCI, Wisconsin Üniversitesi) geliştirilen Java tabanlı bir görüntü işleme programıdır. Imagej’in eklenti mimarisi ve yerleşik geliştirme ortamı, görüntü işlemeyi öğretmek için popüler bir platform haline getirmiştir [3].

Yukarıda yer verdiğim şekilde Wikipedia içerisinde ImageJ’den alınmış bir ekran görüntüsünü görmektesiniz. Görüldüğü gibi bu yazılım aşırı kompleks bir tarafı mevcut değildir. Birçok alanda meslek fark etmeksizin kullanılmakta olan bir araçtır.
📝 ImageJ’ in yetkili web sitelerinde yer alan kullanım kılavuzu olarak verilen dokümantasyonda etiketlemelerin nasıl yapılacağı ve yazılım aracının nasıl kullanılacağı açıklanmıştır.
📌 Makine öğrenimi projesinde etiketlemek zorunda kaldığım görüntüler için Fiji-ImageJ yazılım araçlarına da uğramışlığım vardır. Arayüzü diğer çalıştığım etiketleme programlarına göre çok daha eski kalmış durumda diye düşünüyorum. Yazılımsal açıdan yapmak istediğiniz işlemleri gerçekleştirebilirsiniz elbette, ancak bana göre bir yazılımın kullanıcıyı tasarımsal açıdan da doyurması gerekmektedir.
Image Toolbox Matlab
Yukarıda verdiğim görsel kişisel bilgisayarımda çalıştığım proje sırasında aldığım bir ekran görüntüsü idi. Matlab platformunda çalışırken verileri aktif edebilmek için öncellikle güncelleme yapmak gerekiyordu. Bu sebeple güncelleme yaptıktan sonra görüntüleri tanımlamaya devam ettim. ImageJ kullanıcıları için Matlab eklentisinin kurulması sırasında yüklenecek paket aşağıda verilmektedir.
ImageJ Matlab

📍Matlab Image Labeler

Image Labeler uygulaması, bir video veya görüntü dizisinde dikdörtgen ilgi alanı (ROI) etiketlerini, polyline ROI etiketlerini, piksel ROI etiketlerini ve sahne etiketlerini işaretlemenin kolay bir yolunu sunar. Örnek olması için bu uygulamayı kullanarak size göstererek başlamış olur [4]:

  • Bir resim koleksiyonundan bir resim çerçevesini el ile etiketleme
  • Bir Otomasyon algoritması kullanarak görüntü çerçeveleri arasında otomatik olarak etiketleme
  • Etiketli lokasyon gerçeği verilerini dışa aktarma

Image Toolbox Matlab
Yukarıda gördüğünüz görselde Matlab Image Labeler yazılımını kullanarak segmentasyon işlemi yapabiliyoruz. Daha doğrusu verileri ROI bölgelerine ayırarak etiketleme yapmamız mümkündür. Ayrıca, daha önce var olan algoritmaları kullanmanız mümkün olduğu gibi kendinize ait algoritmanızı da veriler üzerinde test edip çalıştırabiliyorsunuz.
Selection ROI
Matlab’ın yetkili dokümantasyonundan aldığım bu görselde sol menüde seçtiğiniz sınırlayıcı bölgelerin etiket isimleri girilmektedir. Nesnenin sınıfına göre bir etiket rengi atanmaktadır. Bu şekilde etiketlerimizi oluşturmamız da oldukça mümkün. Bir sonraki yazıda ise diğer etiketleme araçlarından bahsedeceğim. Görüşmek dileğiyle ✨

REFERANSLAR
  1. https://medium.com/@abelling/comparison-of-different-labelling-tools-for-computer-vision-f3afd678da76.
  2. https://www.colabeler.com.
  3. From Wikipedia, The Free Encyclopedia, ImageJ, https://en.wikipedia.org/wiki/ImageJ.
  4. MathWorks, Get Started with the Image Labeler, https://www.mathworks.com/help/vision/ug/get-started-with-the-image-labeler.html.
  5. https://chatbotslife.com/how-to-organize-data-labeling-for-machine-learning-approaches-and-tools-5ede48aeb8e8.
  6. https://blog.cloudera.com/learning-with-limited-labeled-data/.