mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-03-10 02:29:19 +03:00
Merge ab59fdf570 into dd9497baf2
This commit is contained in:
commit
826d9adfaa
66
.github/workflows/build-rk.yml
vendored
Normal file
66
.github/workflows/build-rk.yml
vendored
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
name: Build Rockchip
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- dev
|
||||||
|
- fix-rk3588s-support
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
rockchip_build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Build Rockchip Image
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
steps:
|
||||||
|
- name: Check out code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- id: lowercaseRepo
|
||||||
|
uses: ASzc/change-string-case-action@v6
|
||||||
|
with:
|
||||||
|
string: ${{ github.repository }}
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Log in to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Create version file
|
||||||
|
run: make version
|
||||||
|
|
||||||
|
- name: Create short sha
|
||||||
|
id: sha
|
||||||
|
run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Build and push Rockchip image
|
||||||
|
uses: docker/bake-action@v5
|
||||||
|
with:
|
||||||
|
push: true
|
||||||
|
targets: rk
|
||||||
|
files: docker/rockchip/rk.hcl
|
||||||
|
set: |
|
||||||
|
rk.tags=ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ steps.sha.outputs.SHORT_SHA }}-rk
|
||||||
|
rk.tags=ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:latest-rk
|
||||||
|
*.cache-from=type=gha
|
||||||
|
*.cache-to=type=gha,mode=max
|
||||||
|
|
||||||
|
- name: Show image tags
|
||||||
|
run: |
|
||||||
|
echo "Images published:"
|
||||||
|
echo " ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ steps.sha.outputs.SHORT_SHA }}-rk"
|
||||||
|
echo " ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:latest-rk"
|
||||||
@ -1356,7 +1356,7 @@ To convert a onnx model to the rknn format using the [rknn-toolkit2](https://git
|
|||||||
This is an example configuration file that you need to adjust to your specific onnx model:
|
This is an example configuration file that you need to adjust to your specific onnx model:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
soc: ["rk3562", "rk3566", "rk3568", "rk3576", "rk3588"]
|
soc: ["rk3562", "rk3566", "rk3568", "rk3576", "rk3588", "rk3588s"]
|
||||||
quantization: false
|
quantization: false
|
||||||
|
|
||||||
output_name: "{input_basename}"
|
output_name: "{input_basename}"
|
||||||
|
|||||||
@ -271,6 +271,7 @@ Frigate supports hardware video processing on all Rockchip boards. However, hard
|
|||||||
- RK3568
|
- RK3568
|
||||||
- RK3576
|
- RK3576
|
||||||
- RK3588
|
- RK3588
|
||||||
|
- RK3588S
|
||||||
|
|
||||||
| Name | YOLOv9 Inference Time | YOLO-NAS Inference Time | YOLOx Inference Time |
|
| Name | YOLOv9 Inference Time | YOLO-NAS Inference Time | YOLOx Inference Time |
|
||||||
| -------------- | --------------------- | --------------------------- | ----------------------- |
|
| -------------- | --------------------- | --------------------------- | ----------------------- |
|
||||||
|
|||||||
@ -79,7 +79,7 @@ FFMPEG_HWACCEL_AMF = "preset-amd-amf"
|
|||||||
FFMPEG_HVC1_ARGS = ["-tag:v", "hvc1"]
|
FFMPEG_HVC1_ARGS = ["-tag:v", "hvc1"]
|
||||||
|
|
||||||
# RKNN constants
|
# RKNN constants
|
||||||
SUPPORTED_RK_SOCS = ["rk3562", "rk3566", "rk3568", "rk3576", "rk3588"]
|
SUPPORTED_RK_SOCS = ["rk3562", "rk3566", "rk3568", "rk3576", "rk3588", "rk3588s"]
|
||||||
|
|
||||||
# Regex constants
|
# Regex constants
|
||||||
|
|
||||||
|
|||||||
@ -102,6 +102,9 @@ class Rknn(DetectionApi):
|
|||||||
def parse_model_input(self, model_path, soc):
|
def parse_model_input(self, model_path, soc):
|
||||||
model_props = {}
|
model_props = {}
|
||||||
|
|
||||||
|
# Map rk3588s to rk3588 for model compatibility
|
||||||
|
model_soc = "rk3588" if soc == "rk3588s" else soc
|
||||||
|
|
||||||
# find out if user provides his own model
|
# find out if user provides his own model
|
||||||
# user provided models should be a path and contain a "/"
|
# user provided models should be a path and contain a "/"
|
||||||
if "/" in model_path:
|
if "/" in model_path:
|
||||||
@ -158,7 +161,7 @@ class Rknn(DetectionApi):
|
|||||||
model_props["model_type"] = model_type
|
model_props["model_type"] = model_type
|
||||||
|
|
||||||
if model_matched:
|
if model_matched:
|
||||||
model_props["filename"] = model_path + f"-{soc}-v2.3.2-2.rknn"
|
model_props["filename"] = model_path + f"-{model_soc}-v2.3.2-2.rknn"
|
||||||
|
|
||||||
model_props["path"] = model_cache_dir + model_props["filename"]
|
model_props["path"] = model_cache_dir + model_props["filename"]
|
||||||
|
|
||||||
|
|||||||
@ -190,13 +190,16 @@ def convert_onnx_to_rknn(
|
|||||||
logger.debug("Could not determine SoC type")
|
logger.debug("Could not determine SoC type")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
# Map rk3588s to rk3588 for RKNN toolkit compatibility
|
||||||
|
target_soc = "rk3588" if soc == "rk3588s" else soc
|
||||||
|
|
||||||
# Get model config for the specified type
|
# Get model config for the specified type
|
||||||
if model_type not in MODEL_TYPE_CONFIGS:
|
if model_type not in MODEL_TYPE_CONFIGS:
|
||||||
logger.debug(f"Unsupported model type: {model_type}")
|
logger.debug(f"Unsupported model type: {model_type}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
config = MODEL_TYPE_CONFIGS[model_type].copy()
|
config = MODEL_TYPE_CONFIGS[model_type].copy()
|
||||||
config["target_platform"] = soc
|
config["target_platform"] = target_soc
|
||||||
|
|
||||||
# RKNN toolkit requires .onnx extension, create temporary copy if needed
|
# RKNN toolkit requires .onnx extension, create temporary copy if needed
|
||||||
temp_onnx_path = None
|
temp_onnx_path = None
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user