Graves
- 9 Eki 2024
- 10,470 Mesaj
- TIM Görevleri
- 2
Aktiflik
Seviye
Deneyim
C# ile Görüntü İşleme ve Yapay Zeka Tabanlı Sınıflandırma
Görüntü işleme, dijital görüntülerin analiz edilmesi, düzeltilmesi veya anlamlandırılması amacıyla uygulanan tekniklerin bütünüdür. C# dili, .NET platformu ile birlikte görsel uygulamalar geliştirmek için güçlü bir yapıya sahiptir. Bu yazıda, C# ile görüntü işleme temellerini ve makine öğrenmesi algoritmalarıyla görüntü sınıflandırma sürecini ele alacağız.
Görüntü işleme, dijital görüntülerin analiz edilmesi, düzeltilmesi veya anlamlandırılması amacıyla uygulanan tekniklerin bütünüdür. C# dili, .NET platformu ile birlikte görsel uygulamalar geliştirmek için güçlü bir yapıya sahiptir. Bu yazıda, C# ile görüntü işleme temellerini ve makine öğrenmesi algoritmalarıyla görüntü sınıflandırma sürecini ele alacağız.
Görüntü İşleme Nedir?
Görüntü işleme, bir görsel verinin (örneğin bir fotoğrafın) analiz edilerek, içerisindeki özelliklerin çıkarılması veya dönüştürülmesi sürecidir. Uygulama alanları arasında yüz tanıma, plaka tanıma, tıbbi görüntüleme, güvenlik sistemleri ve daha fazlası yer alır.C# ile Görüntü İşleme Nasıl Yapılır?
C# ile görüntü işlemek için System.Drawing, AForge.NET veya Emgu.CV (OpenCV'nin .NET uyarlaması) gibi kütüphaneler kullanılabilir.Örnek: Görüntünün Gri Tona Çevrilmesi
Kod:
using System.Drawing;
public Bitmap ConvertToGrayscale(Bitmap original)
{
Bitmap newBitmap = new Bitmap(original.Width, original.Height);
for (int i = 0; i < original.Width; i++)
{
for (int j = 0; j < original.Height; j++)
{
Color originalColor = original.GetPixel(i, j);
int grayScale = (int)((originalColor.R * 0.3) +
(originalColor.G * 0.59) +
(originalColor.B * 0.11));
Color grayColor = Color.FromArgb(grayScale, grayScale, grayScale);
newBitmap.SetPixel(i, j, grayColor);
}
}
return newBitmap;
}
Yapay Zeka ile Görüntü Sınıflandırma
Görüntü sınıflandırma, bir görüntünün içeriğine göre belirli kategorilere atanmasıdır. Bu işlem genellikle makine öğrenmesi ya da derin öğrenme modelleri ile gerçekleştirilir. .NET platformunda ML.NET kütüphanesi ile bu işlemi yapmak mümkündür.ML.NET ile Görüntü Sınıflandırma
Gerekli Paketler
- Microsoft.ML
- Microsoft.ML.ImageAnalytics
- Microsoft.ML.Vision
Örnek Veri Modeli
Kod:
public class ImageData
{
public string ImagePath { get; set; }
public string Label { get; set; }
}
public class ImagePrediction : ImageData
{
public string PredictedLabel { get; set; }
public float[] Score { get; set; }
}
Model Eğitimi
Kod:
var context = new MLContext();
var data = context.Data.LoadFromTextFile<ImageData>(
path: "images.tsv",
hasHeader: true,
separatorChar: '\t');
var pipeline = context.Transforms.LoadImages("ImagePath", "ImagePath")
.Append(context.Transforms.ResizeImages("ImagePath", imageWidth: 224, imageHeight: 224))
.Append(context.Transforms.ExtractPixels("ImagePath"))
.Append(context.MulticlassClassification.Trainers
.ImageClassification(featureColumnName: "ImagePath", labelColumnName: "Label"))
.Append(context.Transforms.Conversion.MapKeyToValue("PredictedLabel"));
var model = pipeline.Fit(data);
- Görüntüler yüklenir ve yeniden boyutlandırılır.
- Piksel verisi çıkarılabilir
- Görüntü sınıflandırma modeli eğitilir.
Modeli Kullanarak Görsel Sınıflandırma
Kod:
var predictionEngine = context.Model.CreatePredictionEngine<ImageData, ImagePrediction>(model);
var prediction = predictionEngine.Predict(new ImageData
{
ImagePath = "test.jpg"
});
Console.WriteLine($"Tahmin edilen sınıf: {prediction.PredictedLabel}");
Uygulama Alanları
- Yüz tanıma sistemleri
- Yapay zeka destekli güvenlik kameraları
- Tıbbi teşhis (MR, röntgen analizi)
- Tarımda hastalıklı yaprak tespiti
- Endüstriyel kalite kontrol



