Xinzhiyuan Derlemesi
(Metin / Tiait Brown) Victoria Polis Departmanı, Avustralya'nın Victoria şehrinde bulunan ana kolluk kuvvetleri kurumudur. Geçen yıl, Victoria'da 16.000'den fazla araç yaklaşık 170 milyon $ 'lık bir maliyetle çalındı.Polis, araba hırsızlığıyla mücadele için çeşitli teknoloji odaklı çözümler deniyor.
VicRoads yönetim departmanı, çalınan araçların hileli satışını önlemek için, araç tescil durumunu kontrol etmek için web tabanlı bir hizmeti etkinleştirdi. VicRoads ayrıca, geçen araçları tarayabilen ve çalınan araçları otomatik olarak belirleyebilen sabit bir plaka tarayıcıya yatırım yaptı.
Bana neden diye sorma, ama bir öğleden sonra aniden bir araba plakası tarayıcısı yapmak istedim, bir araç çalınırsa veya kayıtsız kalırsa, tarayıcı otomatik olarak sizi uyaracaktır. Bazı ayrı bileşenlerin olduğunu biliyorum, bu yüzden onları bir araya getirmenin ne kadar zor olduğunu bilmek istiyorum.
Ancak, bir Google aramasından sonra, Victoria Polis Departmanının benzer cihazlara yatırım yapmayı çoktan sorguladığını ve tahmini maliyetin 86 milyon ABD doları civarında olduğunu buldum. Bilgili bir yorumcu, bu sistemin 220 araca yerleştirilmesi gerektiğini ve toplam maliyetin 86 milyon ABD doları olduğunu ve bu da araç başına 390,909 ABD dolarına eşit olduğunu belirtti.
Elbette bundan daha iyisini yapabiliriz.
Mevcut plaka tanıma sistemi (beyaz araba + kamera)
Başarılı plan
Başlamadan önce, ürün tasarımı için bazı temel gereksinimleri kısaca açıkladım.
1. Görüntü işleme yerel olarak işlenmelidir Merkezi işlem birimine canlı video akışı yapmak, bu sorunu çözmenin en verimsiz yolu gibi görünüyor. Veri trafiğinin neden olduğu büyük faturalara ek olarak, ağ gecikmesi sorunları da olacaktır, hızın yüksek olmayabileceğinden bahsetmeye gerek yok. Merkezi makine öğrenimi algoritmaları zamanla daha doğru hale gelse de, yerel ekipman kullanmanın "yeterli" olup olmayacağını merak ediyorum.
2. Düşük kaliteli resimleri işleyebilmelidir Raspberry Pi kameram veya USB web kameram olmadığı için, kullanıma hazır bir dashcam lens ve ideal bir örnek veri kaynağı kullanıyorum. Ek olarak, dashcam videosu, arabanın kamerasından elde edilebilecek videonun genel kalite seviyesini de temsil eder.
3. Oluşturmak için açık kaynak teknolojisini kullanmanız gerekir Patentli teknolojiyi kullanmak imkansızdır, aksi takdirde her seferinde ücretlendirileceksiniz. Açık kaynak teknolojisinin kullanılması seçim değildir.
çözüm
Üst düzey bir çözümden, çözümüm bir dashcam videodan bir görüntü alıyor, yerel bir cihaza kurulmuş açık kaynaklı bir plaka tanıma sistemi kullanıyor, denetim hizmeti için kayıt talep ediyor ve ardından sonucu görüntülenmek üzere döndürüyor.
Araç üreticisi ve modeli (yalnızca çalındığında doğrulanır), tescil durumu ve aracın çalındığı bildirildiğinde bildirim dahil olmak üzere kolluk kuvvetine takılan ekipmanın verilerine geri dönün.
Kulağa basit geldiğini düşünüyorsanız, bunun nedeni gerçekten basit olmasıdır. Örneğin, görüntü işleme openalpr kütüphanesi tarafından gerçekleştirilebilir. Plaka üzerindeki karakterleri tanımaya gelince, yapmanız gereken gerçekten şudur:
openalpr.IdentifyLicense (görüntüYolu, işlev (hata, çıktı) {// sonucu işle});Küçük bir uyarı
VicRoads API'ye halka açık erişim mevcut değil, bu nedenle prototipimin lisans testinin çevrimiçi yapılması gerekiyor. Çoğu insan bu davranışa katılmasa da, bu sadece bir kavram kanıtı ve ben kimsenin sunucusuna saldırmadım.
Aşağıdakiler benim kavram kanıtım:
Net göremiyor musunuz? Sorun değil, tekrar yapabilirsin (çünkü gerçekten uzun değil):
// Formu açın ve getInfo (rego) {horseman .userAgent ('Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 27.0) Gecko / 20100101 Firefox / 27.0') .open (url) için `rego` işlevi için sorgu gönderin. yazın ('# kayıt-numarası-ctrl girişi', rego) .click ('. btn-tutucu girişi'] .waitForSelector ('. ctrl-holder.ctrl-readonly') .html .then (function (body) {console .log (processInfo (body, rego)); return horseman.close;});} // Anahtar bilgi işlevi processInfo (html, rego) {var $ = cheerio.load (html); var araç = $ ('etiket.etiket'). filtre (işlev {return $ (this) .text.trim === 'Araç:';}). next.text.trim; var stolen = $ ('etiket.label'). filter (function {return $ (this) .text.trim === 'Çalınan durumu:';}). next.text.trim; var kayıt = $ ('etiket.label'). filter (function {return $ ( this) .text.trim === 'Kayıt durumu ve son kullanma tarihi:';}). next.text.trim; iade {rego, araç, çalıntı, kayıt};}sonuç
Sonucun bir sürpriz olduğunu söylemeliyim.
Açık kaynak plaka tanımanın oldukça saçma olmasını bekliyorum. Ayrıca, görüntü tanıma algoritması Avustralya plakaları için optimize edilmemiş olabilir.
Sonuç olarak, çözümüm çeşitli görüş alanlarında plakaları tanıyabildi.
Tabii ki, bireysel karakterlerin tanınmasında hala sorunlar var.
Ama ... algoritma sonunda başarılı oldu.
Yukarıdaki iki resimde de görebileceğiniz gibi, Birkaç saniye sonra, görüntü işleme% 87 güven puanından% 91'in üzerine çıktı .
Örnekleme oranını artırarak ve ardından en yüksek güvenle sıralayarak doğruluğun iyileştirilebileceğine inanıyorum. Alternatif olarak, eşik, yalnızca güven seviyesi% 90'ı aştığında doğrulama kayıt numarasını kabul edecek şekilde ayarlanabilir.
Bunlar çok basit kod ilk düzeltmeleridir ve plaka tanıma yazılımını eğitmek için yerel veri setlerinin kullanımını dışlamaz.
86 milyon dolarlık soru
Adil olmak gerekirse, 86 milyon dolarlık rakamın ne içerdiği hakkında hiçbir fikrim yok ve yerelleştirme eğitimi için açık kaynak araçlarının doğruluğunun pilot BlueNet sistemiyle karşılaştırılacağını bilmiyorum.
Bu bütçenin, saniyede birden çok araç için yüksek hızlı, düşük gecikmeli plaka sorgularını desteklemek için birkaç eski veritabanının ve yazılım uygulamasının güncellenmesini içermesini bekliyorum.
Öte yandan, araç başına yaklaşık 391.000 $ 'lık tanımlama maliyeti gerçekten pahalı görünüyor - özellikle BlueNet'in tanımlama sonuçları özellikle doğru değilse ve üretimi durdurmak veya ilgili sistemleri yükseltmek için büyük ölçekli BT projeleri yoksa.
Gelecek uygulama
George Orwellian'ın fikirlerde "her zaman sana bakması" na düşmek kolay olsa da, bu tekniğin hala birçok olumlu uygulaması var. Motosikletleri pasif olarak tanıyan bir sistem hayal edin. Kaçıranı taradıktan sonra, yetkilileri ve aile üyelerini kaçıranın mevcut konumu ve yönü hakkında otomatik olarak bilgilendirir.
Tesla araçlarında zaten OTA güncellemelerini alabilen kameralar ve sensörler var - bu arabaları sanal adam kaçıran monitörlere (samaritanlar) dönüştürmeyi hayal edin. Uber ve Lyft sürücüleri, kapsama alanını büyük ölçüde artıran bu cihazlarla da donatılabilir.
Kısacası, açık kaynak teknolojisini ve mevcut bileşenleri kullanarak, daha yüksek getiri oranına sahip bir çözüm üretmek mümkündür ve yatırım 86 milyon dolardan çok daha azdır.
Derleme kaynağı: https://medium.freecodecamp.org/how-i-replicated-an-86-million-project-in-57-lines-of-code-277031330ee9
İş ayrıntılarını görüntülemek için orijinal metni okumak için tıklayın ve katılmanızı dört gözle bekleyin ~