如何在Android上加载YOLOv2?

时间:2019-05-18 16:52:44

标签: android yolo

我训练了YOLOv2,并将其更改为pb文件。

我将此pb文件添加到资产中,并在Android上的应用程序中添加了implementation org.tensorflow:tensorflow-android:+

我想使用CameraBridgeViewBase.CvCameraViewListener2TensorflowInferenceInterface在Android上加载我的自定义YOLOv2。

输入张量和输出张量的名称分别为inputoutput。输入的大小为608 x 608。

这是我的代码。

public class MainActivity extends AppCompatActivity implements CameraBridgeViewBase.CvCameraViewListener2 {

    private Mat matInput;

    private TensorFlowInferenceInterface tensorFlowInferenceInterface;
    private String MODEL_FILE_NAME = "file:///android_asset/yolo-obj.pb";
    private String INPUT_NAME = "input";
    private String OUTPUT_NAME = "output";
    private int[] inputs = {608, 608};
    private float[] outputs;
    private int number_of_classes = 6;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tensorFlowInferenceInterface = new TensorFlowInferenceInterface(getAssets(), MODEL_FILE_NAME);
        tensorFlowInferenceInterface.feed(INPUT_NAME, inputs, 1, 608, 608, 3);
        tensorFlowInferenceInterface.run(new String[] {OUTPUT_NAME});
        outputs = new float[number_of_classes];
        tensorFlowInferenceInterface.fetch(OUTPUT_NAME, outputs);

    }

@Override
    public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
        matInput = inputFrame.rgba();
        return matInput;
    }
}

我提到了TensorflowInferenceInterface的{​​{3}}。

我不知道在onCameraFrame()中填写什么。

0 个答案:

没有答案