Skip to content

Commit 1e86fe5

Browse files
committed
feat: Implement v0.2.1 Vision Pipeline
- Added ROI, Downsampling, and Blob Detection to CvPipeline - Added NVS Settings component for persistent config - Added Host-Based Simulator (simulation/) for WSL testing - Updated README with simulator details
1 parent 1c4ef18 commit 1e86fe5

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ efficient frame handling, and low‑power vision processing.
2323
- C++ `CameraNode` component using the `esp32-camera` managed component
2424
- Real-time FPS measurement with `esp_timer`
2525
- Example: **basic_fps_logger** (`examples/basic_fps_logger/`)
26+
- Host-Based Vision Simulator (`simulation/`) for fast PC-based testing
2627

2728
### 🛠 In Progress
2829
- `cv_pipeline` stages (grayscale, threshold, ROI operations)

simulation/README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
cat <<EOF > simulation/README.md
2+
# Host-Based Vision Simulator
3+
4+
This tool allows you to run and debug the **CvPipeline** logic on a PC (WSL/Linux) without needing physical ESP32 hardware.
5+
6+
It "mocks" the ESP32-specific headers (camera, logging, timing) and feeds generated test patterns into the pipeline.
7+
8+
## 🚀 Purpose
9+
- **Rapid Prototyping:** Test new algorithms (blob detection, thresholding) instantly.
10+
- **Logic Verification:** Validate ROI math and coordinate transformations.
11+
- **Performance Baseline:** Measure raw algorithmic overhead (ignoring hardware I/O).
12+
13+
## 🛠 How to Build & Run
14+
15+
### Prerequisites
16+
- CMake
17+
- G++ / GCC
18+
- Linux environment (or WSL)
19+
20+
### Commands
21+
\`\`\`bash
22+
cd simulation
23+
cmake .
24+
make
25+
./vision_sim
26+
\`\`\`
27+
28+
## 🧪 Current Tests
29+
The \`SimMain.cpp\` currently validates:
30+
1. **ROI Extraction:** Ensures objects outside the crop zone are ignored.
31+
2. **Downsampling:** Verifies 2x scaling logic (320x240 -> 80x60).
32+
3. **Blob Detection:** Tracking a moving white square across the frame.
33+
34+
## 📂 Structure
35+
- \`SimMain.cpp\`: Entry point; generates fake frames and calls the pipeline.
36+
- \`include/\`: Mock headers (\`esp_camera.h\`, \`esp_log.h\`, etc.).
37+
- \`CMakeLists.txt\`: Standard desktop build configuration.
38+
39+
EOF

0 commit comments

Comments
 (0)