coresmith.dev
← Toate lucrările

Produs de computer vision cu AI pe dispozitiv

CV în timp real · hardware propriuîn desfășurareechipă proprieîn producție
Problema

Detecție și OCR sub 100 ms, pe o placă care încă nu exista.

Produsul avea nevoie de detecție de obiecte plus recunoaștere de text direct pe dispozitiv, suficient de rapid ca să pară instantaneu, pe hardware suficient de ieftin ca să poată fi produs în volum. Fără drum până în cloud.

Și încă o constrângere: același binar C++ trebuia să ruleze și pe calculatorul de dezvoltare și pe placa embedded, altfel viteza de iterație s-ar fi prăbușit.

Abordarea

Un singur pipeline, trei motoare de inferență.

Pipeline-ul de vision e scris o singură dată, peste o interfață de inferență cu trei implementări: ONNX Runtime pentru desktop, RKNN pentru NPU-ul de pe dispozitiv, OpenCV DNN ca rezervă. Schimbarea motorului e o modificare de configurație, nu o rescriere.

Cadrele nu ies din memoria GPU între captură și inferență: GStreamer le mută zero-copy, și acolo s-a câștigat cea mai mare parte din bugetul de latență.

Arhitectura

Software-ul și placa pe care rulează.

C++17, YOLO pentru detecție, PP-OCRv4 (DBNet pentru găsirea textului, CRNN pentru citire). Dispozitivul se prezintă ca USB HID, deci calculatorul gazdă nu are nevoie de driver. systemd îl supraveghează.

Placa e tot a noastră: un PCB pe 8 straturi în jurul unui RK3576 cu LPDDR4X, desenat în KiCad.

C++17YOLOONNX RuntimeRKNNOpenCV DNNPP-OCRv4GStreamerUSB HIDsystemdRK3576LPDDR4XKiCad
Rezultatul

30 fps, pe dispozitiv, fără cloud.

30 fpspipeline
3motoare de inferență

Detecția și OCR-ul rulează integral pe placă. Același binar se depanează pe un laptop, și de asta produsul a ajuns să fie livrat.

Ai nevoie de ceva asemănător?

Începe un proiect