Bu çalışma ByteSpark Robotik firması tarafından hizmet olarak verilen görüntü işleme alanının özelleşmiş bir projesidir. Bu yazıda Python, OpenCV, YOLO(You Look Only Once) ve Google Colab teknolojileri kullanılarak el yazısı sayı tespiti çalışması anlatılmaktadır.
GİRİŞ
Bu projenin amacı el yazısıyla yazılmış sayıları tespit etmek için görüntü işleme ve yapay zeka tekniklerini kullanarak bir sistem tasarlamaktır. Bu projede, yolov8 modelini kullanarak kapsamlı bir veri seti eğitilmektedir. Veriseti, el yazısıyla yazılmış farklı sayıları içeriyor ve bu sayıları etkili bir şekilde tespit edebilmek için model optimize ediliyor.
Sistem, bir webcam aracılığıyla gerçek zamanlı olarak gösterilen sayıları tespit edebiliyor ve bu verileri hem ekranda hem de terminalde görüntüleyebiliyor. Elde edilen sonuçlar, el yazısıyla yazılmış sayıları doğru bir şekilde tanıma ve sınıflandırma yeteneğini gösteriyor. Bu proje, el yazısı tespitiyle ilgili önemli bir soruna odaklanıyor ve geliştirilen sistemle bu sorunu çözme amacını taşıyor. El yazısıyla yazılmış sayıların doğru bir şekilde tespit edilmesi, birçok alanda kullanılan optik karakter tanıma (OCR) sistemlerinin geliştirilmesi, bankacılık işlemleri, belge sınıflandırması, posta otomasyonu gibi uygulamalar için büyük önem taşımaktadır.
El yazısı tespiti alanında öncelikli olarak, görüntü işleme ve derin öğrenme yöntemlerinin kullanıldığı çalışmalara odaklanmak gerekmektedir. Görüntü işleme teknikleri arasında, kenar tespiti, morfolojik işlemler, dönüşümler ve filtreleme gibi işlemler yer alırken, derin öğrenme teknikleri arasında evrişimli sinir ağları (CNN), rekürrent sinir ağları (RNN) ve uzun-kısa süreli hafıza (LSTM) gibi algoritmalar yaygın olarak kullanılmaktadır. Literatür taraması sürecinde, benzer çalışmalarda kullanılan verisetleri, veri önişleme teknikleri ve özellik çıkarım yöntemleri incelenmelidir. Özellikle, el yazısı sayıları içeren verisetlerin toplanması, etiketlenmesi ve eğitim sürecinde kullanılması önemlidir. Ayrıca, veri ön işleme adımları arasında görüntü boyutlandırma, gri tonlamaya dönüştürme ve kontrast artırma gibi işlemler yer alabilir. Literatürdeki çalışmalar, farklı algoritmaların performanslarını karşılaştırma ve değerlendirme açısından da önemlidir. Örneğin, yolov8 modelinin yanı sıra Faster R-CNN, SSD, ve RetinaNet gibi diğer nesne tespiti yöntemleriyle yapılan karşılaştırmalar incelenebilir. Bu karşılaştırmalar, tespit doğruluğu, hız, bellek kullanımı gibi metrikler üzerinde odaklanabilir. Ayrıca, gerçek zamanlı el yazısı tespiti sistemlerinin uygulama alanlarına da dikkat edilmelidir. Bankacılık işlemleri, posta otomasyonu, belge sınıflandırması ve imza tanıma gibi alanlarda kullanılan sistemlere yönelik literatür taraması yapılabilir. Bu çalışmalar, mevcut çözümlerin avantajlarını ve dezavantajlarını ortaya koyarak, geliştirilen sistemlerin pratik uygulamalardaki etkinliğini değerlendirmeye yardımcı olabilir.
Python ile Sayı Tespit Örneği
El yazısı tespiti için yaygın olarak kullanılan verisetleri arasında MNIST, SVHN ve IAM Handwriting Database gibi tanınmış kaynaklar bulunmaktadır. Bu verisetlerindeki el yazısı örneklerinin sayısı, çeşitliliği ve kalitesi, bir tespit sisteminin performansını etkileyebilir. Dolayısıyla, literatür taraması sırasında, veriseti seçimi ve kullanılan veri artırma teknikleri gibi faktörlerin de gözden geçirilmesi önemlidir. Ayrıca, literatürde, el yazısı tespiti için farklı algoritmaların ve yöntemlerin kullanıldığı çalışmalara rastlanabilir. Bu algoritmalar arasında, derin öğrenme tabanlı yöntemlerin (CNN, RNN, LSTM) yanı sıra, HOG (Histogram of Oriented Gradients), SVM (Support Vector Machines) ve HMM (Hidden Markov Models) gibi geleneksel yöntemler de bulunmaktadır. Bu yöntemlerin avantajları, dezavantajları ve performansları literatürdeki çalışmalar üzerinden karşılaştırılabilir. Literatür taraması aynı zamanda el yazısı tespiti alanında henüz çözülmemiş sorunlara ve gelecekteki araştırma fırsatlarına da işaret eder. Örneğin, el yazısı tespiti sistemlerinin daha karmaşık metinlerle başa çıkabilme yeteneği, çok dilli ve çok stilde el yazısı tespiti, gerçek zamanlı hızlı tespit için optimize edilmiş algoritmalar gibi konular hala üzerinde çalışılmayı bekleyen alanlardır. Bu açık sorunlar, gelecekteki tezler veya araştırmalar için potansiyel ilgi alanlarını belirlemeye yardımcı olabilir. Sonuç olarak, bu proje çalışması, el yazısı tespiti alanında yapılan çalışmaları ve mevcut literatürü kapsamlı bir şekilde incelemeyi amaçlamaktadır. Bu sayede, mevcut bilgi birikimine dayanarak, el yazısı tespiti konusundaki mevcut yöntemlerin ve sistemlerin avantajlarını ve sınırlamalarını anlamak, yeni yaklaşımların ve geliştirmelerin yapılmasına yönelik bir temel oluşturmayı hedeflemektedir.
El yazısı tespiti, görüntü işleme ve yapay zeka tekniklerinin birleşimiyle geliştirilen önemli bir alandır. Bu proje çalışması, el yazısıyla yazılmış sayıları tespit etmek için geliştirilen bir sistem üzerine odaklanmaktadır. Bu sistem, bir verisetini eğitmek ve görüntü işleme yöntemlerini kullanarak gerçek zamanlı el yazısı tespiti yapmak amacıyla Google Colab üzerinde Python programlama dili kullanılarak geliştirilmiştir. Ayrıca, OpenCV ve Ultralytics gibi güçlü kütüphaneler ve Visual Studio Code IDE'si bu projenin geliştirilme sürecinde kullanılan araçlar arasındadır. Bu projede kullanılan kapsamlı veriseti, yaklaşık 5000 el yazısı sayı görselinden oluşmaktadır. Bu veriseti, sistemimizin eğitim sürecinde kullanılarak modelin sayıları doğru bir şekilde tespit etmesi için optimize edilmiştir. Google Colab, yüksek performanslı hesaplama gücü sağlayarak verisetinin eğitim sürecini hızlandırmakta ve geliştirme sürecini kolaylaştırmaktadır. El yazısı tespiti sistemlerinin çeşitli uygulama alanları bulunmaktadır. Örneğin, bankacılık sektöründe çeklerin otomatik olarak tanınması, belge sınıflandırma sistemlerinde yazılı içeriğin otomatik olarak tespit edilmesi, posta otomasyonunda adres ve posta kodlarının tanınması gibi alanlarda bu sistemlerin kullanımı yaygındır. Bu projenin el yazısı tespiti konusundaki avantajlarından biri, doğruluk oranının yüksek olması ve gerçek zamanlı çalışabilmesidir. Bu sayede, hızlı ve doğru el yazısı tespiti, veri tabanlarında veya otomasyon sistemlerinde kullanılan verilerin güvenilirliğini artırırken insan iş gücünden tasarruf sağlamaktadır. Bu çalışma, el yazısı tespiti alanında geliştirilen sistemlerin performansını ve kullanım alanlarını daha iyi anlamak için önemli bir katkı sağlamaktadır. Ayrıca, OpenCV ve Ultralytics gibi güçlü kütüphaneler ve Python programlama dilinin kullanımı, geliştiricilere esneklik ve kolaylık sağlamaktadır. Visual Studio Code IDE'si de kod geliştirme sürecini optimize ederek verimliliği artırmaktadır. Bu proje çalışması, el yazısı tespiti konusundaki gelişmeleri araştırarak mevcut literatürdeki boşlukları doldurmayı ve gelecekteki araştırmalara yönelik rehberlik etmeyi hedeflemektedir. Ayrıca, gerçek zamanlı el yazısı tespiti sistemlerinin günlük hayatta birçok alanda kullanılabilen pratik uygulamaları için temel bir adım niteliği taşımaktadır.
GÖRÜNTÜ İŞLEME
Görüntü işleme, dijital görüntüler üzerinde çeşitli işlemler gerçekleştirerek bilgi elde etme ve görüntülerin analizini yapma sürecidir. Dijital görüntüler, piksellerden oluşan bir matris olarak temsil edilir ve bu matris üzerinde yapılan işlemlerle görüntülerin özellikleri çıkarılabilir, düzenlenebilir veya analiz edilebilir. Görüntü işleme, geniş bir uygulama alanına sahiptir. Örneğin, tıp alanında, tıbbi görüntüler üzerinde yapılan işlemlerle teşhis ve tedavi süreçleri desteklenebilir. Görüntü işleme, tıbbi görüntülerden anlamlı bilgiler çıkararak hastalıkların teşhisini kolaylaştırabilir ve tıbbi görüntü işleme algoritmaları sayesinde daha doğru ve hızlı teşhisler yapılabilir. Ayrıca, güvenlik ve gözetim sistemleri, otomotiv endüstrisi, robotik, tarım, hava durumu analizi gibi farklı alanlarda da görüntü işleme önemli bir rol oynamaktadır. Örneğin, güvenlik kameraları üzerindeki görüntü işleme algoritmaları, yüz tanıma, hareket algılama veya nesne tespiti gibi özellikleri kullanarak tehlikeli durumları tespit edebilir ve güvenlik önlemlerini artırabilir. Tarımda ise görüntü işleme, bitki hastalıklarının tespiti, verimliliğin artırılması ve hasat tahmini gibi konularda kullanılarak tarımsal süreçlerin optimize edilmesine yardımcı olur. Görüntü işleme sürecinde farklı teknikler ve algoritmalar kullanılır. Bunlar arasında filtreleme, kenar tespiti, morfolojik işlemler, özellik çıkarımı, segmentasyon ve nesne tespiti gibi yöntemler yer alır. Ayrıca, derin öğrenme tabanlı yöntemler, özellikle sinir ağları ve konvolüsyonel sinir ağları (CNN) gibi modeller, son yıllarda görüntü işleme alanında büyük ilgi görmüştür. Bu modeller, karmaşık görüntü verilerinde yüksek performans ve doğruluk sağlayabilen öğrenme yeteneklerine sahiptir. Görüntü işleme, gerçek dünyadaki görüntü verilerinden değerli bilgileri çıkararak birçok alanda inovasyon ve iyileştirme fırsatları sunar. Gelişen teknolojiler ve algoritmalarla birlikte, görüntü işleme alanında daha fazla ilerleme ve uygulama potansiyeli bulunmaktadır.
NESNE TESPİT
YOLO (You Only Look Once), nesne tespiti için kullanılan popüler bir modeldir. YOLO, nesne tespiti sürecinde sınıflandırma ve konumlandırma adımlarını birleştiren bir yöntem sunar. Bu model, bir görüntüyü birbirine bağlı hücrelere böler ve her hücredeki özellik haritalarını kullanarak nesnelerin konumunu ve sınıfını tahmin eder. YOLO'nun avantajlarından biri, nispeten hızlı çalışmasıdır. Çünkü görüntüyü tek bir geçişte analiz eder ve böylece gerçek zamanlı uygulamalarda kullanılabilir. Ancak, YOLO'nun küçük nesneleri tespit etme yeteneği bazen zayıf olabilir ve yoğun nesne alanlarında performansı düşebilir. Alternatif olarak, Faster R-CNN (Region-based Convolutional Neural Network) gibi diğer modeller de el yazısı tespiti için kullanılabilir. Faster R-CNN, görüntüyü bölümlere ayırma ve nesne tespiti için önerilen bölgeleri inceleme adımlarını içeren iki aşamalı bir yaklaşım sunar. İlk aşamada, bölge önerileri oluşturulur ve ardından bu önerilerde nesne tespiti yapılır. Faster R-CNN, YOLO'ya göre daha yüksek doğruluk sağlayabilir, ancak daha fazla hesaplama gücü ve süresi gerektirebilir. SSD (Single Shot MultiBox Detector) ise başka bir alternatif modeldir. SSD, YOLO gibi tek bir geçişle nesne tespiti yapar, ancak farklı ölçeklerdeki özellik haritalarını kullanır. Bu sayede, küçük ve büyük nesneleri aynı anda tespit etme yeteneği sağlar. SSD, nesne tespiti konusunda iyi bir performans sergileyebilirken hızlı çalışmasıyla da dikkat çeker. RetinaNet, nesne tespiti için kullanılan bir diğer modeldir. Bu model, özellik haritalarında farklı ölçeklerdeki nesneleri tespit etmek için ağın farklı noktalarından çıkan özelliklerin birleştirilmesini kullanır. RetinaNet, küçük ve büyük nesneleri tespit etmede iyi performans gösterirken, sınıf dengesizliği sorununu çözmek için özel bir kayıp fonksiyonu kullanır.
VERİSETİ OLUŞTURMA
Veriseti oluşturma ve eğitim süreci, el yazısı tespiti projenin temel adımlarından biridir. Bu süreç, el yazısıyla yazılmış sayıları içeren bir verisetinin toplanması, etiketlenmesi ve ardından bir modelin eğitilmesini içerir. Veriseti oluşturma sürecinde, genellikle çeşitli kaynaklardan elde edilen görüntüler kullanılır. Örneğin, çevrimiçi kaynaklardan, açık kaynaklı veritabanlarından veya özel olarak oluşturulan görüntülerden veri toplanabilir. El yazısı tespiti için büyük ve çeşitli bir veriseti kullanmak, modelin genelleyebilme yeteneğini artırır. Toplanan görüntülerin etiketlenmesi, her görüntünün içerdiği el yazısı sayılarının doğru bir şekilde tanımlanması anlamına gelir. Bu işlem, genellikle etiketleme araçlar