|
Download targets/QCS8550/FP16/code/README.md from APLUX-Agora/BEVFormer-tiny-R50: direct link, hf CLI and curl.
- Browser
- Download file 4.08 kB
-
https://huggingface.co/APLUX-Agora/BEVFormer-tiny-R50/resolve/main/targets/QCS8550/FP16/code/README.md
- Command line
-
hf download hf://APLUX-Agora/BEVFormer-tiny-R50/targets/QCS8550/FP16/code/README.md
-
curl -L -o README.md https://huggingface.co/APLUX-Agora/BEVFormer-tiny-R50/resolve/main/targets/QCS8550/FP16/code/README.md
4.08 kB
| ## Model Information | |
| ### Source model | |
| - Input shape: [[1,6,3,480,800]] | |
| - Number of parameters: 33.7M | |
| - Model size: 128.5 FP32 | |
| - Output shape: boxes [[300,9]], scores [[300]], labels [[300]] | |
| Source model repository: [BEVFormer](https://github.com/fundamentalvision/bevformer) | |
| ## Inference with AidLite SDK | |
| ### SDK installation | |
| Model Farm uses AidLite SDK as the model inference SDK. For details, please refer to the [AidLite Developer Documentation](https://docs.aidlux.com/software/ai-sdk/aidlite_guide) | |
| ```bash | |
| sudo aid-pkg update | |
| sudo aid-pkg install aidlite-sdk | |
| sudo aid-pkg install aidlite-{QNN VERSION} | |
| ``` | |
| Verify AidLite SDK: | |
| ```bash | |
| python3 -c "import aidlite ; print(aidlite.get_library_version())" | |
| python3 -c "import aidlite ; print(aidlite.get_py_library_version())" | |
| ``` | |
| ### Environment Dependencies | |
| Except for AidLite SDK, this BEVFormer demo also requires the following board-side Python environment. | |
| Verified environment: | |
| ```bash | |
| Python 3.10.12 | |
| numpy 1.26.4 | |
| opencv-python / cv2 4.13.0 | |
| Pillow / PIL 10.4.0 | |
| ``` | |
| Required Python packages: | |
| ```bash | |
| numpy | |
| opencv-python | |
| Pillow | |
| ``` | |
| Quick check: | |
| ```bash | |
| python3 -c "import numpy, cv2; from PIL import Image; print('python env ok')" | |
| ``` | |
| The demo supports model directories for QCS8550, IQ9, QCS8625, and IQ8. A normal host or development container can only run dry-run package checks and cannot execute real QNN inference without AidLite. | |
| ## Model Directory Rule | |
| Model SHA verification is always enabled. The platform is inferred from the model path, so no extra SHA option is required. | |
| Supported model directories: | |
| ```bash | |
| ./models/QCS8550/FP16 | |
| ./models/IQ9/FP16 | |
| ./models/QCS8625/FP16 | |
| ./models/IQ8/FP16 | |
| ``` | |
| Platform mapping: | |
| ```text | |
| QCS8550 -> QCS8550 model SHA table | |
| IQ9 -> QCS8550 model SHA table | |
| QCS8625 -> QCS8625 model SHA table | |
| IQ8 -> QCS8625 model SHA table | |
| ``` | |
| Each platform directory must contain all four context files: | |
| ```bash | |
| backbone_context.bin.aidem | |
| scene_start_encoder_context.bin.aidem | |
| temporal_encoder_context.bin.aidem | |
| decoder_context.bin.aidem | |
| ``` | |
| If all four `--*_model` arguments are provided, the model paths decide the platform. All four paths must belong to the same platform directory. If model arguments are omitted, the script uses the first complete directory found in this order: | |
| ```text | |
| QCS8550, IQ9, QCS8625, IQ8 | |
| ``` | |
| ## Run Demo | |
| Basic command: | |
| ```bash | |
| cd /home/aidlux/bevformer_delivery_demo_2026_07_08 | |
| python3 code/python/run_test.py --invoke_nums 4 --output_dir ./outputs/final_sample4 | |
| ``` | |
| Full command with explicit model paths and dataset manifest: | |
| ```bash | |
| python3 code/python/run_test.py \ | |
| --backbone_model ./models/QCS8625/FP16/backbone_context.bin.aidem \ | |
| --scene_start_encoder_model ./models/QCS8625/FP16/scene_start_encoder_context.bin.aidem \ | |
| --encoder_model ./models/QCS8625/FP16/temporal_encoder_context.bin.aidem \ | |
| --decoder_model ./models/QCS8625/FP16/decoder_context.bin.aidem \ | |
| --asset_manifest ./code/python/datasets/sample4/asset_manifest.json \ | |
| --invoke_nums 4 \ | |
| --output_dir ./outputs/final_sample4_qcs8625 | |
| ``` | |
| The basic command auto-discovers the first complete model directory under `models/<platform>/FP16`. For QCS8550, IQ9, or IQ8, replace `QCS8625` in the full command with `QCS8550`, `IQ9`, or `IQ8`. The four model paths must use the same platform directory. | |
| Dry-run package check: | |
| ```bash | |
| python3 code/python/run_test.py --dry_run --check_raw_assets | |
| ``` | |
| The demo input is specified by: | |
| ```bash | |
| ./code/python/datasets/sample4/asset_manifest.json | |
| ``` | |
| The manifest describes four continuous BEVFormer frames. Each frame contains six raw camera JPG images and the required calibration / temporal auxiliary tensors. The demo starts from original six-camera images, not preprocessed image tensors. | |
| Frame execution order: | |
| ```bash | |
| frame 000: scene-start encoder | |
| frame 001: temporal encoder | |
| frame 002: temporal encoder | |
| frame 003: temporal encoder | |
| ``` | |
| Main output files include: | |
| ```bash | |
| bevformer_demo_summary.json | |
| run.log | |
| frameXXX_final_coordinates.npz | |
| frameXXX_camera_grid.png | |
| sample4_camera_grid.gif | |
| ``` | |