Didi Udacity Challenge

Samet Kütük
Jun 1, 2017 · 4 min read

Udacity, Stanford Üniversitesi’nden Sebastian Thrun ve Virginia Üniversitesi’nden David Evans’ın kurduğu bir nevi online üniversitedir.

Türkiye’de üniversite okumuş yüksek ekseriyetin de kabul edeceği üzere, konvansiyonel yöntemler ile öğrencilerin bilgi dağarcıkları yeterince gelişememekte, özellikle üniversite sonrası iş hayatına atıldıklarında, pratik becerilerinin olmadığı hem yeni mezunlar, hem de onları işe alan işverenler tarafından oldukça net şekilde görülmektedir.

Udacity, adeta bu probleme bir çözüm bulmak adına, endüstrinin en güncel ihtiyaçlarına cevap verebilecek mezunları yetiştirmek için bir çok konuda programlar oluşturmaktadır.

Udacity hakkında ekşi sözlük linkini de şöylece bırakayım: https://eksisozluk.com/udacity--3234268

Şirketimizin, insansız araçlar üzerine sistem ve paradigma geliştirmek için kurulduğunu, bu amacı gerçekleştirmek adına endüstri standardı LiDAR, radar, kamera, GPS/INS gibi sensör ve sistemlerin Türkiye temsilciliğini üstlendiğini, ayrıca bu sistemlerden kendi bünyemizde barındırdığını ve bu sistemleri kullanarak çeşitli entegrasyon ve Ar-Ge projeleri üretmekte olduğunu bundan önceki birçok yazımda belirtmiştim. Bu yazının amacı, yine insansız sistemler üzerine yaptığımız çalışmalardan yazılım ve algoritma geliştirme kısmı üzerine biraz daha detaylı olarak değinmektir.

Şirketimiz bünyesinde yer alan iki arkadaşımız, Udacity’nin, Mercedes-Benz, NVIDIA, UBER, DiDi, BMW, McLaren ve NEXTEV ile partnerlik yaparak oluşturduğu, Self-Driving Car Engineer isimli Nanodegree Programı’na 2016 Aralık ayında kabul edilmiş, 11,000 başvurunun arasında en uygun 500 kişi içerisinde görülerek ilk “batch”lerden birine alınmışlardı.

Programın ilk dönemi içeriğinden de gördüğümüz üzere, tüm eğitim, gerçek yol koşullarında, çeşitli sensörler (kamera, radar, LiDAR, GPS/IMU, çift antenli GNSS alıcısı, tekerlek odometresi vb.) ile enstrümante edilmiş gerçek araçlardan toplanan sensör verilerinin kullanıldığı pratiği yüksek bir şekilde kurgulanmıştı. Program içeriğinde, öncelikle araç dinamiği, sensör georeferanslama ve geomatik dönüşümlerin üzerinden geçildikten sonra, sensörel verinin anlamlandırılması için derin öğrenme uygulamaları öğretilmeye başlanmaktaydı. MiniFlow, TensorFlow, Keras gibi kütüphanelerin kullanımının öğretilmesinin yanı sıra, Convolutional Neural Network, Deep Neural Network temelleri de anlatılarak, hem daha önceden öğrenilmiş ağlar ile hem de kendi öğreteceğimiz ağlar ile nasıl sınıflama yapılması gerektiği program içeriğinde yer alıyordu. Bütün bu öğrenilenlerin gerçek senaryolara uygulanması için ise, yol şerit tespiti ve takibi, trafik işaretlerinin tespiti gibi quiz, proje gibi tamamlanması gereken görevler tanımlanmıştı. Arkadaşlarımız, ilk dönemlerinin tüm eğitim ve projelerini tamamlayarak ikinci döneme geçmeye hak kazandılar. Önümüzdeki dönemde de daha ileri konularda (araç tanıma ve takip etme, yaya/bisikletli tanıma ve takip etme, lokalizasyon vb.) eğitim almaya devam edecekler.

Self-Driving Car Engineer Nanodegree Program içerisinde, eğitimin yanı sıra, katılımcıları teşvik etme amacıyla bir challenge mekanizması da mevcut. Dönem içerisinde birkaç defa, ödüllü yarışmalar düzenleniyor. Biz de Leo Mühendislik olarak DiDi’nin öncülük ettiği yarışmaya katıldık.

Yarışma iki ayaktan oluşmaktadır. İlk ayakta, hareketli bir araç üzerinden Udacity’nin toplamış olduğu sensör verileri (kamera, radar, LiDAR, GPS/IMU, True Heading GNSS) kullanılarak, senaryoda yer alan diğer aracın global konumunun bulunması istenmektedir. Rover araç üzerinde yer alan RTK GPS ile kaydedilen pozisyon verisi, base araç üzerindeki sensörler kullanılarak tespit edilen pozisyon verisi ile karşılaştırılacak ve tahmin algoritmasının başarımı incelenecektir.

Udacity’nin bu ayak için sağladığı veriler şunlardı:

  1. Grayscale stereo kamera görüntüleri
  2. Renkli stereo kamera görüntüleri
  3. 3D Velodyne nokta bulutu (her frame’de 100,000 nokta)
  4. 3D GPS/IMU verisi

Sağlanan veri, 26 GB büyüklüğündeydi. Her saniye, aracın ürettiği büyük bir veri söz konusu olduğu için, oldukça efektif algoritmaların geliştirilmesi gerektiği görülmektedir.

Takımımız, LiDAR verisi kullanılarak çeşitli clustering yöntemleri geliştirdi ve araç olmayan tüm objelerin yok sayıldığı, aracın sınır koşullarının belirlendiği ve 3 boyutta anlık olarak base araç — rover araç ilişkisinin lokal olarak ifadesini sağlayan bir rutin oluşturdu.

Rover araç, senaryoda çok uzakta olduğu zaman, LiDAR ile tespitin zor olduğu anlar tespit edildi. Bu noktada, radar işaretlerini kullanarak, radarın 64 kanal ile tespit ettiği objelerden hangisinin en yüksek ihtimal ile rover araç olduğunu tespit eden bir rutin geliştirildi.

Rover aracın, base araçta yer alan kameranın görüş açısında olduğu anlarda, gelişmiş bir CNN kullanılarak araç tespiti ve lokalizasyonu gerçekleştirildi.

Çalışmanın en iyi sonucu verebilmesi için, yüksek seviye bir seçim algoritması kurgulandı ve hangi anda hangi sensör setinden elde edilen verilerin değerlendirilmesi gerektiğine karar verildi.

Bu hibrit sınıflayıcının sonucuna göre, senaryoda rover aracın pozisyon yaklaşıklığı, 321 frame’de x,y ve z olarak ifade edildi ve bir tracklet oluşturularak sisteme gönderildi.

Tüm bu çalışmaların sonucunda, LeoDrive, 2000'den fazla takımın katılım yaptığı bu global yarışmada 22.’ci olarak, yaklaşık yüzde 1'lik dilim içerisinde kendine yer buldu ve ikinci aşamaya geçmek için kodu değerlendirilmeye hak kazanan 75 takımdan biri oldu. Bu aşamada kodumuz incelenecek ve ilk 50 içerisinde yer alırsak bir sonraki aşamaya geçmeye hak kazanmış olacağız.

5 Haziran’da başlayacak ikinci aşama yalnızca bir ay sürecek ve bu aşamada, senaryo içerisinde birden çok araç ve yayalar bulunacak. İkinci aşamanın amacı, yayaların da bulunduğu bu senaryoda araç pozisyon ve oryantasyonunun bulunması şeklinde belirlenmiş.

İkinci aşamayı da en yüksek sınıflama başarısı gösteren ilk 5 takım, Silikon Vadisi’nde Udacity’nin konuğu olacak ve geliştirdikleri algoritmayı Udacity’nin aracı üzerinde çalıştırma şansı bulacaklar.

Buradan takımımızı yeniden kutluyorum :)

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store