У меня есть фрейм данных для достоверных данных:
(Pdb) df_gt_example =
CENTER_X CENTER_Y VELOCITY ACCELERATION LENGTH WIDTH HEADING TURN_RATE CLASS
FrameId OId
1 0 -19.0 -11.0 1.0 0.5 2.0 2.0 0.785398 0.5 1.0
2 0 -17.0 -9.0 1.0 0.5 2.0 2.0 0.785398 0.5 1.0
0 1 -18.0 -4.0 1.0 0.5 2.0 2.0 0.785398 0.5 1.0
1 1 -17.0 -3.0 1.0 0.5 2.0 2.0 0.785398 0.5 1.0
2 1 -16.0 -2.0 1.0 0.5 2.0 2.0 0.785398 0.5 1.0
0 2 -15.0 -18.0 1.0 0.5 2.0 2.0 0.523599 0.5 1.0
1 2 -13.0 -20.0 1.0 0.5 2.0 2.0 0.523599 0.5 1.0
2 2 -13.5 -16.5 1.0 0.5 2.0 2.0 0.523599 0.5 1.0
0 3 17.0 -3.0 1.0 0.5 2.0 2.0 1.047198 0.5 1.0
1 3 17.0 -3.0 1.0 0.5 2.0 2.0 1.047198 0.5 1.0
2 3 17.0 -3.0 1.0 0.5 2.0 2.0 1.047198 0.5 1.0
У меня есть фрейм данных из вывода модели (гипотеза):
df_hp_example =
CENTER_X CENTER_Y VELOCITY ACCELERATION LENGTH WIDTH HEADING TURN_RATE CLASS
FrameId HId
0 0 -17.68 -3.68 2.0 0.8 2.1 2.1 1.570796 1.023599 1
1 0 -16.68 -2.68 2.0 0.8 2.1 2.1 1.570796 1.023599 1
2 0 -13.18 -16.18 2.0 0.8 2.1 2.1 1.308997 1.023599 1
0 1 -14.68 -17.68 2.0 0.8 2.1 2.1 1.308997 1.023599 1
1 1 -12.68 -19.68 2.0 0.8 2.1 2.1 1.308997 1.023599 1
2 1 -15.68 -1.68 2.0 0.8 2.1 2.1 1.570796 1.023599 1
1 2 -18.68 -10.68 2.0 0.8 2.1 2.1 1.570796 1.023599 1
2 2 -16.68 -8.68 2.0 0.8 2.1 2.1 1.570796 1.023599 1
0 3 37.00 17.00 21.0 20.5 22.0 22.0 21.047198 20.500000 1
1 3 22.00 2.00 6.0 5.5 7.0 7.0 6.047198 5.500000 1
Я знаю ложные положительные события, кадры, в которых есть гипостия, но нет наземной истины:
fp_events =
FrameId Type OId HId
1 0 FP NaN 3.0
3 1 FP NaN 3.0
Я также знаю ложно-отрицательные кадры, которые у нас есть наземная правда, но модель их пропускает:
fn_events =
FrameId Type OId HId
0 0 MISS 3.0 NaN
2 1 MISS 3.0 NaN
4 2 MISS 3.0 NaN
Теперь мне нужно создать фрейм данных со следующими столбцами из наземной истины и гипотезы:
final_df = pd.DataFrame(columns= [FrameId, OId, HId, gt_class, hp_class, gt_CENTER_X, gt_CENTER_Y, hp_CENTER_X, hp_CENTER_Y])
- Для ложного срабатывания (fp_events) запросите соответствующие столбцы (FrameId, HId) из df_hp_example и заполните столбцы, касающиеся Groundtruth, с помощью np.nan (например,
gt_CENTER_X
, gt_CENTER_Y
) - Для ложного негатиева (fn_events) запросите соответствующие столбцы (FrameId, OId) из df_gt_example и заполните столбцы относительно гипотезы с np.nan (например,
hp_CENTER_X
, hp_CENTER_Y
)
Результат будет
gt_CLASS hp_CLASS FrameId OId HId gt_CENTER_X gt_CENTER_Y gt_VELOCITY gt_ACCELERATION gt_LENGTH gt_WIDTH gt_HEADING gt_TURN_RATE hp_CENTER_X hp_CENTER_Y hp_VELOCITY hp_ACCELERATION hp_LENGTH hp_WIDTH hp_HEADING hp_TURN_RATE
0 1.0 NaN 0 3.0 NaN 17.0 -3.0 1.0 0.5 2.0 2.0 1.047198 0.5 NaN NaN NaN NaN NaN NaN NaN NaN
1 1.0 NaN 1 3.0 NaN 17.0 -3.0 1.0 0.5 2.0 2.0 1.047198 0.5 NaN NaN NaN NaN NaN NaN NaN NaN
2 1.0 NaN 2 3.0 NaN 17.0 -3.0 1.0 0.5 2.0 2.0 1.047198 0.5 NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN 1 0 NaN 3 NaN NaN NaN NaN NaN NaN NaN NaN 37 17 21 20.5 22 22 21.0472 20.5
4 NaN 1 1 NaN 3 NaN NaN NaN NaN NaN NaN NaN NaN 22 2 6 5.5 7 7 6.0472 5.5