Ang ESP32-CAM ay isang maraming nalalaman, microcontroller na may microcontroller na may built-in na camera, na may kakayahang makunan ng mga imahe at streaming video. Kapag sinamahan ng malakas na aklatan ng pagproseso ng imahe ng Python, maaari mong ipatupad ang pagtuklas ng object para sa iba't ibang mga aplikasyon tulad ng pagsubaybay, automation ng bahay, at mga robotics. Ang tutorial na ito ay gagabay sa iyo sa pamamagitan ng paggamit ng ESP32-cam kasama ang Python upang maisagawa ang pagtuklas ng object.
Ano ang kakailanganin mo
- Module ng ESP32-CAM
- FTDI programmer (USB-to-serial adapter)
- Mga wire ng tinapay at jumper
- Naka -install ang Python sa iyong computer (bersyon 3.6 o mas bago)
- Mga Aklatan: Opencv, Numpy, at mga kahilingan
- Isang sinanay na modelo (hal., Yolov5, Tensorflow Lite)
Hakbang 1: Pag-set up ng ESP32-CAM
1. I-flash ang ESP32-cam na may cameraweberver
-
Ikonekta ang ESP32-CAM sa iyong FTDI programmer:
- Gnd sa gnd
- 5V sa VCC
- U0t sa rx
- U0R sa TX
- Io0 kay Gnd (para sa flashing mode)
-
Buksan ang Arduino IDE at i -install ang ESP32 Board Package:
- Pumunta sa File> Mga Kagustuhan At idagdag ang URL:
https://dl.espressif.com/dl/package_esp32_index.json
- Pumunta sa Mga tool> Lupon> Boards Manager, Maghanap para sa ESP32, at i -install ang package.
- Pumunta sa File> Mga Kagustuhan At idagdag ang URL:
-
I -load ang halimbawa ng cameraweberver:
- Pumunta sa File> Mga Halimbawa> ESP32> Camera> CamerawebServer.
- I -update ang
ssid
atpassword
Mga variable sa iyong mga kredensyal ng Wi-Fi:const char* ssid = "Your_SSID"; const char* password = "Your_PASSWORD";
- Piliin AI-Thinker ESP32-CAM sa ilalim ng Mga tool> Lupon.
-
I-upload ang code sa ESP32-CAM. Idiskonekta ang IO0 mula sa GND at pindutin ang pindutan ng pag -reset.
2. I-access ang stream ng video ng ESP32-cam
- Buksan ang serial monitor at itakda ang rate ng baud sa
115200
. - Hanapin ang IP address ng ESP32-cam sa serial monitor output (hal.,
http://192.168.1.100
). - Buksan ang IP address sa isang browser upang mapatunayan ang live stream.
Hakbang 2: Pag -set up ng kapaligiran ng Python
1. I -install ang mga kinakailangang aklatan
I -install ang kinakailangang mga aklatan ng Python gamit ang PIP:
pip install opencv-python numpy requests
2. Pag -verify ng pag -install ng OpenCV
Patakbuhin ang sumusunod na code upang matiyak na naka -install ang OPENCV:
import cv2
print(cv2.__version__)
Hakbang 3: Pagkuha ng stream ng video
Gumamit ng Python upang makuha ang mga frame mula sa stream ng video ng ESP32-cam.
Halimbawa ng code: Pagkuha ng mga frame
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()
Hakbang 4: Pagdaragdag ng pagtuklas ng object
Isama ang pagtuklas ng object sa nakunan na stream ng video gamit ang isang pre-sanay na modelo, tulad ng Yolov5.
1. Mag-download ng isang pre-sanay na modelo
Maaari kang gumamit ng isang pre-sinanay na modelo ng Yolov5:
- I -download ito mula sa YOLOV5 GITHUB Repository.
2. Halimbawa Code: Object Detection na may Yolov5
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()
Hakbang 5: Pagpapahusay ng pagtuklas ng object
- Mga pasadyang modelo: Sanayin ang iyong sariling Yolov5 na modelo para sa mga tiyak na bagay gamit ang mga platform tulad ng Roboflow o Google Colab.
- Pagproseso ng Edge: Mag-deploy ng mga magaan na modelo tulad ng TensorFlow Lite para sa pagproseso ng on-device.
- Pagsasama: Magpadala ng mga resulta ng pagtuklas sa isang server o mag -trigger ng mga aksyon sa mga system ng IoT.
Mga aplikasyon ng ESP32-CAM object detection
- Mga Seguridad sa Seguridad at Surveillance ng Bahay
- Pagsubaybay at pagsubaybay sa wildlife
- Factory automation at kalidad control
- Mga interactive na proyekto ng robotics
- Smart doorbell na may pagkilala sa facial
Pag -aayos
- Stream latency: Bawasan ang resolusyon o rate ng frame para sa mas maayos na streaming.
- Mga Isyu sa Koneksyon: Tiyakin na ang ESP32-cam at ang iyong computer ay nasa parehong network.
- Katumpakan ng modelo: Fine-tune ang pre-sanay na modelo para sa mas mahusay na mga resulta sa iyong dataset.
Konklusyon
Ang pagsasama-sama ng ESP32-cam kay Python ay nagbubukas ng malakas na posibilidad para sa pagtuklas ng object at pagproseso ng real-time na video. Sa pamamagitan ng pagsunod sa gabay na ito, maaari mong isama ang pagtuklas ng object sa iyong mga proyekto para sa mga matalinong aplikasyon. Eksperimento sa iba't ibang mga modelo at pag -optimize upang lumikha ng mga advanced at mahusay na mga sistema!