Derin Öğrenme ile QR Kod Tanıma Nasıl Anlaşılır
Hızlı Yanıt (QR) kodları, sorunsuz veri paylaşımı ve bilgi alımını kolaylaştırarak dijital hayatımızın vazgeçilmez bir parçası haline gelmiştir. Görsellerde QR kodlarını tanıma, yapay zekanın bir alt kümesi olan derin öğrenmenin değerli bir uygulamasıdır. Bu makalede, .NET/C#'ta derin öğrenme kullanarak bir QR kod tanıma sistemi oluşturma sürecini size rehber edeceğiz.
Derin Öğrenme ile QR Kod Tanımayı Anlamak
Makine öğreniminin bir dalı olan derin öğrenme, verilerden karmaşık kalıplar öğrenmek için sinir ağlarını eğitmeyi içerir. QR kod tanıma bağlamında, derin öğrenme modelleri, farklı boyutlar, yönler ve koşullarla değişiklik gösteren görüntülerden QR kodları tanıyıp çözmek üzere eğitilebilir. QR kod tanıma gibi görüntü tabanlı görevler için çekişmeli özellikleri yakalayabilme yetenekleri nedeniyle Convolutional Neural Networks (CNN'ler) popüler bir seçimdir.
Bu makalede, modelimizi eğitmek için ML.NET Model Builder'ı kullanacağız.
ML.NET Model Oluşturucu
Model Builder, .NET/C#'ta makine öğrenme modelleri oluşturma sürecini hızlandıran ve kolaylaştıran ML.NET çerçevesinin bir parçası olarak Microsoft tarafından sağlanan güçlü bir araçtır. Derinlemesine makine öğrenme algoritmaları bilgisi veya kapsamlı kodlama uzmanlığı olmadan özel makine öğrenme modellerinin oluşturulması ve test edilmesi sürecini basitleştirir. Model Builder, kullanıcı dostu ve erişilebilir olacak şekilde tasarlanmıştır, bu da uygulamalarında makine öğrenimi potansiyelini kullanmak isteyen geliştiriciler için harika bir araç olmasını sağlar. Model Builder, senaryonuza en uygun olanı bulmanız için farklı makine öğrenme algoritmalarını ve ayarlarını otomatik olarak keşfeder.
QR Kod Tanıma Modelini Eğitmek
Model Builder'ı kullanarak bir QR kod tanıma modeli eğitmek, modelin oluşturulması ve eğitilmesi sürecini adım adım rehber eden bir dizi adımdan oluşur. Bu adım adım kılavuzda, .NET/C#'ta Model Builder kullanarak bir QR kod modeli eğitiminin her aşamasını size anlatacağız.
Adım 1: Ortamınızı Ayarlama
Uygulamaya dalmadan önce, aşağıdaki ön gereksinimlere sahip olduğunuza emin olun:
Visual Studio: .NET geliştirme için çok yönlü bir tümleşik geliştirme ortamı (IDE) olan Visual Studio'yu indirin ve kurun. Model Builder: ML.NET Model Builder'ı indirmek için buraya tıklayın.
Adım 2: Veri Hazırlığı
Modelimizi eğitmek için QR Kod Görsellerine ihtiyacımız var. QR Kod Görsellerini Kaggle veya Roboflow'dan alabilirsiniz. Bu örnek için Roboflow'dan QR Kod Görsellerini indirdim.
Adım 3: Model Builder'ı Aç
Visual Studio Projesini Açın.
Projeye sağ tıklayın > Ekle > Makine Öğrenme Modeli...

Aşağıdaki pencere belirecek.

Modelin adını verin ve Ekle'ye tıklayın. Aşağıdaki pencere görünür:

Aşağıya kaydırın ve Bilgisayar Görüsü altında "Nesne Tanıma"yı bulun.

Adım 4: Eğitim Ortamını Seç
Verilen verilerden QR kodlarını tespit etmemiz gerektiğinden Nesne tanıma'yı seçin. Tercihinize göre Yerel veya Azure'u seçin. Bu örnek için Yerel'i seçiyoruz.
Yerel'e tıkladıktan sonra aşağıdaki pencere belirecek:

Tercihinize göre Yerel CPU veya GPU'yu seçin. Azure'u da seçebilirsiniz. Bunun için, etkin bir Azure Aboneliğine sahip olmalısınız. Test ortamınızı seçtikten sonra İleri düğmesine tıklayın. Aşağıdaki pencere belirecek.

Adım 5: Verileri Seç
Veri seçimi eğitim sürecinin en önemli kısmıdır. Daha önce belirtildiği gibi, veriyi Robo Flow'dan alacağım. RoboFlow'u açın, QR Kodu arayın. Veri, beyaz QR kodlarına sahip olabilir veya birçok yerel özellik barındırabilir. Bu eğitim için QR algılama Bilgisayar Görüsü Veri Seti'ni kullanıyorum. Formatı seçerek veriyi indirin. Bu veriyi indirmek için COCO Formatı'nı seçtim çünkü bu format veri ön işleme ve görüntü tanıma için kullanılacak.

Artık verilere sahipsiniz, Visual Studio'ya geri dönelim. Üstte indirilen COCO dosyasının Giriş Yolunu seçin. Vott'u da seçebilirsiniz, ancak bunun için veri için bir Vott dosyası oluşturmalısınız. Aşağıdaki pencere belirecek.

Şimdi, İleri Adım'a tıklayın ve Eğitim sekmesine geçin.

Adım 6: QR Kod Tespit Modelini Eğitin
Şimdi, eğitime başlamak için Model Eğitimine Başla'ya tıklayın. Model Builder otomatik olarak ikili görüntülere dönüştürecek ve uygun sinir ağlarını kullanacaktır. Hiçbir şey belirtmemiz gerekmiyor. Model Builder'ın en iyi yanı, minimum derin öğrenme geçmişine sahip bir geliştiricinin bir model eğitip test etmesinin ve tüketmesinin oldukça kolay olmasıdır.

Model Builder, belirtilen veri seti üzerinde modeli eğitecek ve eğitim sürecini gösterecektir. Yukarıdaki eğitim, sisteme bağlı olarak zaman alacaktır. Model, tüm QR Kodlarını birer birer alacak ve özelliklerini öğrenecektir. Eğitim tamamlandığında, modele herhangi bir test QR kodu görüntüsü geçirerek modelinizi test edebilirsiniz.
Adım 7: Modeli Değerlendirin
Eğitimden sonra Model Builder, modelin performansını doğrulama verileri üzerinde değerlendirecektir.
Doğruluk, hassasiyet, hatırlama ve F1-skoru gibi değerlendirme metriklerini göreceksiniz. Bu metrikler, modelin ne kadar iyi performans gösterdiğini değerlendirir.
Adım 8: Tüketin
Artık modelimiz eğitildi ve QR Kod Dedektörü hazır, o modeli kodu tespit etmek ve sonra tespit edilen QR Kodunu çözmek için tüketmemiz gerekiyor. Bu Model, sadece verilen bir girdide herhangi bir Hızlı Yanıt kodu içerip içermediğini tespit edecektir. Bu QR Kodunu çözmeyecektir. QR Kod çözme için üçüncü taraf bir Kütüphane gerekiyor. IronBarcode, QR Kod Görüntüsünü okumak için en iyi kütüphanedir. İlerlemeye devam etmeden önce IronBarcode hakkında biraz keşfedelim.
IronBarcode - QR Kodu Çözme Kütüphanesi
IronBarcode, URL'ler, metin, iletişim bilgileri ve daha fazlası gibi bilgileri kodlamak için yaygın olarak kullanılan bir tür 2D barkod olan QR kodlar ile çalışmak için özel olarak tasarlanmış bir .NET kütüphanesidir. 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 sunarak QR kodların oluşturulmasını basitleştirir.
Ayrıca, IronBarcode, .NET uygulamalarına QR kodu oluşturma ve kod çözme yeteneklerini sorunsuz bir şekilde entegre ederken, görsellere gömülü QR kodlarından bilgi çıkarılmasına da olanak tanır.
Bu eğitimde, modelimiz tarafından tespit edilen QR Kodunu çözmek için kullanacağız.
IronBarcode NuGet Paketini Yükleyin
IronBarcode NuGet paketini indirmek için NuGet Paket Yöneticisi Konsoluna aşağıdaki komutu yazın.
Install-Package BarCode
Yukarıdaki komut, IronBarcode paketini yükler ve projemize bir referans ekler.

QR Kodları Çöz
Algılanan tek 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ğıdaki çıkıştır:

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 modellerin oluşturulması ve eğitilmesi işini oldukça kolaylaştırır. Ve IronBarcode kütüphanesi eklendiğinde, iş daha da basitleşir - resimlerden QR kodları okumaya yardımcı olur. Bu iş birliği, envanter ve pazarlama görevlerini daha iyi hale getirmekle kalmaz, aynı zamanda uygulamalarınızı daha eğlenceli hale getirir. Model Builder ve IronBarcode bir araya geldiğinde, .NET uygulamalarınıza süper akıllı teknoloji karışımı katarak QR kodu işleri için tüm türden havalı olanaklar açar. IronBarcode ticari lisansı, ücretsiz deneme lisansı ile birlikte çok düşük bir maliyetle mevcuttur.


