test.py
1.57 KB
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
# 1번째 텍스트 파일 읽기
file1_name = "video_test1" + ".txt"
file1 = open("../yolov8_tracking/runs/track/exp/tracks/" + file1_name, "r")
data1 = file1.readlines()
file1.close()
# 2번째 텍스트 파일 읽기
file2_name = file1_name[:-4] + "_labeling_average.txt"
file2 = open("../labeling/result/" + file2_name, "r")
data2 = file2.readlines()
file2.close()
# 오차 계산을 위한 변수 초기화
missed_detection = 0
false_alarm = 0
data1_list = []
data2_list = []
# 1~5 frame을 제외하고 detection된 frame_number을 data_list에 추가
for i, line in enumerate(data1):
if i < 6:
continue
frame_number, _, _, _, _ = line.strip().split()
if frame_number not in data1_list:
data1_list.append(frame_number)
for i, line in enumerate(data2):
if i < 6:
continue
frame_number, OnOFF = line.strip().split()
if OnOFF == "ON":
data2_list.append(frame_number)
# 오차 계산
# labelling한 data2에 없는데 data1에 있으면 false alarm
# 반대면 miss detection
for frame_number in data2_list:
if frame_number not in data1_list:
missed_detection += 1
for frame_number in data1_list:
if frame_number not in data2_list:
false_alarm += 1
# 오차율 계산
total_count = 295
missed_detection_rate = (missed_detection / total_count) * 100
false_alarm_rate = (false_alarm / total_count) * 100
# 결과 출력
#print("Missed Detection: ", missed_detection)
#print("False Alarm: ", false_alarm)
print("Missed Detection Rate:", missed_detection_rate)
print("False Alarm Rate:", false_alarm_rate)