public int[] Run(IntPtr data) { IntPtr ptr = PoseNetPInvok.EstimatePose(interpreter, data, width, height, out int length); var val = new int[length]; Marshal.Copy(ptr, val, 0, length); PoseNetPInvok.DeleateResult(ptr); return(val); }
public PoseNet(string path, int thread) { model = PoseNetPInvok.TfLiteModelCreateFromFile(path); option = PoseNetPInvok.TfLiteInterpreterOptionsCreate(); PoseNetPInvok.TfLiteInterpreterOptionsSetNumThreads(option, thread); interpreter = PoseNetPInvok.TfLiteInterpreterCreate(model, option); IntPtr input = PoseNetPInvok.TfLiteInterpreterGetInputTensor(interpreter, 0); width = PoseNetPInvok.TfLiteTensorDim(input, 2); height = PoseNetPInvok.TfLiteTensorDim(input, 1); }
public void Dispose() { PoseNetPInvok.TfLiteInterpreterDelete(interpreter); PoseNetPInvok.TfLiteInterpreterOptionsDelete(option); PoseNetPInvok.TfLiteModelDelete(model); }