From 8a7d681e5bf6182b43eede4dfe83f3aaa40b27e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tuomas=20J=C3=A4rvinen?= Date: Sun, 14 Jul 2024 19:52:45 +0200 Subject: [PATCH] Renamed opi_player as rtsp_ai_player --- misc/rtsp_ai_player/README.md | 43 ++++++++++++++++++ .../rtsp_ai_player}/aiengine.cpp | 0 .../rtsp_ai_player}/aiengine.h | 0 .../rtsp_ai_player}/aienginegimbalcontrol.cpp | 0 .../rtsp_ai_player}/aienginegimbalcontrol.h | 0 .../rtsp_ai_player}/aiengineinference.cpp | 0 .../rtsp_ai_player}/aiengineinference.h | 0 .../rtsp_ai_player}/aienginertsplistener.cpp | 0 .../rtsp_ai_player}/aienginertsplistener.h | 0 .../rtsp_ai_player}/azaion_10_labels_list.txt | 0 .../rtsp_ai_player}/coco_80_labels_list.txt | 0 .../opi_rtsp => misc/rtsp_ai_player}/config.h | 0 .../rtsp_ai_player}/get_yolo_model.sh | 0 .../opi_rtsp => misc/rtsp_ai_player}/main.cpp | 0 .../rtsp_ai_player/rtsp_ai_player.pro | 0 .../aiengineinferenceonnxruntime.cpp | 0 .../aiengineinferenceonnxruntime.h | 0 .../src-onnx-runtime/utils.cpp | 0 .../rtsp_ai_player}/src-onnx-runtime/utils.h | 0 .../src-onnx-runtime/yolov8Predictor.cpp | 0 .../src-onnx-runtime/yolov8Predictor.h | 0 .../aiengineinferenceopencvonnx.cpp | 0 .../aiengineinferenceopencvonnx.h | 0 .../src-opencv-onnx/inference.cpp | 0 .../src-opencv-onnx/inference.h | 0 .../src-opi5/aiengineinferenceopi5.cpp | 0 .../src-opi5/aiengineinferenceopi5.h | 0 .../rtsp_ai_player}/src-opi5/bus.png | Bin .../rtsp_ai_player}/src-opi5/common.h | 0 .../rtsp_ai_player}/src-opi5/file_utils.c | 0 .../rtsp_ai_player}/src-opi5/file_utils.h | 0 .../rtsp_ai_player}/src-opi5/font.h | 0 .../rtsp_ai_player}/src-opi5/image_drawing.c | 0 .../rtsp_ai_player}/src-opi5/image_drawing.h | 0 .../rtsp_ai_player}/src-opi5/image_utils.c | 0 .../rtsp_ai_player}/src-opi5/image_utils.h | 0 .../rtsp_ai_player}/src-opi5/postprocess.cc | 0 .../rtsp_ai_player}/src-opi5/postprocess.h | 0 .../rtsp_ai_player}/src-opi5/yolov8.cc | 0 .../rtsp_ai_player}/src-opi5/yolov8.h | 0 40 files changed, 43 insertions(+) create mode 100644 misc/rtsp_ai_player/README.md rename {tmp/opi_rtsp => misc/rtsp_ai_player}/aiengine.cpp (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/aiengine.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/aienginegimbalcontrol.cpp (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/aienginegimbalcontrol.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/aiengineinference.cpp (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/aiengineinference.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/aienginertsplistener.cpp (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/aienginertsplistener.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/azaion_10_labels_list.txt (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/coco_80_labels_list.txt (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/config.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/get_yolo_model.sh (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/main.cpp (100%) rename tmp/opi_rtsp/opi_rtsp.pro => misc/rtsp_ai_player/rtsp_ai_player.pro (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-onnx-runtime/aiengineinferenceonnxruntime.cpp (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-onnx-runtime/aiengineinferenceonnxruntime.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-onnx-runtime/utils.cpp (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-onnx-runtime/utils.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-onnx-runtime/yolov8Predictor.cpp (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-onnx-runtime/yolov8Predictor.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opencv-onnx/aiengineinferenceopencvonnx.cpp (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opencv-onnx/aiengineinferenceopencvonnx.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opencv-onnx/inference.cpp (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opencv-onnx/inference.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/aiengineinferenceopi5.cpp (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/aiengineinferenceopi5.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/bus.png (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/common.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/file_utils.c (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/file_utils.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/font.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/image_drawing.c (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/image_drawing.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/image_utils.c (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/image_utils.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/postprocess.cc (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/postprocess.h (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/yolov8.cc (100%) rename {tmp/opi_rtsp => misc/rtsp_ai_player}/src-opi5/yolov8.h (100%) diff --git a/misc/rtsp_ai_player/README.md b/misc/rtsp_ai_player/README.md new file mode 100644 index 0000000..33900bd --- /dev/null +++ b/misc/rtsp_ai_player/README.md @@ -0,0 +1,43 @@ +# rtsp_ai_player + +`rtsp_ai_player` is an application that listens to an RTSP stream, analyzes images with an AI model, and shows the results visually. It also controls a gimbal camera to zoom in on the recognized objects. Application uses YOLOv8 AI models converted to ONNX format. + +## How to convert PT file to ONNX format +```bash +yolo export model=azaion-2024-06-28.pt dynamic=False format=onnx imgsz=640,640 +``` + +## How to use application locally on a Linux PC. + +### Install ffmpeg and mediamtx RTSP server: +```bash +sudo apt update +sudo apt install ffmpeg +wget https://github.com/bluenviron/mediamtx/releases/download/v1.8.4/mediamtx_v1.8.4_linux_amd64.tar.gz +tar xf -C mediamtx mediamtx_v1.8.4_linux_amd64.tar.gz +``` + +### Launch mediamtx RTSP server: +```bash +Start mediamtx RSTP server: + cd mediamtx + ./mediamtx +``` + +### Play mp4 video file from RTSP server: +```bash + ffmpeg -re -stream_loop -1 -i $HOME/azaion/models/videos/for_ai_short.mp4 -c copy -f rtsp rtsp://localhost:8554/live.stream +``` + +### Test RTSP streaming with ffplay: +```bash + ffplay -rtsp_transport tcp rtsp://localhost:8554/live.stream +``` + +### Compile and run rtsp_ai_player: +```bash + cd autopilot/misc/rtsp_ai_player + qmake6 && make + ./rtsp_ai_player ~/azaion/models/azaion/azaion-2024-06-28.onnx +``` + diff --git a/tmp/opi_rtsp/aiengine.cpp b/misc/rtsp_ai_player/aiengine.cpp similarity index 100% rename from tmp/opi_rtsp/aiengine.cpp rename to misc/rtsp_ai_player/aiengine.cpp diff --git a/tmp/opi_rtsp/aiengine.h b/misc/rtsp_ai_player/aiengine.h similarity index 100% rename from tmp/opi_rtsp/aiengine.h rename to misc/rtsp_ai_player/aiengine.h diff --git a/tmp/opi_rtsp/aienginegimbalcontrol.cpp b/misc/rtsp_ai_player/aienginegimbalcontrol.cpp similarity index 100% rename from tmp/opi_rtsp/aienginegimbalcontrol.cpp rename to misc/rtsp_ai_player/aienginegimbalcontrol.cpp diff --git a/tmp/opi_rtsp/aienginegimbalcontrol.h b/misc/rtsp_ai_player/aienginegimbalcontrol.h similarity index 100% rename from tmp/opi_rtsp/aienginegimbalcontrol.h rename to misc/rtsp_ai_player/aienginegimbalcontrol.h diff --git a/tmp/opi_rtsp/aiengineinference.cpp b/misc/rtsp_ai_player/aiengineinference.cpp similarity index 100% rename from tmp/opi_rtsp/aiengineinference.cpp rename to misc/rtsp_ai_player/aiengineinference.cpp diff --git a/tmp/opi_rtsp/aiengineinference.h b/misc/rtsp_ai_player/aiengineinference.h similarity index 100% rename from tmp/opi_rtsp/aiengineinference.h rename to misc/rtsp_ai_player/aiengineinference.h diff --git a/tmp/opi_rtsp/aienginertsplistener.cpp b/misc/rtsp_ai_player/aienginertsplistener.cpp similarity index 100% rename from tmp/opi_rtsp/aienginertsplistener.cpp rename to misc/rtsp_ai_player/aienginertsplistener.cpp diff --git a/tmp/opi_rtsp/aienginertsplistener.h b/misc/rtsp_ai_player/aienginertsplistener.h similarity index 100% rename from tmp/opi_rtsp/aienginertsplistener.h rename to misc/rtsp_ai_player/aienginertsplistener.h diff --git a/tmp/opi_rtsp/azaion_10_labels_list.txt b/misc/rtsp_ai_player/azaion_10_labels_list.txt similarity index 100% rename from tmp/opi_rtsp/azaion_10_labels_list.txt rename to misc/rtsp_ai_player/azaion_10_labels_list.txt diff --git a/tmp/opi_rtsp/coco_80_labels_list.txt b/misc/rtsp_ai_player/coco_80_labels_list.txt similarity index 100% rename from tmp/opi_rtsp/coco_80_labels_list.txt rename to misc/rtsp_ai_player/coco_80_labels_list.txt diff --git a/tmp/opi_rtsp/config.h b/misc/rtsp_ai_player/config.h similarity index 100% rename from tmp/opi_rtsp/config.h rename to misc/rtsp_ai_player/config.h diff --git a/tmp/opi_rtsp/get_yolo_model.sh b/misc/rtsp_ai_player/get_yolo_model.sh similarity index 100% rename from tmp/opi_rtsp/get_yolo_model.sh rename to misc/rtsp_ai_player/get_yolo_model.sh diff --git a/tmp/opi_rtsp/main.cpp b/misc/rtsp_ai_player/main.cpp similarity index 100% rename from tmp/opi_rtsp/main.cpp rename to misc/rtsp_ai_player/main.cpp diff --git a/tmp/opi_rtsp/opi_rtsp.pro b/misc/rtsp_ai_player/rtsp_ai_player.pro similarity index 100% rename from tmp/opi_rtsp/opi_rtsp.pro rename to misc/rtsp_ai_player/rtsp_ai_player.pro diff --git a/tmp/opi_rtsp/src-onnx-runtime/aiengineinferenceonnxruntime.cpp b/misc/rtsp_ai_player/src-onnx-runtime/aiengineinferenceonnxruntime.cpp similarity index 100% rename from tmp/opi_rtsp/src-onnx-runtime/aiengineinferenceonnxruntime.cpp rename to misc/rtsp_ai_player/src-onnx-runtime/aiengineinferenceonnxruntime.cpp diff --git a/tmp/opi_rtsp/src-onnx-runtime/aiengineinferenceonnxruntime.h b/misc/rtsp_ai_player/src-onnx-runtime/aiengineinferenceonnxruntime.h similarity index 100% rename from tmp/opi_rtsp/src-onnx-runtime/aiengineinferenceonnxruntime.h rename to misc/rtsp_ai_player/src-onnx-runtime/aiengineinferenceonnxruntime.h diff --git a/tmp/opi_rtsp/src-onnx-runtime/utils.cpp b/misc/rtsp_ai_player/src-onnx-runtime/utils.cpp similarity index 100% rename from tmp/opi_rtsp/src-onnx-runtime/utils.cpp rename to misc/rtsp_ai_player/src-onnx-runtime/utils.cpp diff --git a/tmp/opi_rtsp/src-onnx-runtime/utils.h b/misc/rtsp_ai_player/src-onnx-runtime/utils.h similarity index 100% rename from tmp/opi_rtsp/src-onnx-runtime/utils.h rename to misc/rtsp_ai_player/src-onnx-runtime/utils.h diff --git a/tmp/opi_rtsp/src-onnx-runtime/yolov8Predictor.cpp b/misc/rtsp_ai_player/src-onnx-runtime/yolov8Predictor.cpp similarity index 100% rename from tmp/opi_rtsp/src-onnx-runtime/yolov8Predictor.cpp rename to misc/rtsp_ai_player/src-onnx-runtime/yolov8Predictor.cpp diff --git a/tmp/opi_rtsp/src-onnx-runtime/yolov8Predictor.h b/misc/rtsp_ai_player/src-onnx-runtime/yolov8Predictor.h similarity index 100% rename from tmp/opi_rtsp/src-onnx-runtime/yolov8Predictor.h rename to misc/rtsp_ai_player/src-onnx-runtime/yolov8Predictor.h diff --git a/tmp/opi_rtsp/src-opencv-onnx/aiengineinferenceopencvonnx.cpp b/misc/rtsp_ai_player/src-opencv-onnx/aiengineinferenceopencvonnx.cpp similarity index 100% rename from tmp/opi_rtsp/src-opencv-onnx/aiengineinferenceopencvonnx.cpp rename to misc/rtsp_ai_player/src-opencv-onnx/aiengineinferenceopencvonnx.cpp diff --git a/tmp/opi_rtsp/src-opencv-onnx/aiengineinferenceopencvonnx.h b/misc/rtsp_ai_player/src-opencv-onnx/aiengineinferenceopencvonnx.h similarity index 100% rename from tmp/opi_rtsp/src-opencv-onnx/aiengineinferenceopencvonnx.h rename to misc/rtsp_ai_player/src-opencv-onnx/aiengineinferenceopencvonnx.h diff --git a/tmp/opi_rtsp/src-opencv-onnx/inference.cpp b/misc/rtsp_ai_player/src-opencv-onnx/inference.cpp similarity index 100% rename from tmp/opi_rtsp/src-opencv-onnx/inference.cpp rename to misc/rtsp_ai_player/src-opencv-onnx/inference.cpp diff --git a/tmp/opi_rtsp/src-opencv-onnx/inference.h b/misc/rtsp_ai_player/src-opencv-onnx/inference.h similarity index 100% rename from tmp/opi_rtsp/src-opencv-onnx/inference.h rename to misc/rtsp_ai_player/src-opencv-onnx/inference.h diff --git a/tmp/opi_rtsp/src-opi5/aiengineinferenceopi5.cpp b/misc/rtsp_ai_player/src-opi5/aiengineinferenceopi5.cpp similarity index 100% rename from tmp/opi_rtsp/src-opi5/aiengineinferenceopi5.cpp rename to misc/rtsp_ai_player/src-opi5/aiengineinferenceopi5.cpp diff --git a/tmp/opi_rtsp/src-opi5/aiengineinferenceopi5.h b/misc/rtsp_ai_player/src-opi5/aiengineinferenceopi5.h similarity index 100% rename from tmp/opi_rtsp/src-opi5/aiengineinferenceopi5.h rename to misc/rtsp_ai_player/src-opi5/aiengineinferenceopi5.h diff --git a/tmp/opi_rtsp/src-opi5/bus.png b/misc/rtsp_ai_player/src-opi5/bus.png similarity index 100% rename from tmp/opi_rtsp/src-opi5/bus.png rename to misc/rtsp_ai_player/src-opi5/bus.png diff --git a/tmp/opi_rtsp/src-opi5/common.h b/misc/rtsp_ai_player/src-opi5/common.h similarity index 100% rename from tmp/opi_rtsp/src-opi5/common.h rename to misc/rtsp_ai_player/src-opi5/common.h diff --git a/tmp/opi_rtsp/src-opi5/file_utils.c b/misc/rtsp_ai_player/src-opi5/file_utils.c similarity index 100% rename from tmp/opi_rtsp/src-opi5/file_utils.c rename to misc/rtsp_ai_player/src-opi5/file_utils.c diff --git a/tmp/opi_rtsp/src-opi5/file_utils.h b/misc/rtsp_ai_player/src-opi5/file_utils.h similarity index 100% rename from tmp/opi_rtsp/src-opi5/file_utils.h rename to misc/rtsp_ai_player/src-opi5/file_utils.h diff --git a/tmp/opi_rtsp/src-opi5/font.h b/misc/rtsp_ai_player/src-opi5/font.h similarity index 100% rename from tmp/opi_rtsp/src-opi5/font.h rename to misc/rtsp_ai_player/src-opi5/font.h diff --git a/tmp/opi_rtsp/src-opi5/image_drawing.c b/misc/rtsp_ai_player/src-opi5/image_drawing.c similarity index 100% rename from tmp/opi_rtsp/src-opi5/image_drawing.c rename to misc/rtsp_ai_player/src-opi5/image_drawing.c diff --git a/tmp/opi_rtsp/src-opi5/image_drawing.h b/misc/rtsp_ai_player/src-opi5/image_drawing.h similarity index 100% rename from tmp/opi_rtsp/src-opi5/image_drawing.h rename to misc/rtsp_ai_player/src-opi5/image_drawing.h diff --git a/tmp/opi_rtsp/src-opi5/image_utils.c b/misc/rtsp_ai_player/src-opi5/image_utils.c similarity index 100% rename from tmp/opi_rtsp/src-opi5/image_utils.c rename to misc/rtsp_ai_player/src-opi5/image_utils.c diff --git a/tmp/opi_rtsp/src-opi5/image_utils.h b/misc/rtsp_ai_player/src-opi5/image_utils.h similarity index 100% rename from tmp/opi_rtsp/src-opi5/image_utils.h rename to misc/rtsp_ai_player/src-opi5/image_utils.h diff --git a/tmp/opi_rtsp/src-opi5/postprocess.cc b/misc/rtsp_ai_player/src-opi5/postprocess.cc similarity index 100% rename from tmp/opi_rtsp/src-opi5/postprocess.cc rename to misc/rtsp_ai_player/src-opi5/postprocess.cc diff --git a/tmp/opi_rtsp/src-opi5/postprocess.h b/misc/rtsp_ai_player/src-opi5/postprocess.h similarity index 100% rename from tmp/opi_rtsp/src-opi5/postprocess.h rename to misc/rtsp_ai_player/src-opi5/postprocess.h diff --git a/tmp/opi_rtsp/src-opi5/yolov8.cc b/misc/rtsp_ai_player/src-opi5/yolov8.cc similarity index 100% rename from tmp/opi_rtsp/src-opi5/yolov8.cc rename to misc/rtsp_ai_player/src-opi5/yolov8.cc diff --git a/tmp/opi_rtsp/src-opi5/yolov8.h b/misc/rtsp_ai_player/src-opi5/yolov8.h similarity index 100% rename from tmp/opi_rtsp/src-opi5/yolov8.h rename to misc/rtsp_ai_player/src-opi5/yolov8.h