# YuNet YuNet is a light-weight, fast and accurate face detection model, which achieves 0.834(AP_easy), 0.824(AP_medium), 0.708(AP_hard) on the WIDER Face validation set. Notes: - Model source: [here](https://github.com/ShiqiYu/libfacedetection.train/blob/a61a428929148171b488f024b5d6774f93cdbc13/tasks/task1/onnx/yunet.onnx). - This model can detect **faces of pixels between around 10x10 to 300x300** due to the training scheme. - For details on training this model, please visit https://github.com/ShiqiYu/libfacedetection.train. - This ONNX model has fixed input shape, but OpenCV DNN infers on the exact shape of input image. See https://github.com/opencv/opencv_zoo/issues/44 for more information. - `face_detection_yunet_2023mar_int8bq.onnx` represents the block-quantized version in int8 precision and is generated using [block_quantize.py](../../tools/quantize/block_quantize.py) with `block_size=64`. - Paper source: [Yunet: A tiny millisecond-level face detector](https://link.springer.com/article/10.1007/s11633-023-1423-y). Results of accuracy evaluation with [tools/eval](../../tools/eval). | Models | Easy AP | Medium AP | Hard AP | | ----------- | ------- | --------- | ------- | | YuNet | 0.8844 | 0.8656 | 0.7503 | | YuNet block | 0.8845 | 0.8652 | 0.7504 | | YuNet quant | 0.8810 | 0.8629 | 0.7503 | \*: 'quant' stands for 'quantized'. \*\*: 'block' stands for 'blockwise quantized'. ## Demo ### Python Run the following command to try the demo: ```shell # detect on camera input python demo.py # detect on an image python demo.py --input /path/to/image -v # get help regarding various parameters python demo.py --help ``` ### C++ Install latest OpenCV and CMake >= 3.24.0 to get started with: ```shell # A typical and default installation path of OpenCV is /usr/local cmake -B build -D OPENCV_INSTALLATION_PATH=/path/to/opencv/installation . cmake --build build # detect on camera input ./build/demo # detect on an image ./build/demo -i=/path/to/image -v # get help messages ./build/demo -h ``` ### Example outputs ![webcam demo](./example_outputs/yunet_demo.gif) ![largest selfie](./example_outputs/largest_selfie.jpg) ## License All files in this directory are licensed under [MIT License](./LICENSE). ## Reference - https://github.com/ShiqiYu/libfacedetection - https://github.com/ShiqiYu/libfacedetection.train ## Citation If you use `YuNet` in your work, please use the following BibTeX entries: ``` @article{wu2023yunet, title={Yunet: A tiny millisecond-level face detector}, author={Wu, Wei and Peng, Hanyang and Yu, Shiqi}, journal={Machine Intelligence Research}, volume={20}, number={5}, pages={656--665}, year={2023}, publisher={Springer} } ```