ESP32-CAM on tehokas, edullinen mikrokontrolleri, jossa on sisäänrakennettu kameramoduuli, joka pystyy kaappaamaan kuvia ja suoratoistaa live-videota. Hyödyntämällä sen käsittelymahdollisuuksia ja integroimalla ulkoiset koneoppimiskirjastot tai kehykset, voit ottaa objektien havaitsemisen suoraan ESP32-CAM: lla. Tämä opetusohjelma opastaa sinua määrittämään perusobjektin havaitsemisen ESP32-CAM: lla ennakkomaksutettujen mallejen avulla.
Mitä tarvitset
- ESP32-CAM-moduuli
- FTDI-ohjelmoija (USB-ser-sovitin)
- Hyppyjohdot
- Leipälevy (valinnainen)
- Tietokone, jossa Arduino IDE on asennettu
- Edge Impulse tai TensorFlow Lite objektin havaitsemismalleissa
Vaihe 1: Arduino IDE: n asettaminen
1. Asenna ESP32 -levypaketti
-
Avaa Arduino IDE.
-
Mennä jhk Tiedosto > Mieltymykset.
-
Lisää "Ylimääräisen hallituksen johtajan URLS" -kenttään: Lisää:
https://dl.espressif.com/dl/package_esp32_index.json
-
Napsauttaa Hyvä.
-
Mennä jhk Työkalut > Hallitus > Hallituspäällikkö.
-
Etsi "ESP32" ja asenna paketti espressif -järjestelmissä.
2. Asenna vaadittavat kirjastot
- Asenna "ESP32 -kamera" -kirjasto.
- Asenna objektien havaitsemismalleille "Tensorflow Lite Micro" (tai vastaavat kirjastot).
Vaihe 2: ESP32-CAM: n johdotus
ESP32-cam-nasta | FTDI -ohjelmoijatappi |
---|---|
Hölynpöly | Hölynpöly |
5V | VCC (5V) |
U0R | TX |
U0t | Rx |
Hölynpöly | GND (IO0 - GND vilkkumista varten) |
Tärkeää: Kytke IO0-nasta GND: hen asettaaksesi ESP32-CAM Flash-tilaan.
Vaihe 3: Perusobjektin havaitsemisluonnoksen lähettäminen
1. Valitse kortti ja portti
- Mennä jhk Työkalut > Hallitus ja valitse Ai-ajattelija ESP32-CAM.
- Ali Työkalut, valitse oikea Com -portti FTDI -ohjelmoijallesi.
2. koodin valmistelu
Laaditaan perusesimerkki esiopetetun objektin havaitsemismallin (esim. TensorFlow Lite -malli). Alla on näytteen katkelma objektien havaitsemisen integroimiseksi:
#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. Lataa koodi
- Paina Nollata Painike ESP32-CAM: ssä, kun IO0 on kytketty GND: hen.
- Napsauttaa Ladata Arduino IDE: ssä.
- Kun lataus on valmis, irrota IO0 GND: stä ja paina Nollata Painike uudelleen.
Vaihe 4: Objektin havaitsemistulosten käyttäminen
- Avaa sarjamonitori (Työkalut > Sarjamonitori) ja aseta baud -arvo
115200
. - Näytä havaitut esineet ja niiden luottamuspisteet sarjamonitorissa.
- Voit laajentaa tätä näyttämällä tulokset verkkoliittymässä HTML: n avulla tai integroimalla IoT -alustoihin, kuten MQTT.
Vaihe 5: Objektien havaitsemisen parantaminen
- Mallin optimointi: Käytä Edge-impulssia tai TensorFlow Liteä kouluttamaan räätälöityjä malleja, jotka on optimoitu ESP32-CAM: lle.
- Web -käyttöliittymä: Paranna projektia näyttämällä havaitut objektit suoraan selaimen rajapinnassa.
- IoT -integraatio: Lähetä havaitsemistulokset pilvipalveluille jatkokäsittely- tai hälytysjärjestelmiä varten.
Vianetsintä
- Malli liian suuri: Varmista, että mallin koko sopii ESP32-CAM: n muistiin.
- Kameraa ei havaittu: Varmista johdotus ja varmista, että kamera on kytketty turvallisesti.
- Matala tarkkuus: Harjoittele tai hienosäädä malli merkityksellisemmillä tietoilla.
Objektin havaitsemisen sovellukset ESP32-CAM: lla
- Turvakamerat liikkeellä tai esineiden havaitsemisella
- Smart Home Automation (esim. Toimitusten tai lemmikkien havaitseminen)
- Teollisuuden seuranta- ja laskentajärjestelmät
- Villieläinten seuranta ja tutkimus
Johtopäätös
Olet määrittänyt onnistuneesti objektin perustunnistuksen ESP32-CAM: lla. Tämä tehokas moduuli yhdistettynä koneoppimomalliin avaa loputtomia mahdollisuuksia reaalimaailman sovelluksiin. Kokeile erilaisia malleja, paranna tarkkuutta ja laajenna toiminnallisuutta projektin tarpeisiisi!