ESP32-CAM एक शक्तिशाली, कम लागत वाला माइक्रोकंट्रोलर है जिसमें एक अंतर्निहित कैमरा मॉड्यूल है, जो छवियों को कैप्चर करने और लाइव वीडियो को स्ट्रीमिंग करने में सक्षम है। इसकी प्रसंस्करण क्षमताओं का लाभ उठाकर और बाहरी मशीन लर्निंग लाइब्रेरी या फ्रेमवर्क को एकीकृत करके, आप सीधे ESP32-CAM पर ऑब्जेक्ट डिटेक्शन को सक्षम कर सकते हैं। यह ट्यूटोरियल आपको पूर्व-प्रशिक्षित मॉडल का उपयोग करके ESP32-CAM के साथ बुनियादी ऑब्जेक्ट डिटेक्शन स्थापित करने के माध्यम से मार्गदर्शन करेगा।
आपको क्या चाहिए
- Esp32-cam मॉड्यूल
- एफटीडीआई प्रोग्रामर (यूएसबी-टू-सेरियल एडाप्टर)
- जम्पर तार
- ब्रेडबोर्ड (वैकल्पिक)
- Arduino IDE के साथ एक कंप्यूटर स्थापित
- ऑब्जेक्ट डिटेक्शन मॉडल के लिए एज इम्पल्स या टेन्सोरफ्लो लाइट
चरण 1: Arduino IDE की स्थापना
1। ESP32 बोर्ड पैकेज स्थापित करें
-
Arduino ide खोलें।
-
जाओ फ़ाइल > वरीयताएँ.
-
"अतिरिक्त बोर्ड मैनेजर URL" फ़ील्ड में, जोड़ें:
https://dl.espressif.com/dl/package_esp32_index.json
-
क्लिक ठीक है.
-
जाओ औजार > तख़्ता > मंडल प्रबंधक.
-
"ESP32" के लिए खोजें और एस्प्रेसिफ़ सिस्टम द्वारा पैकेज स्थापित करें।
2। आवश्यक पुस्तकालय स्थापित करें
- "ESP32 कैमरा" लाइब्रेरी स्थापित करें।
- ऑब्जेक्ट डिटेक्शन मॉडल के लिए, "टेंसरफ्लो लाइट माइक्रो" (या इसी तरह के पुस्तकालयों) को स्थापित करें।
चरण 2: ESP32-CAM को वायर करना
Esp32-cam पिन | FTDI प्रोग्रामर पिन |
---|---|
Gnd | Gnd |
5V | वीसीसी (5V) |
U0r | टेक्सास |
U0t | आरएक्स |
Gnd | GND (IO0 से GND फ्लैशिंग के लिए) |
महत्वपूर्ण: ESP32-CAM को फ्लैश मोड में डालने के लिए IO0 पिन को GND से कनेक्ट करें।
चरण 3: एक मूल ऑब्जेक्ट डिटेक्शन स्केच अपलोड करना
1। बोर्ड और पोर्ट का चयन करें
- जाओ औजार > तख़्ता और चयन करें Ai-thinker 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 में।
- एक बार अपलोड पूरा हो जाने के बाद, GND से IO0 को डिस्कनेक्ट करें और दबाएं रीसेट करना फिर से बटन।
चरण 4: ऑब्जेक्ट डिटेक्शन रिजल्ट एक्सेस करना
- सीरियल मॉनिटर खोलें (औजार > सीरियल मॉनिटर) और बॉड दर निर्धारित करें
115200
. - सीरियल मॉनिटर में पता लगाया वस्तुओं और उनके विश्वास स्कोर देखें।
- आप HTML का उपयोग करके एक वेब इंटरफ़ेस में परिणाम प्रदर्शित करके या MQTT जैसे IoT प्लेटफॉर्म के साथ एकीकृत करके इसका विस्तार कर सकते हैं।
चरण 5: ऑब्जेक्ट डिटेक्शन को बढ़ाना
- मॉडल अनुकूलन: ESP32-CAM के लिए अनुकूलित कस्टम मॉडल को प्रशिक्षित करने के लिए एज इम्पल्स या TensorFlow Lite का उपयोग करें।
- वेब इंटरफ़ेस: ब्राउज़र इंटरफ़ेस में सीधे पता लगाए गए ऑब्जेक्ट्स को प्रदर्शित करके परियोजना को बढ़ाएं।
- IoT एकीकरण: आगे की प्रक्रिया या अलर्ट सिस्टम के लिए क्लाउड सेवाओं को पता लगाने के परिणाम भेजें।
समस्या निवारण
- मॉडल बहुत बड़ा: सुनिश्चित करें कि मॉडल का आकार ESP32-CAM की मेमोरी के भीतर फिट बैठता है।
- कैमरा का पता नहीं चला: वायरिंग को सत्यापित करें और सुनिश्चित करें कि कैमरा सुरक्षित रूप से जुड़ा हुआ है।
- कम सटीकता: अधिक प्रासंगिक डेटा के साथ मॉडल को ट्रेन या फाइन-ट्यून करें।
ESP32-CAM के साथ ऑब्जेक्ट का पता लगाने के अनुप्रयोग
- गति या वस्तु का पता लगाने के साथ सुरक्षा कैमरे
- स्मार्ट होम ऑटोमेशन (जैसे, डिलीवरी या पालतू जानवरों का पता लगाना)
- औद्योगिक निगरानी और गणना प्रणालियाँ
- वन्यजीव निगरानी और अनुसंधान
निष्कर्ष
आपने ESP32-CAM के साथ बेसिक ऑब्जेक्ट डिटेक्शन को सफलतापूर्वक सेट किया है। मशीन लर्निंग मॉडल के साथ संयुक्त यह शक्तिशाली मॉड्यूल, वास्तविक दुनिया के अनुप्रयोगों के लिए अंतहीन संभावनाओं को खोलता है। विभिन्न मॉडलों के साथ प्रयोग करें, सटीकता में सुधार करें, और अपनी परियोजना की जरूरतों के अनुरूप कार्यक्षमता का विस्तार करें!