diff --git a/.github/workflows/axevent.yml b/.github/workflows/axevent.yml index 61f1c6fb..7c7bd988 100644 --- a/.github/workflows/axevent.yml +++ b/.github/workflows/axevent.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/axoverlay.yml b/.github/workflows/axoverlay.yml index 8ac554a5..af94851a 100644 --- a/.github/workflows/axoverlay.yml +++ b/.github/workflows/axoverlay.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/axparameter.yml b/.github/workflows/axparameter.yml index 35e42c55..abc0eb8d 100644 --- a/.github/workflows/axparameter.yml +++ b/.github/workflows/axparameter.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/axserialport.yml b/.github/workflows/axserialport.yml index 236bdee9..620ded9b 100644 --- a/.github/workflows/axserialport.yml +++ b/.github/workflows/axserialport.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/axstorage.yml b/.github/workflows/axstorage.yml index 59863abf..2ac41a77 100644 --- a/.github/workflows/axstorage.yml +++ b/.github/workflows/axstorage.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/bounding-box.yml b/.github/workflows/bounding-box.yml index a3f73873..74ffa983 100644 --- a/.github/workflows/bounding-box.yml +++ b/.github/workflows/bounding-box.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/container-example.yml b/.github/workflows/container-example.yml index 11a149e3..b5b529dd 100644 --- a/.github/workflows/container-example.yml +++ b/.github/workflows/container-example.yml @@ -15,7 +15,7 @@ jobs: include: - arch: aarch64 platformarch: "linux/arm64/v8" - axis-os: 12.1.60 + axis-os: 12.2.52 env: EXREPO: acap-native-examples EXNAME: container-example diff --git a/.github/workflows/curl-openssl.yml b/.github/workflows/curl-openssl.yml index 834cf4cb..dae73cfb 100644 --- a/.github/workflows/curl-openssl.yml +++ b/.github/workflows/curl-openssl.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/hello-world.yml b/.github/workflows/hello-world.yml index 5e3984ef..3e9f7a2d 100644 --- a/.github/workflows/hello-world.yml +++ b/.github/workflows/hello-world.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/licensekey.yml b/.github/workflows/licensekey.yml index 2bf93533..d67d45fb 100644 --- a/.github/workflows/licensekey.yml +++ b/.github/workflows/licensekey.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/message-broker.yml b/.github/workflows/message-broker.yml index abc69dc2..f029c156 100644 --- a/.github/workflows/message-broker.yml +++ b/.github/workflows/message-broker.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/object-detection-cv25.yml b/.github/workflows/object-detection-cv25.yml index ade30d7d..f937ae23 100644 --- a/.github/workflows/object-detection-cv25.yml +++ b/.github/workflows/object-detection-cv25.yml @@ -15,7 +15,7 @@ jobs: include: - arch: aarch64 chip: cv25 - axis-os: 12.1.60 + axis-os: 12.2.52 env: EXREPO: acap-native-examples EXNAME: object-detection-cv25 @@ -26,7 +26,7 @@ jobs: - name: Build ${{ env.example }} application env: example: ${{ env.EXNAME }} - imagetag: ${{ env.EXREPO }}_${{ env.EXNAME }}-${{ matrix.chip }}:${{ matrix.arch }} + imagetag: ${{ env.EXREPO }}_${{ env.EXNAME }}_${{ matrix.chip }}:${{ matrix.arch }} run: | docker image rm -f $imagetag cd $EXNAME diff --git a/.github/workflows/object-detection.yml b/.github/workflows/object-detection.yml index 12349ecb..3adcc056 100644 --- a/.github/workflows/object-detection.yml +++ b/.github/workflows/object-detection.yml @@ -15,13 +15,16 @@ jobs: include: - arch: armv7hf chip: cpu - axis-os: 12.1.60 + axis-os: 12.2.52 - arch: armv7hf chip: edgetpu - axis-os: 12.1.60 + axis-os: 12.2.52 - arch: aarch64 chip: artpec8 - axis-os: 12.1.60 + axis-os: 12.2.52 + - arch: aarch64 + chip: artpec9 + axis-os: 12.2.52 env: EXREPO: acap-native-examples EXNAME: object-detection @@ -32,7 +35,7 @@ jobs: - name: Build ${{ env.example }} application env: example: ${{ env.EXNAME }}-${{ matrix.chip }} - imagetag: ${{ env.EXREPO }}_${{ env.EXNAME }}-${{ matrix.chip }}:${{ matrix.arch }} + imagetag: ${{ env.EXREPO }}_${{ env.EXNAME }}_${{ matrix.chip }}:${{ matrix.arch }} run: | docker image rm -f $imagetag cd $EXNAME diff --git a/.github/workflows/remote-debug-example.yml b/.github/workflows/remote-debug-example.yml index 2735f1a3..c437a6d6 100644 --- a/.github/workflows/remote-debug-example.yml +++ b/.github/workflows/remote-debug-example.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/shell-script-example.yml b/.github/workflows/shell-script-example.yml index 34682f56..ba24966a 100644 --- a/.github/workflows/shell-script-example.yml +++ b/.github/workflows/shell-script-example.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/tensorflow-to-larod-artpec8.yml b/.github/workflows/tensorflow-to-larod-artpec8.yml index 51b5d11e..58767d0e 100644 --- a/.github/workflows/tensorflow-to-larod-artpec8.yml +++ b/.github/workflows/tensorflow-to-larod-artpec8.yml @@ -14,8 +14,6 @@ jobs: matrix: include: - arch: aarch64 - chip: artpec8 - axis-os: 12.1.60 env: EXREPO: acap-native-examples EXNAME: tensorflow-to-larod-artpec8 diff --git a/.github/workflows/tensorflow-to-larod-artpec9.yml b/.github/workflows/tensorflow-to-larod-artpec9.yml new file mode 100644 index 00000000..0c314bdb --- /dev/null +++ b/.github/workflows/tensorflow-to-larod-artpec9.yml @@ -0,0 +1,14 @@ +# This is a dummy file for linters, the real test is run in +# tensorflow-to-larod-artpec8 +name: Build tensorflow-to-larod-artpec9 application +on: + workflow_dispatch: + push: + branches: + - 'dummy-branch-that-does-not-exist' + +jobs: + dummy: + runs-on: ubuntu-latest + steps: + - run: echo "This is a dummy workflow" diff --git a/.github/workflows/tensorflow-to-larod-cv25.yml b/.github/workflows/tensorflow-to-larod-cv25.yml index a15e2562..5e77113a 100644 --- a/.github/workflows/tensorflow-to-larod-cv25.yml +++ b/.github/workflows/tensorflow-to-larod-cv25.yml @@ -14,8 +14,6 @@ jobs: matrix: include: - arch: aarch64 - chip: cv25 - axis-os: 12.1.60 env: EXREPO: acap-native-examples EXNAME: tensorflow-to-larod-cv25 diff --git a/.github/workflows/tensorflow-to-larod.yml b/.github/workflows/tensorflow-to-larod.yml index 8eea1494..08ee24f5 100644 --- a/.github/workflows/tensorflow-to-larod.yml +++ b/.github/workflows/tensorflow-to-larod.yml @@ -14,8 +14,6 @@ jobs: matrix: include: - arch: armv7hf - chip: edgetpu - axis-os: 12.1.60 env: EXREPO: acap-native-examples EXNAME: tensorflow-to-larod diff --git a/.github/workflows/using-opencv.yml b/.github/workflows/using-opencv.yml index b76be637..0da2efc6 100644 --- a/.github/workflows/using-opencv.yml +++ b/.github/workflows/using-opencv.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/utility-libraries.yml b/.github/workflows/utility-libraries.yml index 0e518afe..770789ed 100644 --- a/.github/workflows/utility-libraries.yml +++ b/.github/workflows/utility-libraries.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/vapix.yml b/.github/workflows/vapix.yml index c296b8c1..faace1d9 100644 --- a/.github/workflows/vapix.yml +++ b/.github/workflows/vapix.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/vdo-larod.yml b/.github/workflows/vdo-larod.yml index 41280139..dffcb0b1 100644 --- a/.github/workflows/vdo-larod.yml +++ b/.github/workflows/vdo-larod.yml @@ -15,16 +15,19 @@ jobs: include: - arch: armv7hf chip: cpu - axis-os: 12.1.60 + axis-os: 12.2.52 - arch: armv7hf chip: edgetpu - axis-os: 12.1.60 + axis-os: 12.2.52 - arch: aarch64 chip: artpec8 - axis-os: 12.1.60 + axis-os: 12.2.52 + - arch: aarch64 + chip: artpec9 + axis-os: 12.2.52 - arch: aarch64 chip: cv25 - axis-os: 12.1.60 + axis-os: 12.2.52 env: EXREPO: acap-native-examples EXNAME: vdo-larod diff --git a/.github/workflows/vdo-opencl-filtering.yml b/.github/workflows/vdo-opencl-filtering.yml index 022641d0..ccf52aae 100644 --- a/.github/workflows/vdo-opencl-filtering.yml +++ b/.github/workflows/vdo-opencl-filtering.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/vdostream.yml b/.github/workflows/vdostream.yml index 64dee445..413b9133 100644 --- a/.github/workflows/vdostream.yml +++ b/.github/workflows/vdostream.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] vdo-format: ["h264", "h265", "y800", "jpeg", "nv12"] env: diff --git a/.github/workflows/web-server-using-fastcgi.yml b/.github/workflows/web-server-using-fastcgi.yml index 2dd54c27..af7747e3 100644 --- a/.github/workflows/web-server-using-fastcgi.yml +++ b/.github/workflows/web-server-using-fastcgi.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/.github/workflows/web-server.yml b/.github/workflows/web-server.yml index 6f6c08e2..c8aeade6 100644 --- a/.github/workflows/web-server.yml +++ b/.github/workflows/web-server.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - axis-os: ["12.1.60"] + axis-os: ["12.2.52"] arch: ["armv7hf", "aarch64"] env: EXREPO: acap-native-examples diff --git a/README.md b/README.md index 71ad7dfc..5dec4bf4 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,8 @@ Below is the list of examples available in the repository. - An example that shows model conversion, model quantization, image formats and custom models. - [tensorflow-to-larod-artpec8](./tensorflow-to-larod-artpec8/) - An example that shows model conversion, model quantization, image formats and custom models on AXIS ARTPEC-8 devices. +- [tensorflow-to-larod-artpec9](./tensorflow-to-larod-artpec9/) + - An example that shows model conversion, model quantization, image formats and custom models on AXIS ARTPEC-9 devices. Note that this example is pointing to [tensorflow-to-larod-artpec8](./tensorflow-to-larod-artpec8). - [tensorflow-to-larod-cv25](./tensorflow-to-larod-cv25/) - An example that shows model conversion, model quantization, image formats and custom models on AXIS CV25 devices. - [using-opencv](./using-opencv/) diff --git a/axevent/send_event/Dockerfile b/axevent/send_event/Dockerfile index 0485b5dd..ab18eb8b 100644 --- a/axevent/send_event/Dockerfile +++ b/axevent/send_event/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/axevent/send_event/app/manifest.json b/axevent/send_event/app/manifest.json index 461d93f6..7d7a568c 100644 --- a/axevent/send_event/app/manifest.json +++ b/axevent/send_event/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "send_event", diff --git a/axevent/subscribe_to_event/Dockerfile b/axevent/subscribe_to_event/Dockerfile index 0485b5dd..ab18eb8b 100644 --- a/axevent/subscribe_to_event/Dockerfile +++ b/axevent/subscribe_to_event/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/axevent/subscribe_to_event/app/manifest.json b/axevent/subscribe_to_event/app/manifest.json index 15270755..02bdf226 100644 --- a/axevent/subscribe_to_event/app/manifest.json +++ b/axevent/subscribe_to_event/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "subscribe_to_event", diff --git a/axevent/subscribe_to_events/Dockerfile b/axevent/subscribe_to_events/Dockerfile index d8a728a9..e6025277 100644 --- a/axevent/subscribe_to_events/Dockerfile +++ b/axevent/subscribe_to_events/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/axevent/subscribe_to_events/app/manifest.json b/axevent/subscribe_to_events/app/manifest.json index e5d1b95f..2105f214 100644 --- a/axevent/subscribe_to_events/app/manifest.json +++ b/axevent/subscribe_to_events/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "subscribe_to_events", diff --git a/axoverlay/Dockerfile b/axoverlay/Dockerfile index 0485b5dd..ab18eb8b 100644 --- a/axoverlay/Dockerfile +++ b/axoverlay/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/axoverlay/app/manifest.json b/axoverlay/app/manifest.json index ccbb8aad..c8e005e7 100644 --- a/axoverlay/app/manifest.json +++ b/axoverlay/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "resources": { "dbus": { "requiredMethods": [ diff --git a/axparameter/Dockerfile b/axparameter/Dockerfile index 0485b5dd..ab18eb8b 100644 --- a/axparameter/Dockerfile +++ b/axparameter/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/axparameter/app/manifest.json b/axparameter/app/manifest.json index f19881a2..1794ce6a 100644 --- a/axparameter/app/manifest.json +++ b/axparameter/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "axparameter", diff --git a/axserialport/Dockerfile b/axserialport/Dockerfile index 21303bcc..3723b96c 100644 --- a/axserialport/Dockerfile +++ b/axserialport/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/axserialport/app/manifest.json b/axserialport/app/manifest.json index f7f362f5..7cbd248c 100644 --- a/axserialport/app/manifest.json +++ b/axserialport/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "resources": { "linux": { "user": { diff --git a/axstorage/Dockerfile b/axstorage/Dockerfile index 21303bcc..3723b96c 100644 --- a/axstorage/Dockerfile +++ b/axstorage/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/axstorage/app/manifest.json b/axstorage/app/manifest.json index 5f30a3c4..19f74538 100644 --- a/axstorage/app/manifest.json +++ b/axstorage/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "resources": { "linux": { "user": { diff --git a/bounding-box/Dockerfile b/bounding-box/Dockerfile index 0485b5dd..ab18eb8b 100644 --- a/bounding-box/Dockerfile +++ b/bounding-box/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/bounding-box/app/manifest.json b/bounding-box/app/manifest.json index 5b3d0d0c..21853688 100644 --- a/bounding-box/app/manifest.json +++ b/bounding-box/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "resources": { "dbus": { "requiredMethods": [ diff --git a/container-example/Dockerfile b/container-example/Dockerfile index a0655e4a..3b394f82 100644 --- a/container-example/Dockerfile +++ b/container-example/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 ARG ARCH=aarch64 -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp diff --git a/container-example/manifest.json b/container-example/manifest.json index 1d470eba..4d563a92 100644 --- a/container-example/manifest.json +++ b/container-example/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "appName": "containerExample", diff --git a/curl-openssl/Dockerfile b/curl-openssl/Dockerfile index 230f3b3e..66ddcf9d 100644 --- a/curl-openssl/Dockerfile +++ b/curl-openssl/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/curl-openssl/app/manifest.json b/curl-openssl/app/manifest.json index 60e7407a..dbc06fd2 100644 --- a/curl-openssl/app/manifest.json +++ b/curl-openssl/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "appName": "curl_openssl", diff --git a/hello-world/Dockerfile b/hello-world/Dockerfile index c1970ce3..af8c3ee4 100644 --- a/hello-world/Dockerfile +++ b/hello-world/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/hello-world/app/manifest.json b/hello-world/app/manifest.json index ab7ae16d..d842bd93 100644 --- a/hello-world/app/manifest.json +++ b/hello-world/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "appName": "hello_world", diff --git a/licensekey/Dockerfile b/licensekey/Dockerfile index 0485b5dd..ab18eb8b 100644 --- a/licensekey/Dockerfile +++ b/licensekey/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/licensekey/app/manifest.json b/licensekey/app/manifest.json index 8cf4a549..fa512c3f 100644 --- a/licensekey/app/manifest.json +++ b/licensekey/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "licensekey_handler", diff --git a/message-broker/consume-scene-metadata/Dockerfile b/message-broker/consume-scene-metadata/Dockerfile index 016717dd..4a372fc0 100644 --- a/message-broker/consume-scene-metadata/Dockerfile +++ b/message-broker/consume-scene-metadata/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH= -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/message-broker/consume-scene-metadata/app/manifest.json b/message-broker/consume-scene-metadata/app/manifest.json index 41cc6311..7e3a89a2 100644 --- a/message-broker/consume-scene-metadata/app/manifest.json +++ b/message-broker/consume-scene-metadata/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "appName": "consume_scene_metadata", diff --git a/object-detection-cv25/Dockerfile b/object-detection-cv25/Dockerfile index 6656c3dd..b0c469e1 100644 --- a/object-detection-cv25/Dockerfile +++ b/object-detection-cv25/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=aarch64 -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/object-detection-cv25/README.md b/object-detection-cv25/README.md index 6487c260..2643bf22 100644 --- a/object-detection-cv25/README.md +++ b/object-detection-cv25/README.md @@ -190,7 +190,7 @@ Unlike ARTPEC, the CV25 accelerator lacks the capability to perform bounding-box - Here, N denotes the total number of detections, and the 4 values are `[dy, dx, dh, dw]`. - In this context, `dy` and `dx` signify the vertical and horizontal shifts relative to the corresponding anchor box, while `dh` and `dw` represent the scaling of height and width in relation to the anchor box. -After creating the bounding box using the locations and the anchor boxes, non-maxima suppression is applied so that overlapping boxes with lower scores are removed. +After creating the bounding box using the locations and the anchor boxes, non-maximum suppression is applied so that overlapping boxes with lower scores are removed. If the score is higher than a threshold `args.threshold/100.0`, the results are outputted by the `syslog` function, and the object is cropped and saved into jpg form by `crop_interleaved`, `set_jpeg_configuration`, `buffer_to_jpeg`, `jpeg_to_file` methods. @@ -273,12 +273,13 @@ Depending on selected chip, different output is received. The label file is used In the system log the chip is sometimes only mentioned as a string, they are mapped as follows: -| Chips | Larod 1 (int) | Larod 3 (string) | +| Chips | Larod 1 (int) | Larod 3 | |-------|--------------|------------------| | CPU with TensorFlow Lite | 2 | cpu-tflite | | Google TPU | 4 | google-edge-tpu-tflite | | Ambarella CVFlow (NN) | 6 | ambarella-cvflow | | ARTPEC-8 DLPU | 12 | axis-a8-dlpu-tflite | +| ARTPEC-9 DLPU | - | a9-dlpu-tflite | There are four outputs from MobileNet SSD v2 (COCO) model. The number of detections, cLasses, scores, and locations are shown as below. The four location numbers stand for \[top, left, bottom, right\]. By the way, currently the saved images will be overwritten continuously, so those saved images might not all from the detections of the last frame, if the number of detections is less than previous detection numbers. diff --git a/object-detection-cv25/app/manifest.json.cv25 b/object-detection-cv25/app/manifest.json.cv25 index 97436564..ce259e0e 100644 --- a/object-detection-cv25/app/manifest.json.cv25 +++ b/object-detection-cv25/app/manifest.json.cv25 @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "object_detection_cv25", diff --git a/object-detection/Dockerfile b/object-detection/Dockerfile index 26030f43..7d9cef85 100644 --- a/object-detection/Dockerfile +++ b/object-detection/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk @@ -53,7 +53,7 @@ RUN . /opt/axis/acapsdk/environment-setup* && \ # Download pretrained models WORKDIR /opt/app/model ARG CHIP= -RUN if [ "$CHIP" = cpu ] || [ "$CHIP" = artpec8 ]; then \ +RUN if [ "$CHIP" = artpec8 ] || [ "$CHIP" = artpec9 ] || [ "$CHIP" = cpu ] ; then \ curl -L -o converted_model.tflite \ https://github.com/google-coral/test_data/raw/master/ssd_mobilenet_v2_coco_quant_postprocess.tflite ; \ elif [ "$CHIP" = edgetpu ]; then \ diff --git a/object-detection/README.md b/object-detection/README.md index 4bfeb24d..7390c740 100644 --- a/object-detection/README.md +++ b/object-detection/README.md @@ -8,8 +8,7 @@ This example focuses on the application of object detection on an Axis camera eq ## Prerequisites -- Axis camera equipped with CPU, an [Edge TPU](https://coral.ai/docs/edgetpu/faq/) or DLPU (for ARTPEC-8) -- [Docker](https://docs.docker.com/get-docker/) +- Axis camera equipped with CPU or DLPU ## Quickstart @@ -23,7 +22,7 @@ The following instructions can be executed to simply run the example. ``` where the values are found: - - \ is the chip type. Supported values are `artpec8`, `cpu` and `edgetpu`. + - \ is the chip type. Supported values are `artpec9`, `artpec8`, `cpu` and `edgetpu`. - \ is the architecture. Supported values are `armv7hf` (default) and `aarch64`. 2. Find the ACAP application `.eap` file @@ -225,7 +224,7 @@ docker cp $(docker create obj_detect:1.0):/opt/app ./build where the parameters are: -- \ is the chip type. Supported values are `artpec8`, `cpu` and `edgetpu`. +- \ is the chip type. Supported values are `artpec9`, `artpec8`, `cpu` and `edgetpu`. - \ is the architecture. Supported values are `armv7hf` (default) and `aarch64`. > N.b. The selected architecture and chip must match the targeted device. @@ -271,12 +270,13 @@ Depending on selected chip, different output is received. The label file is used In the system log the chip is sometimes only mentioned as a string, they are mapped as follows: -| Chips | Larod 1 (int) | Larod 3 (string) | +| Chips | Larod 1 (int) | Larod 3 | |-------|--------------|------------------| | CPU with TensorFlow Lite | 2 | cpu-tflite | | Google TPU | 4 | google-edge-tpu-tflite | | Ambarella CVFlow (NN) | 6 | ambarella-cvflow | | ARTPEC-8 DLPU | 12 | axis-a8-dlpu-tflite | +| ARTPEC-9 DLPU | - | a9-dlpu-tflite | There are four outputs from MobileNet SSD v2 (COCO) model. The number of detections, cLasses, scores, and locations are shown as below. The four location numbers stand for \[top, left, bottom, right\]. By the way, currently the saved images will be overwritten continuously, so those saved images might not all from the detections of the last frame, if the number of detections is less than previous detection numbers. diff --git a/object-detection/app/manifest.json.artpec8 b/object-detection/app/manifest.json.artpec8 index 05a1f48c..5575e558 100644 --- a/object-detection/app/manifest.json.artpec8 +++ b/object-detection/app/manifest.json.artpec8 @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "object_detection_artpec8", diff --git a/object-detection/app/manifest.json.artpec9 b/object-detection/app/manifest.json.artpec9 new file mode 100644 index 00000000..31754730 --- /dev/null +++ b/object-detection/app/manifest.json.artpec9 @@ -0,0 +1,15 @@ +{ + "schemaVersion": "1.7.3", + "acapPackageConf": { + "setup": { + "friendlyName": "object_detection_artpec9", + "appName": "object_detection", + "vendor": "Axis Communications", + "embeddedSdkVersion": "3.0", + "runOptions": "/usr/local/packages/object_detection/model/converted_model.tflite 300 300 80 1920 1080 50 /usr/local/packages/object_detection/label/labels.txt -c a9-dlpu-tflite", + "vendorUrl": "https://www.axis.com", + "runMode": "never", + "version": "1.0.0" + } + } +} \ No newline at end of file diff --git a/object-detection/app/manifest.json.cpu b/object-detection/app/manifest.json.cpu index e5f64578..13c9ad88 100644 --- a/object-detection/app/manifest.json.cpu +++ b/object-detection/app/manifest.json.cpu @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "object_detection_cpu", diff --git a/object-detection/app/manifest.json.edgetpu b/object-detection/app/manifest.json.edgetpu index cc656492..ab109138 100644 --- a/object-detection/app/manifest.json.edgetpu +++ b/object-detection/app/manifest.json.edgetpu @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "object_detection_edgetpu", diff --git a/remote-debug-example/Dockerfile b/remote-debug-example/Dockerfile index 55db19b0..d7cc224f 100644 --- a/remote-debug-example/Dockerfile +++ b/remote-debug-example/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/remote-debug-example/app/manifest.json b/remote-debug-example/app/manifest.json index b20c4467..27400c7d 100644 --- a/remote-debug-example/app/manifest.json +++ b/remote-debug-example/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "appName": "remote_debug", diff --git a/reproducible-package/Dockerfile b/reproducible-package/Dockerfile index f7c672e6..059bc3d0 100644 --- a/reproducible-package/Dockerfile +++ b/reproducible-package/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/reproducible-package/app/manifest.json b/reproducible-package/app/manifest.json index fc9dc234..070ef832 100644 --- a/reproducible-package/app/manifest.json +++ b/reproducible-package/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "appName": "reproducible_package", diff --git a/shell-script-example/Dockerfile b/shell-script-example/Dockerfile index c1970ce3..af8c3ee4 100644 --- a/shell-script-example/Dockerfile +++ b/shell-script-example/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/shell-script-example/app/manifest.json b/shell-script-example/app/manifest.json index 70b28256..f8cede7f 100644 --- a/shell-script-example/app/manifest.json +++ b/shell-script-example/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "appName": "shell_script_example", diff --git a/tensorflow-to-larod-artpec9/README.md b/tensorflow-to-larod-artpec9/README.md new file mode 100644 index 00000000..cf16f07c --- /dev/null +++ b/tensorflow-to-larod-artpec9/README.md @@ -0,0 +1,4 @@ +*Copyright (C) 2024, Axis Communications AB, Lund, Sweden. All Rights Reserved.* + +This tutorial on training a model with TensorFlow for ARTPEC-9 follows the same steps as the ARTPEC-8 version. +For detailed instructions and up-to-date information, please follow the [tensorflow-to-larod-artpec8](../tensorflow-to-larod-artpec8) tutorial. diff --git a/using-opencv/Dockerfile b/using-opencv/Dockerfile index 01dd12e0..86c98ee8 100644 --- a/using-opencv/Dockerfile +++ b/using-opencv/Dockerfile @@ -2,7 +2,7 @@ ARG ARCH=armv7hf ARG REPO=axisecp ARG SDK=acap-native-sdk ARG UBUNTU_VERSION=24.04 -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 FROM ${REPO}/${SDK}:${VERSION}-${ARCH}-ubuntu${UBUNTU_VERSION} diff --git a/using-opencv/app/manifest.json b/using-opencv/app/manifest.json index 2cc62357..aef37a73 100644 --- a/using-opencv/app/manifest.json +++ b/using-opencv/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "opencv_example", diff --git a/utility-libraries/custom_lib_example/Dockerfile b/utility-libraries/custom_lib_example/Dockerfile index ba9c8e89..ab359d15 100644 --- a/utility-libraries/custom_lib_example/Dockerfile +++ b/utility-libraries/custom_lib_example/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/utility-libraries/custom_lib_example/app/manifest.json b/utility-libraries/custom_lib_example/app/manifest.json index 0146720d..045b6220 100644 --- a/utility-libraries/custom_lib_example/app/manifest.json +++ b/utility-libraries/custom_lib_example/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "appName": "customlib_example", diff --git a/utility-libraries/openssl_curl_example/Dockerfile b/utility-libraries/openssl_curl_example/Dockerfile index da822b14..3b253742 100644 --- a/utility-libraries/openssl_curl_example/Dockerfile +++ b/utility-libraries/openssl_curl_example/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/utility-libraries/openssl_curl_example/app/manifest.json b/utility-libraries/openssl_curl_example/app/manifest.json index 9792ff5a..c0ad950a 100644 --- a/utility-libraries/openssl_curl_example/app/manifest.json +++ b/utility-libraries/openssl_curl_example/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "appName": "openssl_curl_example", diff --git a/vapix/Dockerfile b/vapix/Dockerfile index a638b687..74b3ccbf 100644 --- a/vapix/Dockerfile +++ b/vapix/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/vapix/app/manifest.json b/vapix/app/manifest.json index 81b6c7f4..b2bad703 100644 --- a/vapix/app/manifest.json +++ b/vapix/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "appName": "vapix_example", diff --git a/vdo-larod/Dockerfile b/vdo-larod/Dockerfile index d9585a9b..90272902 100644 --- a/vdo-larod/Dockerfile +++ b/vdo-larod/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk @@ -15,9 +15,7 @@ ARG CHIP # Download the pretrained model ARG MODEL_BUCKET=https://acap-artifacts.s3.eu-north-1.amazonaws.com/models -RUN if [ "$CHIP" = artpec8 ]; then \ - curl -o model.zip $MODEL_BUCKET/models.aarch64.artpec8.zip ; \ - elif [ "$CHIP" = cpu ]; then \ +RUN if [ "$CHIP" = artpec8 ] || [ "$CHIP" = artpec9 ] || [ "$CHIP" = cpu ] ; then \ curl -o model.zip $MODEL_BUCKET/models.aarch64.artpec8.zip ; \ elif [ "$CHIP" = edgetpu ]; then \ curl -o model.zip $MODEL_BUCKET/models.armv7hf.edgetpu.zip ; \ @@ -36,7 +34,7 @@ COPY ./app . # Build the ACAP application RUN cp /opt/app/manifest.json.${CHIP} /opt/app/manifest.json && \ . /opt/axis/acapsdk/environment-setup* && \ - if [ "$CHIP" = artpec8 ] || [ "$CHIP" = cpu ]; then \ + if [ "$CHIP" = artpec8 ] || [ "$CHIP" = artpec9 ] || [ "$CHIP" = cpu ] ; then \ acap-build . -a 'models/converted_model.tflite'; \ elif [ "$CHIP" = edgetpu ]; then \ acap-build . -a 'models/converted_model_edgetpu.tflite'; \ diff --git a/vdo-larod/README.md b/vdo-larod/README.md index 378536d5..f67d710d 100644 --- a/vdo-larod/README.md +++ b/vdo-larod/README.md @@ -11,6 +11,11 @@ It is achieved by using the containerized API and toolchain images. Together with this README file you should be able to find a directory called app. That directory contains the "vdo_larod" application source code, which can easily be compiled and run with the help of the tools and step by step below. +## Prerequisites + +- Axis camera equipped with CPU or DLPU +- [Docker](https://docs.docker.com/get-docker/) + ## Detailed outline of example application This application opens a client to VDO and starts fetching frames (in a new thread) in the YUV format. It tries to find the smallest VDO stream resolution that fits the width and height required by the neural network. The thread fetching frames is written so that it always tries to provide a frame as new as possible even if not all previous frames have been processed by larod. @@ -45,6 +50,7 @@ vdo-larod │ ├── LICENSE │ ├── Makefile │ ├── manifest.json.artpec8 +│ ├── manifest.json.artpec9 │ ├── manifest.json.cpu │ ├── manifest.json.cv25 │ ├── manifest.json.edgetpu @@ -58,7 +64,8 @@ vdo-larod - **app/LICENSE** - Text file which lists all open source licensed source code distributed with the application. - **app/Makefile** - Makefile containing the build and link instructions for building the ACAP application. -- **app/manifest.json.artpec8** - Defines the application and its configuration when building for DLPU with TensorFlow Lite. +- **app/manifest.json.artpec8** - Defines the application and its configuration when building for artpec8 DLPU with TensorFlow Lite. +- **app/manifest.json.artpec9** - Defines the application and its configuration when building for artpec9 DLPU with TensorFlow Lite. - **app/manifest.json.cpu** - Defines the application and its configuration when building for CPU with TensorFlow Lite. - **app/manifest.json.cv25** - Defines the application and its configuration when building chip and model for cv25 DLPU. @@ -112,7 +119,7 @@ docker cp $(docker create ):/opt/app ./build ``` - \ is the name to tag the image with, e.g., `vdo_larod:1.0`. -- \ is the chip type. Supported values are `artpec8`, `cpu`, `cv25` and `edgetpu`. +- \ is the chip type. Supported values are `artpec9`, `artpec8`, `cpu`, `cv25` and `edgetpu`. - \ is the architecture. Supported values are `armv7hf` (default) and `aarch64`. See the following sections for build commands for each chip. @@ -126,6 +133,15 @@ docker build --build-arg ARCH=aarch64 --build-arg CHIP=artpec8 --tag docker cp $(docker create ):/opt/app ./build ``` +#### Build for ARTPEC-9 with Tensorflow Lite + +To build a package for ARTPEC-9 with Tensorflow Lite, run the following commands standing in your working directory: + +```sh +docker build --build-arg ARCH=aarch64 --build-arg CHIP=artpec9 --tag . +docker cp $(docker create ):/opt/app ./build +``` + #### Build for CPU with Tensorflow Lite To build a package for CPU with Tensorflow Lite, run the following commands standing in your working directory: @@ -169,6 +185,7 @@ vdo-larod │ ├── Makefile │ ├── manifest.json │ ├── manifest.json.artpec8 +│ ├── manifest.json.artpec9 │ ├── manifest.json.cpu │ ├── manifest.json.edgetpu │ ├── manifest.json.cv25 @@ -178,8 +195,8 @@ vdo-larod │ ├── package.conf.orig │ ├── param.conf │ ├── vdo_larod* -│ ├── vdo_larod_{cpu,edgetpu}_1_0_0_armv7hf.eap / vdo_larod_{cv25,artpec8}_1_0_0_aarch64.eap -│ ├── vdo_larod_{cpu,edgetpu}_1_0_0_LICENSE.txt / vdo_larod_{cv25,artpec8}_1_0_0_LICENSE.txt +│ ├── vdo_larod_{cpu,edgetpu}_1_0_0_armv7hf.eap / vdo_larod_{cv25,artpec8,artpec9}_1_0_0_aarch64.eap +│ ├── vdo_larod_{cpu,edgetpu}_1_0_0_LICENSE.txt / vdo_larod_{cv25,artpec8,artpec9}_1_0_0_LICENSE.txt │ └── vdo_larod.c ``` @@ -187,7 +204,7 @@ vdo-larod - **build/model** - Folder containing models used in this application. - **build/model/converted_model_edgetpu.tflite** - Trained model file used for Google TPU. - **build/model/converted_model.tflite** - Trained model file used for ARTPEC-8 and CPU with TensorFlow Lite. -- **build/model/car_human_model_cavalry.bin** - Trained model file used for ARTPEC-8 and CV25. +- **build/model/car_human_model_cavalry.bin** - Trained model file used for CV25. - **build/package.conf** - Defines the application and its configuration. - **build/package.conf.orig** - Defines the application and its configuration, original file. - **build/param.conf** - File containing application parameters. @@ -197,6 +214,10 @@ vdo-larod - **build/vdo_larod_artpec8_1_0_0_aarch64.eap** - Application package .eap file. - **build/vdo_larod_artpec8_1_0_0_LICENSE.txt** - Copy of LICENSE file. + If chip `artpec9` has been built. +- **build/vdo_larod_artpec9_1_0_0_aarch64.eap** - Application package .eap file. +- **build/vdo_larod_artpec9_1_0_0_LICENSE.txt** - Copy of LICENSE file. + If chip `cpu` has been built. - **build/vdo_larod_cpu_1_0_0_armv7hf.eap** - Application package .eap file. - **build/vdo_larod_cpu_1_0_0_LICENSE.txt** - Copy of LICENSE file. @@ -223,6 +244,7 @@ http:///index.html#apps - Browse to the newly built ACAP application, depending on architecture: - `vdo_larod_cv25_1_0_0_aarch64.eap` - `vdo_larod_artpec8_1_0_0_aarch64.eap` + - `vdo_larod_artpec9_1_0_0_aarch64.eap` - `vdo_larod_cpu_1_0_0_armv7hf.eap` - `vdo_larod_edgetpu_1_0_0_armv7hf.eap` - Click `Install` @@ -242,12 +264,13 @@ Depending on the selected chip, different output is received. In previous larod versions, the chip was referred to as a number instead of a string. See the table below to understand the mapping: -| Chips | Larod 1/2 (int) | Larod 3 (string) | +| Chips | Larod 1 (int) | Larod 3 | |-------|--------------|------------------| | CPU with TensorFlow Lite | 2 | cpu-tflite | | Google TPU | 4 | google-edge-tpu-tflite | | Ambarella CVFlow (NN) | 6 | ambarella-cvflow | | ARTPEC-8 DLPU | 12 | axis-a8-dlpu-tflite | +| ARTPEC-9 DLPU | - | a9-dlpu-tflite | #### Output - ARTPEC-8 with TensorFlow Lite @@ -302,6 +325,54 @@ vdo_larod[4165]: Stop streaming video from VDO vdo_larod[4165]: Exit /usr/local/packages/vdo_larod/vdo_larod ``` +#### Output - ARTPEC-9 with TensorFlow Lite + +```sh +----- Contents of SYSTEM_LOG for 'vdo_larod' ----- + + +vdo_larod[4165]: Starting /usr/local/packages/vdo_larod/vdo_larod +vdo_larod[4165]: 'buffer.strategy': +vdo_larod[4165]: 'channel': +vdo_larod[4165]: 'format': +vdo_larod[4165]: 'height': +vdo_larod[4165]: 'width': +vdo_larod[4165]: Creating VDO image provider and creating stream 480 x 270 +vdo_larod[4165]: Dump of vdo stream settings map ===== +vdo_larod[4165]: chooseStreamResolution: We select stream w/h=480 x 270 based on VDO channel info. +vdo_larod[4165]: Calculate crop image +vdo_larod[4165]: Create larod models +vdo_larod[4165]: Create preprocessing maps +vdo_larod[4165]: Crop VDO image X=40 Y=0 (480 x 270) +vdo_larod[4165]: Setting up larod connection with chip a9-dlpu-tflite and model /usr/local/packages/vdo_larod/models/converted_model.tflite +vdo_larod[4165]: Available chip ids: +vdo_larod[4165]: Chip: a9-dlpu-tflite +vdo_larod[4165]: Chip: cpu-tflite +vdo_larod[4165]: Chip: cpu-proc +vdo_larod[4165]: Allocate memory for input/output buffers +vdo_larod[4165]: Connect tensors to file descriptors +vdo_larod[4165]: Create input/output tensors +vdo_larod[4165]: Create job requests +vdo_larod[4165]: Determine tensor buffer sizes +vdo_larod[4165]: Start fetching video frames from VDO +vdo_larod[4165]: Converted image in 14 ms +vdo_larod[4165]: Person detected: 5.49% - Car detected: 80.00% +vdo_larod[4165]: Ran inference for 17 ms +vdo_larod[4165]: Converted image in 4 ms +vdo_larod[4165]: Person detected: 4.31% - Car detected: 88.63% +vdo_larod[4165]: Ran inference for 16 ms +vdo_larod[4165]: Converted image in 4 ms +vdo_larod[4165]: Person detected: 2.75% - Car detected: 75.29% +vdo_larod[4165]: Ran inference for 16 ms +vdo_larod[4165]: Converted image in 3 ms +vdo_larod[4165]: Person detected: 3.14% - Car detected: 88.63% +vdo_larod[4165]: Ran inference for 16 ms +vdo_larod[4165]: Converted image in 3 ms +vdo_larod[4165]: Person detected: 1.57% - Car detected: 74.51% +vdo_larod[4165]: Ran inference for 16 ms +vdo_larod[4165]: Stop streaming video from VDO +vdo_larod[4165]: Exit /usr/local/packages/vdo_larod/vdo_larod + #### Output - CPU with TensorFlow Lite ```sh diff --git a/vdo-larod/app/manifest.json.artpec8 b/vdo-larod/app/manifest.json.artpec8 index ed60daf0..6a756406 100644 --- a/vdo-larod/app/manifest.json.artpec8 +++ b/vdo-larod/app/manifest.json.artpec8 @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "vdo_larod_artpec8", diff --git a/vdo-larod/app/manifest.json.artpec9 b/vdo-larod/app/manifest.json.artpec9 new file mode 100644 index 00000000..8678a7c3 --- /dev/null +++ b/vdo-larod/app/manifest.json.artpec9 @@ -0,0 +1,15 @@ +{ + "schemaVersion": "1.7.3", + "acapPackageConf": { + "setup": { + "friendlyName": "vdo_larod_artpec9", + "appName": "vdo_larod", + "vendor": "Axis Communications", + "embeddedSdkVersion": "3.0", + "runOptions": "a9-dlpu-tflite /usr/local/packages/vdo_larod/models/converted_model.tflite 480 270 5", + "vendorUrl": "https://www.axis.com", + "runMode": "never", + "version": "1.0.0" + } + } +} \ No newline at end of file diff --git a/vdo-larod/app/manifest.json.cpu b/vdo-larod/app/manifest.json.cpu index 26cb67dd..9ca1a201 100644 --- a/vdo-larod/app/manifest.json.cpu +++ b/vdo-larod/app/manifest.json.cpu @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "vdo_larod_cpu", diff --git a/vdo-larod/app/manifest.json.cv25 b/vdo-larod/app/manifest.json.cv25 index 85bc95e8..b8a6e126 100644 --- a/vdo-larod/app/manifest.json.cv25 +++ b/vdo-larod/app/manifest.json.cv25 @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "vdo_larod_cv25", diff --git a/vdo-larod/app/manifest.json.edgetpu b/vdo-larod/app/manifest.json.edgetpu index 3f0f15e6..c981c97d 100644 --- a/vdo-larod/app/manifest.json.edgetpu +++ b/vdo-larod/app/manifest.json.edgetpu @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "vdo_larod_edgetpu", diff --git a/vdo-opencl-filtering/Dockerfile b/vdo-opencl-filtering/Dockerfile index 9aaf6a86..db43285f 100644 --- a/vdo-opencl-filtering/Dockerfile +++ b/vdo-opencl-filtering/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/vdo-opencl-filtering/app/manifest.json b/vdo-opencl-filtering/app/manifest.json index 6ce8d9eb..5f7ca2b2 100644 --- a/vdo-opencl-filtering/app/manifest.json +++ b/vdo-opencl-filtering/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "resources": { "linux": { "user": { diff --git a/vdostream/Dockerfile b/vdostream/Dockerfile index 41b56575..114c6e8f 100644 --- a/vdostream/Dockerfile +++ b/vdostream/Dockerfile @@ -1,5 +1,5 @@ ARG ARCH=armv7hf -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 ARG UBUNTU_VERSION=24.04 ARG REPO=axisecp ARG SDK=acap-native-sdk diff --git a/vdostream/app/manifest.json.h264 b/vdostream/app/manifest.json.h264 index 803c5f3f..331f78a6 100644 --- a/vdostream/app/manifest.json.h264 +++ b/vdostream/app/manifest.json.h264 @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "vdoencodeclient_h264", diff --git a/vdostream/app/manifest.json.h265 b/vdostream/app/manifest.json.h265 index d357e2ff..7878d7f9 100644 --- a/vdostream/app/manifest.json.h265 +++ b/vdostream/app/manifest.json.h265 @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "vdoencodeclient_h265", diff --git a/vdostream/app/manifest.json.jpeg b/vdostream/app/manifest.json.jpeg index bca2c2b7..0e03161e 100644 --- a/vdostream/app/manifest.json.jpeg +++ b/vdostream/app/manifest.json.jpeg @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "vdoencodeclient_jpeg", diff --git a/vdostream/app/manifest.json.nv12 b/vdostream/app/manifest.json.nv12 index 1e94a13f..20e82758 100644 --- a/vdostream/app/manifest.json.nv12 +++ b/vdostream/app/manifest.json.nv12 @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "vdoencodeclient_nv12", diff --git a/vdostream/app/manifest.json.y800 b/vdostream/app/manifest.json.y800 index cba8b1d6..d4644f52 100644 --- a/vdostream/app/manifest.json.y800 +++ b/vdostream/app/manifest.json.y800 @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "vdoencodeclient_y800", diff --git a/web-server-using-fastcgi/Dockerfile b/web-server-using-fastcgi/Dockerfile index f61b92ed..0ccce5d3 100644 --- a/web-server-using-fastcgi/Dockerfile +++ b/web-server-using-fastcgi/Dockerfile @@ -2,7 +2,7 @@ ARG ARCH=armv7hf ARG REPO=axisecp ARG SDK=acap-native-sdk ARG UBUNTU_VERSION=24.04 -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 FROM ${REPO}/${SDK}:${VERSION}-${ARCH}-ubuntu${UBUNTU_VERSION} diff --git a/web-server-using-fastcgi/app/manifest.json b/web-server-using-fastcgi/app/manifest.json index 99bb60da..06252aa2 100644 --- a/web-server-using-fastcgi/app/manifest.json +++ b/web-server-using-fastcgi/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "friendlyName": "fastcgi_example", diff --git a/web-server/Dockerfile b/web-server/Dockerfile index 15d612a2..6e338299 100644 --- a/web-server/Dockerfile +++ b/web-server/Dockerfile @@ -2,7 +2,7 @@ ARG ARCH=armv7hf ARG REPO=axisecp ARG SDK=acap-native-sdk ARG UBUNTU_VERSION=24.04 -ARG VERSION=12.1.0 +ARG VERSION=12.2.0 FROM ${REPO}/${SDK}:${VERSION}-${ARCH}-ubuntu${UBUNTU_VERSION} diff --git a/web-server/app/manifest.json b/web-server/app/manifest.json index b4ee9026..caa3e7ac 100644 --- a/web-server/app/manifest.json +++ b/web-server/app/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.2", + "schemaVersion": "1.7.3", "acapPackageConf": { "setup": { "appName": "list",