{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/yolobile-real-time-object-detection-on-mobile","title":"YOLObile: Real-Time Object Detection on Mobile Devices via Compression-Compilation Co-Design","arxiv_id":"2009.05697","date":"2020-09-12","proceeding":null,"authors":["Yuxuan Cai","Hongjia Li","Geng Yuan","Wei Niu","Yanyu Li","Xulong Tang","Bin Ren","Yanzhi Wang"],"abstract":"The rapid development and wide utilization of object detection techniques have aroused attention on both accuracy and speed of object detectors. However, the current state-of-the-art object detection works are either accuracy-oriented using a large model but leading to high latency or speed-oriented using a lightweight model but sacrificing accuracy. In this work, we propose YOLObile framework, a real-time object detection on mobile devices via compression-compilation co-design. A novel block-punched pruning scheme is proposed for any kernel size. To improve computational efficiency on mobile devices, a GPU-CPU collaborative scheme is adopted along with advanced compiler-assisted optimizations. Experimental results indicate that our pruning scheme achieves 14$\\times$ compression rate of YOLOv4 with 49.0 mAP. Under our YOLObile framework, we achieve 17 FPS inference speed using GPU on Samsung Galaxy S20. By incorporating our proposed GPU-CPU collaborative scheme, the inference speed is increased to 19.1 FPS, and outperforms the original YOLOv4 by 5$\\times$ speedup. Source code is at: \\url{https://github.com/nightsnack/YOLObile}.","url_abs":"https://arxiv.org/abs/2009.05697v2","url_pdf":"https://arxiv.org/pdf/2009.05697v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"yolobile-real-time-object-detection-on-mobile","repo_url":"https://github.com/nightsnack/YOLObile","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"GPL-3.0"}},{"paper_slug":"yolobile-real-time-object-detection-on-mobile","repo_url":"https://github.com/CoCoPIE-Pruning/CoCoPIE-ModelZoo","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"yolobile-real-time-object-detection-on-mobile","repo_url":"https://github.com/hpc203/YOLObile-opencv-dnn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":null,"task_name":"CPU"},{"task_slug":"computational-efficiency","task_name":"Computational Efficiency"},{"task_slug":null,"task_name":"GPU"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"real-time-object-detection","task_name":"Real-Time Object Detection"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"bottom-up-path-augmentation","method_name":"Bottom-up Path Augmentation"},{"method_slug":"cspdarknet53","method_name":"CSPDarknet53"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"cosine-annealing","method_name":"Cosine Annealing"},{"method_slug":"cutmix","method_name":"CutMix"},{"method_slug":"dropblock","method_name":"DropBlock"},{"method_slug":"fpn","method_name":"FPN"},{"method_slug":"global-average-pooling","method_name":"Global Average Pooling"},{"method_slug":"grid-sensitive","method_name":"Grid Sensitive"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"logistic-regression","method_name":"Logistic Regression"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"pafpn","method_name":"PAFPN"},{"method_slug":"pruning","method_name":"Pruning"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"spatial-pyramid-pooling","method_name":"Spatial Pyramid Pooling"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"},{"method_slug":"yolov3","method_name":"YOLOv3"},{"method_slug":"yolov4","method_name":"YOLOv4"},{"method_slug":"k-means-clustering","method_name":"k-Means Clustering"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2009.05697","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}