ESP32-CAM, yerleşik bir kamera modülüne sahip, görüntüleri yakalayabilen ve canlı video yayınlayabilen güçlü, düşük maliyetli bir mikrodenetleyicidir. İşleme özelliklerinden yararlanarak ve harici makine öğrenme kütüphanelerini veya çerçevelerini entegre ederek, nesne algılamasını doğrudan ESP32-CAM'de etkinleştirebilirsiniz. Bu öğretici, önceden eğitilmiş modelleri kullanarak ESP32-CAM ile temel nesne algılama ayarlamada size rehberlik edecektir.
Ne İhtiyacınız Olacak
- ESP32-CAM Modülü
- FTDI programcısı (USB-Serial Adaptör)
- Jumper telleri
- Breadboard (isteğe bağlı)
- Arduino IDE kurulu bir bilgisayar
- Nesne algılama modelleri için kenar dürtü veya tensorflow lite
1. Adım: Arduino IDE'nin kurulması
1. ESP32 kart paketini yükleyin
-
Arduino IDE'yi açın.
-
Gidip gelmek Dosya > Tercihler.
-
"Ek Kurul Yöneticisi URL'leri" alanında:
https://dl.espressif.com/dl/package_esp32_index.json
-
Tıklamak TAMAM.
-
Gidip gelmek Aletler > Pano > Tahtalar Yöneticisi.
-
"ESP32" i arayın ve paketi Espressif Systems tarafından yükleyin.
2. Gerekli kütüphaneleri yükleyin
- "ESP32 Kamera" kitaplığını yükleyin.
- Nesne algılama modelleri için "Tensorflow Lite Micro" (veya benzer kütüphaneler) yükleyin.
2. Adım: ESP32-CAM'ın kablolanması
ESP32-CAM PIN | FTDI programcı pimi |
---|---|
Gnd | Gnd |
5V | VCC (5V) |
U0R | TX |
U0T | Rx |
Gnd | GND (yanıp sönmek için IO0 ila GND) |
Önemli: ESP32-CAM'ı flaş moduna getirmek için IO0 pimini GND'ye bağlayın.
Adım 3: Temel bir nesne algılama taslağını yükleme
1. Tahtayı ve bağlantı noktasını seçin
- Gidip gelmek Aletler > Pano ve seç AI-Thinker ESP32-CAM.
- Altında Aletler, doğru seçin Com limanı FTDI programcınız için.
2. Kodu hazırlama
Önceden eğitimli bir nesne algılama modeli yüklemek için temel bir örnek kullanın (örn. Tensorflow lite modeli). Aşağıda nesne algılamasını entegre etmek için örnek bir snippet bulunmaktadır:
#include <esp_camera.h>
#include <TensorFlowLite_ESP32.h>
// Replace with your specific model and labels
#include "model.h"
#include "labels.h"
void setup() {
Serial.begin(115200);
// Initialize the camera
camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
config.pin_href = HREF_GPIO_NUM;
config.pin_sscb_sda = SIOD_GPIO_NUM;
config.pin_sscb_scl = SIOC_GPIO_NUM;
config.pin_pwdn = PWDN_GPIO_NUM;
config.pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 20000000;
config.pixel_format = PIXFORMAT_JPEG;
if (!esp_camera_init(&config)) {
Serial.println("Camera initialized successfully!");
} else {
Serial.println("Camera initialization failed!");
while (1);
}
// Load the TensorFlow Lite model
TfLiteStatus model_status = tflite::InitModel(model);
if (model_status != kTfLiteOk) {
Serial.println("Failed to initialize the model");
while (1);
}
}
void loop() {
// Capture a frame
camera_fb_t *frame = esp_camera_fb_get();
if (!frame) {
Serial.println("Camera capture failed");
return;
}
// Run object detection
tflite::RunInference(frame->buf, frame->len);
// Display detected objects
for (int i = 0; i < NUM_CLASSES; i++) {
float confidence = tflite::GetConfidence(i);
if (confidence > 0.5) {
Serial.print("Detected: ");
Serial.print(labels[i]);
Serial.print(" with confidence: ");
Serial.println(confidence);
}
}
esp_camera_fb_return(frame); // Free the frame buffer
delay(200);
}
3. Kodu yükleyin
- Basın Sıfırlamak IO0 GND'ye bağlanırken ESP32-CAM üzerindeki düğme.
- Tıklamak Yüklemek Arduino IDE'de.
- Yükleme tamamlandığında, IO0'ı GND'den ayırın ve Sıfırlamak tekrar düğme.
Adım 4: Nesne algılama sonuçlarına erişme
- Seri monitörü açın (Aletler > Seri monitör) ve baud hızını ayarlayın
115200
. - Seri monitörde tespit edilen nesneleri ve güven puanlarını görüntüleyin.
- HTML kullanarak bir web arayüzünde sonuçları görüntüleyerek veya MQTT gibi IoT platformlarıyla entegre edebilirsiniz.
Adım 5: Nesne Tespiti Geliştirme
- Model Optimizasyonu: ESP32-CAM için optimize edilmiş özel modelleri eğitmek için Edge Impulse veya Tensorflow Lite kullanın.
- Web Arayüzü: Algılanan nesneleri doğrudan bir tarayıcı arayüzünde görüntüleyerek projeyi geliştirin.
- IoT Entegrasyonu: Daha fazla işlem veya uyarı sistemleri için bulut hizmetlerine algılama sonuçları gönderin.
Sorun giderme
- Çok büyük model: Model boyutunun ESP32-CAM’ın belleğine uyduğundan emin olun.
- Kamera algılanmadı: Kablolamayı doğrulayın ve kameranın güvenli bir şekilde bağlandığından emin olun.
- Düşük doğruluk: Modeli daha alakalı verilerle eğitin veya ince ayarlayın.
ESP32-CAM ile Nesne Algılama Uygulamaları
- Hareket veya nesne algılama ile güvenlik kameraları
- Akıllı ev otomasyonu (örneğin, teslimatları veya evcil hayvanları algılama)
- Endüstriyel izleme ve sayma sistemleri
- Yaban Hayatı İzleme ve Araştırma
Çözüm
ESP32-CAM ile temel nesne algılamasını başarıyla ayarladınız. Bu güçlü modül, makine öğrenimi modelleri ile birleştiğinde, gerçek dünya uygulamaları için sonsuz olasılıklar açar. Farklı modellerle deneyin, doğruluğu geliştirin ve işlevselliği proje ihtiyaçlarınıza uygun hale getirin!