numba-TypingError: Ошибка в конвейере режима без python (шаг: нет python внешний интерфейс) неточного типа pyobject - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь запустить некоторый код, используя numba. Я заметил, что код должен быть в форме функции. У меня есть следующий код. Он извлекает кадры (изображения RGB) из видео и добавляет (сохраняет) их в список. Пожалуйста, обратитесь к следующему коду:

#opencv 4
@jit(nopython=True)
def video_to_frames(col):
    frame_list = []
    cap = cv2.VideoCapture('/media/michael/extHDD/Kaggle/DeepFAke/DF_all/{}'.format(col_name[i]))
    while(cap.isOpened()):
        ret, frame = cap.read()
        if ret == False:
            break
            frame_list.append(frame) # list of all the frames in fake video
    cap.release()
    return frame_list

Он запускается в следующем фрагменте кода:

#Main piece of code
first_for_loop = tqdm(range(0,100000,5))

for i in range(len(first_for_loop)):
    if str(df2['original'][i]).endswith(".mp4"):
        if len(video_to_frames(df2['original']))==len(video_to_frames(df2['fake_name'])): 
            d1 = diff(video_to_frames(df2['original']),video_to_frames(df2['fake_name'])) #diff is another function
            list_of_dis = list_of_distance(d1) #another function
            max_value = max(list_of_dis)
            max_index = list_of_dis.index(max_value)
            cv2.imwrite('/home/michael/DFDC_New/FakeTrain/frame_'+str(df2['fake_name'][i])[:-4]+'.jpg',
                        fake_frame_list[max_index])         
            cv2.destroyAllWindows() 

Однако, когда я запускаю этот код, я получаю сообщение об ошибке при запуске основной кусок кода . Пожалуйста, найдите его ниже.

Вывод;

enter image description here

Кто-нибудь сможет мне помочь в этом отношении.

Спасибо и наилучшими пожеланиями

Майкл

...