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, and obey the data format in it.
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
Notice 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, 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 |
| subclass | subset of interested classes (provided in general format only) |
general format
The class of each point is defined in general format [x, y, class]. The subclass list must be provided in yaml file. Please check the GT and Prediction format in the file ai_training/evaluation/kneron_eval/doc/hand21kps_gt.json and ai_training/evaluation/kneron_eval/doc/hand21kps_pred.json
python regression.py --yaml yaml/general_regression.yaml --output output_regression.txt
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, 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, 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 |