# PicoFace **Repository Path**: linppyou/pico-face ## Basic Information - **Project Name**: PicoFace - **Description**: 基于 Raspberry Pi Pico 的人脸识别系统:Pico 采集图像,PC 端识别,结果通过 DVI 屏幕显示 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-15 - **Last Updated**: 2026-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PicoFace #### Description A face recognition system based on Raspberry Pi Pico: Pico captures images, PC performs recognition, and results are displayed on a DVI screen. #### Software Architecture - `/firmware` — Pico firmware (Pico SDK + CMake): camera driver, DVI display, UART communication, graphics overlay - `/pc_client` — PC client (Python): face registration, 128D feature extraction, real-time recognition, attendance logging, serial protocol - `/docs` — Development docs (PC client guide, UART protocol, blink test) #### Hardware - Raspberry Pi Pico (or Pico W) - OV7670 camera module (no FIFO) - Adafruit DVI Sock for Pico (5957) - 1080p HDMI portable display - Breadboard, dupont lines, power module #### Data Flow 1. **Capture** — Pico initializes OV7670 to QVGA 320×240, captures image via PIO + DMA into RAM. 2. **Upload** — Pico sends image frame in chunks over UART to PC. 3. **Recognize** — PC receives and decodes the frame, runs face detection + recognition, obtains bounding boxes and names. 4. **Return** — PC sends results back to Pico. 5. **Render** — Pico overlays boxes and text on the frame and outputs via DVI to HDMI display. #### Quick Start **Build firmware** ```bash cd firmware mkdir build && cd build cmake .. make # Flash the generated .uf2 file to Pico ``` **Run PC client** ```bash cd pc_client pip install -r requirements.txt python main.py --port # e.g. /dev/ttyUSB0 ``` #### Documentation - [PC Client Guide](docs/pc_client_guide.md) - [UART Protocol](docs/uart_protocol.md) - [blink Test](docs/blink_test.md) #### Status 🚧 Work in Progress #### Tech Stack - **Firmware**: C / Pico SDK / CMake / PIO / DMA - **PC Client**: Python / OpenCV / pyserial - **Communication**: Custom binary packet protocol (UART) #### Contribution 1. Fork the repository 2. Create Feat_xxx branch 3. Commit your code 4. Create Pull Request