Merhaba, C# Alturos.Yolo Object Detection – C# Nesne Tanımlama yazım ile C# eğitim setime devam ediyorum. Bu dersimizde Alturos.Yolo kullanarak resimlerde nesne tanımlama işlemine bakacağız. Alturos.Yolo DLL’lerini nuget ile indirip kullanacağız.
C# Alturos.Yolo Object Detection – C# Nesne Tanımlama
Resimlerdeki nesneleri tanımla konusu bazı durumlarda bize lazım olabilir. Bu sebeple bu dersi yazma gereği duydum.
NOT: Projeniz 64 bit olmalıdır. X86 ya da Anycpu ile çalışmaz.
İlk olarak projemize 1 picturebox, 1 datagridview ve iki button ekliyoruz. Form tasarımım aşağıdaki gibidir.
Şimdi Solution Explorer’e gelin ve projeniz üzerinde sağ tık yaparak Manage Nuget Package’ı tıklayın. Açılan ekranda Browse diyin ve
Sarı tick işareti ile işaretlenmiş olan paketleri kurun. Bende kurulu olduğundan sağ tarafta uninstall yazıyor. Sizde install yazacak.
Kurulum tamamlandığında size bir ReadMe ekranı açacak o ekranı kapatmayın. Oradaki kodları kullanacağız.
Kodları yazmaya başlamadan önce datagridview’e tıklayın ve sağ üst köşesinde çıkan oka tıklayın.
Choose Data Source kısmına gelelim ve bir datasource seçelim.
Add Project Data Source diyelim ve açılan ekranda Object’e tıklayalım.
Object’i seçtikten sonra next diyelim.
Alturos.Yolo kısmından sarı ile işaretlenmiş olan YoloItem’i seçelim. Finish dedikten sonra datagridview’e kolon başlıkları gelecektir.
Şimdi Foto Seç button nesnesinin click eventine gelelim ve kodlarımızı yazalım.
private void btn_foto_sec_Click(object sender, EventArgs e) { OpenFileDialog op = new OpenFileDialog(); if (op.ShowDialog() == DialogResult.OK) { pictureBox1.Image = Image.FromFile(op.FileName); } }
OpenFileDialog kullanarak resim seçeceğiz.
Şimdi de Çöz button nesnesinin click eventine gelelim ve kodlarımızı yazalım.
private void btn_coz_Click(object sender, EventArgs e) { var configurationDetector = new ConfigurationDetector(); var config = configurationDetector.Detect(); using (var yoloWrapper = new YoloWrapper(config)) { using (MemoryStream ms = new MemoryStream()) { pictureBox1.Image.Save(ms, ImageFormat.Png); var items = yoloWrapper.Detect(ms.ToArray()); yoloItemBindingSource.DataSource = items; } } }
Burada, PictureBox’a yüklediğimiz resmi MemoryStream ile YoloWrapper’a gönderiyoruz. Böylece resmi tarayabilecek.
kodlarımız bu kadar şimdi bir kaç deneme yapalım.
Gördüğünüz gibi, datagridview’e otomatik olarak 3 kayıt geliyor.
Datagridview’i inceleyelim.
Burada, resimde 3 nesne bulunmuş. Bulunan nesnelerin tipleri car yani araçmış. Confidence terimi güven anlamına gelir. Burada doğruluk payı olarak kullanılıyor.
- İlk bulunan obje %91 oranında bir araç
- İkincisi %82 oranında bir araç
- Üçüncüsü %62 oranında bir araç
Bu resimde bir insan ve tekne buluyor ama resimde tekne göremiyoruz. bu şekilde bazı sıkıntıları da olabiliyor. Görselde bir yerde bir noktayı tekne olarak algılıyor.
C# Alturos.Yolo Object Detection – C# Nesne Tanımlama yazımda bu kadar arkadaşlar.
Bana destek olmak isterseniz, iletişim sayfamda verdiğim sosyal medya hesaplarımı takip edebilirsiniz.
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme bu bağlantıdan ulaşabilirsiniz… Bu projeyi paylaşmak isterdim ama indirdiğimiz DLL’lerin boyutları yüksek olduğundan paylaşamadım. Toplam 350 MB oluyor projenin toplam boyutu..
Bu yazı, sitemdeki 436. yazıdır…
Sağlıcakla ve takipte kalın. ;)
Merhaba bu projeyi yapmaya çalışıyorum.
Ancak alturos yolo ve Alturos.YoloV2TinyVocData kütüphaneleri aratınca bende çıkmıyor.
Visual studio 19 kullanıyorum.
Bu sorunu nasıl çözebilirim.
Merhaba bu sorunu daha önce biri daha sormuştu. Sanırım nugetten kaldırılmış yada farklı bir isimle devam ediyor. Hatta o arkadaş için drive’a yüklemiştim. Sizde projeyi aşağıdaki linkten indirebilirsiniz.
https://drive.google.com/file/d/1rM6p4XgrcBouXDy8aT8yDk_-PaAgNO6g/view?usp=sharing
Verdiğim linkteki projede dll ler dahil tüm dosyalar yer almaktaır.
Kolay Gelsin.
Mustafa bey nugette sizin gösterdikleriniz çıkmıyor. Ben yoloyu c# da çalıştıramadım. Kaynak kodları paylaşmanın bir yolu var mı. Teşekkür ediyorum
Merhaba,
Evet yolo nedense nugetten kaldırılmış. Kaldırılmış olması da bu konuda gelecekte bir gelişme ve destek olmayacağı anlamına gelir. Başka bir paket bulmak daha iyi olacaktır.
Ben yine de size drive yüklediğim çalışan halini vereyim.
https://drive.google.com/file/d/1rM6p4XgrcBouXDy8aT8yDk_-PaAgNO6g/view?usp=sharing