GithubHelp home page GithubHelp logo

axiscommunications / acap-native-sdk-examples Goto Github PK

View Code? Open in Web Editor NEW
41.0 15.0 22.0 1.7 MB

Example code for APIs and features in AXIS Camera Application Platform (ACAP) Native SDK

License: Apache License 2.0

Python 2.58% Dockerfile 7.45% Makefile 3.29% C 80.83% Shell 0.76% C++ 5.09%
axis acap analytics edge video camera

acap-native-sdk-examples's Introduction

What is Axis Camera Application Platform?

AXIS Camera Application Platform (ACAP) is an open application platform from Axis. It provides a development platform for software-based solutions and systems built around Axis devices. ACAP is available for various types of Axis products such as cameras, speakers and intercoms.

ACAP Native SDK

The ACAP Native SDK is targeted towards users that want to develop plug-in style, event generating applications that fit well into a VMS centric system. This SDK offers high performance by integrating closely with AXIS OS and hardware. Already existing ACAP users should feel at home using this SDK and migrating from previous version ACAP 3 to this SDK should be straightforward.

Please check the following guidelines for ACAP 4:

Getting started with the repository

This repository contains a set of application examples which aims to enrich the developers analytics experience. All examples are using Docker framework and has a README file in its directory which shows overview, example directory structure and step-by-step instructions on how to run applications on the camera.

Example applications

Below is the list of examples available in the repository.

  • axevent
    • Examples in C that illustrate how to subscribe to and send events.
  • axoverlay
    • An example in C that illustrates how to draw plain boxes and text as overlays in a stream.
  • axparameter
    • An example in C that demonstrates how to manage application-defined parameters, allowing you to add, remove, set, get, and register callback functions for parameter value updates.
  • axserialport
    • An example in C that shows the use of the serial port API.
  • axstorage
    • An example in C that shows how to use available storage devices.
  • bounding-box
    • An example in C that demonstrates how to portably draw burnt-in bounding boxes on selected video sources or channels.
  • container-example
    • An example that demonstrates the use of containers in a native ACAP application.
  • curl-openssl
    • An example that use curl and OpenSSL libraries to retrieve a file securely from an external server.
  • hello-world
    • A simple hello world C application.
  • licensekey
    • An example in C that illustrates how to check the licensekey status.
  • metadata-broker
    • Examples that consume metadata.
  • object-detection
    • An example of object detection, cropping and saving detected objects into JPEG files.
  • object-detection-cv25
    • An example of object detection, cropping and saving detected objects into JPEG files on AXIS CV25 devices.
  • remote-debug-example
    • An example of how to remote debug an ACAP application.
  • reproducible-package
    • An example of how to create a reproducible application package.
  • shell-script-example
    • A simple hello world shell script application.
  • tensorflow-to-larod
    • An example that shows model conversion, model quantization, image formats and custom models.
  • 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-cv25
    • An example that shows model conversion, model quantization, image formats and custom models on AXIS CV25 devices.
  • using-opencv
    • An example that shows how to build, bundle and use OpenCV in an application.
  • utility-libraries
    • These examples covers how to build, bundle and use external libraries.
  • vapix
    • An example in C that retrieves VAPIX credentials over D-Bus and makes VAPIX calls over a loopback interface.
  • vdo-larod
  • vdo-opencl-filtering
    • An example that illustrates how to capture frames from the vdo service, access the received buffer, and finally perform a GPU accelerated Sobel filtering with OpenCL.
  • vdostream
    • An example in C that starts a vdo stream and then illustrates how to continuously capture frames from the vdo service, access the received buffer contents as well as the frame metadata.
  • web-server
    • An example in C that runs a Monkey web server on the camera and exposes an external API with Reverse Proxy configuration in Apache Server.
  • web-server-using-fastcgi
    • An example in C and explains how to build an ACAP application that can handle HTTP requests sent to the Axis device, using the device's own web server.

Docker Hub image

The ACAP Native SDK image can be used as a basis for custom built images to run your application or as a developer environment inside the container.

  • ACAP Native SDK This image is based on Ubuntu and contains the environment needed for building an AXIS Camera Application Platform (ACAP) Native application. This includes all tools for building and packaging an ACAP Native application as well as API components (header and library files) needed for accessing different parts of the camera firmware.

ACAP application development

Common topics of interest for developers can be found under ACAP application development, e.g. when testing out the examples in this repository or migrating from an old version of ACAP SDK.

Issues

If you encounter issues with the examples, make sure your product is running the latest firmware version or one that is compatible with the ACAP SDK used. The examples use the ACAP SDK during the build process, of which each version is compatible with a set of firmware versions. The specific SDK version that each example is based on is specified in the Dockerfile used to build the application, through the VERSION variable. The full compatibility schema for ACAP SDK version and firmware version is available at Compatibility for Native SDK.

If the issue persists with a compatible firmware, please create an issue containing the information specified in the template below.

License

Apache 2.0

acap-native-sdk-examples's People

Contributors

andersplj avatar bsriramprasad avatar carlcn avatar corallo avatar daniel-falk avatar daniel-nielsen-se avatar ecosvc-dockerhub avatar github-axiscommunications-ecosystem avatar jmidgren avatar joakimr-axis avatar johan-olsson-work avatar johanseaxis avatar jojju avatar killenheladagen avatar lukgiax avatar madelen-at-work avatar marbali8 avatar mattias-kindborg-at-work avatar mentoc3000 avatar mikael-magnusson avatar mikaelli-axis avatar pataxis avatar petterwa avatar prashanthma29 avatar renovate[bot] avatar shreyasatwork avatar silex avatar stiv-work avatar theodorag avatar tristanhdf-work avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

acap-native-sdk-examples's Issues

Are tensorflow2 based trainings compatible with artpec8?

Hi,
I'm having troubles when loading a custom model, the error says:
ERROR in Inference: Failed to load model model.tflite (Could not load model: Could not build an interpreter of the model)
The model was trained with tensorflow2.

I converted the model to tflite and also tried converting it to google coral, but the issue remains.
So my questions are:
-Is there any issue with using tensorflow2?

  • What kind of optimizations we need to make when converting to tensorflow lite (for example input and/or outputs to int8, etc)?
  • Is it neccesary the step of converting to google-coral? If a model is compatible with google coral, does it mean that will run on artpec8?

Environment

  • Axis device model: P3265
  • Axis device firmware version: 10.11.73
  • Version: sdk 1.2.1
  • docker daemon: 1.2.3

Additional context

Thank you very much

How do you set which view from the camera should be used for e.g. object detection?

Hi,
I am building an object detection app for Axis cameras using the native SDK,
basing it on the object detection example of this repository. However, I can't find anywhere how I can specify which view area should be used. I assume it should be somewhere in the VDO library, but its API reference contains no useful information (e.g. all the information provided for the VdoStream class is "A video stream") and the older page which seems to have contained at least something (according to previews in Google search) doesn't exist anymore.
Could you please tell me how I can set the view area using the native SDK, or point me to a source containing that information in case I missed it somewhere?

Black cropped image is output when detect object in object detection

Describe the bug

Black cropped image is output when detect object in object detection.
Camera image is clearly and no problem.

To reproduce

Run object-detection in AXIS Q1656 Box Camera anc check /tmp/*/jpg images.

Screenshots

N/A

Environment

  • Axis device model: [AXIS Q1656 Box Camera]
  • Axis device firmware version: [10.12]
  • Stack trace or logs: [N/A]
  • OS and version: [Ubuntu 18.04 LTS]
  • Version: [N/A]

Additional context

  • Yuv image is not black but cropAddr is black image

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

dockerfile
axevent/send_event/Dockerfile
axevent/subscribe_to_event/Dockerfile
axevent/subscribe_to_events/Dockerfile
axoverlay/Dockerfile
axparameter/Dockerfile
axserialport/Dockerfile
axstorage/Dockerfile
bounding-box/Dockerfile
curl-openssl/Dockerfile
hello-world/Dockerfile
licensekey/Dockerfile
metadata-broker/consume-analytics-scene-description/Dockerfile
object-detection-cv25/Dockerfile
object-detection/Dockerfile
remote-debug-example/Dockerfile
reproducible-package/Dockerfile
shell-script-example/Dockerfile
tensorflow-to-larod-artpec8/Dockerfile
tensorflow-to-larod-cv25/Dockerfile
tensorflow-to-larod/Dockerfile
using-opencv/Dockerfile
utility-libraries/custom_lib_example/Dockerfile
utility-libraries/openssl_curl_example/Dockerfile
vapix/Dockerfile
vdo-larod/Dockerfile
vdo-opencl-filtering/Dockerfile
vdostream/Dockerfile
web-server-using-fastcgi/Dockerfile
web-server/Dockerfile
github-actions
.github/workflows/axevent.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/axoverlay.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/axparameter.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/axserialport.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/axstorage.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/bounding-box.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/container-example.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/curl-openssl.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/hello-world.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/licensekey.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/linter-documentation-links.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/linter-example-checks.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/linter.yml
  • actions/checkout v4
  • super-linter/super-linter v6
.github/workflows/metadata-broker.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/object-detection-cv25.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/object-detection.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/remote-debug-example.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/reproducible-package.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/shell-script-example.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/tensorflow-to-larod-artpec8.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/tensorflow-to-larod-cv25.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/tensorflow-to-larod.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/using-opencv.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/utility-libraries.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/vapix.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/vdo-larod.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/vdo-opencl-filtering.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/vdostream.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/web-server-using-fastcgi.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
.github/workflows/web-server.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3

  • Check this box to trigger a request for Renovate to run again on this repository

vdo-larod + opencv

Is there a complete Dockerfile + app/example.cpp example of opencv + vdo-larod?

Container example not launching

Describe the bug

The container example creates the .EAP file, but it does not launch on the camera.
Logs from system report:
2022-04-07T14:59:00.775+03:00 axis-b8a44f412671 [ ERR ] systemd[12116]: sdkcontainerExample.service: Failed at step EXEC spawning /usr/local/packages/containerExample/containerExample: No such file or directory 2022-04-07T14:59:00.775+03:00 axis-b8a44f412671 [ ERR ] systemd[12116]: sdkcontainerExample.service: Failed to execute /usr/local/packages/containerExample/containerExample: No such file or directory 2022-04-07T15:22:12.977+03:00 axis-b8a44f412671 [ ERR ] systemd[15164]: sdkcontainerExample.service: Failed at step EXEC spawning /usr/local/packages/containerExample/containerExample: No such file or directory 2022-04-07T15:22:12.977+03:00 axis-b8a44f412671 [ ERR ] systemd[15164]: sdkcontainerExample.service: Failed to execute /usr/local/packages/containerExample/containerExample: No such file or directory

I tried running journalctl too, but it didn't give any more information.

Environment

  • Axis device model: Q1615 Mk III
  • Axis device firmware version: 10.10.69

Error libm.so.6: version `GLIBC_2.38' & libstdc++.so.6: version `GLIBCXX_3.4.30' not found

I tested the application using_opencv from the example https://github.com/AxisCommunications/acap-native-sdk-examples/tree/main/using-opencv
I haven't made any changes yet. When I test the .eap file with the camera, I get an error in the app log.
Commands I use to build application
docker build --tag <APP_IMAGE> .

Error #1
/usr/local/packages/opencv_app/opencv_app: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /usr/local/packages/opencv_app/lib/libopencv_imgproc.so.4.5)

Error #2
/usr/local/packages/opencv_app/opencv_app: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /usr/local/packages/opencv_app/lib/libopencv_core.so.4.5)

Error in log App OpenCv

What causes this problem and what do I need to fix?

Send detection results to local server.

Hello Axis ACAP developers,

Thanks to your code examples, I managed to train and integrate a car detection model (SSD MobilenetV2) on the Axis P1375 camera. It is very clear what you have described in these examples!
However, I still want to take a step forward in my project. I wonder how to send the detection results I have in my log file (on the Axis camera) to my local server (my laptop for example)?
By the way, I tried ONVIF following your axevent example but I found out that it was not compatible in my case (sending bounding box coordinates).

So, if you have any suggestion for my problem, I would be very grateful!

Thanks in advance!

Larod model input

Hello Axis developers,

I am integrating my own deep learning model on an Axis camera using ACAP Native and have some questions about the Larod library.

In your object detection example, you are using the MobileNet SSD model with the model input is channel last or NHWC (batch size, height, width, channel) and the model is trained on a uint8 [0, 255] image and this works well with Larod and the convertCropScaleU8yuvToRGB function in imgconverter.c.

In my case, I have a pre-trained model with the input order is channel first or NCHW, my model is trained on the float32 [0, 1] image.
I converted the input model to uint8 and also used the larodSetTensorLayout function to set the input tensor layout NCHW. My model can work on an Axis camera but its output is not what I expect. When I tested the tflite model on my computer with input order is NCHW, it works as expected. I don't know if the problem is the way Larod reads the input image. That's why I created this issue to hear your ideas.

Here is some information you might need:

  • My model is a ttflite model (converted from the pytorch model).
  • My camera is AXIS P1375; Chip: ARTPEC-7; Firmware: 10.11.65.

I am looking forward to your answer !

Best,

get VdoBuffer too slow

Describe the bug

currently I use your example to get vdoBuffer in using-opencv example (this repo), I got 1-2 fps.
I use printf with "\n" to force log to screen instead of syslog it's still slow

To reproduce

use example using-opencv to build an eap application and load to Axis device Q1615 MKIII

Steps to reproduce the behavior:

  1. Set up clone this repo
  2. Do this make using-opencv .eap app and load to the device on its web
  3. check log and see it very slow,

Screenshots

Environment

  • Axis device model:Q1615 Mk III
  • Axis device firmware version:11.2.61
  • Stack trace or logs:
  • 2023-02-10T12:53:37.448+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[979]: Last message 'Motion detected: YES' repeated 6 times, suppressed by syslog-ng on axis-b8a44f3a8b10
    2023-02-10T12:53:37.543+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[16994]: Motion detected: YES
    2023-02-10T12:53:38.448+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[979]: Last message 'Motion detected: YES' repeated 6 times, suppressed by syslog-ng on axis-b8a44f3a8b10
    2023-02-10T12:53:38.495+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[16994]: Motion detected: YES
    2023-02-10T12:53:39.448+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[979]: Last message 'Motion detected: YES' repeated 6 times, suppressed by syslog-ng on axis-b8a44f3a8b10
    2023-02-10T12:53:39.469+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[16994]: Motion detected: YES
    2023-02-10T12:53:40.448+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[979]: Last message 'Motion detected: YES' repeated 7 times, suppressed by syslog-ng on axis-b8a44f3a8b10
    2023-02-10T12:53:40.574+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[16994]: Motion detected: YES
    2023-02-10T12:53:41.448+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[979]: Last message 'Motion detected: YES' repeated 6 times, suppressed by syslog-ng on axis-b8a44f3a8b10
    2023-02-10T12:53:41.543+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[16994]: Motion detected: YES
    2023-02-10T12:53:42.448+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[979]: Last message 'Motion detected: YES' repeated 6 times, suppressed by syslog-ng on axis-b8a44f3a8b10
    2023-02-10T12:53:42.509+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[16994]: Motion detected: YES
    2023-02-10T12:53:43.448+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[979]: Last message 'Motion detected: YES' repeated 6 times, suppressed by syslog-ng on axis-b8a44f3a8b10
    2023-02-10T12:53:43.475+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[16994]: Motion detected: YES
    2023-02-10T12:53:44.448+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[979]: Last message 'Motion detected: YES' repeated 7 times, suppressed by syslog-ng on axis-b8a44f3a8b10
    2023-02-10T12:53:44.572+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[16994]: Motion detected: YES
    2023-02-10T12:53:45.448+09:00 axis-b8a44f3a8b10 [ INFO ] opencv_app[979]: Last message 'Motion detected: YES' repeated 6 times, suppressed by syslog-ng on axis-b8a44f3a8b10
  • Version: used docker to build the eap application

using-opencv: example broken on armv7hf

Describe the bug

The example using-opencv seems broken on armv7hf. On ARTPEC-8 working without any issue.

console log:

[ INFO ] opencv_app[15222]: /usr/local/packages/opencv_app/opencv_app: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/local/packages/opencv_app/lib/libopencv_core.so.4.5)

[ INFO ] opencv_app[15222]: /usr/local/packages/opencv_app/opencv_app: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/local/packages/opencv_app/opencv_app)

[ INFO ] opencv_app[15222]: /usr/local/packages/opencv_app/opencv_app: /usr/lib/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /usr/local/packages/opencv_app/lib/libopencv_core.so.4.5)

[ INFO ] opencv_app[15222]: /usr/local/packages/opencv_app/opencv_app: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/local/packages/opencv_app/lib/libopencv_core.so.4.5)

[ INFO ] opencv_app[15222]: /usr/local/packages/opencv_app/opencv_app: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/local/packages/opencv_app/lib/libopencv_imgproc.so.4.5)

[ INFO ] opencv_app[15222]: /usr/local/packages/opencv_app/opencv_app: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/local/packages/opencv_app/lib/libopencv_video.so.4.5)

[ INFO ] opencv_app[15222]: /usr/local/packages/opencv_app/opencv_app: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /usr/local/packages/opencv_app/lib/libopencv_core.so.4.5)

Environment

Axis device model: Axis P1375
Axis device firmware version: 10.9.4

error while loading shared libraries: libmdb.so.0

Describe the bug

Running example metadata-broker/consume-analytics-scene-description application on AXIS D2110-VE Security Radar produces the following error in the app logs on the device:

[ INFO    ] consume_analytics_metadata[25839]: /usr/local/packages/consume_analytics_metadata/consume_analytics_metadata: error while loading shared libraries: libmdb.so.0: cannot open shared object file: No such file or directory

To reproduce

Build Docker image using example Dockerfile in current repo:

docker build --tag consume_analytics_metadata:1.0 --build-arg ARCH=armv7hf .

Copy application:

docker cp $(docker create consume_analytics_metadata:1.0):/opt/app ./build

Install consume_analytics_metadata_1_0_0_armv7hf.eap application to D2110-VE.
Start application.
View App logs:

----- Contents of SYSTEM_LOG for 'consume_analytics_metadata' -----


2024-07-08T12:30:46.456-04:00 axis-b8a44f809e92 [ INFO    ] consume_analytics_metadata[22581]: /usr/local/packages/consume_analytics_metadata/consume_analytics_metadata: error while loading shared libraries: libmdb.so.0: cannot open shared object file: No such file or directory
2024-07-08T12:34:29.712-04:00 axis-b8a44f809e92 [ INFO    ] consume_analytics_metadata[23520]: /usr/local/packages/consume_analytics_metadata/consume_analytics_metadata: error while loading shared libraries: libmdb.so.0: cannot open shared object file: No such file or directory
2024-07-08T12:56:33.467-04:00 axis-b8a44f809e92 [ INFO    ] consume_analytics_metadata[25839]: /usr/local/packages/consume_analytics_metadata/consume_analytics_metadata: error while loading shared libraries: libmdb.so.0: cannot open shared object file: No such file or directory
2024-07-08T13:08:42.712-04:00 axis-b8a44f809e92 [ INFO    ] consume_analytics_metadata[27049]: /usr/local/packages/consume_analytics_metadata/consume_analytics_metadata: error while loading shared libraries: libmdb.so.0: cannot open shared object file: No such file or directory
2024-07-08T13:17:14.962-04:00 axis-b8a44f809e92 [ INFO    ] consume_analytics_metadata[28293]: /usr/local/packages/consume_analytics_metadata/consume_analytics_metadata: error while loading shared libraries: libmdb.so.0: cannot open shared object file: No such file or directory

Screenshots

CleanShot 2024-07-08 at 13 17 09@2x

Environment

  • Axis device model: D2110-VE
  • Axis device firmware version: 11.10.61
  • Stack trace or logs: Shown above
  • OS and version: macOS 14.5 (23F79)

Additional context

Building and installing the hello-world sample app works without issue when installed on the D2110-VE.

Asynchronous connection has been closed

I am getting error when i am upgrading my firmware from 10.9.4 to 10.11.76,

setupLarod: Unable to load model: Could not load model: Asynchronous connection has been closed

when I calling the function

loadedModel = larodLoadModel(conn, larodModelFd, LAROD_ACCESS_PRIVATE,
                                 "object_detection", &error);

https://github.com/AxisCommunications/acap-native-sdk-examples/blob/main/object-detection/app/object_detection.c
line 335.

When I rollback to my previous firmware it start to work.

metadata broker feedback

Hi,

I have been playing around with the metadata broker API and wanted to report some feedback.

Starting with the API docs --> https://axiscommunications.github.io/acap-documentation/docs/api/src/api/metadata-broker/html/standard_topics.html

The payload doesn't start with the "data" property --> {
"data": {
"frame": {
"timestamp": "2023-03-08T09:00:19.320111Z",
"observations": [

but instead from the "frame" property
"frame": {
"timestamp": "2023-03-08T09:00:19.320111Z",
"observations": [

I see my P3265 fw 11.9.60 is detecting Human, Cars but also Face.

In my app I am parsing the json payload --> ** Message: 12:59:31.623: type Face: bottom 0.127300, left 0.208600, right 0.224700, top 0.098600

I have also been playing around with the 'BestShot' feature and uploading the base64 image to an S3 bucket for testing.
My P3265 is facing a display looping the same image, but the best shot seems to be inconsistent. Sometimes I get the back of my body, sometimes the front, sometimes just my face (even though my app is specifying only 'human' type and not 'face').

I am attaching a quick video showing the behavior after watching the same video twice and getting different results.

Thanks!
Marco

MetadataBroker_BestShot.mp4

Model load error on CV25

Discussed in #263

Originally posted by AtsushiYokokawa June 26, 2024
The model converted with tensorflow-to-larod-cv25 does not work.
Here are the steps I tried.

  • Environment

    • PC
      • OS: Windows 11 Pro (WSL: Ubuntu-20.04)
      • CPU: 11th Gen Intel(R) Core(TM) i7-11390H @ 3.40GHz 2.92 GHz
      • RAM: 16.0GB
      • GPU: Intel IRIS
      • Docker: Docker Desktop V4.17.0
      • CVTool: Ambarella_Toolchain_CNNGen_Basic_2.5.6_20231117
    • Camera
      • Camera: M3086-V
      • FW: 11.10.83
  • Steps

    • Model conversion
      docker build --tag tensorflow-to-larod-cv25 --build-arg TRAIN_EPOCHS=1 .
      docker cp $(docker create tensorflow-to-larod-cv25):/env/training/models/converted_model.tflite ./converted_model.tflite
      
    • Compile with CVTool
      gen_image_list.py -f pics -o dra_image_bin/img_list.txt -ns -e .jpg -c 0 -d 0,0 -r 256,256 -bf dra_image_bin -bo dra_image_bin/dra_bin_list.txt
      # [gen_image_list] Folder input received: pics
      # [gen_image_list] Created file: dra_image_bin/img_list.txt
      # (info) using #30 thread(s) to run imgtobin
      # [info][#13] Convert 12a768fce3b51894.jpg to 12a768fce3b51894.bin ... Done
      # [info][ #0] Convert 00ee5d5169b5d94f.jpg to 00ee5d5169b5d94f.bin ... Done
      # [info][ #5] Convert 027402a2f2de4ffd.jpg to 027402a2f2de4ffd.bin ... Done
      # [info][ #1] Convert 016782dc5cdbd0ce.jpg to 016782dc5cdbd0ce.bin ... Done
      # [info][ #7] Convert 042926ab7d9c4922.jpg to 042926ab7d9c4922.bin ... Done
      # [info][ #2] Convert 01bce5b2dd400f5d.jpg to 01bce5b2dd400f5d.bin ... Done
      # [info][ #8] Convert 07afa437e2aa458b.jpg to 07afa437e2aa458b.bin ... Done
      # [info][#10] Convert 09f03d43f0a2a3aa.jpg to 09f03d43f0a2a3aa.bin ... Done
      # [info][ #9] Convert 07d343487bd82d5a.jpg to 07d343487bd82d5a.bin ... Done
      # [info][#11] Convert 1186a1ccc9923678.jpg to 1186a1ccc9923678.bin ... Done
      # [info][ #6] Convert 031ce4a78c6b7331.jpg to 031ce4a78c6b7331.bin ... Done
      # [info][#14] Convert 12ad6bec64eb4454.jpg to 12ad6bec64eb4454.bin ... Done
      # [info][ #3] Convert 01f969a887724083.jpg to 01f969a887724083.bin ... Done
      # [info][ #4] Convert 020c12da1d0ea78c.jpg to 020c12da1d0ea78c.bin ... Done
      # [info][#17] Convert 15f9857bc6e82d05.jpg to 15f9857bc6e82d05.bin ... Done
      # [info][#12] Convert 11ee142c27bf2f3e.jpg to 11ee142c27bf2f3e.bin ... Done
      # [info][#15] Convert 13997536ad9d92ef.jpg to 13997536ad9d92ef.bin ... Done
      # [info][ #2] Convert 22bc484961df0de7.jpg to 22bc484961df0de7.bin ... Done
      # [info][ #9] Convert 26742912e6591e49.jpg to 26742912e6591e49.bin ... Done
      # [info][#10] Convert 24b4f02a4c49cdca.jpg to 24b4f02a4c49cdca.bin ... Done
      # [info][#20] Convert 2f9a9dac02715200.jpg to 2f9a9dac02715200.bin ... Done
      # [info][#11] Convert 28bc743ce467c9b2.jpg to 28bc743ce467c9b2.bin ... Done
      # [info][#13] Convert 164e8d631323dda2.jpg to 164e8d631323dda2.bin ... Done
      # [info][#17] Convert 345d112cdb3d621c.jpg to 345d112cdb3d621c.bin ... Done
      # [info][ #9] Convert 43466129aba65f94.jpg to 43466129aba65f94.bin ... Done
      # [info][#12] Convert 3627ae4bceb27c2b.jpg to 3627ae4bceb27c2b.bin ... Done
      # [info][#16] Convert 14bb7d41e1cd3b27.jpg to 14bb7d41e1cd3b27.bin ... Done
      # [info][#14] Convert 2e3eb2b6dbae8ac5.jpg to 2e3eb2b6dbae8ac5.bin ... Done
      # [info][ #9] Convert 62642779b29a0b0e.jpg to 62642779b29a0b0e.bin ... Done
      # [info][ #7] Convert 22bb3097d0c0b214.jpg to 22bb3097d0c0b214.bin ... Done
      # [info][#19] Convert 25d6711130edac64.jpg to 25d6711130edac64.bin ... Done
      # [info][#21] Convert 39652e445524e644.jpg to 39652e445524e644.bin ... Done
      # [info][ #5] Convert 1c9c30bbe43ff9b0.jpg to 1c9c30bbe43ff9b0.bin ... Done
      # [info][#20] Convert 4c746ea68c15eca5.jpg to 4c746ea68c15eca5.bin ... Done
      # [info][ #0] Convert 1a1e1cadeb581a60.jpg to 1a1e1cadeb581a60.bin ... Done
      # [info][#15] Convert 3dbf4fea124969b1.jpg to 3dbf4fea124969b1.bin ... Done
      # [info][#18] Convert 17758ba0e16314b0.jpg to 17758ba0e16314b0.bin ... Done
      # [info][#12] Convert 63e86e3144157862.jpg to 63e86e3144157862.bin ... Done
      # [info][ #2] Convert 41527fcf86d8a514.jpg to 41527fcf86d8a514.bin ... Done
      # [info][ #3] Convert 31e00147edc42d4f.jpg to 31e00147edc42d4f.bin ... Done
      # [info][#22] Convert 480ebd26b7a58271.jpg to 480ebd26b7a58271.bin ... Done
      # [info][#11] Convert 4e994da9b3b469f4.jpg to 4e994da9b3b469f4.bin ... Done
      # [info][#10] Convert 4910a871de86e1b8.jpg to 4910a871de86e1b8.bin ... Done
      # [info][ #8] Convert 240adfd3be861236.jpg to 240adfd3be861236.bin ... Done
      # [info][ #6] Convert 2e00b317399caec1.jpg to 2e00b317399caec1.bin ... Done
      # [info][#23] Convert 57b78de0600a81b6.jpg to 57b78de0600a81b6.bin ... Done
      # [info][#13] Convert 5cd90e8e164811d6.jpg to 5cd90e8e164811d6.bin ... Done
      # [info][ #9] Convert 6be3de4724a96551.jpg to 6be3de4724a96551.bin ... Done
      # [info][#14] Convert 66dbef7ee8f89034.jpg to 66dbef7ee8f89034.bin ... Done
      # [info][ #1] Convert 216ca4dccf1cf954.jpg to 216ca4dccf1cf954.bin ... Done
      # [info][ #4] Convert 31ef918ed79d5d08.jpg to 31ef918ed79d5d08.bin ... Done
      # [info][#17] Convert 5da8d4522ab05160.jpg to 5da8d4522ab05160.bin ... Done
      # [info][#19] Convert 79b8a886b84d80b8.jpg to 79b8a886b84d80b8.bin ... Done
      # [info][#18] Convert 926a11c59c25d241.jpg to 926a11c59c25d241.bin ... Done
      # [info][#16] Convert 659cbdabbdd29fbb.jpg to 659cbdabbdd29fbb.bin ... Done
      # [info][#24] Convert 59d6bfb423a00030.jpg to 59d6bfb423a00030.bin ... Done
      # [info][#12] Convert 92966db841989471.jpg to 92966db841989471.bin ... Done
      # [info][ #5] Convert 7b5e60773867d7c9.jpg to 7b5e60773867d7c9.bin ... Done
      # [info][#26] Convert 6bbbec6427d1c779.jpg to 6bbbec6427d1c779.bin ... Done
      # [info][#28] Convert 7d065ba4906a04d1.jpg to 7d065ba4906a04d1.bin ... Done
      # [info][#15] Convert 8ffbd9f9c3fcf7f2.jpg to 8ffbd9f9c3fcf7f2.bin ... Done
      # [info][ #7] Convert 72495806a2cc843d.jpg to 72495806a2cc843d.bin ... Done
      # [info][ #0] Convert 8fcf57e4981084f3.jpg to 8fcf57e4981084f3.bin ... Done
      # [info][#20] Convert 84bfb64e712bff6c.jpg to 84bfb64e712bff6c.bin ... Done
      # [info][#27] Convert 72f383044888a700.jpg to 72f383044888a700.bin ... Done
      # [info][#25] Convert 61a825b2f7217dc2.jpg to 61a825b2f7217dc2.bin ... Done
      # [info][#29] Convert 8b6b26a50d5ac0f9.jpg to 8b6b26a50d5ac0f9.bin ... Done
      # [info][ #2] Convert 933bfc62a518cdb5.jpg to 933bfc62a518cdb5.bin ... Done
      # [info][#28] Convert d7deb0b2baf9182a.jpg to d7deb0b2baf9182a.bin ... Done
      # [info][ #3] Convert 94581082d109d248.jpg to 94581082d109d248.bin ... Done
      # [info][#11] Convert 96b3c6bf59fce970.jpg to 96b3c6bf59fce970.bin ... Done
      # [info][#12] Convert d0de707d2d4506cb.jpg to d0de707d2d4506cb.bin ... Done
      # [info][#10] Convert 971e6288aedbd1fc.jpg to 971e6288aedbd1fc.bin ... Done
      # [info][ #8] Convert 9a2fb1c8c2cd684b.jpg to 9a2fb1c8c2cd684b.bin ... Done
      # [info][#13] Convert a765c610f1de4b17.jpg to a765c610f1de4b17.bin ... Done
      # [info][ #6] Convert 9ddf1721b22d9854.jpg to 9ddf1721b22d9854.bin ... Done
      # [info][#14] Convert b52f1effb07482cc.jpg to b52f1effb07482cc.bin ... Done
      # [info][#21] Convert a6e8c15220967c8d.jpg to a6e8c15220967c8d.bin ... Done
      # [info][ #7] Convert dd39739bc9f1c2bc.jpg to dd39739bc9f1c2bc.bin ... Done
      # [info][#20] Convert e6b879016623b763.jpg to e6b879016623b763.bin ... Done
      # [info][ #3] Convert feaf340b6110ea26.jpg to feaf340b6110ea26.bin ... Done
      # [info][#23] Convert a5ab8dc35fc11316.jpg to a5ab8dc35fc11316.bin ... Done
      # [info][#29] Convert f0f9e24867866ffe.jpg to f0f9e24867866ffe.bin ... Done
      # [info][ #1] Convert b541361f9803fbdc.jpg to b541361f9803fbdc.bin ... Done
      # [info][#24] Convert cc2eb9cf689ffc43.jpg to cc2eb9cf689ffc43.bin ... Done
      # [info][#22] Convert 969e22b3683bd4f0.jpg to 969e22b3683bd4f0.bin ... Done
      # [info][ #9] Convert b1add5e32ded1b6b.jpg to b1add5e32ded1b6b.bin ... Done
      # [info][#25] Convert f0159732f67d8dc9.jpg to f0159732f67d8dc9.bin ... Done
      # [info][#28] Convert fb9f80d0b9901906.jpg to fb9f80d0b9901906.bin ... Done
      # [info][#16] Convert cc05a9f8ad54501f.jpg to cc05a9f8ad54501f.bin ... Done
      # [info][ #0] Convert dfb9a621cf44ccdb.jpg to dfb9a621cf44ccdb.bin ... Done
      # [info][#18] Convert c815217fc535053b.jpg to c815217fc535053b.bin ... Done
      # [info][#26] Convert d6b1d4dfac962ada.jpg to d6b1d4dfac962ada.bin ... Done
      # [info][ #5] Convert d380f1bd34fa27c3.jpg to d380f1bd34fa27c3.bin ... Done
      # [info][#17] Convert c580328e55ca9dda.jpg to c580328e55ca9dda.bin ... Done
      # [info][ #4] Convert b73c6ce3a9a5baf9.jpg to b73c6ce3a9a5baf9.bin ... Done
      # [info][#19] Convert c7a6100fb32028cb.jpg to c7a6100fb32028cb.bin ... Done
      # [info][#15] Convert db62fd538c4a1cdd.jpg to db62fd538c4a1cdd.bin ... Done
      # [info][ #2] Convert fb4aefe1d405df85.jpg to fb4aefe1d405df85.bin ... Done
      # [info][#27] Convert ee7b34def3f5fb57.jpg to ee7b34def3f5fb57.bin ... Done
      # [gen_image_list] Folder input received: /home/docker/dra_image_bin
      # [gen_image_list] Created file: dra_image_bin/dra_bin_list.txt
      # [gen_image_list] Converted 100 files to binary, saved in /home/docker/dra_image_bin
      
      tfparser.py -p converted_model.tflite -o car_human_model -of ./out_car_human_model -isrc "is:1,3,256,256|iq|i:input_1=./dra_image_bin/dra_bin_list.txt|ic:255.00446258|idf:0,0,0,0" -odst "o:Identity|odf:fp32" -odst "o:Identity_1|odf:fp32" -c act-force-fx16,coeff-force-fx16
      # 2024-06-26 07:18:36.574819: I tensorflow/stream_executor/platform/default/dso_loader.cc:50] Successfully opened dynamic library libcudart.so.12
      # WARNING:tensorflow:Deprecation warnings have been disabled. Set TF_ENABLE_DEPRECATION_WARNINGS=1 to re-enable them.
      # /usr/local/lib/python3.8/dist-packages/pandas/core/computation/expressions.py:20: UserWarning: Pandas requires version '2.7.3' or newer of 'numexpr' (version '2.7.1' currently installed).
      #   from pandas.core.computation.check import NUMEXPR_INSTALLED
      # WARNING:root:Limited tf.compat.v2.summary API due to missing TensorBoard installation.
      # WARNING:tensorflow:From /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/frameworklibs/cv2.basic.2.5.6.0.1245.ubu2004/lib/python3.8/site-packages/frameworklibs/tensorflow/tflite/tf_lite_supported_ops.py:60: The name tf.nn.max_pool is deprecated. Please use tf.nn.max_pool2d instead.
      # 
      # WARNING:tensorflow:From /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/frameworklibs/cv2.basic.2.5.6.0.1245.ubu2004/lib/python3.8/site-packages/frameworklibs/tensorflow/tflite/tf_lite_supported_ops.py:60: The name tf.nn.max_pool is deprecated. Please use tf.nn.max_pool2d instead.
      # 
      # WARNING:tensorflow:From /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/frameworklibs/cv2.basic.2.5.6.0.1245.ubu2004/lib/python3.8/site-packages/frameworklibs/tensorflow/tflite/tf_lite_supported_ops.py:61: The name tf.nn.avg_pool is deprecated. Please use tf.nn.avg_pool2d instead.
      # 
      # WARNING:tensorflow:From /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/frameworklibs/cv2.basic.2.5.6.0.1245.ubu2004/lib/python3.8/site-packages/frameworklibs/tensorflow/tflite/tf_lite_supported_ops.py:61: The name tf.nn.avg_pool is deprecated. Please use tf.nn.avg_pool2d instead.
      # 
      # WARNING:tensorflow:From /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/frameworklibs/cv2.basic.2.5.6.0.1245.ubu2004/lib/python3.8/site-packages/frameworklibs/tensorflow/tflite/tf_lite_supported_ops.py:104: The name tf.batch_to_space_nd is deprecated. Please use tf.batch_to_space instead.
      # 
      # WARNING:tensorflow:From /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/frameworklibs/cv2.basic.2.5.6.0.1245.ubu2004/lib/python3.8/site-packages/frameworklibs/tensorflow/tflite/tf_lite_supported_ops.py:104: The name tf.batch_to_space_nd is deprecated. Please use tf.batch_to_space instead.
      # 
      # WARNING:tensorflow:From /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/frameworklibs/cv2.basic.2.5.6.0.1245.ubu2004/lib/python3.8/site-packages/frameworklibs/tensorflow/tflite/tf_lite_supported_ops.py:105: The name tf.space_to_batch_nd is deprecated. Please use tf.space_to_batch instead.
      # 
      # WARNING:tensorflow:From /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/frameworklibs/cv2.basic.2.5.6.0.1245.ubu2004/lib/python3.8/site-packages/frameworklibs/tensorflow/tflite/tf_lite_supported_ops.py:105: The name tf.space_to_batch_nd is deprecated. Please use tf.space_to_batch instead.
      # 
      # INFO: 06/26/2024 07:18:41.987708 logger.py:372 [TFLite_Parser] Application logs will be written to the log directory: ./logs
      # INFO: 06/26/2024 07:18:42.127938 tf_lite_v2.py:254 [TFLite_Parser] [MAIN] TFLite model provided by the user: /home/docker/converted_model.tflite
      # INFO: 06/26/2024 07:18:42.129113 tf_lite_v2.py:255 [TFLite_Parser] [MAIN] List of user output nodes: ['Identity', 'Identity_1']
      # INFO: 06/26/2024 07:18:42.130067 tf_lite_v2.py:256 [TFLite_Parser] [MAIN] Do not use quantization data formats: False
      # INFO: 06/26/2024 07:18:42.131749 tf_lite_v2.py:257 [TFLite_Parser] [MAIN] Invoke Asymmetric adjustement: False
      # INFO: 06/26/2024 07:18:42.132419 tf_lite_v2.py:258 [TFLite_Parser] [MAIN] Schema file path: /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/frameworklibs/cv2.basic.2.5.6.0.1245.ubu2004/bin/schema.fbs
      # INFO: 06/26/2024 07:18:42.132673 tf_lite_v2.py:259 [TFLite_Parser] [MAIN] FLATC executable path: /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/frameworklibs/cv2.basic.2.5.6.0.1245.ubu2004/bin/flatc
      # INFO: 06/26/2024 07:18:42.134538 tf_lite_v2.py:260 [TFLite_Parser] [MAIN] Checkpoint path: /home/docker//reconstructed_pb_model/converted_model_ckpt
      # INFO: 06/26/2024 07:18:42.136037 tf_lite_v2.py:261 [TFLite_Parser] [MAIN] Output protobuf reconstructed: /home/docker//reconstructed_pb_model/converted_model_reconstructed.pb
      # INFO: 06/26/2024 07:18:42.136290 tf_lite_v2.py:285 [TFLite_Parser] [FLATC EXE] Converting tflite model to JSON file using flatc executable
      # INFO: 06/26/2024 07:18:43.497503 tf_lite_v2.py:427 [TFLite_Parser] [RECONSTRUCT PROTO] Convert JSON file to protobuf
      # INFO: 06/26/2024 07:18:43.731525 tf_lite_v2.py:316 [TFLite_Parser] [SET IO NODE] Input of the model: ['input_1']
      # INFO: 06/26/2024 07:18:43.731851 tf_lite_v2.py:317 [TFLite_Parser] [SET IO NODE] Output of the model: ['Identity', 'Identity_1']
      # 2024-06-26 07:18:43.736630: W tensorflow/stream_executor/platform/default/dso_loader.cc:61] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv22/tv2/release/Amalgam/cv22.basic.2.5.6.0.1245.ubu2004/lib:/usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv22/tv2/release/libvdg/cv22.basic.2.5.6.0.1245.ubu2004/lib:/usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv22/tv2/release/VpRef/cv22.basic.2.5.6.0.1245.ubu2004/lib:/usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv22/tv2/release/Zamboni/cv22.basic.2.5.6.0.1245.ubu2004/lib:/usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/AmbaCnn/cv2.basic.2.5.6.0.1245.ubu2004/lib:/usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/ApfCanon/1.13/x86_64-linux/lib:/usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/LibAmb/1.19/x86_64-linux/lib:/usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/LibApf/1.13/x86_64-linux/lib
      # 2024-06-26 07:18:43.736839: E tensorflow/stream_executor/cuda/cuda_driver.cc:282] failed call to cuInit: UNKNOWN ERROR (303)
      # 2024-06-26 07:18:43.737283: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (05ba275a9be5): /proc/driver/nvidia/version does not exist
      # 2024-06-26 07:18:43.762300: I tensorflow/core/platform/profile_utils/cpu_utils.cc:109] CPU Frequency: 2918410000 Hz
      # 2024-06-26 07:18:43.763492: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x4671360 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
      # 2024-06-26 07:18:43.763553: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
      # INFO:tensorflow:Froze 54 variables.
      # INFO: 06/26/2024 07:18:45.354419 graph_util_impl.py:334 [TFLite_Parser] Froze 54 variables.
      # INFO:tensorflow:Converted 54 variables to const ops.
      # INFO: 06/26/2024 07:18:45.377763 graph_util_impl.py:394 [TFLite_Parser] Converted 54 variables to const ops.
      # 2024-06-26 07:18:45.434623: I tensorflow/tools/graph_transforms/transform_graph.cc:318] Applying strip_unused_nodes
      # 2024-06-26 07:18:45.444534: I tensorflow/tools/graph_transforms/transform_graph.cc:318] Applying fold_constants
      # 2024-06-26 07:18:45.485948: I tensorflow/tools/graph_transforms/transform_graph.cc:318] Applying remove_nodes
      # 2024-06-26 07:18:45.489095: I tensorflow/tools/graph_transforms/remove_nodes.cc:78] Skipping replacement for Identity
      # 2024-06-26 07:18:45.489224: I tensorflow/tools/graph_transforms/remove_nodes.cc:78] Skipping replacement for Identity_1
      # 2024-06-26 07:18:45.493166: I tensorflow/tools/graph_transforms/remove_nodes.cc:78] Skipping replacement for Identity
      # 2024-06-26 07:18:45.493280: I tensorflow/tools/graph_transforms/remove_nodes.cc:78] Skipping replacement for Identity_1
      # 2024-06-26 07:18:45.500988: I tensorflow/tools/graph_transforms/transform_graph.cc:318] Applying remove_attribute
      # 2024-06-26 07:18:45.502429: I tensorflow/tools/graph_transforms/transform_graph.cc:318] Applying strip_unused_nodes
      # 2024-06-26 07:18:45.504371: I tensorflow/tools/graph_transforms/transform_graph.cc:318] Applying fold_constants
      # 2024-06-26 07:18:45.511826: I tensorflow/tools/graph_transforms/transform_graph.cc:318] Applying sort_by_execution_order
      # INFO: 06/26/2024 07:18:45.559772 tf_lite_v2.py:355 [TFLite_Parser] Reconstructed and optmized protobuf can be found here: /home/docker//reconstructed_pb_model/converted_model_reconstructed.pb
      # WARN: 06/26/2024 07:18:45.560278 tf_lite_v2.py:375 [TFLite_Parser]
      # TFLite model converted to a frozen protobuf but cannot be validated since loading the TFLite model using Interpreter fails. Please check the version of the TFLite model.
      # Reconstructed frozen protobuf is saved in the reconstructed_pb_models/ folder. Use the /home/docker//reconstructed_pb_model/converted_model_reconstructed.pb model for porting.
      # *** (info) importing amba_cnn_py @ /usr/local/amba-cv-tools-basic.2.5.6.0.1245.ubuntu-20.04/cv2/tv2/release/AmbaCnn/cv2.basic.2.5.6.0.1245.ubu2004/python/amba_cnn_py
      # *** (info) setting project cv22
      # opened session 6536 on libambacnn cv2.basic.2.5.6.0.1245.ubu2004 (9322cec*0), at 2024-06-26 07:18:45
      # libambacnn session config: target_device = cv22, gpu_id = -1, mode = default, split = False
      # [info] drc proc time  =  157.628 s @ 100 %
      # [info] drc num frames = 100
      # [info] drc proc time  = 157.628493 s
      # [info] drc pproc time = 0.001153 s
      # [info] drc total time = 290.714981 s
      # [info] dr2 time = (   1.515 calc +    1.224 stat) s x 100 frames
      
      vas -auto -show-progress out_car_human_model/car_human_model.vas
      # car_human_model: EXPAND 68 (expansion progress: 100%)
      # car_human_model: DONE expansion
      # car_human_model: DONE validation
      # car_human_model: DONE analyzing
      # car_human_model: DONE opt
      # car_human_model: DONE buffering
      # car_human_model: SPLIT 0 (split progress: 46%)
      # car_human_model: SPLIT 1 (split progress: 55%)
      # car_human_model: SPLIT 2 (split progress: 100%)
      # car_human_model: DONE split
      # car_human_model: DONE all
      
      cavalry_gen -d vas_output -f car_human_model_cavalry.bin
      # Using cavalry_gen version latest
      # 
      # Save to file car_human_model_cavalry.bin with file size 3319784.
      
    • Test model on CV25 camera
      larod-client -g ./car_human_model_cavalry2.bin  -c ambarella-cvflow -R 10 -w 5 -i ''
      # 2024-06-26T17:54:07.971 Connecting to larod...
      # 2024-06-26T17:54:07.981 Connected
      # 2024-06-26T17:54:08.030 ERROR: When loading model synchronously (-2): Could not load model: Could not initialize net
      
  • Resources

Inference is performed, but no object is detected.(object_detection-cv25)

Describe the bug

Inference is performed, but no object is detected.(object_detection-cv25)

To reproduce

Run object-detection-cv25 in M2035-LE and M3085-V ,Inference is performed, but no object is detected.

object_detection :detect object Person,Chair... (M2035_ObjectDetect.txt)
https://github.com/AxisCommunications/acap-native-sdk-examples/tree/main/object-detection

object_detection-cv25 :Not detect object (M2035_ObjectDetectCV25.txt)
https://github.com/AxisCommunications/acap-native-sdk-examples/tree/main/object-detection-cv25

Camera1:AXIS M2035-LE(11.5.64)
Camera2:AXIS M3085-V(11.5.64)
AXIS M2035-LE and AXIS M3085-V(11.5.64) is same phenomenon

Log

2023-09-04T04:38:54.927+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Starting /usr/local/packages/object_detection/object_detection
2023-09-04T04:38:55.258+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: 'buffer.strategy': <uint32 3>
2023-09-04T04:38:55.258+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: 'channel'--------: <uint32 1>
2023-09-04T04:38:55.258+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: 'format'---------: <uint32 3>
2023-09-04T04:38:55.258+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: 'height'---------: <uint32 720>
2023-09-04T04:38:55.258+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: 'width'----------: <uint32 1280>
2023-09-04T04:38:55.258+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Creating VDO image provider and creating stream 1280 x 720
2023-09-04T04:38:55.258+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Dump of vdo stream settings map =====
2023-09-04T04:38:55.258+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: chooseStreamResolution: We select stream w/h=1280 x 720 based on VDO channel info.
2023-09-04T04:38:55.644+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: 'buffer.strategy': <uint32 3>
2023-09-04T04:38:55.644+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: 'channel'--------: <uint32 1>
2023-09-04T04:38:55.644+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: 'format'---------: <uint32 3>
2023-09-04T04:38:55.644+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: 'height'---------: <uint32 360>
2023-09-04T04:38:55.644+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: 'width'----------: <uint32 640>
2023-09-04T04:38:55.644+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Creating VDO raw image provider and stream 640 x 360
2023-09-04T04:38:55.644+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Dump of vdo stream settings map =====
2023-09-04T04:38:55.820+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: raw width=640, raw height=360
2023-09-04T04:38:55.879+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Calculate crop image
2023-09-04T04:38:55.879+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Create larod models
2023-09-04T04:38:55.879+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Create preprocessing maps
2023-09-04T04:38:55.879+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Creating VDO crop image provider and creating stream 1280 x 720
2023-09-04T04:38:55.879+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Crop VDO image X=280 Y=0 (720 x 720)
2023-09-04T04:38:55.879+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Setting up larod connection with chip ambarella-cvflow, model /usr/local/packages/object_detection/model/converted_model.bin and label file /usr/local/packages/object_detection/label/labels.txt
2023-09-04T04:38:55.879+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: chooseStreamResolution: We select stream w/h=1280 x 720 based on VDO channel info.
2023-09-04T04:38:55.911+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Available chip IDs:
2023-09-04T04:38:55.911+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Chip: ambarella-cvflow
2023-09-04T04:38:55.911+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Chip: ambarella-cvflow-proc
2023-09-04T04:38:55.911+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Chip: cpu-proc
2023-09-04T04:38:55.911+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Chip: cpu-tflite
2023-09-04T04:38:56.110+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Allocate memory for input/output buffers
2023-09-04T04:38:56.110+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Create input/output tensors
2023-09-04T04:38:56.110+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Creating temporary files and memmaps for inference input and output tensors
2023-09-04T04:38:56.110+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Determine tensor buffer sizes
2023-09-04T04:38:56.110+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Loading preprocessing model with chip cpu-proc
2023-09-04T04:38:56.110+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: createAndMapTmpFile: Setting up a temp fd with pattern /tmp/crop.test-XXXXXX and size 691200
2023-09-04T04:38:56.110+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: createAndMapTmpFile: Setting up a temp fd with pattern /tmp/larod.in.test-XXXXXX and size 288000
2023-09-04T04:38:56.110+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: createAndMapTmpFile: Setting up a temp fd with pattern /tmp/larod.out1.test-XXXXXX and size 30672
2023-09-04T04:38:56.110+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: createAndMapTmpFile: Setting up a temp fd with pattern /tmp/larod.out2.test-XXXXXX and size 697788
2023-09-04T04:38:56.110+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: createAndMapTmpFile: Setting up a temp fd with pattern /tmp/larod.pp.test-XXXXXX and size 1382400
2023-09-04T04:38:56.114+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Connect tensors to file descriptors
2023-09-04T04:38:56.114+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Create job requests
2023-09-04T04:38:56.114+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Found 1 input tensors and 2 output tensors
2023-09-04T04:38:56.114+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Set input tensors
2023-09-04T04:38:56.114+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Set output tensors
2023-09-04T04:38:56.114+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Start fetching video frames from VDO
2023-09-04T04:38:56.128+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Converted image in 22 ms
2023-09-04T04:38:56.157+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Ran inference for 27 ms
2023-09-04T04:38:56.257+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Postprocesing in 101 ms
2023-09-04T04:38:56.271+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Converted image in 13 ms
2023-09-04T04:38:56.298+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Ran inference for 26 ms
2023-09-04T04:38:56.399+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Postprocesing in 100 ms
2023-09-04T04:38:56.414+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Converted image in 15 ms
2023-09-04T04:38:56.441+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Ran inference for 26 ms
2023-09-04T04:38:56.544+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Postprocesing in 102 ms
2023-09-04T04:38:56.559+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Converted image in 15 ms
2023-09-04T04:38:56.586+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Ran inference for 26 ms
2023-09-04T04:38:56.686+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Postprocesing in 99 ms
2023-09-04T04:38:56.699+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Converted image in 13 ms
2023-09-04T04:38:56.726+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Ran inference for 26 ms
2023-09-04T04:38:56.828+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Postprocesing in 101 ms
2023-09-04T04:38:56.842+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Converted image in 14 ms
2023-09-04T04:38:56.870+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Ran inference for 27 ms
2023-09-04T04:38:56.969+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Postprocesing in 99 ms
2023-09-04T04:38:56.986+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Converted image in 16 ms
2023-09-04T04:38:57.014+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Ran inference for 28 ms
2023-09-04T04:38:57.115+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Postprocesing in 99 ms
2023-09-04T04:38:57.127+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Converted image in 13 ms
2023-09-04T04:38:57.154+00:00 axis-b8a44f45d2c1 [ INFO ] object_detection[1292144]: Ran inference for 26 ms

Environment

  • Axis device model: [AXIS M2035-LE]
  • Axis device firmware version: [11.5.64)]
  • Stack trace or logs: [N/A]
  • OS and version: [Ubuntu 22.04 LTS]
  • Additional context

M2035_ObjectDetectCV25.txt
M3085_ObjectDtectCV25.txt
M2035_ObjectDetect.txt

Errors in logs with axoverlay example

When I build and run the axoverlay example on our camera (no changes to the code made) it produces two errors in the app log:
[ WARNING ] axoverlay[2777417]: g_error_free: assertion 'error != NULL' failed
[ INFO ] axoverlay[2777417]: Fontconfig error: No writable cache directories

The errors don't seem to interfere with the function of the app which is running as it should, including drawing the correct overlays, but I assume the app shouldn't be producing any errors at all, and there may be consequences I am not thinking of to the errors, which is why I am reporting them.

How to train dataset for object_detection

Describe the feature

How to train object detection model?
There is no information in this repo.

Added value

https://github.com/AxisCommunications/acap-native-sdk-examples/tree/main/object-detection uses models of https://github.com/google-coral/test_data so I think model would be generated from https://github.com/tensorflow/models
But I'm not sure it is correct.
In convlustion, I want to know

  • training script and repo
    • git revision or tag (if use repo)
  • training step
    • and convert script for trained model to use on axis camera

Additional context

N/A

can't pass the compile

when try to compile the 4.2 example, it report error:
#14 44.55 CC libcurl_la-easy.lo
#14 44.63 In file included from easy.c:87:
#14 44.63 easy_lock.h: In function 'curl_simple_lock_lock':
#14 44.63 easy_lock.h:54:7: error: implicit declaration of function 'sched_yield' [-Werror=implicit-function-declaration]
#14 44.63 54 | sched_yield();
#14 44.63 | ^~~~~~~~~~~
#14 44.77 cc1: some warnings being treated as errors
#14 44.77 make[2]: *** [Makefile:2218: libcurl_la-easy.lo] Error 1
#14 44.77 make[2]: Leaving directory '/opt/build/curl/lib'
#14 44.77 make[1]: *** [Makefile:1355: all] Error 2
#14 44.77 make[1]: Leaving directory '/opt/build/curl/lib'
#14 44.77 make: *** [Makefile:1229: all-recursive] Error 1

I remembered that work with 4.0, but the example code keep unchanged. so it seems the curl version has some update, it can't work now.

i also try to upload a local old curl version, and it can pass compile

Invalid application manifest when adding dbus resource to manifest

Set dbus resource in manifest according to docs, results in a non installable app.

2024-03-09T07:35:34.664+01:00 axis-b8a44f914a20 [ WARNING ] acapmanager[1579]: acapmanager-dbus.c:1770 Failed to install acap package '/tmp/pm_download_YR3EK2/package.eap' on location 'internal'
2024-03-09T07:35:34.664+01:00 axis-b8a44f914a20 [ WARNING ] acapmanager[1579]: acapmanager-dbus.c:629 acapctl error 80: Invalid application manifest
2024-03-09T07:35:34.664+01:00 axis-b8a44f914a20 [ WARNING ] packagemanager.cgi[1347185]: pm_install_acap.c:99 pm_install_acap: Acap manager D-Bus install method returned error: (1)

To reproduce

Add resources and bus to manifest

{
    "schemaVersion": "1.3.1",
    "acapPackageConf": {
        "setup": {
            "appName": "dbustest",
            "friendlyName": "Dbus Test APP",
            "vendor": "Acs",
            "version": "1.0.1",
            "runMode": "never",
            "embeddedSdkVersion": "3.0",
            "user": {
                "group": "root",
                "username": "root"
            }
        }
    },
    "resources": {
        "dbus": {
            "requiredMethods": ["com.axis.HTTPConf1.VAPIXServiceAccounts1.GetCredentials"]
        }
    }
}

Environment

  • Axis device model: AXIS M3215-LVE
  • Axis device firmware version: 11.9.60

object-detection-cv25 - Unable to run app with high resolution

getting this error on log

2023-12-25T22:48:08.644-07:00 axis-b8a44f742baa [ INFO ] object_detection[551935]: Creating VDO High resolution image provider and stream 1280 x 720
2023-12-25T22:48:08.644-07:00 axis-b8a44f742baa [ INFO ] object_detection[551935]: Dump of vdo stream settings map =====
2023-12-25T22:48:08.644-07:00 axis-b8a44f742baa [ INFO ] object_detection[551935]: chooseStreamResolution: We select stream w/h=1280 x 720 based on VDO channel info.
2023-12-25T22:48:08.660-07:00 axis-b8a44f742baa [ ERR ] object_detection[551935]: createStream: Failed creating vdo stream: DBus call failed: Failed creating stream: Unable to find a suitable buffer for 1280x720 NV12
2023-12-25T22:48:08.687-07:00 axis-b8a44f742baa [ ERR ] object_detection[551935]: createImgProvider: Could not create VDO stream!
2023-12-25T22:48:08.710-07:00 axis-b8a44f742baa [ ERR ] object_detection[551935]: main: Could not create high resolution image provider

cpu-proc padding

Larod cpu-proc padding

It would be cool when padding trough larod preproccessing is possible. Simalar to cropping but for padding.

Like when getting an vdo frame of 640x360 to padding this Image with black Pixels to 640x640 for yolo for example.

Maybe its already implemented but i dont found any Infos in docs about this.

Steps would be:

  • create a larod map like for cropping but for padding.

WARNING: Fallback unsupported op 32 to TfLite

Running SSD mobilenetv2 I get in the log the following warning:
Fallback unsupported op 32 to TFlite

Axis Device Model: AXIS P3267-LVE
Firmware: 11.6.94
Model Architecture: Mobilenet V2 SSD (object detection)
Model Resolution: Custom, 16:9 aspect ratio
TFlite Details: Quantize Aware Trained, TF1, with per tensor Quantization.

Reproduction steps:

  1. Load the ACAP with the above tflite model.
  2. Run the app and as soon as model is loaded, the above warning message appears.

object-detection example - quantization issue

While creating an object detection app based on the object-detection example here, I noticed that in the example, quantization of the input for the model isn't explicitly handled anywhere in the preprocessing setup, even though the model provided in the example has quantization on the input. Thus I thought that it had to be handled somewhere inside the Larod library, but from the testing I did with my own quantized model, this is apparently not the case, and I had to manually perform the quantization of the input before passing it to the model to make the model work.
I have two questions regarding this:

  1. Is this a bug, or is the model provided with the example somehow special and doesn't require quantizing the input for it to work? Examining the model in Netron suggests otherwise, but maybe I am missing something.
  2. For models that require the quantization, what would be the most optimal way to perform it using the C++ SDK libraries (VDO, Larod etc.)? I went through the available documentation, but couldn't find anything.

Q6215-LE Supported?

Is the Q6215-LE supported to run Docker ACAP?

I followed the compatibility section here: https://github.com/AxisCommunications/docker-compose-acap

Ran the following command:
ssh root@$DEVICE_IP 'command -v containerd >/dev/null 2>&1 && echo Compatible with Docker ACAP || echo Not compatible with Docker ACAP'

But it says: "Not compatible with Docker ACAP". I was wanting to run Object Detection on the camera, is that not possible for this model?

AxEventValueSet getKeys

I suppose the EventKeyValueSet is a hashmap, so it would be very handy If there a function to get all keys in a EventKeyValueSet.

AXEventKeyValueSet *set = ax_event_key_value_set_new()
GList* keys = set.get_keys()

I build a golang wrapper for AXEvent and I would like suscribe to all Device Events for example, this function would help me to dynamically parse the KeyValueSet.

Also for Debugging would this be helpful.
Or an iterater would even better.

Thanks

setupLarod: Unable to load model: Could not load model: Could not allocate tensors

Hello AXIS ACAP developers,

Actually, I try to integrate yolov5s (tflite) into my camera and I get the error from larod: "setupLarod: Unable to load model: Could not allocate tensors".

I haven't found the solution yet. But I think maybe the yolov5s is too big for my camera (ARTPEC-7 chip, 1GB RAM) or maybe there are some layers in the yolov5s that larod does not support (larod custom layers).

Please let me know your ideas, it would be very helpful !

Thanks in advance !

vdo-opencl-filering: Example broken

Describe the bug

The example vdo-opencl-filtering seems broken, the file /usr/local/packages/vdo_cl_filter_demo/cl_vdo_demo.yuv is empty.

To reproduce

Follow the example instructions and SSH in to device and control the file.

Environment

  • Axis device model: At least Artpec-8
  • Axis device firmware version: At least 11.7

Kernel crashed

I am working on Camera AXIS P3265-LV. I had reported a bug on firmware 10, when i call the function

loadedModel = larodLoadModel(conn, larodModelFd, LAROD_ACCESS_PRIVATE, "object_detection", &error);

i got error message Asynchronous connection has been closed

The issue was resolved in firmware 11. It worked fine on firmware 11.0.108 and 11.1.72 but on the latest release 11.3.57, it start to restart my camera when the same above command is called. When i downgrade to 11.1.72, it again start to work fine
following are the logs ( i have tested on 3 different cameras)

Crash.txt

image

Issues migrating an app using the Event API to periodically send heartbeats (from SDK3 to SDK4)

Please do not disclose security vulnerabilities as issues. See our security policy for responsible disclosures.

Describe the bug

The app is quite simple, and was initially develop from various examples provided by Axis for SDK3. Every 2 minutes, it will collect some metrics from the camera and emit an event (which will be published to MQTT). Now that SDK3 is becoming deprecated, I am migrating this app to the new SDK4. However, both versions of the app do not behave the same, to the point the version using SDK4 can be declared as broken.

When compiled with the legacy SDK3 and using ax_event_new() from the Event API

everything works as expected. In fact, this code has been running for several years on several hundreds of cameras.

2024-07-16T14:19:45.640+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2580354]: Send heartbeat
    ... about 120s later, we send another heartbeat, as expected
2024-07-16T14:21:56.890+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2580354]: Send heartbeat
    ... about 120s later, we send another heartbeat, as expected
2024-07-16T14:24:07.891+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2580354]: Send heartbeat
    ... about 120s later, we send another heartbeat, as expected
2024-07-16T14:26:18.890+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2580354]: Send heartbeat

When compiled with the new SDK4 and using the non-deprecated ax_event_new2() from the Event API

The behavior is more chaotic, though very systematic

2024-07-16T13:50:18.390+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2575994]: Send heartbeat
    ... only about 6 seconds (expected about 120s)
2024-07-16T13:50:24.640+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2575994]: Send heartbeat
2024-07-16T13:50:26.576+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2576826]: Heartbeat started
    ... heartbeat app rebooted
    ... waited 6 minutes before heartbeat was sent (expected either right after start, or about 120s later)
2024-07-16T13:56:49.390+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2576826]: Send heartbeat
    ... again, only about 6 seconds (expected about 120s)
2024-07-16T13:56:56.140+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2576826]: Send heartbeat
2024-07-16T13:56:58.140+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2577663]: Heartbeat started
    ... again, heartbeat app rebooted
2024-07-16T14:03:20.640+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2577663]: Send heartbeat
    ... again, only about 6s (expected about 120s)
2024-07-16T14:03:26.389+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2577663]: Send heartbeat
2024-07-16T14:03:28.890+02:00 axis-b8a44fafc67e [ INFO    ] heartbeat[2578441]: Heartbeat started
    ... again, heartbeat app rebooted

The two version of the app use the very same code. The only difference is isolated in a function where we use conditional compilation directives, like this:

static AXEvent* new_event(AXEventKeyValueSet *key_value_set) {
  #if AXISSDK == AXISSDK4
  return ax_event_new2(key_value_set, NULL);
  #else
  return ax_event_new(key_value_set, NULL);
  #endif
}

To reproduce

A this point, I do not have a minimal reproduceable setup that I can share.

Before I invest time on making this reproduceable setup, I would appreciate if you have any feedback, hints, etc that could help me fixing the issue with SDK4. Are there any more changes in the Event API that could explain the issue?

Screenshots

None. Logs have been provided

Environment

  • Axis device model: M1075-L (though the issue is probably not limited to this model)
  • Axis device firmware version: 11.10.83 (same comment)
  • Stack trace or logs: logs attached previously
  • OS and version: Irrelevant, binaries are compiled with the docker containers provided by Axis
  • Version: SDK4

Additional context

Add any other context about the problem here.

Error while running HelloWorld App on Axis camera.

Please do not disclose security vulnerabilities as issues. See our security policy for responsible disclosures.

Describe the bug

While trying Hello World manifest ACAP application, I get the following error in the system log:

2022-11-16T17:43:59.039+09:00 axis-accc8ec63f80 [ INFO ] hello_world[15055]: /usr/local/packages/hello_world/hello_world: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/local/packages/hello_world/hello_world)

I had build the docker image to get the file "hello_world_1_0_0_armv7hf.eap". And my computer has Ubuntu 20.04.03 LTS and (Ubuntu GLIBC 2.31-0ubuntu9.9) 2.31.

How can I resolve the issue ?

To reproduce

Sending build context to Docker daemon 24.58kB
Step 1/9 : ARG ARCH=armv7hf
Step 2/9 : ARG VERSION=1.5
Step 3/9 : ARG UBUNTU_VERSION=22.04
Step 4/9 : ARG REPO=axisecp
Step 5/9 : ARG SDK=acap-native-sdk
Step 6/9 : FROM ${REPO}/${SDK}:${VERSION}-${ARCH}-ubuntu${UBUNTU_VERSION}
---> f56b62a1709f
Step 7/9 : COPY ./app /opt/app/
---> Using cache
---> 94e98a79ef1b
Step 8/9 : WORKDIR /opt/app
---> Using cache
---> bb4953e7e2f4
Step 9/9 : RUN . /opt/axis/acapsdk/environment-setup* && acap-build ./
---> Using cache
---> 393a9eeae2d3
Successfully built 393a9eeae2d3
Successfully tagged hello:latest

Environment

  • Axis device model: P1375-E
  • Axis device firmware version: [Axis OS 10.08.1]
  • Stack trace or logs: [e.g. Axis device system logs]
  • OS and version: [ Ubuntu 20.04.03 LTS]

Additional context

Add any other context about the problem here.

metadata-broker example (ssh)

I am testing the metadata broker example and everything works great when running the application from the webUI, however I would like to run it from ssh (currently testing with root), but getting the following message:
Got connection error: Auth error: WRONGPASS invalid username-password pair or user is disabled., Aborting...
Do I need to change anything in the manifest.json?

Thanks!
Marco

Unable to install eap using container example for large eap file size

Describe the bug

I am able to use the container example and install the sample eap on a camera and run the app. When I build a container using the computer vision sdk, I get error cannot install app and the logs show the following:
2022-05-04T16:51:14.589+10:00 axis-b8a44f27fb6e [ WARNING ] packagemanager.cgi: pm_request_parser.c:513 pm_request_parser_init: Content-length 192176444 exceeds maximum length 104857600

The content length matches my eap file size of 192Mb.

To reproduce

  1. Clone computervision sdk and go to ml-minimal-example
  2. Follow the steps to setup the export names for env and build the dockers for inference and model.
  3. Save the dockers using docker save to .tar file
  4. Copy the tar, docker compose, env files to the native sdk container example.
  5. Update postinstall and preunsintall scripts to have your .tar file names
  6. Build eap and copy as per the example.
  7. Try and install the eap on the camera (should be 192Mb)

Environment

  • Axis device model: P3265-LVE
  • Axis device firmware version:10.10.73
  • OS and version: Ubuntu 18.04 LTS
  • Version:SDK version 1.2, ACAP 4

Web server monkey patch not working correctly.

Error message with the default file.

../monkey.patch:46: space before tab in indent.
GMainLoop *loop;
../monkey.patch:47: space before tab in indent.
int ret;
../monkey.patch:52: space before tab in indent.
loop = g_main_loop_new(NULL, FALSE);
../monkey.patch:53: space before tab in indent.
write_index();
../monkey.patch:82: space before tab in indent.
g_main_loop_run(loop);
error: corrupt patch at line 205

I attempted to fix the indent errors but still receiving the final error
error: corrupt patch at line 205

Can you help to advice the resolution for this?

sh[4012]: double free or corruption (out)

I updated my firmware from 11.1.72 to 11.6.89 for P3265 Camera, my application start to crash. It is working fine till firmware 11.1.72 but later firmware version had some memory leak that start to crash kernel. I was told that it was fixed in firmware 11.5x. When I tested on firmware 11.6.89, it did resolved the kernel crash but it is now given me following error when i call the following function

loadedModel = larodLoadModel(conn, larodModelFd, LAROD_ACCESS_PRIVATE,
                                 "object_detection", &error);

Object Detection code
at line 335.

Screenshot 2023-09-21 142326

please also find my camera report in attachment.
serverreport_cgi.txt

Issue with Larod API

Axis product/device: P1375

Device firmware version: AXIS OS version 10.5.2

Issue description: I tried a few examples such as the hello-world and web-server and it works as intended, however when I tried the vdo-larod example, I encounter an issue and this is the log:
/usr/lib/liblarod.so.1: version `LIBLAROD_3.0.0' not found (required by /usr/local/packages/vdo_larod/vdo_larod)
I followed the instruction correctly, not sure how I could fix it or upgrade liblarod.

Metadata Broker (aarch64) crash

Bug report description

consume_analytics_metadata crashing on aarch64 (P3265-LV FW 11.9.60)

To reproduce

I have been testing the Metadata Broker for few days and developed my own ACAP based on your example to find out my app was crashing after few hours of running. I have then decided to run the example app to find out it was crashing as well. The issue seems to be related somehow to the syslog. Commenting out

syslog(LOG_INFO,
"metadata received from topic: %s on source: %s: Monotonic time - "
"%lld.%.9ld. Data - %.s",
channel_identifier->topic,
channel_identifier->source,
(long long)timestamp->tv_sec,
timestamp->tv_nsec,
(int)payload->size,
(char
)payload->data);

results in the app never crashing.

I have then decided to build a test acap flooding the camera with syslogs. The metadata broker example is the one that crashes while other acaps are not affected by it.

The same example 'consume_analytics_metadata' works just fine on armv7hf arch (tested on Q1615 MKIII fw 11.9.60)

The scene I am testing is a high traffic highway (see attached short video)

Steps to reproduce the behavior:

  1. Install the 'consume_analytics_metadata_1_0_0' acap on ARTPEC8 camera (I tested on P3265-LV) FW 11.9.60
  2. Make sure the camera views faces lots of traffic (the more, the quicker the issue will happen)
  3. Check after few hours of running that the app stopped.

Screenshots

Check video.
https://github.com/AxisCommunications/acap-native-sdk-examples/assets/11927582/919b3739-a577-4c3b-8a94-6ff552b4ca13

Environment

  • Axis device model: P3265-LV

  • Axis device firmware version: 11.9.60

  • Stack trace or logs: Server Report attached
    p3265_metadata_broker_issue.txt

  • OS and version: na

  • Version: example compiled iusing acap-native-sdk v1.13

Additional context

As mentioned above the issue can be avoided by commenting out the syslog, so this issue doesn't have a big impact on my current dev. but definitely worth investigating in my opinion.

no overlay on the camera stream

image
i have install the example on the testing camera and running, but nothing showing on the live stream. it should display some bounding boxes and text overlay,right?
this is the camera log:
----- Contents of SYSTEM_LOG for 'axoverlay' -----

2021-11-23T12:49:08.163+00:00 axis-b8a44f0e633b [ WARNING ] axoverlay[16324]: g_error_free: assertion 'error != NULL' failed
2021-11-23T12:49:08.319+00:00 axis-b8a44f0e633b [ WARNING ] axoverlay[1005]: Last message 'g_error_free: assert' repeated 1 times, suppressed by syslog-ng on axis-b8a44f0e633b
2021-11-23T12:50:09.065+00:00 axis-b8a44f0e633b [ WARNING ] axoverlay[16857]: g_error_free: assertion 'error != NULL' failed
2021-11-23T12:50:09.319+00:00 axis-b8a44f0e633b [ WARNING ] axoverlay[1005]: Last message 'g_error_free: assert' repeated 1 times, suppressed by syslog-ng on axis-b8a44f0e633b
2021-11-23T12:53:07.446+00:00 axis-b8a44f0e633b [ WARNING ] axoverlay[17954]: g_error_free: assertion 'error != NULL' failed
2021-11-23T12:53:08.319+00:00 axis-b8a44f0e633b [ WARNING ] axoverlay[1005]: Last message 'g_error_free: assert' repeated 1 times, suppressed by syslog-ng on axis-b8a44f0e633b
2021-11-23T13:02:31.447+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Max resolution (width x height): 1920 x 1080
2021-11-23T13:02:31.447+00:00 axis-b8a44f0e633b [ WARNING ] axoverlay[20187]: g_error_free: assertion 'error != NULL' failed
2021-11-23T13:02:32.319+00:00 axis-b8a44f0e633b [ WARNING ] axoverlay[1005]: Last message 'g_error_free: assert' repeated 1 times, suppressed by syslog-ng on axis-b8a44f0e633b
2021-11-23T13:02:37.308+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:37.308+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:37.417+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:37.417+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:37.417+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:37.417+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:37.417+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:37.574+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:37.574+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:37.574+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:37.638+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:37.638+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:37.638+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:37.638+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:37.638+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:37.646+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:37.646+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:37.653+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:37.653+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:37.653+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:39.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:39.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:39.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:39.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:39.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:39.329+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:39.329+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:39.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:39.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:39.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:40.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:40.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:40.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:40.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:40.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:40.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:40.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:40.336+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:40.336+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:40.336+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:41.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:41.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:41.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:41.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:41.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:41.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:41.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:41.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:41.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:41.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:42.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:42.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:42.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:42.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:42.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:42.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:42.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:42.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:42.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:42.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:43.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:43.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:43.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:43.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:43.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:43.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:43.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:43.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:43.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:43.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:44.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:44.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:44.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:44.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:44.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:44.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:44.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:44.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:44.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:44.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:45.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:45.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:45.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:45.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:45.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:45.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:45.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:45.333+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:45.333+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:45.333+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:46.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:46.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:46.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:46.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:46.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:46.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:46.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:46.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:46.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:46.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:47.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:47.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:47.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:47.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:47.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:47.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:47.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:47.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:47.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:47.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:48.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:48.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:48.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:48.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:48.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:48.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:48.329+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:48.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:48.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:48.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:49.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:49.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:49.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:49.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:49.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:49.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:49.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:49.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:49.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:49.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:50.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:50.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:50.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:50.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:50.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:50.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:50.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:50.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:50.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:50.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:51.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:51.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:51.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:51.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:51.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:51.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:51.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:51.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:51.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:51.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:52.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:52.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:52.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:52.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:52.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:52.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:52.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:52.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:52.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:52.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:53.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:53.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:53.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:53.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:53.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:53.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:53.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:53.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:53.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:53.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:54.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:54.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:54.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:54.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:54.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:54.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:54.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:54.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:54.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:54.335+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:55.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:55.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:55.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:55.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:55.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:55.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:55.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:55.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:55.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:55.334+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:56.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:56.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:56.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:56.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:56.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:56.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:56.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:56.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:56.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:56.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:57.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:57.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:57.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:57.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:57.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:57.331+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:57.331+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:57.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:57.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:57.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:58.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:58.323+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:58.332+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:58.332+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:58.332+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:58.332+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:58.332+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:58.336+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:58.336+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:58.336+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:59.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:59.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:59.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:59.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:59.327+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:02:59.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:02:59.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:02:59.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:02:59.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:02:59.337+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:03:00.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:03:00.325+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:03:00.329+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:03:00.329+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:03:00.333+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:03:00.333+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:03:00.333+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:03:00.338+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:03:00.338+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:03:00.338+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:03:01.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:03:01.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:03:01.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:03:01.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:03:01.324+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:03:01.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:03:01.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:03:01.339+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:03:01.339+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:03:01.339+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:03:02.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:03:02.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:03:02.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:03:02.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:03:02.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:03:02.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:03:02.328+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:03:02.339+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:03:02.339+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:03:02.339+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:03:03.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:03:03.322+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:03:03.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:03:03.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720
2021-11-23T13:03:03.326+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for stream: 1280 x 720
2021-11-23T13:03:03.329+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for overlay: 1920 x 1080
2021-11-23T13:03:03.329+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Adjust callback for stream: 1280 x 720
2021-11-23T13:03:03.340+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for camera: 1
2021-11-23T13:03:03.340+00:00 axis-b8a44f0e633b [ INFO ] axoverlay[20187]: Render callback for overlay: 1280 x 720

web-server example fails to build.

SDK version 1.4
last commit: 8a6fea5 ( Update versions (#83))

web-server example fails to build.
To reproduce:

  1. "git pull" to get latest sources from acap-native-sdk-examples.
  2. stand in acap-native-sdk-examples/web-server
  3. issue command docker build . --tag axis-web-server:armv7hf, which yields the following output :
Sending build context to Docker daemon  35.84kB
Step 1/17 : ARG ARCH=armv7hf
Step 2/17 : ARG REPO=axisecp
Step 3/17 : ARG SDK=acap-native-sdk
Step 4/17 : ARG UBUNTU_VERSION=22.04
Step 5/17 : ARG VERSION=1.4
Step 6/17 : FROM ${REPO}/${SDK}:${VERSION}-${ARCH}-ubuntu${UBUNTU_VERSION}
 ---> a1a20c52894c
Step 7/17 : WORKDIR /opt
 ---> Using cache
 ---> 8bdab65f1dcb
Step 8/17 : COPY monkey.patch .
 ---> Using cache
 ---> 165c45ff2d43
Step 9/17 : RUN git clone -b v1.5.6 https://github.com/monkey/monkey
 ---> Using cache
 ---> 21e6c08f9f15
Step 10/17 : WORKDIR /opt/monkey
 ---> Using cache
 ---> af0c20e317cc
Step 11/17 : RUN git apply ../monkey.patch &&    . /opt/axis/acapsdk/environment-setup* &&    ./configure     --enable-shared     --malloc-libc     --prefix=/usr/local     --bindir=/usr/local/bin
  --libdir=/usr/local/lib     --sysconfdir=/usr/local/packages/monkey/html     --datadir=/usr/local/packages/monkey/html     --mandir=/usr/local/man     --logdir=/tmp     --plugdir=/usr/local/packag
es/monkey/lib     --pidfile=/tmp/monkey.pid     --incdir=/usr/local/include/monkey     --systemddir=/usr/lib/systemd/system &&    make &&    make install
 ---> Running in ad823b81e430
../monkey.patch:59: space before tab in indent.
        GMainLoop *loop;
../monkey.patch:60: space before tab in indent.
        int ret;
../monkey.patch:65: space before tab in indent.
        loop = g_main_loop_new(NULL, FALSE);
../monkey.patch:66: space before tab in indent.
        write_index();
../monkey.patch:95: space before tab in indent.
        g_main_loop_run(loop);
warning: configure has type 100755, expected 100644
error: patch failed: configure:1297
error: configure: patch does not apply
error: patch failed: examples/Makefile:1
error: examples/Makefile: patch does not apply
error: patch failed: examples/hello.c:1
error: examples/hello.c: patch does not apply
error: patch failed: examples/list.c:1
error: examples/list.c: patch does not apply
error: patch failed: examples/quiz.c:1
error: examples/quiz.c: patch does not apply
error: patch failed: src/mk_server.c:40
error: src/mk_server.c: patch does not apply
The command '/bin/sh -c git apply ../monkey.patch &&    . /opt/axis/acapsdk/environment-setup* &&    ./configure     --enable-shared     --malloc-libc     --prefix=/usr/local     --bindir=/usr/local
/bin     --libdir=/usr/local/lib     --sysconfdir=/usr/local/packages/monkey/html     --datadir=/usr/local/packages/monkey/html     --mandir=/usr/local/man     --logdir=/tmp     --plugdir=/usr/local
/packages/monkey/lib     --pidfile=/tmp/monkey.pid     --incdir=/usr/local/include/monkey     --systemddir=/usr/lib/systemd/system &&    make &&    make install' returned a non-zero code: 1

In particular observe that the docker build failed in attempting to execute the "git apply ../monkey.patch" command in Step 11.
SDK version 1.2 of this same web-server example builds fine on the same host computer.

Please also note that there is an error in the "How to build the code" section for the web-server example at https://github.com/AxisCommunications/acap-native-sdk-examples/tree/main/web-server. In this section the user is asked to run the command docker build . --build-arg ARCH --tag web-server:$ARCH. I believe that the correct command should be docker build . --build-arg ARCH=$ARCH --tag web-server:$ARCH.

expanding the using-opencv example to include blob detection

I am using the M3115-LVE which can not run docker python code but it can run c++ apps.
I successfully compiled and installed the using-opencv app from your example repo.

I am now hoping to expand on the example by including blob detection via the OpenCV SimpleBlobDetector. But it seems some of the needed headers are not found and are probably not included when opencv gets build during docker build --tag <APP_IMAGE> .

Here my terminal print out that states SimpleBlobDetector is not a class, namespace.

Last login: Wed Apr 20 09:22:51 on ttys001
You have mail.
stephanschulz@Komputer ~ % cd /Users/stephanschulz/Documents/GitHub/axis-camera-computervision/acap-native-sdk-opencv-blob/using-opencv
stephanschulz@Komputer using-opencv % docker build --tag opencv_detector .
[+] Building 2.3s (16/16) FINISHED                                                                                                                 
 => [internal] load build definition from Dockerfile                                                                                          0.0s
 => => transferring dockerfile: 120B                                                                                                          0.0s
 => [internal] load .dockerignore                                                                                                             0.0s
 => => transferring context: 2B                                                                                                               0.0s
 => [internal] load metadata for docker.io/axisecp/acap-native-sdk:1.1-armv7hf-ubuntu20.04                                                    0.3s
 => [ 1/12] FROM docker.io/axisecp/acap-native-sdk:1.1-armv7hf-ubuntu20.04@sha256:0edbfa86b7c8ee82a877d57716898756f3e525f907ee6d964ca3ca45ce  0.0s
 => [internal] load build context                                                                                                             0.0s
 => => transferring context: 5.89kB                                                                                                           0.0s
 => CACHED [ 2/12] COPY sources.list /etc/apt                                                                                                 0.0s
 => CACHED [ 3/12] RUN if [ "armv7hf" = armv7hf ]; then         apt-get update &&         dpkg --add-architecture armhf &&         apt-get u  0.0s
 => CACHED [ 4/12] RUN apt-get update && apt-get install -y -f --no-install-recommends     cmake     curl     pkg-config &&     update-ca-ce  0.0s
 => CACHED [ 5/12] RUN if [ "armv7hf" = armv7hf ]; then         export ARCHDIR=arm-linux-gnueabihf &&         export STRIP=arm-linux-gnueabi  0.0s
 => CACHED [ 6/12] WORKDIR /workspace                                                                                                         0.0s
 => CACHED [ 7/12] RUN curl -fsSL https://github.com/opencv/opencv/archive/4.5.1.tar.gz | tar -xz                                             0.0s
 => CACHED [ 8/12] WORKDIR /workspace/opencv-4.5.1/build                                                                                      0.0s
 => CACHED [ 9/12] RUN COMMON_CMAKE_FLAGS="-D CMAKE_BUILD_TYPE=RELEASE         -D CMAKE_INSTALL_PREFIX=/target-root/usr         -D WITH_OPEN  0.0s
 => [10/12] COPY app/ /opt/app                                                                                                                0.0s
 => [11/12] WORKDIR /opt/app                                                                                                                  0.0s
 => ERROR [12/12] RUN . /opt/axis/acapsdk/environment-setup* && acap-build .                                                                  1.8s
------                                                                                                                                             
 > [12/12] RUN . /opt/axis/acapsdk/environment-setup* && acap-build .:                                                                             
#16 0.320 make                                                                                                                                     
#16 0.322 mkdir -p ./lib                                                                                                                           
#16 0.326 cp /target-root/usr/lib/libopencv_core.so.4.5 /target-root/usr/lib/libopencv_core.so.4.5.1 /target-root/usr/lib/libopencv_core.so ./lib  
#16 0.334 cp /target-root/usr/lib/libopencv_imgproc.so.4.5.1 /target-root/usr/lib/libopencv_imgproc.so /target-root/usr/lib/libopencv_imgproc.so.4.5 ./lib
#16 0.342 cp /target-root/usr/lib/libopencv_video.so /target-root/usr/lib/libopencv_video.so.4.5 /target-root/usr/lib/libopencv_video.so.4.5.1 ./lib
#16 0.349 arm-linux-gnueabihf-g++  -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/axis/acapsdk/sysroots/armv7hf -L/opt/axis/acapsdk/sysroots/armv7hf/usr/lib example.cpp  -O2 -pipe -g -feliminate-unused-debug-types  -Os -pipe -std=c++11 -I/opt/axis/acapsdk/sysroots/armv7hf/usr/include/vdo -I/opt/axis/acapsdk/sysroots/armv7hf/usr/include/gio-unix-2.0 -I/opt/axis/acapsdk/sysroots/armv7hf/usr/include/glib-2.0 -I/opt/axis/acapsdk/sysroots/armv7hf/usr/lib/glib-2.0/include -I/target-root/usr/include/opencv4 -L./lib -Wl,--no-as-needed,-rpath,'$ORIGIN/lib' -lm -lopencv_video -lopencv_imgproc -lopencv_core -lpthread -lvdostream -lsystemd -lgio-2.0 -lgobject-2.0 -lglib-2.0 imgprovider.cpp -o opencv_app && arm-linux-gnueabihf-strip --strip-unneeded opencv_app
#16 1.401 example.cpp: In function ‘int main(int, char**)’:
#16 1.401 example.cpp:101:9: error: ‘SimpleBlobDetector’ has not been declared
#16 1.401   101 |         SimpleBlobDetector::Params params;
#16 1.401       |         ^~~~~~~~~~~~~~~~~~
#16 1.404 example.cpp:104:9: error: ‘params’ was not declared in this scope
#16 1.404   104 |         params.minThreshold = 10;
#16 1.404       |         ^~~~~~
#16 1.416 example.cpp:136:9: error: ‘SimpleBlobDetector’ was not declared in this scope
#16 1.416   136 |     Ptr<SimpleBlobDetector> detector = SimpleBlobDetector::create(params);
#16 1.416       |         ^~~~~~~~~~~~~~~~~~
#16 1.416 example.cpp:136:27: error: template argument 1 is invalid
#16 1.416   136 |     Ptr<SimpleBlobDetector> detector = SimpleBlobDetector::create(params);
#16 1.416       |                           ^
#16 1.416 example.cpp:136:40: error: ‘SimpleBlobDetector’ is not a class, namespace, or enumeration
#16 1.416   136 |     Ptr<SimpleBlobDetector> detector = SimpleBlobDetector::create(params);
#16 1.416       |                                        ^~~~~~~~~~~~~~~~~~
#16 1.416 example.cpp:139:13: error: base operand of ‘->’ is not a pointer
#16 1.416   139 |     detector->detect(fg, keypoints);
#16 1.416       |             ^~
#16 1.417 example.cpp:145:26: warning: too many arguments for format [-Wformat-extra-args]
#16 1.417   145 |         syslog(LOG_INFO, "keypoints", keypoints[0]);
#16 1.417       |                          ^~~~~~~~~~~
#16 1.796 make: *** [Makefile:30: opencv_app] Error 1
#16 1.797 
#16 1.797 make failed. Please fix above errors, before you can create a package
------
executor failed running [/bin/bash -o pipefail -c . /opt/axis/acapsdk/environment-setup* && acap-build .]: exit code: 1
stephanschulz@Komputer using-opencv % 

Deep learning Inference C++ example

Hello everyone,

I am currently working on a project that requires implementing deep learning inference in C++, and I'm seeking an example to help me get started.

Thank you,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.