Derin Öğrenme ile QR Kod Tanımayı Anlama
Hızlı Yanıt (QR) kodları, kesintisiz veri paylaşımı ve bilgi alımını sağlayarak dijital yaşantımızın ayrılmaz bir parçası haline geldi. Görüntülerde QR kodlarını tanımak, yapay zekanın bir alt kümesi olan derin öğrenmenin değerli bir uygulamasıdır. Bu makalede, .NET/C# kullanarak derin öğrenme ile bir QR kod tanıma sistemi oluşturma sürecini size aktaracağız.
Derin Öğrenme ile QR Kod Tanımayı Anlama
Derin öğrenme, karmaşık desenleri öğrenmek için sinir ağlarını eğitmeyi içeren makine öğrenmesinin bir dalıdır. QR kod tanıma bağlamında, derin öğrenme modelleri, farklı boyutlar, yönler ve koşullarda resimlerden QR kodlarını tanımlayıp çözmek için eğitilebilir. Görsel ögeleri yakalama yeteneklerinden dolayı, evrişimli sinir ağları (CNN'ler) QR kod tanıma gibi görsel tabanlı görevler için popüler bir seçimdir.
Bu makalede, modelimizi eğitmek için ML.NET Model Builder kullanacağız.
ML.NET Model Builder
Model Builder, Microsoft tarafından .NET/C#'ta makine öğrenme modelleri geliştirmek için sağlanan ML.NET çerçevesinin bir parçası olarak güçlü bir araçtır. Model Builder, makine öğrenme algoritmaları veya kapsamlı kodlama uzmanlığına derinlemesine ilişkin bilgi gerektirmeden özel makine öğrenme modelleri oluşturma sürecini basitleştirir ve hızlandırır. Model Builder, kullanıcı dostu ve erişilebilir olacak şekilde tasarlanmıştır, bu da onu geliştiricilerin uygulamalarında makine öğrenme yeteneklerini kullanmak isteyen geliştiriciler için mükemmel bir araç yapar. Model Builder, farklı makine öğrenme algoritmalarını ve ayarlarını otomatik olarak keşfeden AutoML desteği sunar ve senaryonuza en uygun olanı bulmanıza yardımcı olur.
QR Kod Tanıma Modelini Eğitme
Model Builder kullanarak bir QR kod tanıma modeli eğitmek, modeli oluşturma ve eğitme sürecinde size rehberlik eden bir dizi adımı içerir. Bu adım adım kılavuzda, .NET/C# içinde Model Builder kullanarak bir QR kod modeli eğitme sürecinin her aşamasında size yol göstereceğiz.
Adım 1: Ortamınızı Ayarlayın
Uygulamaya dalmadan önce, aşağıdaki ön koşullara sahip olduğunuzdan emin olun:
- Visual Studio: .NET geliştirme için çok yönlü bir entegre geliştirme ortamı (IDE) olan Visual Studio'yu indirin ve yükleyin.
- Model Builder: buraya tıklayarak ML.NET Model Builder'ı indirebilirsiniz.
Adım 2: Veri Hazırlığı
Modelimizi eğitmek için QR Code Görüntülerine ihtiyaçımız var. Kaggle veya Roboflow'dan QR Code Görüntüleri alabilirsiniz. Bu örnek için Roboflow'dan QR Code Görüntüleri indirdim.
Adım 3: Model Builder'ı Açın
Visual Studio Projesini açın.
Proje üzerine sağ tıklayın > Ekle > Makine öğrenme Modeli...

Takip eden pencere açılacaktır.

Model adını verin ve Ekle düğmesine tıklayın. Aşağıdaki pencere açılacaktır:

Aşağı kaydırın ve Bilgisayar Görsellemesi altında "Nesne Tanıma" bul.

Adım 4: Eğitim Ortamını Seçin
Verilen veri kümesinden QR kodları tespit etmemiz gerektiği için Nesne Tespitini seçin. Tercihinize göre Yerel veya Azure'u seçin. Bu örnekte Yerel'i seçiyoruz.
Yerel'e tıkladığınızda, aşağıdaki pencere açılacaktır:

Tercihinize göre Yerel CPU veya GPU seçin. Ayrıca Azure'u da seçebilirsiniz. Bunun için Aktif Azure Aboneliğiniz olmalıdır. Test ortamınızı seçtikten sonra, İleri düğmesine tıklayın. Aşağıdaki pencere açılacaktır.

Adım 5: Verileri Seçin
Veri Seçmek, eğitim sürecinin en önemli parçasıdır. Daha önce belirtildiği gibi, verileri Robo Flow taşıyacağım. RoboFlow'u açın, QR Code arayın. Veriler, beyaz QR kodları içerebilir veya birçok yerel özelliğe sahip olabilir. Bu eğitim için QR algılama Bilgisayar Görsellemesi Veri Seti kullanıyorum. Formatı seçerek verileri indirin. Bu veriyi indirmek için COCO Formatını seçtim, çünkü bu format daha fazla veri ön işleme ve görüntü tanıma için kullanılacaktır.

Artık veriye sahipsiniz, hadi Visual Studio'ya geri dönelim. Yukarıda indirilen COCO dosyasının Girdi Yolunu seçin. Vott da seçebilirsiniz, ancak bunun için veriniz için bir Vott dosyası oluşturmanız gerekir. Aşağıdaki pencere açılacaktır.

Şimdi, İleri Adım düğmesine tıklayın ve Eğitime geçin.

Adım 6: QR Kod tespit Modelini Eğit
Şimdi, eğitimi başlatmak için Eğitim Modelini Başlat'a tıklayın. Model Builder, otomatik olarak ikili görüntülere dönüşecek ve tercih edilen sinir ağlarını uygun şekilde kullanacak. Hiçbir şey belirtmemize gerek yok. Model Builder'in en iyi yanı, minimal derin öğrenme geçmişine sahip bir geliştiricinin bir modeli eğitebilmesi, test edebilir ve kullanabilmesidir.

Model Builder, modeli belirtilen veri kümesi üzerinde eğitecek ve eğitim ilerlemesini gösterecektir. Yukarıdaki eğitim, sisteme bağlı olarak zaman alacaktır. Model, tüm QR Kodlarını teker teker alacak ve özelliklerini öğrenecektir. Eğitim tamamlandığında, herhangi bir test QR kodu görüntüsünü modele aktararak modelinizi test edebilirsiniz.
Adım 7: Modeli Değerlendir
Eğitimden sonra, Model Builder modeli değerlendirecek ve modelin performansını doğrulama verileri üzerinde ölçecektir.
Doğruluk, hassasiyet, hatırlama ve F1-skoru gibi değerlendirme metrileri göreceksiniz. Bu metrikler, modelin ne kadar iyi performans gösterdiğini değerlendirir.
Adım 8: Kullanım
Artık modelimiz eğitildi ve QR Kod Dedektörü hazır, bu modeli QR kodunu tespit etmek ve ardından tespit edilen QR Kodu çözmek için kullanmamız gerekiyor. Bu Model, yalnızca verilen girdide herhangi bir Hızlı Yanıt kodu olup olmadığını tespit edecek. Bu, QR Kodunu çözmeyecek. QR Kodunu çözmek için üçüncü taraf bir Kütüphane'ye ihtiyaçımız var. Iron Barcode, QR Kodu Görüntüsünü okumak için en iyi kutuphanedir. Devam etmeden önce Iron Barcode hakkında biraz keşfedelim.
Iron Barcode - QR Kod Çözümleme Kutuphanesi
IronBarcode, 2D barkod türünde bir QR kodu ile çalışan, .NET için spesifik olarak hazırlanmış bir kütüphanedir. Bu kütüphane URL'ler, metin, iletişim detayları gibi bilgilerin şifrelenmesi için yaygın olarak kullanılır. Bu kütüphane, geliştiricilere boyut, renk ve hata düzeltme gibi özelleştirilebilir özelliklere sahip QR kodları oluşturmak için sezgisel araçlar sağlayarak QR kodlarının oluşturulmasını basitleştirir.
Ek olarak, IronBarcode, görüntülere gömülü QR kodlarından bilgi çıkarmayı sağlar ve .NET uygulamalarına QR kodu oluşturma ve çözümleme yeteneklerini sorunsuz bir şekilde entegre etmek için vazgeçilmez bir kaynaktır.
Bu eğitimde, modelimizden QR Kod algılandığında QR Kodunu çözmek için kullanacağız.
Iron Barcode NuGet Paketi Kurulumu
IronBarcode NuGet paketini indirmek için NuGet Paket Yöneticisi Konsolunda aşağıdaki komutu yazın.
Install-Package BarCode
Yukarıdaki komut Iron Barcode paketini yükleyecek ve projemize bir başvuru ekleyecektir.

QR Kodlarını Çöz
Tespit edilmiş tek bir QR Kodunu okumak için aşağıdaki kodu yazın.
using IronBarCode;
string qrCodeImagePath = "myQrCode.png";
// Quickly reads a single QR Code from the provided image path
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);
// Outputs the decoded value from the QR Code
Console.WriteLine(data.Value.ToString());
using IronBarCode;
string qrCodeImagePath = "myQrCode.png";
// Quickly reads a single QR Code from the provided image path
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);
// Outputs the decoded value from the QR Code
Console.WriteLine(data.Value.ToString());
Imports IronBarCode
Private qrCodeImagePath As String = "myQrCode.png"
' Quickly reads a single QR Code from the provided image path
Private data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath)
' Outputs the decoded value from the QR Code
Console.WriteLine(data.Value.ToString())
Aşağıda, çıktısı verilmiştir:

Sonuç
Sonuç olarak, Model Builder ve IronBarcode kütüphanesi, QR kodları ile çalışmak isteyen .NET geliştiricileri için değerli bir kombinasyondur. Model Builder, QR kodu tanıma için modelleri oluşturma ve eğitme sürecini oldukça kolaylaştırır. Ve IronBarcode kütüphanesini eklediğinizde, iş daha da basitleşiyor - resimlerden QR kodlarını sorunsuz okuyor. Bu ekip çalışması, envanter ve pazarlama görevlerini iyileştirmekle kalmaz, aynı zamanda uygulamalarınızı daha kullanışlı hale getirir. Model Builder ve IronBarcode bir araya geldiğinde, .NET uygulamalarınıza süper akıllı teknolojiyi entegre etmek gibi olur ve QR kodlarıyla ilgili birçok harika olanak sağlar. Iron Barcode ticari lisansı çok düşük bir maliyetle ve ücretsiz deneme lisansı ile mevcuttur.


