OpenMV
Kalkanlar
Objektif
Robotik
Kitap
Video
İndirmek
Dokümanlar
Forum
OpenMV.io
GithubGeçen yıl Nisan ayında yeni ürünümüz OpenMV4 H7 Plus piyasaya sürüldü. Bugün size OpenMV4 H7 Plus'ın yeni bir özelliğini tanıtacağım: EdgeImpulse çevrimiçi platformunu kullanarak sinir ağlarını kendi başınıza eğiterek sınıflandırma ve tanıma yapmak.
Bu eğitimde, makine öğrenimi kullanarak, OpenMV4 H7 Plus akıllı kamera ile yüz maskesi takılıp takılmadığını tanıyan, yani görüntü sınıflandırmasını gerçekleştiren bir tanıma sistemi oluşturacaksınız.

EdgeImpulse, gömülü cihazlar için çevrimiçi sinir ağı modeli eğitimi hizmeti sunan bir web sitesidir. OpenMV'nin iş ortağı olup, aynı zamanda STMicroelectronics'in resmi iş ortaklarından biridir. Şu anda EdgeImpulse, OpenMV kullanıcılarına ücretsiz olarak açıktır. OpenMV kullanıcıları, EdgeImpulse'ı kullanarak OpenMV için uygun sinir ağı modellerini ücretsiz olarak çevrimiçi eğitebilirler.
Gömülü cihaz OpenMV'ye sinir ağları ekleyerek, kaçak avcıları ve fillerin ayırt edilmesi, fabrika üretim hatlarında kalite kontrolünün sağlanması, uzaktan kumandalı model arabaların kendi kendine sürüş yapabilmesi gibi işlevler gerçekleştirilebilir.
Bu eğitimde, nasıl yüksek kaliteli bir veri seti oluşturmak için görüntüler toplayacağınızı, sinir ağlarını eğitmek için transfer öğrenmeyi nasıl uygulayacağınızı ve sistemi OpenMV'ye nasıl dağıtacağınızı öğreneceksiniz.
Ayrıca video eğitimler de sağladık, resmi web sitesinde "OpenMV4 Plus ile Sinir Ağları Eğiterek Maske Tanıma" başlıklı videoyu izleyebilirsiniz.
Tüm proje içeriğini, tüm kodlar ve modeller dahil olmak üzere şu adreste görüntüleyebilirsiniz: https://book.openmv.cc/project/mask.html
EdgeImpulse ile OpenMV için çevrimiçi sinir ağı modeli eğitimi temel olarak şu dört adımdan oluşur: veri seti toplama, yükleme, eğitim ve dağıtım.
01、Veri Seti Toplama
Bu eğitimde, yüz maskesi takıp takmadığını ayırt edebilen bir model oluşturacağız. Tabii ki diğer nesneleri sınıflandırmayı da seçebilirsiniz. Makine öğrenimi modelinin çalışmasını sağlamak için, maske takan ve takmayan yüzlerin çok sayıda örnek görüntüsünü toplamanız gerekecek. Eğitim sırasında, bu örnek görüntüler modelin ayırt etme alıştırması için kullanılacaktır.
Veri setimizi toplamak için OpenMV IDE'yi kullanmamız gerekiyor, görüntü toplama adımları şu şekildedir:
* İki kategori oluşturun:
OpenMV IDE menü çubuğundaki "Araçlar"ı açın, "Veri Seti Düzenleyici"yi seçin, "Yeni Veri Seti"ne tıklayın, ardından yeni bir klasör oluşturup açın. Veri seti içinde mask (maskeli yüz fotoğraflarını kaydetmek için) ve face (maskesiz yüz fotoğraflarını kaydetmek için) olarak adlandırılan iki klasör daha oluşturun.


OpenMV ile Görüntü Toplama
Öncelikle OpenMV'yi bağlıyoruz, IDE'deki "Bağlan" düğmesine tıklıyoruz, ardından "Çalıştır" düğmesine tıklıyoruz. Framebuffer'da OpenMV'nin gerçek zamanlı görüntülerini görebiliriz. Sol menü çubuğundaki fotoğraf düğmesine tıkladığımızda, OpenMV bu resmi otomatik olarak kaydeder ve bu, veri setindeki bir veri olur.
Öncelikle maske takan kişilerin yüzlerini kaydetmemiz gerekiyor. Fotoğraf düğmesine tıkladığınızda, IDE'nin alt kısmında bir fotoğraf çekilir ve otomatik olarak 00000 adını alır. Sonraki fotoğraf 00001 olarak adlandırılır ve bu şekilde devam eder.
OpenMV ile sırasıyla 200 adet maske takan (100 erkek, 100 kadın) ve 200 adet maske takmayan (100 erkek, 100 kadın) yüz fotoğrafı toplayın.


* Not: Eğitim öğrenimimizin çeşitliliğini sağlamak için her açıdan fotoğraf toplandığından emin olun.
Toplama sırasında bir resmin yeterince mükemmel olmadığını fark ederseniz, bu resme sağ tıklayıp sil'e tıklayarak silebilirsiniz.
02、Yükle
OpenMV ile görüntü topladıktan sonra, EdgeImpulse resmi web sitesine (https://edgeimpulse.com/) kayıt olup giriş yaparak görüntü yüklemeye başlamanız gerekmektedir. Görüntü yükleme adımları:
EdgeImpulse'te yeni bir proje oluşturun, "keys"e tıklayın, "API Key"i seçin ve "API Key"i kopyalayın. API Key aracılığıyla OpenMV IDE ve Edge Impulse'ın bağlantısını sağlayın.

OpenMV IDE üst menü çubuğundaki "Araçlar" - "Veri Düzenleyici" - "Dışa Aktar" - "Yükle" - "API Anahtarı ile Yükle" seçeneğini seçin, "API Anahtarı"nı kopyalayıp yükleyin.
Veriler yüklendiğinde otomatik olarak eğitim seti ve test seti olarak ayrılacaktır, varsayılan olarak "%80 ve %20" oranını seçiyoruz. Toplamda 400'den fazla yüz fotoğrafı topladık, bunun %80'i olan Training Date, verilerinizin %80'inin eğitim için kullanılacağı anlamına gelir, kalan %20 ise test seti olarak kullanılır.


03. Eğitim Veri Seti
Veri kümesi hazır olduğunda, EdgeImpulse web arayüzünde veri kümesini eğitebilirsiniz.
* Yapılandırma İşleme Modülü:
Öncelikle "Impulse Design" seçin, işleme modülünü yapılandırın:
Varsayılan görüntü boyutunu "96 x 96" olarak ayarlayın.
Images" modülünü seçin, bu görüntüleri sınıflandırma eğitimi yaptığımız anlamına gelir (EdgeImpulse ile ses, video vb. sınıflandırmak da mümkündür);
* "Transfer Öğrenimi (Görüntüler) Transfer Learning (Images)" seçeneğini seçin, öğrenme modelini ayarlayın;
Save impulse" seçeneğini seçin, "Successfully" görüntülendiğinde yapılandırma başarılı olmuştur.

* Görüntü Ön İşleme:
Sol menüdeki "Görüntü Image" seçeneğine tıklayın, renk formatını "RGB" olarak ayarlayın ve ardından "Kaydet"e tıklayın.

Ardından, 400'den fazla veri üzerinde görüntü ön işleme yapmak için süreci başlatmak üzere "Özellik OluşturGenerate features" seçeneğini belirleyin; sağ tarafta tam veri setinin 3D görselleştirmesi görüntülenecektir.

SingTown modelini yapılandırma
Sol menüdeki "Transfer learning" seçeneğine tıklayın, ayarların tümü varsayılan olarak seçilebilir veya ihtiyaca göre parametreler değiştirilebilir:
1. Eğitim döngüsü sayısını Number of training cycles varsayılan olarak 10 olarak ayarlayın
2. Öğrenme oranını 0.0005 olarak ayarlayın
3. "Veri artırma Data augmentation" seçeneğini işaretleyebilir veya işaretlemeyebilirsiniz.
4. Minimum güven derecesini varsayılan olarak 0.8 olarak ayarlayın.
Eğitime Başla" düğmesine tıklayın, eğitim süreci yaklaşık 4 ila 5 dakika sürer.
Model eğitimi tamamlandıktan sonra, doğruluk, karışıklık matrisi ve beklenen cihaz performansını görüntüleyebilirsiniz.

* Test modeli:
Eğitim tamamlandıktan sonra, modeli test verileriyle doğrulayacağız.
Model testing" seçeneğini seçin, "Sample name" yanındaki onay kutusunu işaretleyin ve "Classify selected" üzerine tıklayın. Burada gösterilen doğruluk oranı %97'ye ulaşıyor, bu da verisi çok az olan bir model için oldukça nadir bir durum.

Kırmızı renkte görüntülenen bu resmin belirsiz olduğu tespit edilmiştir. Bu resmin sağındaki üç noktaya tıklayın ve "Sınıflandırmayı Göster Show classification" seçeneğini belirleyin. Böylece, dosyanın daha fazla ayrıntısını içeren "Gerçek Zamanlı Sınıflandırma" arayüzüne gireceksiniz. Bu arayüz, resim sınıflandırma hatasının nedenini belirlemenize yardımcı olacaktır.

Veriler bilinen tüm kümelerin (maske takan/maske takmayan) dışındaysa, bu daha önce görülen hiçbir sınıfla eşleşmeyen veriler olabilir - muhtemelen saçın yüzün büyük kısmını kapatmasından kaynaklanır.
04. OpenMV Üzerinde Model Çalıştırma
Eğitim tasarımı, model eğitimi ve model doğrulama adımlarını tamamladıktan sonra, bu modeli OpenMV'nize aktarabilirsiniz. "OpenMV"yi seçin, "Build"i seçerek oluşturun, otomatik olarak 3 dosya oluşturacaktır:
* trained.tflite eğitilmiş sinir ağı modeli
* labels.txt iki sınıflandırma etiketi (face ve mask)
* ei_image_classification.py, OpenMV üzerinde çalıştırılacak koddur

OpenMV IDE'ye bağlanın ve bu 3 dosyayı OpenMV'nin dahili Flash'ına kaydedin. ei_image_classification.py dosyasını OpenMV IDE'de açın, EdgeImpulse'da oluşturduğumuz kodu görebilirsiniz. Çalıştır'a tıklayın, seri terminalde çalışma sonuçları görüntülenecektir.


Tamam, OpenMV'ye kendi sinir ağınızı eğitme işlevini başarıyla eklediniz.
Sonuçlarınızı dört gözle bekliyorum!

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.