/
eval_denoisor.py
50 lines (36 loc) · 1.51 KB
/
eval_denoisor.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
import argparse
import os.path as osp
from datetime import timedelta
# Import dv related package
import dv_processing as dv
import dv_toolkit as kit
# Import project config
from configs import Denoisor
# Import evaluation metric
from python.src.utils.metric import EventStructuralRatio
if __name__ == '__main__':
# Arguments settings
parser = argparse.ArgumentParser(description='Run single denoisor and evaluation.')
parser.add_argument('-f', '--file', type=str, default='./data/demo/samples/demo-01.aedat4')
parser.add_argument('--denoisor', type=str, default='ynoise', help='choose a denoisor')
args = parser.parse_args()
# Load file to MonoCameraReader
reader = kit.io.MonoCameraReader(args.file)
# Get Offline data
data = reader.loadData()
# Get resolutiong
resolution = reader.getResolution("events")
# Register event structural ratio
metric = EventStructuralRatio(resolution)
# Print before filter
score = metric.evalEventStorePerNumber(data["events"].toEventStore())
print(f"Before filter >>>\n {data['events']}, \n ESR score: {score.mean():.3f}")
# Initialize denoisor
model = Denoisor(args.denoisor, resolution)
# Receive noise sequence
model.accept(data["events"])
# Perform event denoising
data["events"] = model.generateEvents()
# Print after filter
score = metric.evalEventStorePerNumber(data["events"].toEventStore())
print(f"After filter <<<\n {data['events']}, \n ESR score: {score.mean():.3f}")