Close

All I want is a blob!

A project log for Livestock and Pet Geofencing

An autonomous system that monitors animals within a zone.

jtJT 02/17/2022 at 04:510 Comments

It has been about two weeks since my last post. I got sidetracked with a few other projects, but I'm back on task. I was hoping to have the Microsoft MegaDetector converted into a MyriadX blob by now but I keep hitting stone walls. I have spent quite a bit of time trying to tweak the model optimizer parameters. I started out with the default parameters:

import blobconverter

blob_path = blobconverter.from_tf(
    frozen_pb="/path/to/md_v4.1.0.pb",
    data_type="FP16",
    shaves=5,
    optimizer_params=[
        "--reverse_input_channels",
        "--input_shape=[1,513,513,3]",
        "--input=1:mul_1",
        "--output=ArgMax",
    ],
)

After some trial and error using the BlobConverter CLI and Luxonis MyriadX Blob Converter methods, I seemed to find what I believe are the correct model optimizer parameters.

import blobconverter

blob_path = blobconverter.from_tf(
    frozen_pb="/Users/shadow/Desktop/OpenCV_Competition/MegaDetector/md_v4.1.0.pb",
    data_type="FP16",
    shaves=6,
    optimizer_params=[
        "--reverse_input_channels",
        "--input_shape=[1,600,1024,3]",
        "--input=image_tensor",
        "--output=Softmax",
    ],
)

 The latest error states: "[ ERROR ]  Exception occurred during running replacer "REPLACEMENT_ID" (<class 'extensions.middle.CheckForCycle.CheckForCycle'>): Graph contains a cycle. Can not proceed."  I'm going to try following OpenVINO's method for Converting TensorFlow Object Detection API Models.

If this method does not work I will examine other methods for achieving our goals. 

Discussions