Park yerlerini gerçek zamanlı olarak bulmak için derin öğrenmeyi kullanın

Verilerle harika şeyler yapın!

Bir park yeri bulmak için otoparkta kaç kez dolaşırsınız. Telefonunuz size en yakın park yerinin tam olarak nerede olduğunu söyleyebilirse, bu çok kullanışlı olacaktır!

Derin öğrenme ve OpenCV kullanmanın çözülmesi nispeten kolay bir problem olduğu ortaya çıktı. Tek gereken park yerinin havadan çekilmiş görüntüsü. Aşağıdaki GIF'e bakın, modelim Los Angeles Havaalanı otoparkındaki mevcut tüm park yerlerini vurgular ve mevcut durak sayısını gösterir. En önemlisi, gerçek zamanlı olarak çalışabilir!

Video yükleniyor ...

Gerçek zamanlı park yeri tespiti

Adımlara genel bakış

Bu park algılama modelini oluşturmanın iki ana adımı vardır:

1. Mevcut tüm park alanlarının yerini tespit edin

2. Park yerinin boş veya dolu olup olmadığını belirleyin

Buradaki kamera görüntüsü yüklendiğinden, her park yeri için bir kerelik haritalama kullanabiliriz. Her park yerinin yerini öğrendikten sonra, boş olup olmadığını tahmin etmek için derin öğrenmeyi kullanabilirsiniz. Bu blogda yer alan adımların üst düzey bir özetini paylaştım. Ayrıntılı kod parçacıklarıyla ilgileniyorsanız, lütfen web sitemdeki blogu kontrol edin.

Mevcut tüm park alanlarının yerini tespit edin

Park alanlarını tespit etmek için kullandığım temel fikir, buradaki tüm park alanlarının yatay çizgiler olması ve sütundaki park alanlarının kabaca eşit olmasıdır. İlk önce kenar görüntüsünü elde ederdim. Park yeri olmayan alanları da kapattım. aşağıdaki gibi:

Canny kenar algılama çıkışı

Daha sonra kenar görüntüsünü yaptım ve tanınabilecek tüm çizgileri çizdim. Yatay çizgileri sadece sıfıra yakın eğimli çizgileri seçerek izole ediyorum. Lütfen aşağıdaki hough dönüşüm çıktısına bakın:

Hat algılama için HoughLines kullanın

Gördüğünüz gibi, Hough hattı durma hatlarını tanımlamada oldukça iyi bir iş çıkarıyor, ancak çıktı temiz değil - birden çok durdurma hattı birden çok kez algılanıyor ve bazıları gözden kaçıyor. Nasıl temizlemeliyiz?

Sonra buradan başlamak için gözlem ve sezgiyi kullanıyorum. Hough hattının döndürdüğü koordinatları kullanarak, ana park şeridini belirlemek için x gözlemlerini topladım. Kümeleme mantığı, tespit edilen şerit çizgisinin x koordinatındaki boşlukları belirleyerek çalışır. Bu, burada 12 park şeridi bulmamı sağlıyor. aşağıdaki gibi

Hough hattından x koordinatlarını toplayarak park şeritlerini tanımlayın

Tüm bunlar karmaşık görünüyorsa endişelenmeyin, kodu github'daki jupyter not defterinde adım adım belgeledim.

Artık tüm park şeritlerinin yerini çok iyi biliyorum, tüm park yerlerinin aynı büyüklükte olduğunu varsayarak her park yerini belirliyorum, bu mantıklı bir varsayım. Noktalar arasındaki sınırların olabildiğince doğru bir şekilde yakalanmasını sağlamak için sonuçları gözlemledim. Sonunda her park yerini işaretleyebildim. aşağıdaki gibi.

Her park yeri işaretlenmiştir

Şimdi işimiz bitti - her noktaya bir kimlik atayabilir ve koordinatlarını sözlüğe kaydedebiliriz. Bu sözlüğü daha sonra almak için aldım. Bu mümkündür, çünkü kamera takılıyken, her noktanın konumunu tekrar tekrar kendi görünümünde hesaplamamız gerekmez.

Spotun işaretlenip işaretlenmediğini belirleyin

Artık bir park haritamız olduğuna göre, o yerin dolu olup olmadığını şu şekillerde belirleyebiliriz:

1. Noktanın piksel renginin boş park alanının rengiyle hizalı olup olmadığını kontrol etmek için OpenCV'yi kullanın. Bu basit bir yöntemdir, ancak hataya açıktır. Örneğin, aydınlatmadaki bir değişiklik, boş bir park alanının rengini değiştirecek ve bu da bu mantığın gün içinde çalışmasını zorlaştıracaktır. Ek olarak, mantık gri arabayı mümkünse boş bir park yeri olarak karıştıracaktır.

2. Tüm arabaları tanımlamak için nesne algılamayı kullanın ve ardından arabanın konumunun park alanıyla örtüşüp örtüşmediğini kontrol edin. Bunu denedim ve gerçek zamanlı çalışan bir nesne algılama modelinin küçük boyutlu nesneleri algılamanın gerçekten zor olduğunu gördüm. Tespit edilen arabaların% 30'undan fazlası yok

3. Her park alanını görüntülemek ve dolu olup olmadığını tahmin etmek için CNN'yi kullanın. Bu yöntem sonuçta en iyi sonucu verir

Bir CNN oluşturmak için, araçlı ve araçsız park alanlarının resimlerine ihtiyacımız var. Her noktanın görüntülerini çıkarıp bir klasöre kaydettim ve sonra bu görüntüleri dolu veya dolu olarak gruplandırdım. Bu eğitim klasörünü de Github'da paylaştım.

1280x720 görüntüde yaklaşık 550 park yeri olduğundan, her bir park alanının boyutu yalnızca yaklaşık 15x60 pikseldir. Aşağıdaki boş ve dolu noktaların örnek resmine bakın:

İşgal etmek

Boş nokta

Ancak işgal edilen noktalar ve boş noktalar çok farklı göründüğünden, CNN zorlu bir problem olmamalı

Ancak, bu iki sınıf için yalnızca yaklaşık 550 resmim var, bu yüzden VGG'nin ilk 10 katmanını alarak ve VGG modelinin çıktısına tek bir softmax katmanı ekleyerek transfer öğrenmeyi kullanmaya karar verdim. Bu transfer öğrenme modelinin kodunu burada bulabilirsiniz. Modelin doğrulama doğruluğuna ulaşıldı % 94 . aşağıdaki gibi:

CNN model testi ve eğitim doğruluğu

Şimdi, bir park yeri detektörü oluşturmak için park yeri algılayıcıyı ve CNN tahmincisini birleştiriyorum. Çok doğru çalışıyor.

Boş tahmin

Zhang Yishan Pan Yueming'in yeni çalışması "The Man in the Game", iki dramanın derin kardeşlik perdesini açmak üzere olduğunu resmen duyurdu!
önceki
"Haftalık Haberler": LeEco ve Tesla karışık, CES her yerde çiçek açıyor
Sonraki
Liu Tao personeli, Pan Yueming'i havaalanında durdurdu ve netizenler şaka yaptı: Bai Suzhen, Xu Xian'ı unuttu mu?
2018'de Beşinci Spor İşletmesi Yıllık Seçimi için 15 ödülden oluşan kısa liste açıklandı!
Neden derin öğrenme deniyor?
Sihirli Flüt'ün Merlot'un altın top üzerindeki tekelini kırdığı konusundaki tartışma, Napolyon'un ünlü sözüyle çözülebilir.
Anında erişte diplomasisi! Zhu Ting, Wakif Bank için bir ziyafete ev sahipliği yaptı, Çin tadı ekip tarafından övüldü
Haftalık Güncelleme: LeEco ve Tesla'nın bereketleri karışık, CES her yerde çiçek açıyor
Gauss dağıtımı neden makine öğreniminde en popüler olanıdır?
Shen Teng, Yang Chaoyue'yi tanıyamadı, Han Han kılıcını yandan uydurdu ve gerçeği bilen Shen Amca seyirciyi eğlendirdi.
250 milyondan fazla insan toplandı! Alipay "Beş Şans" piyangosu: Ne kadar bölüşürsünüz, netizenler titremelerini ifade eder!
Muhtemelen en çok beklenen yerli cep telefonu. Tahmin edin Xiaomi Mi 6 neye benziyor
Nissanın "sıfır emisyon, sıfır zayiat" hakkında bilmeniz gerekenler CES 2017
Jia Nailiangın yeni varyete şovu promosyonu, muhabirler tarafından kızı Tianxin hakkında sorulduğunda, bir jestle yanıt verdi.
To Top