Python ile Araç Plakası Algılama: Adım Adım Rehber

Giriş

Araç plakası algılama, günümüzde otomasyon sistemlerinin önemli bir parçası haline geldi. Güvenlik sistemlerinde, otopark yönetimlerinde ve trafik izleme sistemlerinde yaygın olarak kullanılmaktadır. Python programlama dili, bu tür projelerin geliştirilmesinde popüler bir tercih haline gelmiştir. Bu yazıda, araç plakası algılama sürecini adım adım inceleyecek ve Python ile nasıl uygulanacağını öğreneceğiz.

Araç Plakası Algılamanın Önemi

Araç plakası algılama teknolojisi, güvenlik ve ulaşım yönetimi açısından kritik bir rol oynamaktadır. Trafik güvenliği, yasadışı park etme ve yasadışı geçişlerin tespit edilmesi gibi alanlarda kullanılır. Aynı zamanda, otoparklarda araç kaydını otomatikleştirerek müşterilere daha akıllı bir hizmet sunar. Bu sistemlerin geliştirilmesi için Python gibi güçlü bir programlama dili kullanmak, geliştiricilere esneklik ve hız kazandırır.

Gerekli Kütüphaneler ve Araçlar

Araç plakası algılama uygulamanızı geliştirmek için bazı kütüphaneler ve araçlar ihtiyacınız olacaktır. Python, resim işleme ve makine öğrenimi için güçlü kütüphanelere sahiptir. Bu proje için genellikle kullanılan kütüphaneler şunlardır:

  • OpenCV: Görüntü işleme ve bilgisayarla görme uygulamaları için yaygın olarak kullanılan bir kütüphane.
  • Pytesseract: Tesseract OCR motoruna dayanan bir Python arayüzü ile yazılı metinlerin tanınmasına olanak tanır.
  • NumPy: Matematiksel işlemler ve matris hesaplamaları için kullanılan bir kütüphane.
  • Matplotlib: Verilerin görselleştirilmesi için sıklıkla kullanılan bir grafik kütüphanesi.

Projemizi Başlatma

Araç plakası algılama projemizi başlatmak için öncelikle gerekli kütüphaneleri yüklememiz gerekecektir. Aşağıdaki kod, OpenCV ve Pytesseract kütüphanelerini yüklemek için kullanılabilir:

pip install opencv-python pytesseract

Yükleme işlemi tamamlandıktan sonra, resim dosyalarımızı yükleyip işleme sürecine başlayabiliriz. Bu süreç, görüntüyü yükleme, ön işleme ve son olarak plaka alanını tespit etme adımlarını içermektedir.

Görüntü Yükleme ve Ön İşleme

İlk adım olarak, bir araç görüntüsünü yüklememiz gerekiyor. OpenCV ile bunu yapmak oldukça basittir:

import cv2

# Görüntüyü yükle
img = cv2.imread('car.jpg')

Görüntüyü yükledikten sonra, bazı ön işleme adımları uygulamamız gerekecek. Bu adımlar, görüntü üzerinde gürültüyü azaltmayı ve daha iyi bir sonuç almayı sağlar. Aşağıdaki kod parçası, gri tonlama ve blurlama adımlarını içermektedir:

# Gri tonlara dönüştür
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Gaussian bulanıklaştırma
blurred = cv2.GaussianBlur(gray, (5, 5), 0)

Plaka Alanını Tespit Etme

Ön işleme yaptıktan sonra, plaka alanını tespit etmek için kenar algılama ve kontur bulma işlemlerini gerçekleştirmeliyiz. OpenCV’de Canny kenar algılama metodunu kullanarak bu işlemi gerçekleştirebiliriz:

# Canny kenar algılama
edges = cv2.Canny(blurred, 100, 200)

Görüntü üzerinde kenarları tespit ettikten sonra, konturları bulma işlemi yapmalıyız. Aşağıdaki kod, konturları bulmamıza yardımcı olacaktır:

# Konturları bul
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

Bu adımda, tespit edilen konturlar arasında en büyük olanını bulup plaka alanını tahmin etmeye başlayacağız.

Plaka Alanını Kesme

Tespit edilen en büyük konturu bulduktan sonra, bu kontur ile birlikte plaka alanını kesebilmek için aşağıdaki kodu kullanıyoruz:

# En büyük konturu bul
contour = max(contours, key=cv2.contourArea)

# Plaka alanını kes
x, y, w, h = cv2.boundingRect(contour)
license_plate = img[y:y+h, x:x+w]

Artık plaka alanını kesmiş durumdayız. Bu kesilen görüntüyü OCR (Optik Karakter Tanıma) sürecinde kullanacağız.

OCR ile Plaka Metnini Tanımlama

Pytesseract kütüphanesini kullanarak, kesilen plaka alanındaki metni tanımlamak için aşağıdaki kodu kullanıyoruz:

import pytesseract

# Plaka metnini tanımla
text = pytesseract.image_to_string(license_plate)
print('Tanımlanan plaka: ', text)

Bu şekilde, araç plakası içindeki metni başarıyla okuyabilmiş olduk. Pytesseract, OCR işlemi için oldukça etkili bir kütüphanedir ve çoğu plaka üzerinde iyi sonuçlar verir.

Sonuçları Görselleştirme

Araç plakası algılama sürecimizi görsel olarak ifade etmek için, orijinal görüntü üzerinde plakayı ve tanımlanan metni gösterebiliriz. Bunu yapmak için aşağıdaki kodu kullanalım:

# Sonuçları görselleştir
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.putText(img, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)

# Göster
cv2.imshow('Araç Plakası Algılama', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Bu adımlar sonucunda, orijinal görüntü üzerinde başarıyla algılanan plakayı ve metni görebilirsiniz. Bu, projemizin son aşamasıdır.

Sonuç ve İleri Adımlar

Araç plakası algılama uygulamamızı Python ile gerçekleştirmenin temel adımlarını öğrenmiş olduk. Projenizi daha da geliştirmek için plaka okuma hızını artırmak, farklı plaka formatlarına uyum sağlamak ve daha fazla veri kaynağını entegre etmek gibi ileri adımlar atabilirsiniz.

Python ile araç plakası algılama, gerçek dünya uygulamalarında oldukça faydalı bir beceri haline gelmiştir. Bu tür projeleri geliştirirken karşılaştığınız sorunları çözmek için Python’un geniş kütüphanelerinden yararlanabilirsiniz. Bu alandaki gelişmeleri takip ederek sürekli olarak kendinizi güncel tutmayı unutmayın.

Son olarak, projelerinizde bu teknikleri deneyerek kendi yeniliklerinizi oluşturmayı teşvik ediyoruz. Bağlantılı kütüphaneleri ve dokümantasyonları tam olarak analiz ederek daha karmaşık sistemler geliştirebilirsiniz. Unutmayın, öğrenme süreci her zaman devam eder!

Scroll to Top