Emir Özcan: Roboflow Detectron2 ile Görüntü İşleme

Emir Özcan: Roboflow Detectron2 ile Görüntü İşleme

Detectron2, Facebook tarafından sağlanan nesne algılama ve segmentasyon gibi yapay zekâ algoritmalarının açık kaynaklı bir kitaplığıdır. Ayrıca PyTorch’tan güç alır. Dikkate alınması gereken algoritma segmentasyondur. Segmentasyon, girdideki farklı nesneleri gruplamak için kullanılır. Örneğin, görüntü isteminde köpek ve kedi deyin. Şimdi bu iki hayvanı kategorize edebilir ve gruplayabilirsiniz. Problemi tanımlayalım. Görüntü girişindeki arabaları gruplandırın ve maskeleyin.

Sorunu Çözmek İçin Bir Prosedür Tanımlayalım.

Model eğitimi için kullanılacak görüntüleri seçin 

Roboflow fotoğrafları yükleyerek POLYGON olacak şekilde etiketleyin.

Gerekli ayarlamaları yaptıktan sonra export kısmından COCO::JSON sekmesinden coco seçerek export edin.

Ve eğitime başlayalım.

Model Eğitimi İçin Kullanılacak Görüntüleri Seçin.

Hazır fotoğraflar bulabileceğiniz platformlar var (Open images vb.), Google Chrome üzerinden Fatkun Batch uzantısını indirerek Google Görsellerden toplu fotoğraflar indirebilirsiniz veya kendi veri setinizi oluşturabilirsiniz bu size kalmış bir durum.

Roboflow Fotoğrafları Yükleyerek POLYGON Olacak Şekilde Etiketleyelim. 

1- Arama motoruna roboflow.ai yazarak aratma yapalım.

2- İlk sırada olan linke tıklayalım.

3- Açılan ekranda sağ üst kısımda kayıt olma ve giriş butonları bulunmakta yeni girecek olanlar kayıt olsun önceden kaydı olanlar giriş yaparak giriş yapsın.  

4- Şimdi fotoğraflarımız yükleyelim. 

Create new project butonuna tıklayalım.

 

Ve Proje ismimizi ve modeliminiz ne tahmin edeceğini yazalım

Sonrasında Project Type sekmesinden semantic segmentation sekmesini seçip Create Public Project butonuna tıklayalım. 

Bunları yaptıktan sonra açılan sayfada select folder diyerek veri setimizin olduğu klasörü buraya sürükleyelim.

5- Ve fotoğraflarımız yüklendi.

6- Fotoğraflar yüklendikten sonra etikelemeye başlayabiliriz.

polygon etiketleme seçeneğini seçerek fotoğrafta tespit etmek istediğimiz nesnenin sınırlarını çizeceğiz.

Örnek Etiketleme

7- Etiketlemeler bittikten sonra generate kısmından gerekli ayarlamalar yapıldıktan sonra generate kısmına tıklayarak verilerimizi hazırlamayı tamamlayalım.

Gerekli Ayarlamaları Yaptıktan Sonra Export Kısmından JSON Sekmesinden COCO Segmentation Bölümünü Seçip Export Edin 

1- Generate bittikten sonra export butonuna tıklayın. 

 

2- Exporta tıkladıktan sonra Json sekmesi altında COCO Segmentation kısmını seçip show dowloand code bölümünü seçip Continue diyelim.

3- Ve Eğitim Kısmına Geçebiliriz :D

Ve Eğitime Başlayalım

Continue dedikten sonra Jupyter sekmesini seçip işaretlediğim yerleri kopyalayalım. 

Ve bu linke tıklayıp Mask RCNN sekmesinden Mask RCNN Colab Notebook linkine tıklayalım.

Mask RCNN Colab Notebook

Açılan Colab Notebook sayfasında olan tüm kodların Drive’a bir kopyasını kaydedelim. 

 

Drive Kopya

Sonra yeni sekmeden Drive’a kopyasını kaydettiğimiz Colab kodunu açalım.

Şimdi Başlıyoruz Biliyorum Çok Uzattım Ama Detayıyla Vermek İstedim :D

1- İlk iki kod hücresini çalıştıralım hiçbir şey değiştirmeden.  

2- üçüncü kod hücresine hatırlarsanız roboflow jupyter kısmında bir şeyler kopyalamıştık üst kısımlarda ekledim dönüp bakabilirsiniz. Benim işaretlediğim yeri sadece kopyalayarak Colab üzerinde olan kod kısmında VERSION = 2 kısmını silmeden alt kısmındaki kodları silerek bizim export ettiğimiz ve kopyaladığımız kodları yapıştıralım.

 

3- Kopyaladıktan sonra bu kodu da çalıştıralım ve sonuç kısmında çıkan Zip in ve Zip to kısmında yazan isimleri bir alt kod hücresinde bulunan zip isimleri ile değişelim. 

American-Sign-Language-Poly-2 yazan yer 

4- Bu işlemleri tamamladıktan sonra dördüncü kod hücresinde asl_poly yazan kısımları silerek sırası ile şöyle yazalım a_train, c_test, b_valid şeklinde değiştirelim ve çalıştıralım. 

Eski 

 

Yeni 

5- Beşinci kod hücresini çalıştırmadan asl_poly_train yazan yeri a_train olarak değiştirip çalıştıralım.

Eski 

Yeni 

6- Altıncı kod hücresi asl_poly_train ve asl_poly_test yazan kısımları a_train ve c_test olarak değiştirip çalıştıralım.

 

Eski

 

Yeni 

7- Yedinci kod hücresini hiçbir şey değiştirmeden çalıştıralım. Biraz uzun sürecektir çünkü eğitimimiz başlamış bulunmakta. :)

Eğitimi Test Etmek Amacı ile Denemelerimizi Yapalım 

1- Sekizinci kod hücresinde asl_poly_valid kısmını b_valid olarak değiştirerek çalıştıralım. 

Eski 

 

Yeni 

2- Dokuzuncu kod hücresini çalıştırarak sonuçlarımızı görelim. :)

3- Onuncu kod hücresini çalıştırarak eğitim dosyamızı yükleyelim. :)

 

ROBOFLOW ÜZERİNDEN DETECTRON2 İLE VERİ SETİ HAZIRLAMAYI VE EĞİTİM YAPMAYI AÇIK BİR ŞEKİLDE AÇIKLAMAK İSTEDİM UMARIM FAYDALI OLACAKTIR İYİ ÇALIŞMALAR.