forked from nguyenph17/E2E-Action-Segmentation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
debug_model.py
111 lines (72 loc) · 3.33 KB
/
debug_model.py
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import numpy as np
import pandas as pd
import os
from visualization.plot_segments import PlotSegments
import glob
from visualization import metrics
from matplotlib import pyplot as plt
def visualize(result_path, video_path):
base = os.path.basename(video_path)
video_name = os.path.splitext(base)[0]
gt_path = os.path.join(result_path, f'predictions/{video_name}_gt.npy')
#gt_path = './result_111122/new_result/predictions/{}_refined_pred.npy'.format(video_name)
pred_path = os.path.join(result_path, f'predictions/{video_name}_refined_pred.npy')
plot_segments = PlotSegments('./visualization/mapping.txt')
plot_segments.visualize(video_path ,gt_path, pred_path)
def test_videos(result_path):
pred_path = os.path.join(result_path, 'predictions')
gt_format = '*_gt.npy'
gt_files = [name for name in glob.glob(os.path.join(pred_path, gt_format))]
scores = []
print(f'There are {len(gt_files)} test files')
for gt_file in gt_files:
gt_file_name = os.path.split(gt_file)[-1]
gt_file_name = str(gt_file_name).replace('_gt.npy', '')
pred_file = os.path.join(pred_path, gt_file_name +'_refined_pred.npy')
acc, edit, f1s = metrics.main(gt_file, pred_file)
scores.append(list([acc, edit, f1s[-1]]))
#print(f'file name: {gt_file_name}, scores: acc - {round(acc, 2)}, \
# edit - {round(edit, 2)} f1@50 - {round(f1s[-1], 2)}')
#print(scores)
scores = np.array(scores)
scores = np.sum(scores, axis=0) / scores.shape[0] * 1.0
print(f'The mean score: acc={scores[0]}, edit={scores[1]}, f1@50={scores[2]}')
#print(scores)
return scores
def plot_training_loss(result_path):
history = pd.read_csv(os.path.join(result_path, 'log.csv'))
plt.plot(history['train_loss'])
plt.plot(history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'val'], loc='upper right')
plt.show()
def plot_val_scores(result_path):
history = pd.read_csv(os.path.join(result_path, 'log.csv'))
plt.plot(history['cls_acc'])
plt.plot(history['edit'])
plt.plot(history['segment [email protected]'])
plt.title('model scores')
plt.ylabel('score')
plt.xlabel('epoch')
plt.legend(['accuracy', 'edit', '[email protected]'], loc='lower right')
plt.show()
# video_path = 'model_ouputs/own_test_video/test_video_make_salad.avi'
# swap_segments = 'model_ouputs/own_test_video'
# new_result_agument = 'model_ouputs/own_test_video'
video_path = 'model_ouputs/swap_segments/rgb-14-1.avi'
swap_segments = 'model_ouputs/swap_segments'
new_result_agument = 'model_ouputs/swap_segments'
#plot_val_scores(new_result_agument)
#visualize(swap_segments, video_path)
#test_videos(new_result_agument)
# test_videos(result_reduce_fps_aug)
video_path = "E:/AICamp/Human-Action-Reconigtion-Comparison/rgb/rgb/rgb-07-1.avi"
gt_path = "feature_extraction/outputs/features_30fps/gt_arr/rgb-07-1.npy"
pred_path = gt_path
plot_segments = PlotSegments('./visualization/mapping.txt')
plot_segments.visualize(video_path ,gt_path, pred_path)
# result_path = 'model_ouputs/new_result_agument'
# video_path = "E:/AICamp/Human-Action-Reconigtion-Comparison/rgb/rgb/rgb-05-2.avi"
# visualize(result_path, video_path)