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. http://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. http://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/.