{"id":13423394,"url":"https://github.com/dog-qiuqiu/MobileNet-Yolo","last_synced_at":"2025-03-15T17:31:48.247Z","repository":{"id":55032487,"uuid":"272883815","full_name":"dog-qiuqiu/MobileNet-Yolo","owner":"dog-qiuqiu","description":"MobileNetV2-YoloV3-Nano: 0.5BFlops 3MB HUAWEI P40: 6ms/img, YoloFace-500k:0.1Bflops 420KB:fire::fire::fire:","archived":false,"fork":false,"pushed_at":"2021-02-06T02:16:46.000Z","size":144944,"stargazers_count":1723,"open_issues_count":26,"forks_count":278,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-03-11T07:05:23.585Z","etag":null,"topics":["cnn","computer-vision","cv","darknet","deep-learning","face-detection","landmark","landmark-detection","mnn","mnn-framework","mobilenet-yolo","mobilenetv2","ncnn","ncnn-model","object-detection","yolo","yolov3"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dog-qiuqiu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-17T05:13:42.000Z","updated_at":"2025-03-10T02:36:16.000Z","dependencies_parsed_at":"2022-08-14T09:40:33.079Z","dependency_job_id":null,"html_url":"https://github.com/dog-qiuqiu/MobileNet-Yolo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dog-qiuqiu%2FMobileNet-Yolo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dog-qiuqiu%2FMobileNet-Yolo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dog-qiuqiu%2FMobileNet-Yolo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dog-qiuqiu%2FMobileNet-Yolo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dog-qiuqiu","download_url":"https://codeload.github.com/dog-qiuqiu/MobileNet-Yolo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243766838,"owners_count":20344820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cnn","computer-vision","cv","darknet","deep-learning","face-detection","landmark","landmark-detection","mnn","mnn-framework","mobilenet-yolo","mobilenetv2","ncnn","ncnn-model","object-detection","yolo","yolov3"],"created_at":"2024-07-31T00:00:33.578Z","updated_at":"2025-03-15T17:31:43.230Z","avatar_url":"https://github.com/dog-qiuqiu.png","language":"C","funding_links":[],"categories":["C","Lighter and Deployment Frameworks"],"sub_categories":[],"readme":"## 2021.2.6 此项目不再更新，新项目地址: Yolo-Fastest： Faster and stronger https://github.com/dog-qiuqiu/Yolo-Fastest\n\n![image](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/blob/master/data/7a96026f319ad31e28bc55458ee97e97.gif)\n\n* ***Yolo-Fastest： Faster and stronger https://github.com/dog-qiuqiu/Yolo-Fastest***\n* ***此表中NCNN基准未更新最新ARM82数据，最新版本NCNN理论上ARM82会有一倍速度提升，待更新...***\n* 添加基于ncnn的106关键点 C sample:https://github.com/dog-qiuqiu/MobileNet-Yolo/tree/master/sample/ncnn\n## ***Darknet Group convolution is not well supported on some GPUs such as NVIDIA PASCAL!!! \n* https://github.com/AlexeyAB/darknet/issues/6091#issuecomment-651667469\n## 针对某些Pascal显卡例如1080ti在darknet上 训练失败/训练异常缓慢/推理速度异常 的可以采用Pytorch版yolo3框架 训练/推理\n* https://github.com/dog-qiuqiu/yolov3\n\n## MobileNetV2-YOLOv3-Lite\u0026Nano Darknet\n#### Mobile inference frameworks benchmark (4*ARM_CPU)\nNetwork|VOC mAP(0.5)|COCO mAP(0.5)|Resolution|Inference time (NCNN/Kirin 990)|Inference time (MNN arm82/Kirin 990)|FLOPS|Weight size\n:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:\n[MobileNetV2-YOLOv3-Lite](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/tree/master/MobileNetV2-YOLOv3-Lite)(our)|73.26|37.44|320|28.42 ms|18 ms|1.8BFlops|8.0MB\n[MobileNetV2-YOLOv3-Nano](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/tree/master/MobileNetV2-YOLOv3-Nano)(our)|65.27|30.13|320|10.16 ms|5 ms|0.5BFlops|3.0MB\n[MobileNetV2-YOLOv3](https://github.com/eric612/MobileNet-YOLO)|70.7|\u0026|352|32.15 ms|\u0026 ms|2.44BFlops|14.4MB\n[MobileNet-SSD](https://github.com/chuanqi305/MobileNet-SSD)|72.7|\u0026|300|26.37 ms|\u0026 ms|\u0026 BFlops|23.1MB\n[YOLOv5s](https://github.com/ultralytics/yolov5)|\u0026|56.2|416|150.5 ms|\u0026 ms|13.2BFlops|28.1MB\n[YOLOv3-Tiny-Prn](https://github.com/AlexeyAB/darknet#pre-trained-models)|\u0026|33.1|416|36.6 ms|\u0026 ms|3.5BFlops|18.8MB\n[YOLOv4-Tiny](https://github.com/AlexeyAB/darknet#pre-trained-models)|\u0026|40.2|416|44.6 ms|\u0026 ms|6.9BFlops|23.1MB\n[YOLO-Nano](https://github.com/liux0614/yolo_nano)|69.1|\u0026|416|\u0026 ms|\u0026 ms|4.57BFlops|4.0MB\n* Support mobile inference frameworks such as NCNN\u0026MNN\n* The mnn benchmark only includes the forward inference time\n* The ncnn benchmark is the forward inference time + post-processing time(NMS...) of the convolution feature map. \n* Darknet Train Configuration: CUDA-version: 10010 (10020), cuDNN: 7.6.4,OpenCV version: 4 GPU:RTX2080ti\n## MobileNetV2-YOLOv3-Lite-COCO Test results\n![image](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/blob/master/data/predictions.jpg)\n\n# Application\n## Ultralight-SimplePose \n* A ultra-lightweight human body posture key point prediction model designed for mobile devices, which can cooperate with MobileNetV2-YOLOv3-Nano to complete the human body posture estimation task\n* https://github.com/dog-qiuqiu/Ultralight-SimplePose\n\n![image](https://github.com/dog-qiuqiu/Ultralight-SimplePose/blob/master/data/Figure_1-1.jpg)\n## YoloFace-500k: 500kb yolo-Face-Detection\nNetwork|Resolution|Inference time (NCNN/Kirin 990)|Inference time (MNN arm82/Kirin 990)|FLOPS|Weight size\n:---:|:---:|:---:|:---:|:---:|:---:\nUltraFace-version-RFB|320x240|\u0026ms|3.36ms|0.1BFlops|1.3MB\nUltraFace-version-Slim|320x240|\u0026ms|3.06ms|0.1BFlops|1.2MB\n[yoloface-500k](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/tree/master/yoloface-500k/v1)|320x256|5.5ms|2.4ms|0.1BFlops|0.52MB\n[yoloface-500k-v2](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/tree/master/yoloface-500k/v2)|352x288|4.7ms|\u0026ms|0.1BFlops|0.42MB\n* 都500k了，要啥mAP:sunglasses:\n* Inference time (DarkNet/i7-6700):13ms\n* The mnn benchmark only includes the forward inference time\n* The ncnn benchmark is the forward inference time + post-processing time(NMS...) of the convolution feature map. \n## Wider Face Val\nModel|Easy Set|Medium Set|Hard Set\n------|--------|----------|--------\nlibfacedetection v1（caffe）|0.65 |0.5       |0.233\nlibfacedetection v2（caffe）|0.714 |0.585       |0.306\nRetinaface-Mobilenet-0.25 (Mxnet)   |0.745|0.553|0.232\nversion-slim-320|0.77     |0.671       |0.395\nversion-RFB-320|0.787     |0.698       |0.438\n[yoloface-500k-320](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/tree/master/yoloface-500k/v1)|**0.728**|**0.682**|**0.431**|\n[yoloface-500k-352-v2](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/tree/master/yoloface-500k/v2)|**0.768**|**0.729**|**0.490**|\n* yoloface-500k-v2：The SE\u0026CSP module is added\n* V2 does not support MNN temporarily\n* wider_face_val(ap05): yoloface-500k: 53.75 yoloface-500k-v2: 56.69\n## YoloFace-500k Test results(thresh 0.7)\n![image](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/blob/master/data/p1.jpg)\n## YoloFace-500k-v2 Test results(thresh 0.7)\n![image](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/blob/master/data/f2.jpg)\n## YoloFace-50k: Sub-millisecond face detection model\nNetwork|Resolution|Inference time (NCNN/Kirin 990)|Inference time (MNN arm82/Kirin 990)|Inference time (DarkNet/R3-3100)|FLOPS|Weight size\n:---:|:---:|:---:|:---:|:---:|:---:|:---:\n[yoloface-50k](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/tree/master/yoloface-50k)|56x56|0.27ms|0.31ms|0.5 ms|0.001BFlops|46kb\n* ***For the close-range face detection model in a specific scene, the recommended detection distance is 1.5m***\n## YoloFace-50k Test results(thresh 0.7)\n![image](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/blob/master/data/yoloface-50k-1.jpg)\n## YoloFace50k-landmark106(Ultra lightweight 106 point face-landmark model)\nNetwork|Resolution|Inference time (NCNN/Kirin 990)|Inference time (MNN arm82/Kirin 990)|Weight size\n:---:|:---:|:---:|:---:|:---:\n[landmark106](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/tree/master/yoloface50k-landmark106)|112x112|0.6ms|0.5ms|1.4MB\n* Face detection: yoloface-50k Landmark: landmark106\n## YoloFace50k-landmark106 Test results\n![image](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/blob/master/yoloface50k-landmark106/yoloface-50k-landmark106.jpg)\n## Reference\u0026Framework instructions\u0026How to Train\n* https://github.com/AlexeyAB/darknet\n* You must use a pre-trained model to train your own data set. You can make a pre-trained model based on the weights of COCO training in this project to initialize the network parameters\n* 交流qq群:1062122604\n## About model selection\n* MobileNetV2-YOLOv3-SPP:  Nvidia Jeston, Intel Movidius, TensorRT，NPU，OPENVINO...High-performance embedded side\n* MobileNetV2-YOLOv3-Lite: High Performance ARM-CPU，Qualcomm Adreno GPU， ARM82...High-performance mobile\n* MobileNetV2-YOLOv3-NANO： ARM-CPU...Computing resources are limited\n* MobileNetV2-YOLOv3-Fastest： ....... Can you do personal face detection???It’s better than nothing\n## NCNN conversion tutorial\n* Benchmark:https://github.com/Tencent/ncnn/tree/master/benchmark\n* NCNN supports direct conversion of darknet models\n* darknet2ncnn: https://github.com/Tencent/ncnn/tree/master/tools/darknet\n## NCNN C++ Sample\n* https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/tree/master/sample/ncnn\n## NCNN Android Sample\n![image](https://github.com/dog-qiuqiu/MobileNetv2-YOLOV3/blob/master/data/MobileNetV2-YOLOV3-Nano.gif)\n* https://github.com/dog-qiuqiu/Android_MobileNetV2-YOLOV3-Nano-NCNN\n* APK:https://github.com/dog-qiuqiu/Android_MobileNetV2-YOLOV3-Nano-NCNN/blob/master/app/release/MobileNetv2-yolov3-nano.apk\n## DarkNet2Caffe tutorial\n### Environmental requirements\n\n* Python2.7\n* python-opencv\n* Caffe(add upsample layer https://github.com/dog-qiuqiu/caffe)\n* You have to compile cpu version of caffe！！！\n  ```\n\tcd darknet2caffe/\n\tpython darknet2caffe.py MobileNetV2-YOLOv3-Nano-voc.cfg MobileNetV2-YOLOv3-Nano-voc.weights MobileNetV2-YOLOv3-Nano-voc.prototxt MobileNetV2-YOLOv3-Nano-voc.caffemodel\n\tcp MobileNetV2-YOLOv3-Nano-voc.prototxt sample\n\tcp MobileNetV2-YOLOv3-Nano-voc.caffemodel sample\n\tcd sample\n\tpython detector.py\n  ```\n### MNN conversion tutorial\n* Benchmark:https://www.yuque.com/mnn/cn/tool_benchmark\n* Convert darknet model to caffemodel through darknet2caffe\n* Manually replace the upsample layer in prototxt with the interp layer\n* Take the modification of MobileNetV2-YOLOv3-Nano-voc.prototxt as an example\n```\n\t#layer {\n\t#    bottom: \"layer71-route\"\n\t#    top: \"layer72-upsample\"\n\t#    name: \"layer72-upsample\"\n\t#    type: \"Upsample\"\n\t#    upsample_param {\n\t#        scale: 2\n\t#    }\n\t#}\n\tlayer {\n\t    bottom: \"layer71-route\"\n\t    top: \"layer72-upsample\"\n\t    name: \"layer72-upsample\"\n\t    type: \"Interp\"\n\t    interp_param {\n\t\theight:20  #upsample h size\n\t\twidth:20   #upsample w size\n\t    }\n\t}\n\n```\n* MNN conversion: https://www.yuque.com/mnn/cn/model_convert\n## Thanks\n* https://github.com/shicai/MobileNet-Caffe\n* https://github.com/WZTENG/YOLOv5_NCNN \n* https://github.com/AlexeyAB/darknet\n* https://github.com/Tencent/ncnn\n* https://gluon-cv.mxnet.io/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdog-qiuqiu%2FMobileNet-Yolo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdog-qiuqiu%2FMobileNet-Yolo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdog-qiuqiu%2FMobileNet-Yolo/lists"}