Analyze video using custom Yolov3 - Azure Video Analyzer

Hieu Phan 26 Reputation points
2022-02-18T11:39:56.217+00:00

Hi,
I want to deploy a custom yolov3 to Azure video analyzer following this AVA tutorial analyze-live-video-use-your-model-http. However, it couldn't find the inference server http://yolov3/score.

Instead of using the pre-built docker yolov3 image (mcr.microsoft.com/ava-utilities/avaextension:http-yolov3-onnx-v1.0), I am using a custom docker yolov3 image (deployed on Microsoft container registry). I follow this document http-cpu to push my custom docker image to the container registry.

Now, the Yolov3 has been successfully deployed on "$CONTAINER_REGISTRY_USERNAME_myacr.azurecr.io".
I update the deployment.yolov3.template.json and point the yolov3 module to the mcr image url as follows:

"yolov3": {       
      .....       
     "settings": {       
              "image": "$CONTAINER_REGISTRY_USERNAME_myacr.azurecr.io/avaextension:latest",       
              "createOptions": {}       
 }       

Note that I follow all steps exactly described in AVA tutorial analyze-live-video-use-your-model-http. The only step I'm doing different is to modify the docker image url in the deployment.yolov3.template.json.

When activating the live pipeline, it couldn't find the inference server:

 "body": {   
    "code": "nameResolutionError",   
    "target": "http://yolov3/score"   
  },   
  "properties": {   
    "topic": "/subscriptions/f7fdb0ad-2bed-46f9-b58c-dddec7b9a603/resourceGroups/ava-sample-99/providers/Microsoft.Media/videoAnalyzers/avasampleqsce3xyv5x6wu",   
    "subject": "/edgeModules/avaedge/livePipelines/Sample-Pipeline-1/processors/httpExtension",   
    "eventType": "Microsoft.VideoAnalyzer.Diagnostics.NetworkError",   
    "eventTime": "2022-02-18T07:27:48.295Z",   
    "dataVersion": "1.0"   
  }   

I doubt that the inference url (in operation.json) needs to be modified, but I don't know how. Here is where we set the live pipeline:

{       
    "opName": "livePipelineSet",       
    "opParams": {       
        "name": "Sample-Pipeline-1",       
        "properties": {       
            "topologyName": "EVROnMotionPlusHttpExtension",       
            "parameters": [       
                {       
                    "name": "httpAIServerAddress",       
                    "value": "http://yolov3/score"       
                },...       
            ]       
        }       
    }       
}       

Could you please help me identify the issues? Thanks.

Azure IoT Edge
Azure IoT Edge
An Azure service that is used to deploy cloud workloads to run on internet of things (IoT) edge devices via standard containers.
541 questions
Azure IoT Hub
Azure IoT Hub
An Azure service that enables bidirectional communication between internet of things (IoT) devices and applications.
1,124 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Hieu Phan 26 Reputation points
    2022-03-01T10:58:27.63+00:00

    Hi, the docker image takes time to start. After 10 seconds, the model starts and successfully gives inference.

    1 person found this answer helpful.