Introduction
Different statistical functions (ex: object detection, regression, reid, ...) are built in different class. Please initialize the one you want as an evaluator to evaluate your results with providing GT. All of parameters could be changed in yaml files along with it, and you could also import the evaluation class to use it in your code. Notice that you should be familiar with public_field.py(evaluation/kneron_eval/utils/public_field.py), and obey the data format in it. Note that all the paths in this document are under /workspace/ai_training inside the docker.
pre-requiste
Go to kneron_eval
folder
cd kneron_eval
Table of contents
Object detection:
This evaluation is built based on COCOAPI.
Notic that you should use bbox
as key in your json.
python object_detection.py --yaml yaml/object_detection.yaml --output output_objectDetection.txt
Parameters | Descriptions |
---|---|
GT_json_path | Ground truth json path. Should be provided by testing team |
inference_result | Inference json path. Should follow GT format |
areaRng_type_table | size of interested for classes |
mapping | detection mapping from public_field.py |
subclass | subset of interested classes |
Regression
Notic that you should use a key from public_field.py starting with lmk as key in your json. ex: lmk_eye_7pts
, lmk_coco_body_17pts
. Please follow the key in your GT.json. (Notice that you should be familiar with public_field.py(evaluation/kneron_eval/utils/public_field.py), and obey the data format in it.)
python regression.py --yaml yaml/regression.yaml --output output_regression.txt
Parameters | Descriptions |
---|---|
GT_json_path | Ground truth json path. Should be provided by testing team |
inference_result | Inference json path. Should follow GT format |
landmark_points | landmark key from public_field.py |
distance_metrics | should be l1 or l2 or MAE |
Classification
Notic that you should use a key from public_field.py starting with class as key in your json. ex: class1
, class2
. Please follow the key in your GT.json. (Notice that you should be familiar with public_field.py(evaluation/kneron_eval/utils/public_field.py), and obey the data format in it.)
python classification.py --yaml yaml/classification.yaml --output output_classification.txt
Parameters | Descriptions |
---|---|
GT_json_path | Ground truth json path. Should be provided by testing team |
inference_result | Inference json path. Should follow GT format |
class_format | The dimension of the class |
mapping | should be l1 or l2 or MAE |
subclass | subclass from mapping |
scan_threshold | boolean value. Whether or not scan the scores from 0.0 to 1.0 to get the best threshold |
overall_top1_accuracy | Set true if you are running multi-class classification |
ReID
Notic that you should use a key from public_field.py: track_id as key in your json. Please follow the key in your GT.json. (Notice that you should be familiar with public_field.py(evaluation/kneron_eval/utils/public_field.py), and obey the data format in it.)
python reid.py --yaml yaml/reid.yaml --output output_reid.txt
Parameters | Descriptions |
---|---|
GT_json_path | Ground truth json path. Should be provided by testing team |
inference_result | Inference json path. Should follow GT format |
max_IoU | IoU for person bbox |
skip_rate | skip frame rate |