gitextract_rj4enlci/ ├── .gitignore ├── .gitmodules ├── LICENSE ├── MNN/ │ ├── CMakeLists.txt │ ├── README.md │ ├── mnn/ │ │ └── include/ │ │ ├── AutoTime.hpp │ │ ├── Backend.hpp │ │ ├── ErrorCode.hpp │ │ ├── HalideRuntime.h │ │ ├── ImageProcess.hpp │ │ ├── Interpreter.hpp │ │ ├── MNNDefine.h │ │ ├── MNNForwardType.h │ │ ├── MNNSharedContext.h │ │ ├── Matrix.h │ │ ├── NonCopyable.hpp │ │ ├── Rect.h │ │ ├── Tensor.hpp │ │ └── revertMNNModel.hpp │ ├── model/ │ │ ├── version-RFB/ │ │ │ ├── RFB-320-quant-ADMM-32.mnn │ │ │ ├── RFB-320-quant-KL-5792.mnn │ │ │ └── RFB-320.mnn │ │ └── version-slim/ │ │ ├── slim-320-quant-ADMM-50.mnn │ │ └── slim-320.mnn │ ├── python/ │ │ ├── README.md │ │ └── ultraface_py_mnn.py │ └── src/ │ ├── UltraFace.cpp │ ├── UltraFace.hpp │ └── main.cpp ├── README.md ├── README_CN.md ├── caffe/ │ ├── MyCaffe.py │ ├── README.md │ ├── convertCaffe.py │ ├── model/ │ │ ├── RFB-320/ │ │ │ ├── RFB-320.caffemodel │ │ │ └── RFB-320.prototxt │ │ └── Slim-320/ │ │ ├── slim-320.caffemodel │ │ └── slim-320.prototxt │ ├── onnx2caffe/ │ │ ├── __init__.py │ │ ├── _error_utils.py │ │ ├── _graph.py │ │ ├── _operators.py │ │ ├── _transformers.py │ │ └── _weightloader.py │ ├── ultra_face_caffe_inference.py │ └── ultra_face_opencvdnn_inference.py ├── cal_flops.py ├── check_gt_box.py ├── convert_to_onnx.py ├── data/ │ ├── retinaface_labels/ │ │ ├── test/ │ │ │ └── label.txt │ │ ├── train/ │ │ │ └── label.txt │ │ └── val/ │ │ └── label.txt │ └── wider_face_2_voc_add_landmark.py ├── detect_imgs.py ├── detect_imgs_onnx.py ├── masked_face/ │ ├── README.md │ ├── detect_imgs.py │ ├── mafa2voc.py │ ├── pretrained/ │ │ ├── RFB-1280-masked_face-v2.onnx │ │ ├── RFB-320-masked_face-v2.pth │ │ ├── RFB-640-masked_face-v2.onnx │ │ └── RFB-640-masked_face-v2.pth │ └── voc-model-labels.txt ├── models/ │ ├── onnx/ │ │ ├── version-RFB-320.onnx │ │ ├── version-RFB-320_simplified.onnx │ │ ├── version-RFB-320_without_postprocessing.onnx │ │ ├── version-RFB-640.onnx │ │ ├── version-slim-320.onnx │ │ ├── version-slim-320_simplified.onnx │ │ └── version-slim-320_without_postprocessing.onnx │ ├── pretrained/ │ │ ├── version-RFB-320.pth │ │ ├── version-RFB-640.pth │ │ ├── version-slim-320.pth │ │ └── version-slim-640.pth │ ├── readme │ └── voc-model-labels.txt ├── ncnn/ │ ├── .clang-format │ ├── CMakeLists.txt │ ├── README.md │ ├── data/ │ │ ├── version-RFB/ │ │ │ └── RFB-320.param │ │ └── version-slim/ │ │ └── slim_320.param │ └── src/ │ ├── UltraFace.cpp │ ├── UltraFace.hpp │ └── main.cpp ├── opencv_dnn/ │ ├── cv_dnn_ultraface.cpp │ └── cv_dnn_ultraface.h ├── paddle/ │ ├── train-version-RFB.sh │ ├── train-version-slim.sh │ ├── train.py │ └── vision/ │ ├── __init__.py │ ├── datasets/ │ │ ├── __init__.py │ │ └── voc_dataset.py │ ├── nn/ │ │ ├── __init__.py │ │ ├── mb_tiny.py │ │ ├── mb_tiny_RFB.py │ │ └── multibox_loss.py │ ├── ssd/ │ │ ├── __init__.py │ │ ├── config/ │ │ │ ├── __init__.py │ │ │ └── fd_config.py │ │ ├── data_preprocessing.py │ │ ├── mb_tiny_RFB_fd.py │ │ ├── mb_tiny_fd.py │ │ ├── predictor.py │ │ └── ssd.py │ ├── transforms/ │ │ ├── __init__.py │ │ └── transforms.py │ └── utils/ │ ├── __init__.py │ ├── box_utils.py │ ├── box_utils_numpy.py │ └── misc.py ├── requirements.txt ├── run_video_face_detect.py ├── run_video_face_detect_onnx.py ├── tf/ │ ├── README.md │ ├── backend/ │ │ ├── op.py │ │ └── utils.py │ ├── convert_tensorflow.py │ ├── det_image.py │ ├── export_models/ │ │ ├── RFB/ │ │ │ ├── saved_model.pb │ │ │ └── variables/ │ │ │ ├── variables.data-00000-of-00001 │ │ │ └── variables.index │ │ └── slim/ │ │ ├── saved_model.pb │ │ └── variables/ │ │ ├── variables.data-00000-of-00001 │ │ └── variables.index │ ├── mapping_tables/ │ │ ├── rfb_320.json │ │ └── slim_320.json │ └── model/ │ ├── rfb_320.py │ └── slim_320.py ├── tflite/ │ ├── README.md │ ├── TFLiteFaceDetector.py │ ├── inference_test.py │ ├── model/ │ │ ├── tflite_RFB_320_without_postprocessing.py │ │ └── tflite_slim_320_without_postprocessing.py │ └── pretrained/ │ ├── version-RFB-320_without_postprocessing.tflite │ └── version-slim-320_without_postprocessing.tflite ├── train-version-RFB.sh ├── train-version-slim.sh ├── train.py ├── vision/ │ ├── __init__.py │ ├── datasets/ │ │ ├── __init__.py │ │ └── voc_dataset.py │ ├── nn/ │ │ ├── __init__.py │ │ ├── mb_tiny.py │ │ ├── mb_tiny_RFB.py │ │ └── multibox_loss.py │ ├── ssd/ │ │ ├── __init__.py │ │ ├── config/ │ │ │ ├── __init__.py │ │ │ └── fd_config.py │ │ ├── data_preprocessing.py │ │ ├── mb_tiny_RFB_fd.py │ │ ├── mb_tiny_fd.py │ │ ├── predictor.py │ │ └── ssd.py │ ├── transforms/ │ │ ├── __init__.py │ │ └── transforms.py │ └── utils/ │ ├── __init__.py │ ├── box_utils.py │ ├── box_utils_numpy.py │ └── misc.py └── widerface_evaluate/ ├── README.md ├── box_overlaps.pyx ├── evaluation.py ├── evaluation_on_widerface.py ├── ground_truth/ │ ├── wider_easy_val.mat │ ├── wider_face_val.mat │ ├── wider_hard_val.mat │ └── wider_medium_val.mat └── setup.py