Skip to content

Repository files navigation

detect_sender

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).

Dependencies

  • 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)

Build

CMake (recommended)

mkdir build && cd build
cmake ..
cmake --build .

The binary is placed at build/detect_sender.

Run

./detect_sender \
  --post-process-file /usr/share/rpi-camera-assets/hailo_yolov6_inference.json \
  --lores-width 640 --lores-height 640 \
  --nopreview -t 0

Override 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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages