| | --- |
| | license: apache-2.0 |
| | datasets: |
| | - detection-datasets/coco |
| | language: |
| | - en |
| | metrics: |
| | - accuracy |
| | tags: |
| | - RyzenAI |
| | - pose estimation |
| | --- |
| | |
| | # MoveNet |
| |
|
| | MoveNet is an ultra fast and accurate model that detects 17 keypoints of a body. It released in [movenet.pytorch](https://github.com/fire717/movenet.pytorch/blob/master/README.md?plain=1) |
| |
|
| |
|
| | We develop a modified version that could be supported by [AMD Ryzen AI](https://ryzenai.docs.amd.com/). |
| |
|
| |
|
| |
|
| | ## How to use |
| |
|
| | ### Installation |
| |
|
| | Follow [Ryzen AI Installation](https://ryzenai.docs.amd.com/en/latest/inst.html) to prepare the environment for Ryzen AI. |
| | Run the following script to install pre-requisites for this model. |
| | ```bash |
| | pip install -r requirements.txt |
| | ``` |
| |
|
| |
|
| | ### Data Preparation (optional: for accuracy evaluation) |
| |
|
| | 1.Download COCO dataset2017 from https://cocodataset.org/. (You need train2017.zip, val2017.zip and annotations.)Unzip to `./data/` like this: |
| |
|
| | ``` |
| | βββ data |
| | βββ annotations (person_keypoints_train2017.json, person_keypoints_val2017.json, ...) |
| | βββ train2017 (xx.jpg, xx.jpg,...) |
| | βββ val2017 (xx.jpg, xx.jpg,...) |
| | |
| | ``` |
| |
|
| |
|
| | 2.Make data to our data format. |
| | - Modify the path in line 282~287 in make_coco_data_17keypoints.py if needed |
| | - run the code to pre-process the dataset |
| | ``` |
| | python make_coco_data_17keypoints.py |
| | ``` |
| | ``` |
| | Our data format: JSON file |
| | Keypoints order:['nose', 'left_eye', 'right_eye', 'left_ear', 'right_ear', |
| | 'left_shoulder', 'right_shoulder', 'left_elbow', 'right_elbow', 'left_wrist', |
| | 'right_wrist', 'left_hip', 'right_hip', 'left_knee', 'right_knee', 'left_ankle', |
| | 'right_ankle'] |
| | |
| | One item: |
| | [{"img_name": "0.jpg", |
| | "keypoints": [x0,y0,z0,x1,y1,z1,...], |
| | #z: 0 for no label, 1 for labeled but invisible, 2 for labeled and visible |
| | "center": [x,y], |
| | "bbox":[x0,y0,x1,y1], |
| | "other_centers": [[x0,y0],[x1,y1],...], |
| | "other_keypoints": [[[x0,y0],[x1,y1],...],[[x0,y0],[x1,y1],...],...], #lenth = num_keypoints |
| | }, |
| | ... |
| | ] |
| | ``` |
| | |
| | |
| | |
| | |
| | ### Test & Evaluation |
| | |
| | - Modify the DATASET_PATH in eval_onnx.py if needed |
| | - Test accuracy of the quantized model |
| | ```python |
| | python eval_onnx.py --ipu --provider_config Path\To\vaip_config.json |
| | ``` |
| | |
| | ### Performance |
| | |
| | |Metric |Accuracy on IPU| |
| | | :----: | :----: | |
| | |accuracy | 79.745%| |
| | |
| | |
| | ## Citation |
| | 1.[model card](https://storage.googleapis.com/movenet/MoveNet.SinglePose%20Model%20Card.pdf) |
| | 2.[movenet.pytorch](https://github.com/fire717/movenet.pytorch/blob/master/README.md?plain=1) |