Az ESP32-CAM egy sokoldalú, olcsó mikrovezérlő, beépített kamerával, képes képeket rögzíteni és streaming videókat készíteni. A Python hatékony képfeldolgozó könyvtáraival kombinálva az objektumok észlelését különféle alkalmazásokhoz, például megfigyelés, otthoni automatizálás és robotika esetén megvalósíthatja. Ez az oktatóanyag vezeti Önt az ESP32-CAM Python használatával az objektum-észlelés végrehajtásához.
Mire lesz szüksége
- ESP32-CAM modul
- FTDI programozó (USB-sorozat-adapter)
- Kenyérlemez és jumper vezetékek
- Python telepítve a számítógépen (3.6 vagy újabb verzió)
- Könyvtárak: OpenCV, numpy és kérések
- Képzett modell (pl. Yolov5, Tensorflow Lite)
1. lépés: Az ESP32-CAM beállítása
1. Flash az ESP32-CAM-ot CAMERAWEBSERVER segítségével
-
Csatlakoztassa az ESP32-CAM-ot az FTDI programozójához:
- GND -t a GND -hez
- 5 V -os VCC
- U0T - RX
- U0r to tx
- IO0 - GND (villogó módhoz)
-
Nyissa meg az Arduino IDE -t, és telepítse az ESP32 tábla csomagot:
- Elindul Fájl> Preferenciák és adja hozzá az URL -t:
https://dl.espressif.com/dl/package_esp32_index.json
- Elindul Eszközök> Táblák> Táblákkezelő, Keresse meg az ESP32 -t, és telepítse a csomagot.
- Elindul Fájl> Preferenciák és adja hozzá az URL -t:
-
Töltse be a Camerawebserver példát:
- Elindul Fájl> Példák> ESP32> Kamera> CAMERAWEBSERVER.
- Frissítse a
ssid
éspassword
Változók a Wi-Fi hitelesítő adataival:const char* ssid = "Your_SSID"; const char* password = "Your_PASSWORD";
- Válasszon Ai-thinker ESP32-CAM alatt Eszközök> Board.
-
Töltse fel a kódot az ESP32-CAM-ra. Válasszuk le az IO0 -t a GND -ből, és nyomja meg a visszaállítás gombot.
2.
- Nyissa meg a soros monitorot, és állítsa be az adatátviteli sebességet
115200
. - Keresse meg az ESP32-CAM IP-címét a soros monitor kimenetében (pl.
http://192.168.1.100
). - Nyissa meg az IP -címet egy böngészőben az élő stream ellenőrzéséhez.
2. lépés: Python környezet beállítása
1. Telepítse a szükséges könyvtárakat
Telepítse a szükséges Python könyvtárakat a PIP használatával:
pip install opencv-python numpy requests
2. Ellenőrizze az OpenCV telepítését
Futtassa a következő kódot az OpenCV telepítésének biztosítása érdekében:
import cv2
print(cv2.__version__)
3. lépés: A videó stream rögzítése
A Python segítségével rögzítse a kereteket az ESP32-CAM videó streamből.
Példa kód: Keretek rögzítése
import cv2
import requests
import numpy as np
# ESP32-CAM URL
url = "http://192.168.1.100/capture"
while True:
# Capture image from ESP32-CAM
img_resp = requests.get(url)
img_array = np.array(bytearray(img_resp.content), dtype=np.uint8)
frame = cv2.imdecode(img_array, -1)
# Display the frame
cv2.imshow("ESP32-CAM", frame)
# Exit on pressing 'q'
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
4. lépés: Objektum -észlelés hozzáadása
Integrálja az objektumok észlelését a rögzített video streambe egy előre kiképzett modell segítségével, például a Yolov5-rel.
1. Töltse le az előzetes képzett modellt
Használhat egy előre kiképzett Yolov5 modellt:
- Töltse le a Yolov5 GitHub tároló.
2. Példa kód: Objektum -észlelés Yolov5 -rel
import cv2
import requests
import numpy as np
import torch
# Load YOLOv5 model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)
# ESP32-CAM URL
url = "http://192.168.1.100/capture"
while True:
# Capture image from ESP32-CAM
img_resp = requests.get(url)
img_array = np.array(bytearray(img_resp.content), dtype=np.uint8)
frame = cv2.imdecode(img_array, -1)
# Perform object detection
results = model(frame)
detections = results.xyxy[0] # Bounding boxes
# Draw bounding boxes
for *xyxy, conf, cls in detections:
label = f"{model.names[int(cls)]} {conf:.2f}"
cv2.rectangle(frame, (int(xyxy[0]), int(xyxy[1])), (int(xyxy[2]), int(xyxy[3])), (255, 0, 0), 2)
cv2.putText(frame, label, (int(xyxy[0]), int(xyxy[1]) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2)
# Display the frame
cv2.imshow("ESP32-CAM Object Detection", frame)
# Exit on pressing 'q'
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
5. lépés: Az objektum észlelésének javítása
- Egyedi modellek: Képzze meg saját YoloV5 modelljét bizonyos objektumokhoz olyan platformok segítségével, mint a Roboflow vagy a Google Colab.
- Edge feldolgozása: Telepítsen olyan könnyű modelleket, mint a Tensorflow Lite az eszköz feldolgozásához.
- Integráció: Küldje el az észlelési eredményeket egy szerverre, vagy indítson el műveleteket az IoT rendszerekben.
Az ESP32-CAM objektumdetektálás alkalmazása
- Otthoni biztonsági és megfigyelő rendszerek
- Vadon élő állatok megfigyelése és nyomon követése
- Gyári automatizálás és minőség -ellenőrzés
- Interaktív robotikai projektek
- Okos ajtócsengő arcfelismeréssel
Hibaelhárítás
- Patak késés: Csökkentse a felbontást vagy a képkocka sebességét a simább streaminghez.
- Csatlakozási problémák: Győződjön meg arról, hogy az ESP32-CAM és a számítógép ugyanazon a hálózaton van.
- Modell pontosság: Finomítsa be az előre kiképzett modellt az adatkészlet jobb eredményeinek elérése érdekében.
Következtetés
Az ESP32-CAM és a Python kombinálása erőteljes lehetőségeket nyit az objektumok észlelésére és a valós idejű videofeldolgozásra. Az útmutató követésével intelligens alkalmazásokhoz integrálhatja az objektumok észlelését a projektekbe. Kísérletezzen különböző modellekkel és optimalizálásokkal a fejlett és hatékony rendszerek létrehozásához!