• Sonuç bulunamadı

TEKNOFEST HAVACILIK, UZAY VE TEKNOLOJİ FESTİVALİ ULAŞIMDA YAPAY ZEKA YARIŞMASI KRİTİK TASARIM RAPORU

N/A
N/A
Protected

Academic year: 2022

Share "TEKNOFEST HAVACILIK, UZAY VE TEKNOLOJİ FESTİVALİ ULAŞIMDA YAPAY ZEKA YARIŞMASI KRİTİK TASARIM RAPORU"

Copied!
10
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

1

TEKNOFEST

HAVACILIK, UZAY VE TEKNOLOJİ FESTİVALİ

ULAŞIMDA YAPAY ZEKA YARIŞMASI

KRİTİK TASARIM RAPORU

(2)

2 İçindekiler

İçindekiler

1. Takım Şeması ... 3

2. Proje Mevcut Durum Değerlendirmesi ... 3

3. Algoritmalar ve Yazılım Mimarisi ... 3

3.1. Algoritmalar ... 3

3.1.1. Transfer Öğrenme ve Veri Artırımı Yöntemleri ... 3

3.1.2. RetinaNet ... 4

3.1.3. YOLO ... 4

3.1.4. Faster-RCNN/Centernet ... 4

3.2. Yazılım Mimarisi ... 4

4. Özgünlük ... 6

5. Sonuçlar ve İnceleme ... 6

6. Kaynakça ... 9

(3)

3 1. Takım Şeması

2. Proje Mevcut Durum Değerlendirmesi

Ön tasarım raporunda algoritmalar ve ön işleme konularının isabetli belirlendiği doğrulanmıştır.

Algoritma listesine tek-aşamalı nesne tespit algoritması olan RetinaNet eklenmiştir. Yeniden eğitilen bir RetinaNet modeli ile UAP (Uçan Araba Park) ve UAİ(Uçan Ambulans İniş) iniş noktalarının tespit edilebileceği düşünülmüştür. Mimari tanımı ön tasarım raporuna göre detaylandırılmıştır. RetinaNet modeli az sayıda resim ile yeniden eğitilmiştir. YOLO modeli dronedan çekilmiş videolardan elde edilen ve yaklaşık 5000 resimden oluşan etiketlediğimiz veri seti ile eğitilmiştir. Faster-RCNN modeli KITTI[19] veri seti ile başarılı şekilde eğitilmiştir.

3. Algoritmalar ve Yazılım Mimarisi 3.1. Algoritmalar

3.1.1. Transfer Öğrenme ve Veri Artırımı Yöntemleri

Yapay zekâ projelerinde veri kümesini hazırlamak, en çok zaman alan ve en önemli noktalardan biridir. Eğitilen algoritmaların en yüksek doğrulukta nesne tespiti yapabilmesi için çok miktarda veri gerekmektedir. Gereken veri miktarını azaltmak ve başarı oranını arttırmak için

"transfer öğrenme" tabanlı yöntemler kullanılacaktır. Eğitim aşamasına başlanıldığında algoritmanın içindeki ağırlıklar (weights) standart olarak rastgele atanır. Hazırlanan veri kümesini rastgele ağırlıklar ile başlayarak eğitmek yerine önceden eğitilmiş bir modelin katmanları kullanılacaktır.

Transfer öğrenme yöntemiyle algoritmadaki ağırlıklar olması gereken değerlere daha hızlı yaklaşacaklardır. Eğitimde veri artırımı (data augmentation) yönteminin kullanılması, veri kümesini genişleten ve algoritma başarısını arttıran bir yöntemdir. Bu sebeple hazırlanan veri kümesi veri artırımı yöntemiyle genişletilecektir. Ardından algoritma kendi veri kümemiz ile eğitilecektir. Böylece daha az eğitim verisiyle daha yüksek tespit oranına ulaşılması

(4)

4 sağlanacaktır. Etiketli veriler üzerinde veri artırımı yöntemi [3] kullanılmıştır. Bu yöntem sayesinde sınırlayıcı kutu ile işaretlenmiş resimlere veri artırımı yöntemi uygulanarak veri seti genişletilmiştir.

3.1.2. RetinaNet

Bir modeli sıfırdan eğitmek yerine tek aşamalı dedektör olan RetinaNet [1] tanımı ve kontrol noktaları transfer öğrenme için kullanılmıştır. RetinaNet, eğitim sırasında sınıf dengesizliğini gidermek için bir odak kaybı işlevi kullanan tek aşamalı bir nesne algılama modelidir.

RetinaNet, bir omurga ağından ve göreve özel iki alt ağdan oluşan tek, birleşik bir ağdır.

Omurga ağı genişledikçe isabeti artmakta fakat çıktı hızı azalmaktadır. RetinaNet çok az eğitim verisiyle nesne tespiti yapabilmektedir. Yarışma kapsamında sağlanan örnek eğitim videosu, model eğitiminde kullanılabilir.

3.1.3. YOLO

Makale [4], bu makalenin yayınlandığı tarihte yeni bir teknik tanıtan tek aşamalı bir nesne algılama modeli olan YOLO'yu sunmaktadır. YOLO, sınırlayıcı kutuları uzamsal olarak ayırmak ve sınıf olasılıklarını ilişkilendirmek için nesne algılamayı bir gerileme problemi olarak çerçeveler.

YOLO, işlenmemiş görüntülerden doğrudan nesnelerin sınırlayıcı kutularını ve sınıflarını tahmin eden tek bir sinir ağı kullanır.

3.1.4. Faster-RCNN/Centernet

Faster-RCNN ve CenterNet gibi nesne algılama için bazı son teknoloji modeller üzerinde çalışılmış, ardından KITTI adı verilen nesne algılama ve izleme veri kümesi üzerinde eğitilmiştir. Seçilen modeller, yayalar ve arabalar gibi bazı temel unsurları algılamak üzere eğitilmiştir.

Centernet [5], nesnelerin algılanması için bağlantı kutuları yerine anahtar noktaları kullanan tek aşamalı bir nesne algılayıcı olan CenterNet'i tanıtmaktadır. Kendinden önceki CornetNet'in yaptığı gibi bir çift anahtar nokta yerine üçlü anahtar nokta kullanır.

3.2. Yazılım Mimarisi

Mimari yazılım mimarisi ve sistem mimarisi olarak iki farklı şekilde hazırlanmış- tır. Yazılım mimarisi, veri setinin hazırlanması ve model eğitimini içermektedir. Sistem mimarisi, modele girdi olacak görsellerin hazırlanması ve modelin üretmiş olduğu sonuçları yarışma standardına uygun olarak JSON nesnesinin oluşturulmasını sağlamaktadır.

Yapay zekâ projelerinde veri kümesini hazırlamak, en çok zaman alan ve en önemli noktalardan biridir. Eğitilen algoritmaların yüksek doğrulukta nesne tespiti yapabilmesi için çok miktarda veri gerekmektedir. Veri miktarını artırmak için veri artırım modülü kullanılmaktadır. Veri artırım modülü, görsellerine ayrılmış olan videoların her bir görseli için döndürme, aynalama, ölçeklendirme, kırpma, interpolasyonunu alma, gürültü ekleme, görselin farklı hava olaylarındaki karşılığını üretme ve gece-gündüz karşılığını üretme metotlarını kullanarak veri miktarını artırmaktadır. Veri miktarı artırılırken veri setinin homojenliği korunmaktadır. Oluşturulan veri seti Ericsson EVA [20] yazılımı ile etiketlenmiştir. Yazılım, etiketlenmiş olan veri setini YOLO standardında indirilmesini sağlamaktadır. Veri seti etiketlenmesi tamamlandıktan sonra resimlerin boyutlandırılması, parlaklık ayarlama vb. ön işlem adımlarından geçerek modele girdisi olacak veri seti oluşturulmaktadır.

(5)

5 Veri miktarını

optimum şekilde kullan- mak ve başarı oranını arttırmak için Transfer

Öğrenme tabanlı

yöntemler kullanılmak- tadır. Eğitim aşamasına başlanıldığında algoritma- nın içindeki ağırlıklar (weights) standart olarak rastgele atamak yerine önceden eğitilmiş bir modelin katmanları kullanılmaktadır. Transfer öğrenme yöntemiyle algo- ritmadaki ağırlıklar olması gereken değerlere daha hızlı yaklaşmaktadır.

Önceden eğitilmiş modelin çıktı katmanı modelden çıkartılarak yeni bir çıktı katmanı eklenmektedir.

Yeni çıktı katmanın eklenmesiyle oluşturulmuş

olan veri seti

kullanılarak model eğitimi yapılmaktadır.

Sunucu tarafından iletilen JSON nesnesi, JSON-JPG Dönüştürücü modülü tarafından parçalanarak görseller elde edilmektedir. Elde edilen görseller oluşturulmuş olan AI modeline iletilerek gör- sel için modelin üretmiş olduğu sonuçlar JSON oluşturucu, modülüne iletilmektedir. JSON oluşturucu modülü, modelin üretmiş olduğu sonuçları yarışma stan- dardına göre düzenler ve JSON nesnesi olarak çıktı üretmektedir.

Şekil 2- Yazılım Mimarisi

Şekil 3- Sistem mimarisi

(6)

6 4. Özgünlük

İnsan ve araç içeren birçok açık kaynak veri seti bulunmaktadır [6], [7], [8], [9]. Bu veri setleri Uçan Araba Park Alanı (UAP) ve Uçan Araba Acil İniş Alanı (UAI) bilgilerini içermemektedir.

İniş alanlarını tespitini mümkün kılmak için UAP ve UAI resimleri belirlenen veri setindeki bazı resimlere gömülecek ve etiketlenecektir. Veri seti hazırlama sürecinde veri artırımı yöntemleri kullanılarak veri seti genişletilecektir. Özellik çıkartma (Feature Extraction) için önceden eğitilmiş ResNet50, RetinaNet, darknet53.conv.74 modelleri transfer öğrenme yöntemi ile modellere eklenecektir. Doğruluk oranını artırmak için görüntü iyileştirme yöntemleri veri setine uygulanacaktır. Farklı algoritmalara ait modeller ilk aşamada bu veri setleri üzerinden eğitilecektir. Eğitilen modeller örnek eğitim videosu kullanılarak test edilecektir. Tespit başarısının tatmin edici düzeyde olmaması durumunda kendi verilerimiz drone ile toplanacaktır. Bu veri seti elle etiketlenecektir ve önceki modelleri eğitmek için kullanılan işlemler tekrarlanacaktır. UAP ve UAI alanları üzerinde nesne olması durumunu tespit etmek için ayrıca bilgisayarlı görü yöntemlerinden faydalanılacaktır. Bu yöntemler görüntü işleme ile kusur tespiti ve yapay zekayla kusur tespiti olacaktır. Yağmurlu, sisli vb.

durumlarda nesne tespit başarısını artırmak için görüntü iyileştirme yöntemleri [11], [12]

kullanılacaktır. Bunun için öncelikle görüntüde yağmur ve sis seviyesi tespit edilmesi gerekmektedir [13], [14]. Program nesne tespitine başlamadan önce duruma göre dinamik olarak görüntü iyileştirme [10] yapacaktır. Nesnelerin kısmi gözüktüğü karelerde başarılı nesne tespiti için veri setine nesnelerin kısmi gözüktüğü örnekler eklenecektir.

5. Sonuçlar ve İnceleme

Şekil 4. RetinaNet mimarisi

RetinaNet modeli eğitilmesi aşamasında çeşitli zorluklar aşılmıştır. Bunlardan en önemli dikkat edilmesi gereken önemli nokta şudur: Çıktı katmanında, sınıflandırmanın gerçekleştiği bir sınıf alt ağı ve sınırlayıcı kutuların konumlarını tahmin eden bir kutu alt ağı vardır. Çalışmamızda veri kümemiz için yeniden eğitilecek olan sınıf alt ağları dışında her şeyi olduğu gibi koruyarak RetinaNet'ten öğrenmeyi sağladık. Öncelikle modeli tanımlayan bir yapılandırma dosyası kullanmamız gerekti. Ardından kayıtlı kontrol noktalarını kullanarak modeli başlatıldı. Bu sayede model mimarisi eğitilmiş ağırlıklardan ayrılmış oldu. Elimizdeki görüntüleri etiketlemek için colab_utils.annotate fonksiyonu kullandık. Az sayıda görüntü etiketlememiz gerektiği için bu yöntem yeterli oldu. Kontrol noktalarını şablonlanmış modele geri yükleme işlemi kodlama açısından biraz zorlayıcı oldu. İlk önce, sınırlayıcı kutular için kullanılıp atılan bir tahmin edici yaratılması gerekti. Bu tahmin edici son modelle karışmaması için “sahte”

olarak isimlendirildi. Bu sahte tahmin edici TensorFlow kontrol noktası örneği olarak kullanıldı. Modelin tekrar eğitilmesi aşamasına geçildiğinde: önceden eğitilmiş retina modelinin eğitim değişkenleri arasında, ince ayar yapması gereken bazı değişkenler ve önceden eğitilmiş ağırlıklarıyla olduğu gibi tutması gereken değişkenler vardır. Bu değişkenlerden

(7)

7 hangilerini kendi verilerimizle ince ayar yapmak istediğinizi seçtik ve bunları bir listede tuttuk.

Eğitimde kullanacağımız her resim için: ilk olarak önişlemeden geçirdik ardından sınıf ve sınırlayıcı kutular dahil olmak üzere bu görüntüler üzerinde tahminler yapmak için modeli kullandık. Arabaların etrafına çizdiğimiz sınırlayıcı kutularla beraber gerçek etiketlere kıyasla modelimizin ne kadar iyi performans gösterdiğini ölçmek için kaybı hesaplatıldı. İnce ayar yapmayı seçtiğimiz eğitilebilir ağırlıkların hangi yöne doğru güncelleneceği belirlemek için bu kayıplar üzerindeki gradyan hesaplatıldı. Son olarak ağırlıklar güncellenerek model eğitildi.

RetinaNet Sonuç :

Eğitimde 5 adet drone görüntüsü kullanıldı.

Şekil 5. Etiketlenmiş araba resimleri

Test verileri kullanılarak çeşitli denemeler yapıldı. Eğitim verisindeki araca benzer şekilde ve benzer açıda duran araçlar yüksek başarı oranıyla(%99) tespit edilirken. Aracın farklı açıyla görüldüğü verilerde düşük başarıyla tespit edildi veya hiç tespit edilemedi.

İleri aşamada eğitim verisi zenginleştirilerek diğer algoritmalara kıyasla daha az eğitim verisi ile başarılı nesne tespiti yapılabilir.

Bazıları çözdüğümüz ve bazıları projeye devam etmek için alternatif bir yol bularak ilerlediğimiz hatalarla karşılaştık. Birçok

Şekil 6. Eğitim verisine benzer bir nesne içeren görüntünün tahmin sonucu

Şekil 7- Tespit edilemeyen nesne

(8)

8 hatayla uğraşarak, genel olarak nasıl daha dikkatli olunacağını ve hatalardan nasıl kaçınılacağını anlaşıldı. Öncelikle paketlerin veya çerçevelerin sürümlerinin birbirleri ile uyumlu ve güncel olduğundan emin olmak çok önemlidir. İkinci olarak konfigürasyon dosyasının kendi içinde ve finetune checkpoint olarak verilen model ile uyumlu olması gerekmektedir.

Şekil 8. Çıkarım sonuçları

Şekil 9. Eğitim sonuçları

(9)

9 6. Kaynakça

1. Lin, T. Y., Goyal, P., Girshick, R., He, K., & Dollár, P. (2017). Focal loss for dense object detection. In Proceedings of the IEEE international conference on computer vision (pp.

2980-2988).

2. https://towardsdatascience.com/review-retinanet-focal-loss-object-detection- 38fba6afabe4

3. Zoph, B., Cubuk, E. D., Ghiasi, G., Lin, T. Y., Shlens, J., & Le, Q. V. (2020, August). Learning data augmentation strategies for object detection. In European Conference on Computer Vision (pp. 566-583). Springer, Cham.

4. Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You only look once: Unified, real- time object detection. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 779-788).

5. Duan, K., Bai, S., Xie, L., Qi, H., Huang, Q., & Tian, Q. (2019). Centernet: Keypoint triplets for object detection. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 6569-6578).

6. https://cvgl.stanford.edu/projects/uav_data/, son ziyaret tarihi 29 Haziran 2021

7. https://captain-whu.github.io/DOTA/index.html, son ziyaret tarihi 29 Haziran 2021 [8]https://data.gov.uk/dataset/4921f8a1-d47e-458b-873b-2a489b1c8165/vertical-aerial- photography

8. https://github.com/VisDrone/VisDrone-Dataset, son ziyaret tarihi 29 Haziran 2021

9. Jia, Z., Wang, H., Caballero, R., Xiong, Z., Zhao, J., & Finn, A. (2010, March). Real-time content adaptive contrast enhancement for see-through fog and rain. In 2010 IEEE International Conference on Acoustics, Speech and Signal Processing (pp. 1378-1381).

IEEE.

10. https://paperswithcode.com/task/single-image-deraining/latest, son ziyaret tarihi 29 Haziran 2021

11. Xu, Y., Wen, J., Fei, L., & Zhang, Z. (2015). Review of video and image defogging algorithms and related studies on image restoration and enhancement. Ieee Access, 4, 165-188.

12. Liu, C., Lu, X., Ji, S., & Geng, W. (2014, May). A fog level detection method based on image HSV color histogram. In 2014 IEEE International Conference on Progress in Informatics and Computing (pp. 373-377). IEEE.

(10)

10 13. Bossu, J., Hautiere, N., & Tarel, J. P. (2011). Rain or snow detection in image sequences through use of a histogram of orientation of streaks. International journal of computer vision, 93(3), 348-367.

14. Cai, Z., Fan, Q., Feris, R. S., & Vasconcelos, N. (2016, October). A unified multi-scale deep convolutional neural network for fast object detection. In European conference on computer vision (pp. 354-370). Springer, Cham.

15. Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster r-cnn: Towards real-time object detection with region proposal networks. arXiv preprint arXiv:1506.01497.

16. https://arxiv.org/abs/1911.09070, son ziyaret tarihi 29 Haziran 2021

17. https://github.com/kiyoshiiriemon/yolov4_darknet, son ziyaret tarihi 29 Haziran 2021

18. https://towardsdatascience.com/on-object-detection-metrics-with-worked- example216f173ed31e, son ziyaret tarihi 29 Haziran 2021

19. http://www.cvlibs.net/datasets/kitti/

20. https://github.com/Ericsson/eva

Referanslar

Benzer Belgeler

Araç tam otonom olup, karadaki seyir halinde trafik ışıklarını, yayaları ve diğer araçları algılaması, havada ise iniş ve kalkış için gerekli yolcu

Nesne tanıma modellerinin ilk etaptaki genelleme kabiliyetini görmek adına eğitim kümesi sadece komite tarafından verilen veri ile oluşturulmuş, test verisine ise

Elde edilen sonuca göre motor çıkış gücü ile helikopterin gerekli toplam gücü için çizilen iki grafik 400 km/sa’lik hız değerinden daha büyük bir

Aracın hava itki motorları, motor sürücüleri ve kontrol kartları sıvı soğutma sistemi ile soğutu- lurken; kara motorları hava soğutma sistemi ile soğutulacaktır.. Aracın

Yarışma örnek videonun gelmesi ve yeni veriseti ile yapılan testler sonucu 100-150 metre irtifadan insanların tespiti beklenirken, nesne tespit modelleri bunun için yetersiz

Hava Soğutma Sistemi Hava+Sıvı Soğutma Kara Elektrik Motor Gücü 120 kW Kara Sürüş Maksimum Hız 90 km/h.. Kara Sürüş Süresi

Geçen süre boyunca tasarladığımız planda nesne tespitini insan ve araç diye ayırmakla kalmayıp bu nesneleri de alt nesne gruplarına bölerek daha doğru sonuçlar elde

Bu gözlemler ışığında bir sonraki aşamaya kadar; daha derin (katman sayısı fazla) modellerin geliştirilmesiyle model tahmin performansının yükseltilmesi,