-
Hi everyone, I was developing a computer vision pipeline on Axis camera model Q1656-LE Box. I installed Axis ACAP and Axis computer vision SDK using Docker and everything is functional when I use the default detection model which is SSD Mobilenet V2. (Screenshot below). This detection model is configured in the following files as far as I learned.
What I need to do is to replace this default detection model with other open-source model like EfficientDet Lite0 (from coral AI model zoo here) or any other newly created model. I tried to change the two files above to accomodate these changes but the Axis device keeps loading the default model SSD Mobilenet V2 and returns an error.
Then when I run rebuild the object detector according to the instructions and run the detector, I received the following error: Thank you for your help in advance. |
Beta Was this translation helpful? Give feedback.
Replies: 11 comments 13 replies
-
Try running |
Beta Was this translation helpful? Give feedback.
-
Thanks a lot @garaujo23 for your comment. When I want to rebuild the object detector I use the following bash script. The command you mentioned is executed and old volumes are deteted. The code is attached below.
The output for rebuilding is:
|
Beta Was this translation helpful? Give feedback.
-
Hi @BenJam29 |
Beta Was this translation helpful? Give feedback.
-
Hi @Corallo, When rerun the program, the model name is correctly identified (image below), it failed to load the model. "ERROR in Inference: Failed to load model efficientdet_lite0_320_ptq_edgetpu.tflite (Could not load model: Could not set VX delegate)." I use EfficientDet-Lite0 model from here, by copy pasting model url in Dockerfile.model. Dockerfile.model content:
Any idea, why it failed to load new model? |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
HI @BenJam29 I am going to move this issue into the discussion tab, as this is not an issue nor an enchantment. |
Beta Was this translation helpful? Give feedback.
-
Regarding the issue you are having now: So, make sure to upgrade first the firmware of your camera to 11.0+ (you can find the instruction in the settings page of the camera) |
Beta Was this translation helpful? Give feedback.
-
Thanks a lot @Corallo for your help. There was a progress in the process. I made the following changes according to your previous message:
Any suggestions? |
Beta Was this translation helpful? Give feedback.
-
@BenJam29 Some "unaviable" messages are expected to be received. You should make some changes in your code so that it allows a "failure" like in the example Once that is done once, the converted model should be cached inside the camera, so this issue should not occur again until you change model. Try this and let us know if it solves the problem. |
Beta Was this translation helpful? Give feedback.
-
Thanks a lot @Corallo. It seems like working now. I let it run after a few seconds the detection started. I noticed the results variable content is different in SSD Mobile Net V2 and EfficientDet Lite0 leading to error in detector.py. The content for SSD detector is called TFLite_Detection_PostProcess but in EfficientDet is called StatefulPartitionedCall. That's a separate discussion though. I attached the image below to show the output. |
Beta Was this translation helpful? Give feedback.
-
Hi again @Corallo, |
Beta Was this translation helpful? Give feedback.
Hi @BenJam29
The answer of @garaujo23 is correct, you need to make sure that the old volumes in your camera are removed.
First of all, make sure to run the command
docker-compose --tlsverify --host tcp://$DEVICE_IP:$DOCKER_PORT --env-file ./config/env.$ARCH.$CHIP down --volumes
when you terminate your execution, to leave the camera in a "clean state"
Try to run it now, and see if it already solves your issue,
Otherwise run
docker -H tcp://$DEVICE_IP:$DOCKER_PORT volumes ls
to check if there are volumes leftand
docker volume prune -f
to do a forced cleaning