-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtf2oda_inf_eval_saved_model_TEMPLATE.sh
More file actions
115 lines (90 loc) · 3.65 KB
/
tf2oda_inf_eval_saved_model_TEMPLATE.sh
File metadata and controls
115 lines (90 loc) · 3.65 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
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
112
113
114
115
#!/bin/bash
###
# Functions
###
setup_env()
{
# Environment preparation
echo Activate environment
#call conda activate %PYTHONENV%
. ./init_env.sh
echo Activate task spooler
. ./init_ts.sh
}
get_model_name()
{
MYFILENAME=`basename "$0"`
MODELNAME=`echo $MYFILENAME | sed 's/tf2oda_inf_eval_saved_model_//' | sed 's/.sh//'`
echo Selected model: $MODELNAME
}
###
# Main body of script starts here
###
echo #==============================================#
echo # CDLEML Process TF2 Object Detection API
echo #==============================================#
# Constant Definition
USEREMAIL=alexander.wendt@tuwien.ac.at
#MODELNAME=tf2oda_efficientdetd0_320_240_coco17_pedestrian_all_LR002
SCRIPTPREFIX=../../eml-tools
DATASET=/srv/cdl-eml/datasets/dataset-oxford-pets-val-debug
HARDWARENAME=TeslaV100
LABELMAP=label_map.pbtxt
#Extract model name from this filename
get_model_name
#Setup environment
setup_env
echo "Start inference of $MODELNAME on EDA02 $(date +"%Y%m%d %T")" | mail -s "Start Inference $MODELNAME EDA02 $(date +"%Y%m%d %T")" $USEREMAIL
#echo "Setup task spooler socket."
#. ~/init_eda_ts.sh
echo Apply to model $MODELNAME
echo #====================================#
echo # Infer Images from Known Model
echo #====================================#
echo Inference from model
python3 $SCRIPTPREFIX/inference_evaluation/tf2oda_inference_from_saved_model.py \
--model_path "exported-models/$MODELNAME/saved_model/" \
--image_dir "$DATASET/images/val" \
--labelmap "$DATASET/annotations/$LABELMAP" \
--detections_out="results/$MODELNAME/$HARDWARENAME/detections.csv" \
--latency_out="results/latency_$HARDWARENAME.csv" \
--min_score=0.5 \
--model_name=$MODELNAME \
--hardware_name=$HARDWARENAME \
--index_save_file="./tmp/index.txt"
#--model_short_name=%MODELNAMESHORT% unused because the name is created in the csv file
echo #====================================#
echo # Convert Detections to Pascal VOC Format
echo #====================================#
echo Convert TF CSV Format similar to voc to Pascal VOC XML
python $SCRIPTPREFIX/conversion/convert_tfcsv_to_voc.py \
--annotation_file="results/$MODELNAME/$HARDWARENAME/detections.csv" \
--output_dir="results/$MODELNAME/$HARDWARENAME/det_xmls" \
--labelmap_file="$DATASET/annotations/$LABELMAP"
echo #====================================#
echo # Convert to Pycoco Tools JSON Format
echo #====================================#
echo Convert TF CSV to Pycoco Tools csv
python3 $SCRIPTPREFIX/conversion/convert_tfcsv_to_pycocodetections.py \
--annotation_file="results/$MODELNAME/$HARDWARENAME/detections.csv" \
--output_file="results/$MODELNAME/$HARDWARENAME/coco_detections.json"
echo #====================================#
echo # Evaluate with Coco Metrics
echo #====================================#
echo coco evaluation
python3 $SCRIPTPREFIX/inference_evaluation/eval_pycocotools.py \
--groundtruth_file="$DATASET/annotations/coco_val_annotations.json" \
--detection_file="results/$MODELNAME/$HARDWARENAME/coco_detections.json" \
--output_file="results/performance_$HARDWARENAME.csv" \
--model_name=$MODELNAME \
--hardware_name=$HARDWARENAME \
--index_save_file="./tmp/index.txt"
echo #====================================#
echo # Merge results to one result table
echo #====================================#
echo merge latency and evaluation metrics
python3 $SCRIPTPREFIX/inference_evaluation/eval_merge_results.py \
--latency_file="results/latency_$HARDWARENAME.csv" \
--coco_eval_file="results/performance_$HARDWARENAME.csv" \
--output_file="results/combined_results_$HARDWARENAME.csv"
echo "Stop inference of $MODELNAME on EDA02 $(date +"%Y%m%d %T")" | mail -s "Stop Inference $MODELNAME EDA02 $(date +"%Y%m%d %T")" $USEREMAIL