OpenALPR ile Plaka Tanıma (C++, Java, Python, C#)
(Öncelikle daha önceki Araç Plakası Okuma yazıma bakmadıysanız buradan ulaşabilirsiniz.)
OpenALPR açık kaynak araç plaka tanıma kütüphanesidir. OpenCV görüntü işleme kütüphanesi ve Tesseract OCR kütüphanesi kullanarak C++ ile geliştirilmiştir. Araç plakası, renk ve marka-model gibi bilgileri size verebiliyor. Amerika ve Avrupa plakalarında oldukça başarılı bir kütüphane. Hem bulut üzerinden web servisler aracılığıyla kullanılabilmekte hemde kaynak kodu açık olduğu için offline bir şekilde çalışabilmektedir. Bulut üzerinden sunduğu online hizmet ile web servisi aracılığıyla görüntünüzü gönderip Json formatında OCR edilmiş araç plakasını ve araç bilgilerini elde edebiliyorsunuz tabi belirli aylık bir limite kadar ücretsiz olarak sunuluyor, bunu bir gelir modeli olarak kullanıyorlar. Windows, Linux, Mac ve mobil platformlarda çalışan platform bağımsız bir kütüphane. Bizim yapacağımız şey kaynak kodu indirip gerektiği taktirde derleyerek projelerimizde kullanabilir hale getirmek olacaktır.
Websitesi: http://www.openalpr.com/
Doküman (Üye olmanızı isteyebilir): http://doc.openalpr.com/
Github (Kaynak Kod): https://github.com/openalpr/openalpr
Github: https://github.com/openalpr/
Online Demo: http://www.openalpr.com/demo-image.html
Windows işletim sistemi üzerinde bir proje geliştiriyorsanız ve bu sistemde kullanacaksanız kaynak kodu tekrardan derlemenize gerek yok, eğer kaynak koda müdahale edip bazı değişiklikler yapmak istiyorsanız http://doc.openalpr.com/compiling.html#compiling-openalpr-via-build-script adresine göz atabilirsiniz.
Öncelikli olarak Windows için derlenmiş halini https://github.com/openalpr/openalpr/releases adresinden indiriyoruz. Güncel sürümü indirdiğinizde gerekli sistem kütüphaneleri uygulamanın çalışma dizininde yer almaktadır herhangi bir şey yapmadan direk olarak komut satırını açarak, OpenALPR klasörüne giderseniz ve alpr -c us samples/us-1.jpg komutunu çalıştırırsanız samples klasöründeki us-1 görselinde bulunan plakayı us yani ABD biçimine göre OCR edecek ve size tahminlerini yüzdelik olarak büyükten küçüğe doğru sunacaktır. Eğer Java veya Python projelerinizde kullanacaksanız bu klasörler kaynak kodları ile birlikte aynı dizinde yer almaktadır. C# için ise kaynak kodu indirirseniz solution (.sln) dosyasını göreceksiniz, visiual studio ile açarak derleyebilirsiniz.
Java kaynak kodu derlemek için java_test.bat komut dosyasını çalıştırabilir bu sayede javac ile derleyebilir veya bir yeni proje oluşturarak java klasörü içerisindeki sınıfları projenize kopyalayarak derleyebilirsiniz. Çalışma anında sistem kütüphanelerine ihtiyaç duyabileceği için indirdiğiniz dizindeki config ve dll dosyalarınıda derlediğiniz dizine atmanız gerekmektedir.
Ubuntu veya çatallaması dağıtımlarda aşağıdaki gibi kurulumu yapabilir veya kaynak kodu indirerek yukarıdaki dokuman linkindeki talimatlara uyarak derleyebilirsiniz.
wget -O - http://deb.openalpr.com/openalpr.gpg.key | sudo apt-key add - echo "deb openalpr main" | sudo tee /etc/apt/sources.list.d/openalpr.list sudo apt-get update sudo apt-get install openalpr openalpr-daemon openalpr-utils libopenalpr-dev
Raspberry pi ve benzeri geliştirme kartlarında OpenALPR derlemek isterseniz https://barclaysapps.wordpress.com/2014/07/06/openalpr-install-for-rpi-and-udoo-and-tre-and-yun/ buradaki bağlantıya göz atabilirsiniz. (OpenCV 2.4.8 yerine 2.4.11 kurmayı unutmayın)
Resimde de gördüğünüz üzere sol alt köşede yer alan araç plakası başarılı bir şekilde OCR edildi. Daha önce JavaANPR yazısında değindiğimiz gibi ülkemizde bir çok farklı plaka bulunmaktadır, bunların hepsini başarılı bir şekilde tespit edebilmek için config dosyası üzerinde değişiklikler yapmanız gerekecektir.