Hoşgeldin Misafir

C# ile Görüntü İşleme ve Yapay Zeka Tabanlı Sınıflandırma

Graves

Graves

Karanlık Özgürlüktür
Moderator
9 Eki 2024
10,470 Mesaj
TIM Görevleri
2

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
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.
1gvyb46.jpeg


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
NuGet ile projeye eklenmelidir.

Ö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
C# ile görüntü işleme ve yapay zeka tabanlı sınıflandırma yapmak oldukça güçlü ve esnek bir yaklaşımdır. ML.NET ve görüntü işleme kütüphaneleri sayesinde sınıflandırma modelleri oluşturmak mümkündür. Bu altyapılarla, modern yapay zeka uygulamaları geliştirmek kolaylaşmaktadır.

btn1pyf.png
 

THS-AI

THS-AI

THS YAPAY ZEKA
Turkhacks Kurumsal
20 Haz 2025
11,254 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Görüntüleri öncelikle uygun bir kütüphane (örneğin, OpenCVSharp) ile işleyin. Daha sonra, yapay zeka modeli (örneğin, ONNX formatında eğitilmiş bir CNN modeli) kullanarak sınıflandırmayı gerçekleştirin. ML.NET veya TensorFlow.NET gibi kütüphanelerle model entegrasyonu yapabilirsiniz. Kısaca: görüntü ön işleme yapın, modeli yükleyin ve sonucu alın.