Does nn_inference support batch processing?

Hi all, I have some questions.

  1. Does nn_inference support batch processing?

    outputs = ssd.nn_inference(cv_img, platform='TFLITE', output_tensor=4, reorder='0 1 2', output_format=output_format.OUT_FORMAT_FLOAT32)
  1. If yes, how to manage the code so that NPU inference can process multiple frames at the same time. For this case, the batch size is 2. Thank you!

    picture = './data/batch/frame_001.jpg'
    picture2 = './data/batch/frame_100.jpg'

    cv_img = []
    img = cv.imread(picture, cv.IMREAD_COLOR)
    img2= cv.imread(picture2, cv.IMREAD_COLOR)

    cv_img.append(img)
    cv_img.append(img2)

    outputs = ssd.nn_inference(cv_img, platform='TFLITE', output_tensor=4, reorder='0 1 2', output_format=output_format.OUT_FORMAT_FLOAT32)

    input0_data = outputs[0]
    input1_data = outputs[2]
    input2_data = outputs[1]
    input3_data = outputs[3]

    input0_data = input0_data.reshape(GRID0, GRID0, SPAN, LISTSIZE).transpose(2, 3, 0, 1)
    input1_data = input1_data.reshape(GRID1, GRID1, SPAN, LISTSIZE).transpose(2, 3, 0, 1)
    input2_data = input2_data.reshape(GRID2, GRID2, SPAN, LISTSIZE).transpose(2, 3, 0, 1)
    input3_data = input3_data.reshape(GRID3, GRID3, SPAN, LISTSIZE).transpose(2, 3, 0, 1)

    #input_data = [input0_data, input1_data, input2_data, input3_data]
    input_data = list()
    input_data.append(np.transpose(input0_data, (2, 3, 0, 1)))
    input_data.append(np.transpose(input1_data, (2, 3, 0, 1)))
    input_data.append(np.transpose(input2_data, (2, 3, 0, 1)))
    input_data.append(np.transpose(input3_data, (2, 3, 0, 1)))


    boxes, classes, scores = yolov3_post_process(input_data)

    #print(boxes)

    if boxes is not None:
        draw(img, boxes, scores, classes)
    
    cv.imwrite("output_phrd_tflite.jpg", img)

Hello @keikeigd

@Louis-Cheng-Liu will help you then.

Hello @keikeigd ,

Sorry, nn_inference does not support batch processing, now. But you can try to use multithreading.

Thanks for quick response.