4.2 KiB
开发和部署所需的命令
ffmpeg -f dshow -i video="1080P USB Camera" -c:v libx264 -preset ultrafast -pix_fmt yuv420p -f rtsp rtsp://localhost:8554/cam
ffmpeg -f dshow -video_size 1280x720 -vcodec mjpeg -i video="1080P USB Camera" -c:v libx264 -preset ultrafast -pix_fmt yuv420p -f rtsp rtsp://localhost:8554/cam
cmake -S . -B build
-DCMAKE_BUILD_TYPE=Release
-DBUILD_TESTS=OFF
-DBUILD_SAMPLES=ON
-DRK3588_ENABLE_FFMPEG=ON
-DRK3588_ENABLE_MPP=ON
-DRK3588_ENABLE_RGA=ON
-DRK3588_ENABLE_ZLMEDIAKIT=ON
-DRK3588_ENABLE_RKNN=ON
-DRK_ZLMK_API_LIB_PATH=$PWD/third_party/rknpu2/examples/3rdparty/zlmediakit/aarch64/libmk_api.so
-DRK_ZLMEDIAKIT_INCLUDE_DIR=$PWD/third_party/rknpu2/examples/3rdparty/zlmediakit/include
cmake --build build -j$(nproc)
- 运行media-server ./build/media-server -c configs/sample_cam4_best.json
//退出 pidof media-server
kill -TERM
ss -lntp | grep ':9000'
http://10.0.0.81:9000/hls/cam1/index.m3u8
rtsp://10.0.0.81:8555/live/cam1
D:\minio\bin>minio.exe server D:\minio\data --address ":9000" --console-address ":9001"
//生成人脸模型
python build_gallery.py --dataset "D:\App\python\AddFaceTo3588\faces\dataset" --db_out "D:\App\python\AddFaceTo3588\faces\face_gallery.db" --det_model "D:\App\python\AddFaceTo3588\models\RetinaFace_mobile320.onnx" --recog_model "D:\App\python\AddFaceTo3588\models\mobilefacenet_arcface_prenorm.onnx" --det_outputs_config "D:\App\python\AddFaceTo3588\models\retinaface_mobile320_config.json" --det_score_thresh 0.6 --max_imgs_per_person 10 --pick_face largest --min_face_size 80 --expected_dim 512 --fail_on_empty true
编译
cd /d D:\App\C++\Rk3588Sys\agent $env:GOOS="linux" $env:GOARCH="arm64" $env:CGO_ENABLED="0" $VERSION="0.0.0-dev" $GITSHA="dev" go build -trimpath -buildvcs=false -ldflags "-s -w -X main.Version=$VERSION -X main.GitSHA=$GITSHA" -o ".\rk3588-agent" ".\cmd\rk3588-agent" go version -m .\rk3588-agent
ls -l ./rk3588-agent_linux_arm64 chmod +x ./rk3588-agent_linux_arm64 ./rk3588-agent_linux_arm64 --config agent_cam1.config.json
用 systemd(Ubuntu 22.04 / root)部署并后台常驻运行 agent
- 放置文件
在板子上执行(按你实际文件名/路径调整):
sh sudo mkdir -p /opt/rk3588-agent sudo cp /path/to/rk3588-agent /opt/rk3588-agent/rk3588-agent sudo cp /path/to/agent_cam1.config.json /opt/rk3588-agent/agent.config.json sudo chmod +x /opt/rk3588-agent/rk3588-agent
关键点:运行命令需要 `--config`,这里统一放成 `/opt/rk3588-agent/agent.config.json`
- 创建 systemd 服务文件
创建 /etc/systemd/system/rk3588-agent.service:
sh sudo tee /etc/systemd/system/rk3588-agent.service >/dev/null <<'EOF' [Unit] Description=RK3588 Agent After=network-online.target Wants=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/rk3588-agent
ExecStart=/opt/rk3588-agent/rk3588-agent --config /opt/rk3588-agent/agent.config.json
Restart=always
RestartSec=2
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
- 启动 + 开机自启
sh sudo systemctl daemon-reload sudo systemctl enable --now rk3588-agent
- 查看状态与日志
sh sudo systemctl status rk3588-agent --no-pager sudo journalctl -u rk3588-agent -f
- 停止/重启
sh sudo systemctl stop rk3588-agent sudo systemctl restart rk3588-agent
这样运行后,SSH 断开不会影响进程(由 systemd 托管)。如果你的 agent.config.json 里有相对路径(如 models 目录),记得写成绝对路径,或放到 /opt/rk3588-agent/ 并按配置调整。
后端启动命令
go run .\cmd\managerd\main.go .\managerd.json
##查看npu占用 sudo watch -n 1 cat /sys/kernel/debug/rknpu/load
.\minio.exe server E:\minio\data --address ":9000" --console-address ":9001"
转onnx
python scripts/pt2rknn_yolov8.py pt2onnx --pt yolov8n.pt --imgsz 640
转rknn
python scripts/pt2rknn_yolov8.py onnx2rknn --onnx yolov8n.onnx --out models/object_det_yolov8n_coco_640_rk3588.rknn --imgsz 640