Runs an rpicam-apps camera pipeline with a Hailo YOLOv6 post-processing stage and streams every detected object to a TCP server as newline-delimited JSON.
Each message has the form:
{"seq":42,"detections":[
{"class":"person","confidence":0.9123,
"centroid_x":320.5,"centroid_y":240.0,
"width":120,"height":200}
]}The destination server defaults to 192.168.17.111:5050 and can be overridden at runtime with --server-ip and --server-port (see Run).
- rpicam-apps (headers in
/usr/local/include/rpicam-apps, library in/usr/local/lib/aarch64-linux-gnu) - libcamera (resolved via
pkg-config) - Boost.ProgramOptions (
libboost-program-options-dev) - Hailo post-processing assets (provides
/usr/share/rpi-camera-assets/hailo_yolov6_inference.json)
mkdir build && cd build
cmake ..
cmake --build .The binary is placed at build/detect_sender.
./detect_sender \
--post-process-file /usr/share/rpi-camera-assets/hailo_yolov6_inference.json \
--lores-width 640 --lores-height 640 \
--nopreview -t 0Override the destination server with --server-ip and --server-port:
./detect_sender \
--post-process-file /usr/share/rpi-camera-assets/hailo_yolov6_inference.json \
--lores-width 640 --lores-height 640 \
--nopreview -t 0 \
--server-ip 10.0.0.5 --server-port 9000-t 0 runs indefinitely. The process connects (and reconnects on failure) to the TCP server and sends one JSON line per frame that contains at least one detection. If no server is listening, failed sends are logged to stderr and dropped — the camera pipeline keeps running.
Pass -t <ms> to stop after a fixed duration, or omit --nopreview to open a preview window.