Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, Batuhan (ITU Bilgisayar Mühendisliği 3. sınıf), Ensar Erdağ (Bahçeşehir Üniversitesi Yazılım Mühendisliği son sınıf, Vodafone stajyer), Hasan Özer (ITU Bilgisayar Mühendisliği 3. sınıf) ve Mehmet Ali (Yenitepe Üniversitesi Yazılım Geliştirme asistanı) tarafından sunulan bir proje sunumudur.
- Sunum, ESCV 2020 Workshop'ı olan Robust Vision Challenge'a katılım sürecini anlatmaktadır. Grup, object detection kategorisinde dört farklı dataset kullanarak çalışmış ve Future Pramit Networks (FPN) modelini tercih etmiştir. Sunum, problem tanımı, literatür incelemesi, veri seti hazırlama, model seçimi ve eğitilme süreci aşamalarını kapsamaktadır.
- Sunumda ayrıca karşılaşılan zorluklar (data organizasyonu, class dengesi, GPU sorunları) ve çözüm yolları ele alınmakta, modelin eğitilme süreci ve elde edilen sonuçlar hakkında bilgiler verilmektedir. Video, izleyicilerin fotoğraf yükleyerek modelin performansını test edebileceği bir demo ile sonlanmaktadır.
- 00:07Takım Tanıtımı
- Botan FBA, İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği 3. sınıf öğrencisi ve Prof. Dr. Gözlüğünü aldı hocasıyla birlikte bilgisayarla göre laboratuvarında çalışmaktadır.
- Ensar Erdağ, Bahçeşehir Üniversitesi Yazılım Mühendisliği son sınıf öğrencisi ve Vodafone'da uzun dönem stajyer olarak altı aydır çalışmaktadır.
- Hasan Özer, İTÜ Bilgisayar Mühendisliği 3. sınıf öğrencisi ve Gözde çalışmaktadır.
- Mehmet Ali, Yenitepe Üniversitesi Yazılım Geliştirme'de asistanlık yapmaktadır.
- 01:18Robust Vision Challenge'a Katılım
- Takım, ESCV 2020 workshop'ı olan Robust Vision Challenge'a katılmak için girişimde bulunmuştur.
- Problem, object detection (fotoğraflardaki objelerin konumlandırılması) ve bu network'ü robus bir hale getirmektir.
- Challenge'ın yedi farklı kategorisi vardır ve takım object detection kategorisinde dört farklı dataset ile çalışmaktadır: COCO, Revit Objects, Trace Fire ve Google'ın Open Ages dataset.
- 02:37Proje Süreci
- Takım, Litcher Review için yaklaşık bir buçuk ay vakti olmuş, ancak Corona nedeniyle data setlerin hazırlanması ve challenge'ın scriptleri yayınlanmasında sorun yaşadıkları için bu süreyi kullanamamışlardır.
- Nisan ayının sonuna doğru data preporation'a ve model selection'a başlamışlardır.
- Şu an hala devam eden model pişirme aşamasında olup, modelleri henüz yedi-sekiz epok olmuş ve yavaş yavaş pişmeye başlamıştır.
- 03:55Model Seçimi
- Takım, temel setlerinden biri olan COCO için ilgili paper'ları okumuş ve RCNN modellerden başlayıp Fast RCNN modellerine ve sonunda COCO'nun SOTA modellerine gelmiştir.
- İlk başta Cascade R-CNN modelini düşündüklerini ancak datalarının çok daha büyük olacağını ve class sayısının 640 olacağını, ayrıca iki GPU'yla etmelerinin zorlayacağını düşündüklerini belirtmişlerdir.
- Bu nedenle daha scalable olabilecek ve daha az flop sayısıyla daha iyi sonuçlar verebilen ikinci SOTA modeli olan Efficient Detect üzerine karar vermişlerdir.
- 05:22Veri Seti Hazırlama
- Challenge'ı düzenleyen kişilerin sağladığı scriptlerle dört farklı data setini indirmişlerdir.
- Toplam 800 gigabayt'lık görsel data setinden bahsedilmektedir.
- Her data setten eşit miktarda tüm class'lar için fotoğraf çekmek istemişler ve tüm annotationların JSON dosyalarını COCO formata çeviren scriptleri hazırlamışlardır.
- 06:38Veri Seti Detayları
- Veri setlerinde toplam kaç fotoğraf ve ne kadar annotation olduğu gösterilmiştir.
- Her kategoriye ait annotation sayısı farklılık göstermektedir, örneğin birinci kategoride 955 tane annotation bulunurken, bazı kategorilerde 300 civarında annotation bulunmaktadır.
- Sample alırken, annotation'lar üzerinden örnek alırken sadece bir fotoğraf üzerinden annotation almanın problem yaratabileceğini fark etmişler ve bu sorunu çözmek için her fotoğraftan belli bir sayı alıp, her annotation'ı bir fotoğraftan alıp, o fotoğrafa ait diğer annotation'ları da alarak çözmeye çalışmışlardır.
- 08:53Model Uygulaması
- Takım, Efficient Detect Detection Network modelini seçmiştir.
- Efficient Net, Efficient backbone'a sahip olup, çok düşük parametre sayısıyla, çok düşük floplarla çok yüksek accuracy'e ulaşabilen bir modeldir.
- Modeli PyCh'a yazmışlar, Efficient Net backbone'u Look Melas'tan, Efficient Detection Network'ü ise Zela 117'nin kitabından adapte etmişlerdir.
- 10:13Future Primat Networkler
- Future pramit networkler, Efficient Deep Learning'in en büyük trick'lerinden biridir.
- Bu networklerde piramit şeklinde katman katman multi-scale yapılar bulunur ve her bir future map'in outputu diğer layer'a aktarılır.
- By-directional FBN modelinde hem top-to-bottom hem de bottom-to-top yönlerde output'ların layerlar arası iletildiği, Resnetlere benzer skipp connection'ları içeren bir yapı kullanılır.
- 12:31Loss ve Eğitim Süreci
- Classification için crop loss kullanılırken, single stage detection için focal loss adı verilen bir loss tanımlanır.
- Focal loss, kolay class'ların loss katkısını azaltarak modelin bu class'ları kontrol etmemesini sağlar.
- Model yaklaşık 240 bin fotoğrafla eğitilmiş olup, her class'tan yaklaşık 500 örnek seçilmiş bir dataset parçasından oluşmaktadır.
- 15:07Karşılaşılan Zorluklar
- Büyük ve iyi organize olmayan data'nın düzenlenmesi uzun zaman alıyor.
- Dataset'ler ve class'lar dengeli olmadığı için farklı yaratıcı çözümler geliştirilmesi gerekiyor.
- GPU'lar eğitim sürecini çok yoruyor, bir epoch yaklaşık 4 saat sürüyor ve daha büyük ekran kartları ve daha büyük veri setleri kullanmak gerekiyor.
- 16:01Model Performansı ve Demo
- Base line olarak alınan Coco modelinde precision değerleri gösterilirken, 7 epoch'tan sonra alınan sonuçlar daha düşük seviyede.
- Demo aşamasında izleyicilerin fotoğraflarını yükleyerek nesneleri tespit etmeye çalışılıyor.
- Model bazen nesneleri doğru sınıflandırıyor ancak bazen semantik olarak yakın anlamlı nesneleri karıştırıyor.