File size: 1,115 Bytes
000b3e1
 
 
 
91ae7b8
000b3e1
 
 
 
 
a5e6f78
000b3e1
 
ade4ba6
 
 
 
 
 
 
 
000b3e1
a5e6f78
000b3e1
 
 
 
 
 
ade4ba6
 
000b3e1
ade4ba6
5c9a665
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import deeplabcut
from tkinter import W
import gradio as gr
import numpy as np
from dlclive import DLCLive, Processor


##########################################
def predict_dlc(list_np_crops,
                kpts_likelihood_th,
                dlc_model_folder,
                dlc_proc):
    
    # no animal detected: nothing to run
    if len(list_np_crops) == 0:
        return []

    # DLCLive always converts 3-channel frames BGR->RGB, but our crops are
    # already RGB (PIL), so pass them as BGR for the model to see RGB
    list_np_crops = [np.ascontiguousarray(crop[..., ::-1]) for crop in list_np_crops]

    # run dlc thru list of crops
    dlc_live = DLCLive(dlc_model_folder, processor=dlc_proc)
    dlc_live.init_inference(list_np_crops[0])

    list_kpts_per_crop = []
    for crop in list_np_crops:
        keypts_xyp = dlc_live.get_pose(crop) # third column is llk!
        # set kpts below threhsold to nan
        keypts_xyp[keypts_xyp[:,-1] < kpts_likelihood_th,:] = np.nan
        # add kpts of this crop to list
        list_kpts_per_crop.append(keypts_xyp)

    return list_kpts_per_crop