Dağıtım İnşa Teknoloji

IoT Destekli Ağaç Hastalığı Tespiti: Görüntü AI, Wio Terminal ve TinyML Kullanımı

IoT ve TinyML teknolojilerini kullanarak ağaç hastalıklarını tespit etmek ve çevremizi korumak için güçlü bir araç keşfedin.

Seeed Donanımı: SenseCAP K1100 – LoRa® ve AI ile Sensör Prototip Kiti, Grove – CO2 & Sıcaklık & Nem Sensörü (SCD30)

Yazılım: Edge Impulse, Arduino, Thonny, Autodesk Fusion 360, Ultimaker Cura

Sektör: Akıllı Tarım, Ormancılık

Arka Plan

İklim değişikliği ve geniş çaplı ormansızlaşmanın ağaçlar ve bitkiler için ciddi tehditler oluşturmasıyla, bu hayati yaşam formlarının bulaşıcı hastalıklara karşı duyarlılığı artmıştır. Bu hastalıklar, esasen mantar kökenli olup, kuraklık, yükselmiş karbondioksit seviyeleri, aşırı kalabalık ve gövde veya kök hasarları gibi faktörler tarafından tetiklenmektedir. Uzun mesafelere hızla yayılabilirler ve ekosistemleri tehlikeye atabilirler. Ağaçların polinasyondaki hayati rolü göz önüne alındığında, ağaç hastalıklarının yayılması, mahsul kayıpları, hayvan ölümleri, bulaşıcı salgınlar ve hatta toprak erozyonu nedeniyle arazi bozulması gibi yıkıcı sonuçlara yol açabilir. Bu zorlukları hafifletmek için erken hastalık tespiti zorunludur, ancak ağaçları hastalıklara daha duyarlı hale getirebilecek çevresel stres faktörlerini de göz önünde bulundurmak önemlidir. Bu nedenle, ormanları, tarım alanlarını ve tarıma elverişli toprakları bu tehlikelerden korumak için hastalık tespiti ve çevresel izlemeyi entegre eden bütünsel bir yaklaşım gerekmektedir.

Zorluk

Bu sorunu ele almak için, Kutluhan Aktar “IoT AI-Driven Tree Disease Identifier w/ Edge Impulse & MMS” adında bir proje geliştirmiştir. Bu yenilikçi yaklaşım, enfekte ağaçların görüntülerini toplamak için Grove-Vision AI kullanarak kapsamlı bir veri seti oluşturur. Edge Impulse kullanarak, modeller erken aşamada ağaç hastalıklarını tanımlamak için eğitilir ve dağıtılır. Sonuçlar daha sonra MMS aracılığıyla iletilir, böylece ormanları, tarım alanlarını ve tarıma elverişli toprakları korumak için hızlı bir şekilde harekete geçilebilir.

Çözüm

Adım 1: Orman temalı bir kasa tasarlamak ve yazdırmak

Kutluhan, cihaz için dayanıklı bir dış mekan kasası tasarlayıp 3D yazdırdı. Amaç, uygun fiyatlı ve kullanıcı dostu bir çözüm oluşturmaktı. Kasa, cihazı tozdan korumak ve kablolarını güvence altına almak için bir sap ile kayar bir kapak içerir. Ayrıca, Vision AI modülünü takmak için hareketli bir parça da bulunmaktadır. Orman temalı bir görünüm vermek için ağaç simgeleri ekledi. Kasanın üst kısmına, izleme için bir HDMI ekran tutmak üzere iki destek eklendi. 3D modelleri tasarlamak ve dilimlemek için Autodesk Fusion 360 ve Ultimaker Cura gibi yazılımlar kullandı. Kasa, sonbahar temalı PLA filamentleri kullanılarak yazdırıldı. Yazdırdıktan sonra, kasayı birleştirdi, sensörleri bağladı ve Vision AI modülü ile HDMI ekran gibi bileşenleri LattePanda 3 Delta’ya ekleyerek dış mekan kullanımı için hazır hale getirdi.

Adım 2: MMS göndermek için bir Twilio hesabı oluşturmak

Kutluhan, MMS mesajları göndermek için Twilio’yu kurdu. Twilio, görüntü mesajlarını dünya genelinde göndermek için basit bir yol sunar ve deneme hesapları için ücretsizdir. Süreç, Twilio’ya kaydolmayı, bir telefon numarasını doğrulamayı ve Python’da MMS ayarlarını yapılandırmayı içeriyordu. Ayrıca, sanal bir telefon numarasını etkinleştirdi, bunu bir Mesajlaşma Servisine ekledi ve Twilio’nun API’si aracılığıyla MMS mesajları göndermek için gerekli kimlik bilgilerini aldı.

Adım 3: Aktarılan tespit sonuçlarını (görüntüleri) kaydetmek için PHP ile bir web uygulaması geliştirmek

Bu adımda, Twilio kullanarak sınır kutuları ile değiştirilmiş görüntüleri MMS aracılığıyla göndermeyi kolaylaştırmak için PHP tabanlı bir web uygulaması oluşturdu. LattePanda 3 Delta, tespit edilen nesnelere sınır kutuları ekledikten sonra, değiştirilmiş görüntüyü bu web uygulamasına gönderir. Uygulama, görüntü aktarımının başarılı olup olmadığını, dosya formatı uyumluluğunu ve dosya boyutunun 5MB sınırında olup olmadığını kontrol eder ve ardından alınan görüntüyü “detections” klasörüne kaydeder. Web uygulaması, onun web sitesinde, theamplituhedron.com, barındırılmakta, ancak yerel bir ortamdan doğrudan görüntü aktarımı için ngrok gibi bir localhost tünelleme servisi ile de kurulabilir.

Adım 4: Wio Terminal’ı Arduino IDE’de ayarlamak

Bu adımda, çevresel verileri kaydetmek ve görüntüleri TFT LCD ekranında görüntülemek için Wio Terminal‘ı kurdu. Wio Terminal’ı Arduino IDE’de yapılandırmaya ve sensörler için gerekli kütüphaneleri yüklemeye başladı. Görüntüleri doğru bir şekilde görüntülemek için, Microsoft Paint’te boyutlarını ayarladı ve bunları Python betiği kullanarak uyumlu BMP formatına dönüştürdü. Betik ayrıca 8-bit ve 16-bit BMP formatları arasında seçim yapmayı sağladı. Son olarak, dönüştürülen BMP dosyalarını SD karta aktardı ve görüntü görüntüleme için RawImage.h dosyasını Arduino skeç klasörüne kopyaladı.

Adım 5: Çevresel faktörleri toplamak ve Wio Terminal ile LattePanda 3 Delta’ya komut göndermek

Bu adımda, Wio Terminal’ı kurduktan ve gerekli kütüphaneleri ve modülleri yükledikten sonra, Kutluhan Wio Terminal’ı çevresel verileri toplamak ve bunları SD kartta bir CSV dosyasına kaydetmek için programladı; bu veriler arasında tarih, CO2 seviyeleri, sıcaklık, nem, nem, tVOC (toplam uçucu organik bileşenler) ve CO2eq (karbondioksit eşdeğeri) bulunmaktadır. LattePanda 3 Delta’yı kontrol etmek ve görüntü yakalama veya model çalıştırma komutları vermek için Wio Terminal’daki yapılandırılabilir düğmeleri kullandı. A Düğmesi görüntü yakalamayı tetikledi (‘A’), B Düğmesi ise model çalıştırmayı başlattı (‘B’). Ayrıca, Wio Terminal her 5 dakikada bir model çalıştırma komutunu (‘B’) LattePanda 3 Delta’ya otomatik olarak gönderdi. Histogram kütüphanesinde bazı ayarlamalar yapılarak histogram renkleri yeniden boyutlandırıldı ve değiştirildi. Kod, çevresel faktörlerin kaydedilmesini, TFT ekranında görüntülenmesini ve eşiklerin kontrol edilmesini sağladı; bildirimler yerleşik buzzer aracılığıyla verildi. Veriler, SD karttaki CSV dosyasına kaydedildi ve komutlar LattePanda 3 Delta ile seri iletişim aracılığıyla iletildi.

“`html

Adım 6: Grove Vision AI modülü ile hasta ağaçların görüntülerini yakalama ve depolama

Bu adımda, LattePanda 3 Delta’yı, Vision AI modülü kullanarak ağaç görüntülerini yakalamak üzere programladı. Yakalama komutunu (A) Wio Terminal‘dan seri iletişim yoluyla aldı. Devam etmeden önce, LattePanda 3 Delta’da Wio Terminal ve Vision AI modülü için doğru ayarları yapılandırması gerekiyordu. Bu, Vision AI modülüne veri toplama yazılımını yüklemeyi, Ubuntu (Linux) üzerinde USB tanıma kurallarını ayarlamayı ve Wio Terminal seri portu için izinleri ayarlamayı içeriyordu.

Tüm işlevler için tek bir kod dosyası kullandı; bu, Adım 8’de detaylandırılmıştır. Vision AI modülünden görüntü tamponunu almak için, Seeed Studio tarafından sağlanan işlevleri değiştirdi. Bu, modülün görüntü tanımlarını, satıcı kimliğini ve ürün kimliğini tanımlamayı, Wio Terminal’dan komut almayı, Vision AI modülünü aramayı, iletişim kurmayı, modülden veri okumayı ve yakalanan görüntüleri zaman damgaları ile kaydetmeyi içeriyordu.

Obje tespit modeli için kapsamlı bir veri seti oluşturmak amacıyla, memleketinin yakınındaki bir ormana giderek çeşitli yaprak ve kabuk hastalıkları ile enfekte ağaçların görüntülerini yakaladı. Bunlar arasında yaprak pasları, yaprak lekeleri, yaprak kabarcıkları, unlu mantar, iğne pasları, iğne döküntüleri, katran lekeleri, paslar ve antraknoz bulunmaktadır. Cihaz bu görüntüleri başarıyla yakalayarak, obje tespit modelini eğitmek ve test etmek için veri setini oluşturdu.

Adım 7: Edge Impulse ile bir obje tespit (FOMO) modeli oluşturma

Enfekte ağaç görüntülerini başarıyla yakaladıktan ve bunları LattePanda 3 Delta’da depoladıktan sonra, bir obje tespit (FOMO) modeli üzerinde çalışmak bir sonraki adım oldu. Bu modeli oluşturmak için, LattePanda 3 Delta gibi kısıtlı cihazlar için tasarlanmış FOMO makine öğrenimi algoritması ve model dağıtım seçenekleri ile bilinen Edge Impulse platformunu kullanmaya karar verdi.

Edge Impulse FOMO (Daha Hızlı Nesneler, Daha Fazla Nesne), diğer modellere kıyasla önemli ölçüde daha düşük işlem gücü ve bellek gereksinimleri ile nesne tespiti, nesne sayımı ve gerçek zamanlı nesne takibi yapabilen yenilikçi bir algoritmadır.

Modeli oluşturmadan önce, veri setini veri ölçeklendirme (yeniden boyutlandırma) ve veri etiketleme içerecek şekilde formatlaması gerekiyordu. Ağaç hastalıklarını, yaprak veya kabuk kısımlarını etkileyip etkilemediğine göre kategorize etti ve bu kategorileri Edge Impulse’taki her görüntü örneğini etiketlemek için kullandı.

Edge Impulse‘a kaydoldu, yeni bir proje oluşturdu ve “Sınır kutuları (obje tespiti)” etiketleme yöntemini seçti. Veri setini yükledikten sonra, iki kategoriye göre farklı ağaç hastalıklarını manuel olarak etiketledi ve Edge Impulse’ın sezgisel etiketleme arayüzünden faydalandı.

Etiketleme tamamlandıktan sonra, modeline görüntü ön işleme ve Obje Tespiti (Görüntüler) öğrenme bloklarını kullanarak bir impuls tasarladı. Modelin parametrelerini yapılandırdı, görüntü boyutlarını ayarladı, gri tonlama renk derinliğini seçti ve obje tespit modeli için özellikler üretti. Eğitim başlatıldı ve daha iyi doğruluk için sinir ağı ayarlarını ve mimarisini ayarladı.

Veri seti ile modeli eğittikten sonra, Edge Impulse F1 puanını (doğruluk) yaklaşık %54 olarak değerlendirdi ve yaprak (foliar) ağaç hastalıkları için doğruluğun, kabuk (stem) ağaç hastalıklarına göre daha yüksek olduğunu belirtti; çünkü kabuk hastalıkları için sınırlı ve çeşitli eğitim örnekleri vardı.

Modelin doğruluğunu test etti ve değerlendirilen doğruluğu %90 olarak elde etti. Son olarak, modeli LattePanda 3 Delta’da kullanılmak üzere tamamen optimize edilmiş bir Linux x86_64 uygulaması olarak dağıttı.

Adım 8: Edge Impulse FOMO modelini LattePanda 3 Delta’da kurma

FOMO obje tespit modelini LattePanda 3 Delta’da dağıttıktan sonra, cihazda yükleyerek gerçek zamanlı ağaç hastalığı tespiti için sınır kutuları ile etkinleştirdi. Model, Thonny kullanılarak Python’da çalıştırıldı ve çalışması için birkaç kütüphane gerektiriyordu. İzinleri ayarladıktan sonra, LattePanda 3 Delta, Vision AI modülü aracılığıyla ağaç görüntülerini yakaladı ve tespit edilen etiketleri ve değiştirilmiş görüntüleri Twilio’nun API’si aracılığıyla MMS mesajları olarak iletti. main.py dosyası, bu işlemler için kodu içeriyordu ve Python Threads kullanarak eşzamanlı işleme sağlıyordu.

Adım 9: LattePanda 3 Delta’da FOMO modelini çalıştırarak ağaç hastalıklarını tespit etme

Edge Impulse obje tespit modeli, görüntüleri analiz ederek iki etikete güven puanları atar: “leaf_rust_spot_blister” ve “stem_bark_branch_mildew.” Cihaz, otomatik veya manuel olarak tetiklendiğinde, tespit edilen nesnelerin etrafına sınır kutuları ekleyerek görüntüleri yakalar ve geliştirir. Değiştirilen görüntü kaydedilir, bir web uygulamasına gönderilir ve Twilio’nun API’si aracılığıyla doğrulanmış bir telefon numarasına MMS gönderilir. Eğer nesne tespit edilmezse, “Tespit Edilmedi!” mesajı gönderir ve hata ayıklama için sonuçları kaydeder. Deneyler, yaprak ağaç hastalıklarının doğru bir şekilde tespit edildiğini ve doğru sınır kutuları ile belirlendiğini doğrulamaktadır.

Sonuç

Sonuç olarak, bu proje, yakalanan görüntülerden yaprak ağaç hastalıklarını doğru bir şekilde tanımlamak için Edge Impulse obje tespit modelini başarıyla kullandı. Sistem, tespit edilen nesneleri vurgulamak için sınır kutuları ekleyerek sonuçları hem bir web uygulaması hem de MMS bildirimleri aracılığıyla paylaştı. Bu proje, güvenilir hastalık tespiti sağladı ve tarım ve bitki sağlığı izleme alanında gerçek dünya uygulamaları için potansiyeli gösterdi.

Daha Fazla Bilgi

Daha Fazla Proje Detayı için Hackster: IoT AI destekli Ağaç Hastalığı Tanımlayıcı w/ Edge Impulse & MMS

Seeed Studio TinyML Vaka Çalışmaları

Herhangi bir soru veya daha fazla proje tartışmasına katılmak isterseniz, lütfen maker.team@seeed.cc ile iletişime geçmekten çekinmeyin. Sorularınız ve ilginiz memnuniyetle karşılanır.

“`

Leave a Reply

Your email address will not be published. Required fields are marked *