How captainaai/grpcclientapp works
VisionClientApp is a Qt desktop camera-and-object-detection client. The principal workflow is: select a Triton server and ready model, capture a camera frame, prepare it for the model, run remote inference, post-process detections, and display the result. The sampled code shows the Qt/Python/OpenCV integration; some implementation details are omitted, so only documented and visible call relationships are drawn.
Main entry points: mainvision.cpp Main window · mainvision.ui Qt interface · main.cpp Application startup
Components 17
Desktop application
- Qt interface
mainvision.ui - Application startup
main.cpp - Main window
mainvision.cpp
Vision workflow
- Camera capture
mainvision.cpp - Frame preparation
mainvision.cpp - Frame display
mainvision.cpp - Detection post-processing
mainvision.cpp - Detection result
mainvision.cpp
Remote inference
- Embedded Python
mainvision.cpp - Server connection
mainvision.cpp - Model selection
mainvision.cpp - Triton client
mainvision.cpp - Model repository
mainvision.cpp - Inference request
mainvision.cpp
Other components
- User
- Camera device
- Triton server
Connections 25
- User → Qt interface: operates
- Application startup → Main window: creates
- Main window → Qt interface: sets up
- Main window → Embedded Python: initializes
- Main window → Camera capture: opens
- Camera capture → Camera device: reads frames
- Main window → Camera capture: updates
- Main window → Server connection: handles selection
- Server connection → Embedded Python: calls connect
- Embedded Python → Triton client: uses
- Triton client → Triton server: connects
- Embedded Python → Model repository: queries
- Model repository → Triton server: reads model status
- Main window → Model selection: handles selection
- Model selection → Embedded Python: calls select_model
- Embedded Python → Triton server: checks readiness and metadata
- Main window → Frame preparation: prepares captured frame
- Frame preparation → Inference request: passes model input
- Main window → Inference request: calls runInference
- Inference request → Embedded Python: calls infer
- Embedded Python → Triton server: sends inference
- Embedded Python → Detection post-processing: decodes predictions
- Detection post-processing → Detection result: produces detections
- Main window → Frame display: shows frames and results
- Frame display → Qt interface: updates viewer