OpenMV
Kalkanlar
Objektif
Robotik
Kitap
Video
İndirmek
Dokümanlar
Forum
OpenMV.io
GithubGörüntü alanında yapay zekâ ile gerçekleştirilen iki çok yaygın görev vardır: birincisi sınıflandırma, ikincisi ise nesne tespiti.
Kategori:Görselin hangi sınıfa ait olduğunu belirleyin; örneğin, kedi mi yoksa köpek mi.
Hedef Tespiti:Görüntüdeki birden fazla farklı hedefin konumunu, sayısını ve boyutlarını bulmak için kullanılır.
Daha önceki video eğitimlerinde, farklı nesneleri sınıflandırmak için OpenMV4 Plus ile çevrimiçi sinir ağı eğitimi yapma yöntemini açıkladık. Bu yöntem, OpenMV’de görülen görüntüleri gerçek zamanlı olarak belirli bir nesne olup olmadığına göre değerlendirebilir; örneğin bir yüzün maske takıp takmadığını tespit edebilir. Ancak yüzün veya maskenin konum koordinatlarını ve yüz sayısını çıktılayamaz.
Hedef tespiti, sınıflandırmaya kıyasla çok daha karmaşık ve hesaplama açısından çok daha yoğun olduğundan tek chip mikrodenetleyici alanında oldukça nadirdir. OpenMV’nin ana denetleyici MCU’su STM32H7’dir; günümüzde OpenMV üzerinde, tek chip mikrodenetleyicide hedef tespiti benzeri görevleri çalıştırmamıza olanak tanıyan yeni bir özellik ekledik ve bu özelliğin performansı oldukça dikkat çekicidir.

Bugün size açıklayacağızEğitim, gerçek yol ortamında trafik işaretlerinin tespitini gösterir; gerçek yollarımızdaki trafik işaretlerini tespit eder.örneğin, klakson çalmak yasak, park etmek yasak, hız sınırı 80 km/s gibi koşullar, laboratuvar ortamındaki bozulma olmaksızın çalışma ortamı değil.
Tüm proje içeriğini, tüm kodları ve modelleri de dahil olmak üzere aşağıdaki adresten görüntüleyebilirsiniz: https://book.openmv.cc/project/traffic-sign.html
Bilindiği üzere gerçek dünya ortamı son derece karmaşıktır; özellikle yol ortamı, çok sayıda gürültü kaynağını barındırır. Gerçek dünya ortamından akıllı telefon gibi cihazlarla trafik işaretlerinin görüntülerini topladık ve OpenMV iş ortağımız EdgeImpulse’ın çevrimiçi platformunu kullanarak modeli eğittik. Toplamda yaklaşık 270 görüntü etiketledik ve eğitim süresi yalnızca 10 dakika sürdü. Eğitilen modelin F1 skoru doğruluğu %92’ye ulaştı; OpenMV üzerindeki çalışma karesi hızı ise 10 fps’tir. Sonuçlar oldukça akıcı ve aynı zamanda yüksek doğrulukta oldu.
Kullanıcılar, video eğitimlerimizi izleyerek farklı rakamlar, farklı meyveler, farklı işaretler, farklı parçalar veya özel olarak tanımlanmış herhangi bir düzensiz hedef gibi algılanmasını istediğiniz her türlü hedefi eğitebilir; bu sayede hedefin sayısı, koordinatları ve nesne türü adı gibi bilgiler elde edilebilir.
Dikkat:Bu video eğitiminde anlatılan sinir ağı tabanlı hedef nokta tespiti işlevi, OpenMV4 H7 Plus’ı desteklemekle birlikte OpenMV4 H7’yi de destekler; çünkü eğitilmiş FOMO hedef nokta tespiti modeli oldukça küçüktür, yüksek performans gösterir ve yalnızca birkaç yüz KB boyutundadır. OpenMV4 H7’nin çalışma belleği OpenMV4 H7 Plus’tan daha küçük olsa da, OpenMV4 üzerinde çalıştırılabilen biraz daha küçük modeller eğitebiliriz.
Aşağıda, prensibin kısa bir tanımı yer almaktadır:
OpenMV üzerindeki FOMO hedef nokta tespiti, birçok nesne tespiti probleminin aslında nesnelerin boyutlarını değil, yalnızca görüntüdeki konumlarını gerektirdiği fikrine dayanan temel tasarım kararlarına sahiptir. Bir kez nesnelerin konumlarını belirlediğimizde, OpenMV’nin küçük aracı tanıdığı hedefe doğru hareket etmesini sağlamak, insansız hava aracı için sabit bir iniş noktasını belirlemek veya belirli bir hedef nesneyi kavramak üzere robot kolunu kontrol etmek gibi ileri işlemler gerçekleştirebiliriz.
FOMO modeli, EdgeImpulse tarafından tek entegre devre ortamına özel olarak tasarlanmış bir modeldir; geleneksel nesne tespitiyle karşılaştırıldığında yalnızca birden fazla nesnenin konumunu ve sayısını tespit edebilir, ancak belirli boyutlarını elde edemez.
FOMO modelinin temel ilkesi oldukça basit ve esnektir. İlk olarak görüntü, her biri 8x8 piksel olan bloklara bölünür. 96x96 çözünürlüğünde bir görüntü söz konusuysa bu durumda 12x12’lik hücreler elde edilir. 360x360 çözünürlüğünde bir görüntü söz konusuysa bu durumda 40x40’lık hücreler elde edilir. Daha sonra her hücre üzerinde bağımsız olarak görüntü sınıflandırması işlemi uygulanır.
FOMO, YOLO V5 veya MobileNet SSD’ye kıyasla çok sayıda küçük nesne üzerinde çok daha iyi performans gösterir. FOMO hedef nokta tespiti, MobileNet SSD’ye göre 30 kat daha hızlıdır.
Eğer tespit edilmesi gereken nesneler benzer boyutlara sahipse, örneğin tanımlamak istediğiniz işaretlerin boyutları temelde birbirine yakın ise — yani çok büyük ve çok küçük bir nesne arasında büyük bir fark yoksa — FOMO’nun performansı daha iyi olur.
OpenMV, EdgeImpulse çevrimiçi platformunu kullanarak sinir ağı tabanlı hedef nokta tespiti modelini eğitir; bu işlem temelde aşağıdaki adımlardan oluşur: görüntü veri kümesinin toplanması ve yüklenmesi, hedeflerin etiketlenmesi, modelin eğitilmesi, modelin test edilmesi ve dağıtım.
* Görüntü veri kümesi toplama: Gerçek hayatta tanıma yapılacak ortamlarda belirli nesnelerin görüntüleri çekilerek toplanır. Tanıma işlemi hangi ortamda yapılacaksa, görüntü toplama işlemi de aynı ortamda gerçekleştirilir; böylece gerçek eğitim ortamı ile gerçek tespit ortamı temelde birbirine uyar ve bu durum performansı artırır.
*Hedef Etiketleme: Eğitim sürecini, hedef konumlarını ve hedef adlarını tespit etmeyi kolaylaştırmak amacıyla, veri setimizdeki her bir tespit edilecek hedefi dikdörtgen içine alarak ve ilgili hedef adını belirterek etiketlemek.
* Model eğitimi: Etiketleme tamamlandıktan sonra, tasarladığımız evrişimli sinir ağı parametrelerine göre model eğitimi gerçekleştirilir.
* Test modeli: Eğitilmiş modelimizle test yaparız; sonuçlar yeterince iyi değilse, eğitim veri kümesini buna göre artırır veya eğitim parametrelerini ayarlayarak eğitimi sürdürürüz ve tatmin edici bir model elde edene kadar devam ederiz.
*Dağıtım: Eğitilmiş model dosyalarımızı OpenMV’nin dahilindeki USB belleğe kopyalayıp çalıştırmamız yeterlidir.
Aşağıda, işlem sürecinin ayrıntıları gösterilmektedir:
01. Görüntü veri kümesinin toplanması ve yüklenmesi
Birincisi, edgeimpulse.com web sitesine giriş yapın, “Giriş Yap” seçeneğini belirleyin, yeni oluşturulan projenizin adını girin ve “Görüntüler”—“Birden Fazla Nesneyi Sınıflandır” seçeneğini seçin.

İkinci olarak, bir görüntü yükleyin. Görüntü veri kümesine ilişkin bilgileri elde etmenin birkaç yolu vardır:
1. OpenMV IDE üzerinden gerçek zamanlı görüntü yakalama. OpenMV IDE içindeki “Veri Kümesi Düzenleyici” aracı kullanılarak yeni bir veri kümesi oluşturulur ve gerçek zamanlı görüntü yakalaması yapılır; ayrıntılı bilgi için daha önce yayımladığımız “Nesne Sınıflandırması ve Maske Tanıma” başlıklı video eğitimimize bakınız.

2. İnternetten indirilen veya mobil cihazınızla çekilen görüntüler kullanın. Mümkünse bu görüntüler, gerçek ortamınızda gerçekleştirdiğiniz tespit işlemine benzer olmalıdır. Park etmek yasaktır, korna çalmak yasaktır ve hız sınırı 80 km/s gibi trafik işaretlerini içeren dört yüz ila beş yüz görüntü hazırladık; her bir görüntü gerçek yollardan alınmıştır. Bu veri seti, GitHub sayfamızdan ve eğitim web sitemizden indirilebilir.
02. Hedefleri Etiketleme
Her kategoriye yaklaşık 100 adet görüntü yüklenir; görüntüler yüklendikten sonra, tanımayı hedeflediğimiz nesnelerin konumları ve sınıflandırmaları etiketlenir.


03. Model Eğitimi
Eğitim tasarımı için parametreleri ayarlayın, çözünürlüğü 128 × 128 olarak değiştirin ve tüm parametreleri varsayılan olarak bırakın; ardından Kaydet’i tıklatın.

Özellikler oluşturun; üç renk, üç farklı işareti temsil eder.

Hedef tespiti eğitimi için parametreleri ayarlayın. Eğitim tur sayısı varsayılan olarak 60’tır, öğrenme oranı 0,001’dir ve doğrulama kümesinin oranı %20’dir. Veri artırma seçeneğini işaretleyin. Aktarım öğrenimi modeli olarak varsayılan MobileNetV2 0,35 veya MobileNetV2 0,1’i seçebilirsiniz. (Not: SSD kullanılamaz; SSD, OpenMV üzerinde çalıştırılamaz.)
Eğitime başlamak için seçin. Eğitimin tamamlanmasının ardından elde edilen sinir ağı modelinin F1 Skoru %91,2’dir; mevcut sürümü kaydedebiliriz.

Depolama seçin, açıklamanızı girin ve kaydedin.

04. Modeli Dağıtma
Eğitilmiş model dosyasını dışa aktarın. Sadece kütüphane dosyasını dışa aktarın; OpenMV’yi seçin ve Derle’ye tıklayın; bu işlem, modelin dağıtımını ve dışa aktarılmasını başlatacaktır.

Sistem, dışa aktardığımız modeli otomatik olarak indirir; burada, 300 görüntü üzerinde eğitilen modelimiz yer almaktadır ve böylece tüm eğitim sürecimiz tamamlanmış olur.

05. Modeli Çalıştırma
OpenMV üzerinde modeli çalıştırın:
OpenMV Plus’e bağlanın, eğitilmiş üç dosyayı OpenMV’nin dahilindeki USB belleğine kaydedin ve ei_object_detection.py dosyasını OpenMV IDE’de açın. Çalıştır’a tıklayın; sonuçlar seri terminalde görüntülenecektir.


Bu özellik OpenMV4 üzerinde de çalıştırılabilir. OpenMV4’ün harici SDRAM’sı olmadığı için belleği daha küçüktür; bu nedenle modelin boyutunu küçülterek OpenMV4 üzerinde çalıştırılmasını sağlayabiliriz.
Modelin boyutunu küçültmenin iki yöntemi vardır:
Birincisi, eğitim çözünürlüğünü azaltın; 128×128 çözünürlüğü 96×96 olarak değiştirin.
II. Kullanılan aktarım öğrenimi modelini değiştirin: MobileNetV2 0.35 yerine MobileNetV2 0.1 kullanın.
Son olarak, eğitilen yeni dosya OpenMV4 içinde çalıştırılabilir.
Yukarıda hedef nokta tespiti öğreticimiz yer almaktadır. Başarılarınızla ilgili sonuçlarınızı sabırsızlıkla bekliyoruz!

OpenMV Tabanlı Yapay Zeka Gözcüsü: Önemli Alanlarda Kapıların Kapatılmaması Durumunda Otomatik Uyarı
Önemli alanlarda kapıların uzun süre açık kalıp kalmadığını otomatik olarak belirler ve zamanında uyarı verir.

Kişi sınırı aşıyorsa uyarı verilir; OpenMV, “güvenli sınır hissini” yorumlar
Sanal güvenlik çizgisi aracılığıyla kişilerin veya ekipmanların sınırı aşma davranışları tespit edilir.

“Yapay Zeka Belediye Denetçisi” geldi: Açık Kaynaklı OpenMV Tabanlı Yol İşgaline Yönelik Otomatik Tanıma Sistemi
Yol işgalini otomatik olarak tespit ederek şehirlerin günlük yönetimine destek sağlar.

Gaz tüpleri rastgele yerleştirildi mi? OpenMV ile otomatik olarak tehlike uyarısı tetikleyin
Otomatik olarak gaz tüplerinin yetkisiz yerleştirildiği konumları tespit eder ve doğalgazla ilgili güvenlik risklerini önceden belirler.

Elektrikli işlerde yalıtkan eldiven takılmadı mı? OpenMV hemen uyarı verir!
İşçilerin yalıtkan eldiven takıp takmadığını otomatik olarak tanımlar ve güvenli çalışma süreçlerine destek olur.

OpenMV akıllı kamera kullanarak alüminyum levha yüzeyindeki kusurları gerçek zamanlı olarak tanıma
Alüminyum levha yüzeyindeki çizikler, çöküntüler ve diğer kusurların çevrimiçi olarak tespiti ile kalite kontrolünün desteklenmesi.