Hi, I'm working on a problem that requires bidirectional comms between a host (android based application) and a luxonis camera over PoE. The application first needs to ID a user and then run a pose estimation based CVML application constantly on the image frames. We've been working with the RVC2 based cameras (Oak D PoE W)
@erik Suggested a possible way for 2-way comms using TCP that can allow for model switching in standalone mode. However, I was looking into the OAK-D CM4 PoE and the Oak 4 D cameras and thought of an alternative solutions arch that I'd love to get the community's feedback on -
Hardware Layer:
Android Tablet/App to OAK-D CM4 PoE via Rj45 ethernet.
OAK-D CM4 - image processing and Neural Network execution.
Software Architecture:
Android Tablet Side:
Android App: The main application running on the tablet
HTTP Client: Handles REST API calls for command and control operations
WebSocket Client: Manages real-time streaming and status updates
Camera Side:
CVML Python Application: Core CVML application that processes requests and controls the camera
Flask/FastAPI REST Server: Handles HTTP requests for camera operations
WebSocket Server: Manages real-time communication channel
DepthAI Library: Library that interfaces directly with the camera and NN hardware
Communication Flows:
REST API (HTTP/JSON):
- Used for discrete operations like capturing images or changing settings
- Example endpoints:
/camera/capture
,/camera/id_object
,/camera/id_face
WebSocket Protocol:
Used for streaming preview images from the camera to the Android application
Provides real-time video stream
Maintains a persistent connection for lower latency