Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, Kaan adlı bir eğitmen tarafından sunulan plaka tanıma sistemi serisinin beşinci bölümüdür. Eğitmen, yapay zeka kullanarak plaka tanıma algoritmasının nasıl geliştirileceğini adım adım anlatmaktadır.
- Videoda, plaka tanıma algoritmasının ikinci ve üçüncü basamaklarının nasıl gerçekleştirileceği detaylı olarak gösterilmektedir. İçerik, plakanın kameradaki konumunu bulma, counter'ları bulma, sıralama, boyut kontrolü, plaka karakterlerini kesme ve kaydetme, resimleri ikiye katlama, gri format alma, eşikleme yapma ve gluten'i yok etme gibi adımları kapsamaktadır.
- Eğitim, OpenCV, CV2 ve Numpy kütüphaneleri kullanılarak kod örnekleriyle desteklenmekte ve bir sonraki bölümde veri seti oluşturma ve sinir ağını eğitme konularının işleneceği belirtilmektedir. Video, plaka tanıma algoritmasının farklı plakaları yakalama performansını test etme ile sona ermektedir.
- 00:01Plaka Tanıma Sisteminin Beşinci Videosu
- Bu video, plaka tanıma sisteminin beşinci videosu olup, önceki videolarda plakanın kameradaki konumu bulunmuş ve ayrıştırma algoritmasının ilk basamağı gerçekleştirilmiştir.
- Bu videoda algoritmanın ikinci ve üçüncü basamakları gerçekleştirilecektir.
- Plaka tanıma ve sınıflandırma problemi ikiye ayrılır: plaka tanıma ve karakterleri ayrıştırma, ardından karakterleri sınıflandırma.
- 00:37Ayrıştırma Algoritmasının İlk Adımları
- Ayrıştırma kısmında ilk adım eşikleme almaktır; resimlere odaklanarak 255 ve 0 şeklinde siyah-beyaz bir skala ayarlanır.
- Boyut kontrolünde genişlik maksimum resimden sekizde biri kadar olmalı ve alan kontrolünde yükseklik ve genişlik çarpılarak alan 200'den büyük olmalıdır.
- Önceki derste veriler okunmuş, boyut skalası ayarlanmış, plaka resimden kesilmiş ve görselleştirilmiştir.
- 01:36Resim İşleme Adımları
- Kesilen resimler görselleştirilip boyutu iki kata çıkarılmış, pikselliği yok edilerek resme daha çok odaklanabilmek için.
- Resim gri scale dönüştürülmüş çünkü karakterler siyah, arka plan beyaz olduğu için diğer renklerle pek bir işimiz yoktur.
- Gri scale dönüştürülen resim adaptive ortalama eşikleme uygulanarak eşikleme sistemine tabi tutulmuş ve morfolojik işlemlerle gürültü yok edilmiştir.
- 02:51Counter'ları Bulma
- Bu derste ilk olarak kontları (counter'ları) bulmak gerekiyor, bunun için OpenCV yardımıyla findContours fonksiyonu çağrılır.
- FindContours fonksiyonu, hangi resim üzerinden counter'ları bulacağını, nasıl işleme alacağını ve counter'ların nasıl tarif edileceğini belirtir.
- Counter'lar iki temel değişken döndürür: counter'ın bulunduğu konumlar ve hiyerarşik yapı.
- 05:46Counter'ları Sıralama ve Kontrol
- Counter'ları büyükten küçüğe doğru sıralamak için sort fonksiyonu kullanılır ve counter area fonksiyonu ile alan hesaplanır.
- Counter'ları bulduktan sonra genişlik ve alan kontrolü yapılır; genişlik ana resmin genişliğinin dörtte birinden küçük olmalı ve alan 200'den büyük olmalıdır.
- Kontrolleri sağlayan her bir counter bölgesi işleme alınabilir ve sol üst, sağ üst, sol alt ve sağ alt koordinat değerlerine ihtiyaç vardır.
- 10:57Karakter Kesme İşlemi
- Algoritma tamamlandıktan sonra karakterleri kesme işlemi yapılacak ve bir sonraki derste veri seti oluşturmak için kaydedilecek.
- Sınıflandırmadan sonra karakterleri tekrar kullanabilmek için işleme alınacak.
- Karakterleri kesmek için önce karakterlerin konumlarını belirlemek gerekiyor.
- 11:29Box Noktaları Hesaplama
- Box noktaları hesaplamak için cv2.boxPoints fonksiyonu kullanılıyor.
- BoxPoints fonksiyonu, verilen rectangle'in merkez noktasının (xy) ve boyutlarının (wh) dikkate alarak sol üst, sağ üst, sol alt ve sağ alt noktalarını hesaplıyor.
- Hesaplanan ondalık ifadeler, cv2.numpy.uint64 ile integer'a dönüştürülüyor.
- 13:26Minimum ve Maksimum Noktalar
- Sol üst ve sağ alt noktaları tespit etmek için minimum ve maksimum x ve y değerleri belirleniyor.
- Minimum fonksiyonu, verilen listenin en küçük elemanını alarak minimum x noktasını belirliyor.
- Maksimum fonksiyonu, verilen listenin en büyük elemanını alarak maksimum y noktasını belirliyor.
- 15:20Odak Noktaları
- Minimum ve maksimum noktaları sadece var olan noktalar üzerinden kesme işlemi yapılabilir, bu nedenle odak noktaları tanımlanıyor.
- Odak noktaları, minimum ve maksimum noktalardan ikişer piksel fazla olan noktalar olarak belirleniyor.
- Eksi değerler kullanılamıyor çünkü kesme işlemi sadece var olan noktalar üzerinden gerçekleştirilebilir.
- 17:56Kesme İşlemi ve Kaydetme
- Kesme işlemi için minimum x'ten maksimum x'e, minimum y'den maksimum y'ye kadar kesim yapılıyor.
- Kesilen parçalar kopyalanıyor ve karakter seti dosyasına kaydediliyor.
- Kaydetme işlemi için try-except bloğu kullanılıyor ve hata durumunda umursamadan geçiliyor.
- 19:49Görselleştirme
- Plaka görüntüsü kopyalanarak her bir kanıt tek tek gösterilecek.
- cv2.drawCounter fonksiyonu kullanılarak box'ın üzerine yazı yazılıyor.
- Yazı yeşil renkte ve 1 kalınlıkta gösteriliyor.
- 21:08Algoritma Uygulaması
- Algoritmanın birinci adımı olarak iki kere katlama, gri formata getirme ve eşikleme yapıldı.
- Gluten'in yok edilmesi işlemi gerçekleştirildi.
- Fonksiyon eksikliği nedeniyle "force incent" hatası alındı ve "animate" yazarak hem index numarası hem counter'ın dönmesi sağlandı.
- 22:37Algoritmanın Test Edilmesi
- Algoritma dokuz, a, a, agrom, a, iki, beş ve üç gibi karakterleri doğru yakaladı.
- Algoritma pikadaki için harika çalıştı ve ihtiyacımız olan tüm karakterleri yakalamasına rağmen hatalı bir şey yakalamadı.
- Farklı bir resim üzerinde test edildiğinde beş, a, iki, üç ve dört karakterleri doğru yakalandı, ancak bir tane hatalı yakalama oldu.
- 24:04Sonuç ve Gelecek Adımlar
- Üçüncü bir resim üzerinde test edildiğinde b, dokuz, altı, üç gibi karakterler doğru yakalandı.
- Algoritma resmin bütün kartlarını mükemmel bir şekilde yakaladı, ancak bir tane hatalı yakalama oldu.
- Bir sonraki videoda veri seti oluşturulup sinir ağı eğitmeye geçilecek.