Copyright (C) 2023, Axis Communications AB, Lund, Sweden. All Rights Reserved.
This README file briefly explains how this ACAP application works.
Below is the structure and scripts used in the example:
larod-test
├── app
│ ├── larod_test.sh
│ ├── Makefile
│ ├── manifest.json
│ └── models
│ │ ├── artpec7
│ │ ├── artpec8
│ │ └── cv25
├── Dockerfile
└── README.md
- app/larod_test.sh - Shell script application that runs
larod-client
on all the models compatible with the Axis camera chip. - app/Makefile - Empty Makefile. Necessary for the build process.
- app/manifest.json - Defines the application and its configuration.
- app/models - Contains all the models that will be tested, organized by architecture.
- Dockerfile - Dockerfile with the specified Axis toolchain and API container to build the example.
- README.md - Step by step instructions on how to run the example.
The ACAP application is built in a GitHub action, benchmark.yml, and installed in different models of cameras (one for each chip). The results are then read by the GitHub action and used to update the main README.md
of this repository.
In benchmark.yml, you can see how:
-
First, it builds the Docker image with the following commands:
[!NOTE]
To comply with the licensing terms of Ultralytics, the YOLOv5 model files integrated into this ACAP application are licensed under AGPL-3.0-only. See LICENSE.
DOCKER_BUILDKIT=1 docker build --no-cache --tag <APP_IMAGE> --build-arg device=<DEVICE> --build-arg ARCH=<ARCH> . docker cp $(docker create <APP_IMAGE>):/opt/app ./build
<APP_IMAGE>
is the name to tag the image with, e.g.,larod-test:1.0
<DEVICE>
is the chip type. Supported values areartpec8
,artpec9
,cpu
,cv25
andedgetpu
.<ARCH>
is the architecture. Supported values arearmv7hf
(default) andaarch64
.
-
Once you have the EAP file, the uploading is done through
upload.cgi
. -
control.cgi
starts the ACAP application. -
systemlog.cgi
reads the logs. -
readme_update.py reads the logs and updates the main README.md file.