يعد ESP32-CAM متحكمًا قويًا منخفض التكلفة مع وحدة كاميرا مدمجة ، قادر على التقاط الصور وتدفق الفيديو المباشر. من خلال الاستفادة من قدرات المعالجة الخاصة بها ودمج مكتبات التعلم الآلي الخارجي أو الأطر ، يمكنك تمكين اكتشاف الكائن مباشرة على ESP32-CAM. سيوجهك هذا البرنامج التعليمي من خلال إعداد اكتشاف الكائنات الأساسية باستخدام ESP32-CAM باستخدام النماذج التي تم تدريبها مسبقًا.
ماذا ستحتاج
- وحدة ESP32-CAM
- مبرمج FTDI (محول USB-to-Serial)
- الأسلاك الطائر
- لوح (اختياري)
- جهاز كمبيوتر مع Arduino IDE مثبت
- دافع الحافة أو tensorflow lite لنماذج الكشف عن الكائنات
الخطوة 1: إعداد Arduino IDE
1. قم بتثبيت حزمة لوح ESP32
-
افتح Arduino IDE.
-
اذهب إلى ملف > التفضيلات.
-
في حقل "عنوان URL الخاص بمدير اللوحة الإضافية" ، أضف:
https://dl.espressif.com/dl/package_esp32_index.json
-
انقر نعم.
-
اذهب إلى أدوات > سبورة > مدير المجالس.
-
ابحث عن "ESP32" وقم بتثبيت الحزمة بواسطة أنظمة Espressif.
2. تثبيت المكتبات المطلوبة
- قم بتثبيت مكتبة "ESP32 Camera".
- بالنسبة لنماذج اكتشاف الكائنات ، قم بتثبيت "TensorFlow Lite Micro" (أو مكتبات مماثلة).
الخطوة 2: توصيل ESP32-CAM
esp32-cam pin | FTDI مبرمج دبوس |
---|---|
GND | GND |
5V | VCC (5V) |
u0r | تكساس |
U0T | RX |
GND | GND (IO0 إلى GND للومض) |
مهم: قم بتوصيل دبوس IO0 بـ GND لوضع ESP32-CAM في وضع الفلاش.
الخطوة 3: تحميل رسم أساسي للكشف عن الكائنات
1. حدد اللوحة والميناء
- اذهب إلى أدوات > سبورة واختيار AI-Hinker ESP32-CAM.
- تحت أدوات، حدد الصحيح ميناء كوم لمبرمج FTDI الخاص بك.
2. إعداد الرمز
استخدم مثالًا أساسيًا لتحميل نموذج اكتشاف الكائنات المدربين مسبقًا (على سبيل المثال ، نموذج TensorFlow Lite). يوجد أدناه مقتطف عينة لدمج الكشف عن الكائنات:
#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. تحميل الرمز
- اضغط على إعادة ضبط زر على ESP32-CAM بينما يتم توصيل IO0 بـ GND.
- انقر رفع في Arduino IDE.
- بمجرد اكتمال التحميل ، افصل IO0 من GND واضغط على إعادة ضبط زر مرة أخرى.
الخطوة 4: الوصول إلى نتائج اكتشاف الكائنات
- افتح الشاشة التسلسلية (أدوات > المراقبة التسلسلية) وتعيين معدل باود
115200
. - عرض الكائنات المكتشفة وعشرات ثقتها في الشاشة التسلسلية.
- يمكنك توسيع هذا من خلال عرض النتائج في واجهة ويب باستخدام HTML أو الاندماج مع منصات إنترنت الأشياء مثل MQTT.
الخطوة 5: تعزيز الكشف عن الكائنات
- تحسين النموذج: استخدم الحافة الدافعة أو Tensorflow Lite لتدريب النماذج المخصصة المحسّنة لـ ESP32-Cam.
- واجهة الويب: تعزيز المشروع من خلال عرض الكائنات المكتشفة مباشرة في واجهة المتصفح.
- تكامل إنترنت الأشياء: أرسل نتائج الكشف إلى الخدمات السحابية لمزيد من المعالجة أو أنظمة التنبيه.
استكشاف الأخطاء وإصلاحها
- نموذج كبير جدًا: تأكد من أن حجم النموذج يناسب ذاكرة ESP32-CAM.
- لم يتم اكتشاف الكاميرا: تحقق من الأسلاك وتأكد من توصيل الكاميرا بشكل آمن.
- دقة منخفضة: تدريب أو ضبط النموذج مع بيانات أكثر صلة.
تطبيقات اكتشاف الكائنات مع ESP32-CAM
- الكاميرات الأمنية مع الكشف عن الحركة أو الكائنات
- أتمتة المنزل الذكية (على سبيل المثال ، اكتشاف عمليات التسليم أو الحيوانات الأليفة)
- أنظمة المراقبة والعد الصناعية
- مراقبة الحياة البرية والبحث
خاتمة
لقد نجحت في إعداد اكتشاف الكائنات الأساسية باستخدام ESP32-CAM. هذه الوحدة القوية ، إلى جانب نماذج التعلم الآلي ، تفتح إمكانيات لا نهاية لها للتطبيقات في العالم الحقيقي. جرب نماذج مختلفة ، وتحسين الدقة ، وتوسيع الوظائف لتناسب احتياجات مشروعك!