Kameradan Plaka okuma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Kameradan Plaka okuma

Mesaj gönderen kahraman1285 »

Merhaba

güvenlik kamerasından gelen video / resime göre aracın plakasını okuma işlemi nasıl yapılıyor?

Bu konuda başlangıç için neyi araştırmalı ve hangi programla yapılmalı?

Konuya başlangıç için bana ipucu verebilecek kimse var mı?

Sayglıar.
ercanskose
Üye
Mesajlar: 62
Kayıt: 18 Eyl 2011 02:31

Re: Kameradan Plaka okuma

Mesaj gönderen ercanskose »

bildğiğim kadarıyla analog kamera ile yapacaksan bu işi DVR kart veya DVR kayıt cihazına uygun bir yazılık olması gerekir yok ip kamera ile yapacaksan ozamanda ip kameraya uyumlu bir yazılım yapman gerekecek mesela er ip kamera azılımı bütün ip kamera markalarını desteklemez. yinede yapmak istesen hemen hemen bütün dillerle yapabilirsin bunun için en ideali delphi sanırım çünkü kamera izleme için gerekli componentler onda var. bende merak ettim aslında bilen bi arkadaş varsa detaylı açıklama yaparsa iyi olur benim tahminim böyle.
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Re: Kameradan Plaka okuma

Mesaj gönderen kahraman1285 »

şöyle bi çalışma buldum.

http://derindelimavi.blogspot.com/2010/ ... ma-ii.html

burada Opencvsharp kütüphanesi kullanılmış. Ama daha çözemedim.
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Kameradan Plaka okuma

Mesaj gönderen mkysoft »

tam doğru yerdesinz, devam edin.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Kameradan Plaka okuma

Mesaj gönderen orhancc »

Kameradan gelen görüntü eğer tiff formatında ise basitce plakanın yerini tespit ederek resmi OCR işlemine tabi tutacaksın ve sana oradan okuyabildiği metinleri getirecek. OCR için gri tonlama ve 300dpi tiff formatı en iyi sonucu verir.
C# kullanacaksan ofisin içinde MODI var onu kullanabilirsin, açık kodlu Tesseract var, ücretli Abby ve Leadtools var. Tesseract gayet başarılı ben onu kullanıyorum.

MODI ile OCR

Kod: Tümünü seç

using MODI;
internal class OcrClass
    {
        private const string pattern = @"[\W]";
        private readonly List<string> _liste = new List<string>();
        private Document doc;
        private Word word;
        public string FileName { get; set; }

// sadece metinleri getirir sayı için regexi değiştirmelisin
public List<string> ReadOcr()
        {
            if (!File.Exists(FileName)) return _liste;
            string regex = "";
            //if (!fileName.Contains("tif")) return liste;
            try
            {
                doc = new Document();

                doc.Create(FileName);

                doc.OCR(MiLANGUAGES.miLANG_TURKISH, true, true);
                foreach (Word s in
                    from Image image in doc.Images select image.Layout into layout from Word s in layout.Words select s)
                {
                    word = s;
                    regex = Regex.Replace(word.Text, pattern, "");
                    //if (regex.Length > 0 )
                    _liste.Add(regex);
                }
                doc.Close(false);
                return _liste;
            }
            catch (Exception ex)
            {             
                return _liste;
            }
        }
}
Tesseract ile OCR

Kod: Tümünü seç

private void OCR()
        {
            try
            {
                var path = @"c:\NuancePDF-OCR-conversion-example.tif";
                Bitmap image = new Bitmap(path);


                var tessdata = @"..\tessdata";

                pictureBox1.Image = image;

                tessnet2.Tesseract ocr = new tessnet2.Tesseract();
               // ocr.SetVariable("tessedit_char_whitelist", "0123456789"); // sadece sayı olacaksa 
                ocr.Init(tessdata, "eng", false); // doğru tessdata ayarı için 
                List<tessnet2.Word> result = ocr.DoOCR(image, Rectangle.Empty );

                foreach (var word in result)
                    listBox1.Items.Add("{" + word.Confidence + "} - " + word.Text + " - " +word.LineIndex);

            }
            catch (Exception ex)
            {
                var error = ex.Message;
            }
        }
Sniper1010
Üye
Mesajlar: 3
Kayıt: 09 Nis 2016 01:04

Re: Kameradan Plaka okuma

Mesaj gönderen Sniper1010 »

Merhaba. Yukarıda yazdığınız MODI ve tessecart kodu çalışıyor mu ? Ben projemde plaka bölgesini buldum ve şuan sadece karakterleri okuma kısmı kaldı. Nasıl yaparım diye düşünüyorum. Öneriniz nelerdir?
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Kameradan Plaka okuma

Mesaj gönderen sabanakman »

İlgili plaka bölgesini ayrı bir resim olarak kayıt edip bunu tesseract ile çözmeyi deneyebilirsiniz. Geçenlerde bir örnek denemiş ve çalıştırmıştım ama sayfayı tekrar bulamıyorum. Örneği, indirme geçmişimden bulup gönderiyorum :D . Daha 5 gün öncesine kadar bu konularla hiç ilgilenmediğim için böyle bir şeyden haberim de yoktu ama bu hafta bulup denediğim bir örnek bu da :D .

Tesseract OCR - Delphi - Sample
Bağlantının kaybolması ihtimaline karşın Yandex Disk indirme linki..:TesseractOCR_Delphi_Sample

Dikkat etmek gereken iki nokta var. Birincisi, FTesseract := TTesseract.Create ile oluşturulan nesneye ilk parametrede tesseract.dll dosyasını ikinci parametrede ise tessdata hangi klasör içinde ise (tessdata hariç olacak şekilde) belirtmek gerekiyor. tessdata klasöründe hangi dillere göre çözümleme yapılacaksa ona göre karakter bilgi veritabanı bulunuyor sanırım. Ayrıca plaka için bu klasörde sadece ingilizce (eng.traineddata) karakter tablosu bulunsa yeterli olur sanırım. Burası ne kadar kalabalıksa çözüm o kadar gecikiyor.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Sniper1010
Üye
Mesajlar: 3
Kayıt: 09 Nis 2016 01:04

Re: Kameradan Plaka okuma

Mesaj gönderen Sniper1010 »

Hocam sizin sample programı indirdim ancak çalıştırdığımda hata alıyorum. Bir de kaynak kodları olsa bana yol gösterme açısından çok iyi olurdu ama göremedim kaynak kodunu
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Kameradan Plaka okuma

Mesaj gönderen sabanakman »

Kodlardan kastınız tesseract projesi ise bu açık kaynak bir C++ projesidir. Bu projeyi API olarak ele alıp Delphi üzerinde kullanan örnek program ise kodlarıyla ekte vardı zaten
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
emrgln
Üye
Mesajlar: 50
Kayıt: 03 May 2013 04:58

Re: Kameradan Plaka okuma

Mesaj gönderen emrgln »

Merakımdan denemek için indirdim. Tessdata Klasörünü üst klasöre çıkarırsan çalışır. Proje çalışıyor fakat sağlıklı çalıştığını söyleyemem.
Sniper1010
Üye
Mesajlar: 3
Kayıt: 09 Nis 2016 01:04

Re: Kameradan Plaka okuma

Mesaj gönderen Sniper1010 »

Tessecart ile bu işlem üzerinde bira çalışılınca yapılabiliyor. Geliştirmeye açık yani. Ancak merak ettiğim bir nokta daha var. Plaka bölgesini yani dikdörtgen kısımı çıkartıp tessecart kullansak daha verimli olabiliyor. Plaka bölgesini nasıl bulabiliriz hazır bir kodu veya algoritması var mı acaba ?
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Kameradan Plaka okuma

Mesaj gönderen sabanakman »

C++ dilinde OpenCV kütüphanesini kullanarak anlatan bir kitap eğer bu dilden anlıyorsan yardımı olacaktır. Yolun biraz uzun, sana çalışmalarında başarılar.
viewtopic.php?f=20&t=35248&p=190342
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla