GithubHelp home page GithubHelp logo

connernilsen / mobile-vision Goto Github PK

View Code? Open in Web Editor NEW

This project forked from facebookresearch/mobile-vision

0.0 0.0 0.0 1.61 MB

Mobile vision models and code

License: Other

Shell 0.05% C++ 0.50% Python 99.39% Cuda 0.06%

mobile-vision's Introduction

Mobile Computer Vision @ Facebook

This repository provides code and models for the following projects developed by Facebook for mobile:

We provide the following code and models:

  • Pre-trained FBNet models.
  • Pre-trained ChamNet models.
  • CNN latency look-up table. We provided operator-level latency database using the latest caffe2 int8 inference engine (QNNPACK) on mobile phones.

Pytorch Pre-trained Models

The following FBNet/FBNetV2 pre-trained models are provided. The models are trained and evaluated using ImageNet 1k (ILSVRC2012) dataset. Validation top-1 and top-5 accuracy for fp32 models are reported.

Model Resolution Flops (M) Params (M) Top-1 Accuracy Top-5 Accuracy
fbnet_a 224x224 244.5 4.3 73.3 90.9
fbnet_b 224x224 291.1 4.8 74.5 91.8
fbnet_c 224x224 378.2 5.5 75.2 92.3
dmasking_f1 128x128 56.3 6.0 68.3 87.8
dmasking_f4 224x224 235.9 7.0 75.5 92.5
dmasking_l2_hs 256x256 419.1 8.4 77.7 93.7
dmasking_l3 288x288 753.1 9.4 78.9 94.3

The model could be loaded with:

from mobile_cv.model_zoo.models.fbnet_v2 import fbnet
model = fbnet("dmasking_l3", pretrained=True)
model.eval()

We also provide the following int8 quantized models in TorchScript format:

Model Resolution Flops (M) Params (M) Top-1 Accuracy Top-5 Accuracy
fbnet_a_i8f_int8_jit 224x224 244.5 4.3 72.2 90.3
fbnet_b_i8f_int8_jit 224x224 291.1 4.8 73.2 91.1
fbnet_c_i8f_int8_jit 224x224 378.2 5.5 74.2 91.8

Please see here for more details.

Caffe2 Pre-trained Models

We provide different pre-trained ChamNet and FBNet models. The models are trained and evaluated using ImageNet 1k (ILSVRC2012) dataset. Validation top-1 accuracy for fp32 and int8 models are reported. Model latenies are benchmarked on a Samsung S8 CPU with NNPACK (fp32) and QNNAPCK (int8) engines using Caffe2. Note that our models are best used in int8 as they are searched using on-device int8 latency metrics.

Model Resolution Flops (M) Params (M) Accuracy (int8) Latency (int8, ms) Accuracy (fp32) Latency (fp32, ms)
ChamNet-A 224x224 552.9 6.2 74.6 24.7 75.4 117.1
ChamNet-B 192x192 323.3 5.2 73.0 15.5 73.8 74.4
ChamNet-C 224x224 211.6 3.4 70.6 11.3 71.6 56.8
ChamNet-D 192x192 120.0 3.3 67.5 7.1 69.1 36.3
ChamNet-E 160x160 53.7 2.3 62.4 4.1 64.2 24.4
ChamNet-F 128x128 30.8 2.0 57.7 2.7 59.5 15.4
FBNet-A 224x224 249.4 4.3 71.7 14.1 73.3 124.6
FBNet-B 224x224 295.6 4.8 72.9 17.3 74.1 167.7
FBNet-B1 224x224 286.8 4.1 72.8 17.0 73.9 127.5
FBNet-C 224x224 383.0 5.5 73.2 21.0 74.9 241.8
FBNet-C1 224x224 374.2 4.9 73.3 20.0 74.5 167.3
FBNet-96 96x96 12.9 1.8 47.5 2.3 50.4 22.8

The pretrained FBNet and ChamNet models are available to download here:

The models expect the input image to be loaded in the range of [0, 255] in BGR format and normalized using mean = [0.406, 0.456, 0.485] and std = [0.225, 0.224, 0.229]. The transformation should preferrably happen at preprocessing.

CNN Latency Look-up Table

Recent studies have shown the importance of model optimization over direct metrics (e.g., latency) instead of indirect metrics (e.g., FLOPs). However, platform-specific latency measurements require engineer efforts and can be slow and difficult to parallelize. Thus, we provide a CNN latency look up table (LUT) to enable fast and reliable latency estimations.

Please see CNN latency look-up table for more details.

License

This project is licensed under CC BY-NC, as found in the LICENSE file. If you use our code/models in your research, please cite our paper:

@article{wu2018fbnet,
  title={FBNet: Hardware-Aware Efficient ConvNet Design via Differentiable Neural Architecture Search},
  author={Wu, Bichen and Dai, Xiaoliang and Zhang, Peizhao and Wang, Yanghan and Sun, Fei and Wu, Yiming and Tian, Yuandong and Vajda, Peter and Jia, Yangqing and Keutzer, Kurt},
  journal={The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  year={2019}
}

@article{dai2018chamnet,
  title={ChamNet: Towards Efficient Network Design through Platform-Aware Model Adaptation},
  author={Dai, Xiaoliang and Zhang, Peizhao and Wu, Bichen and Yin, Hongxu and Sun, Fei and Wang, Yanghan and Dukhan, Marat and Hu, Yunqing and Wu, Yiming and Jia, Yangqing and others},
  journal={The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  year={2019}
}

Acknowledgments

This work is developed by collaboration between Mobile Vision, Caffe2, and FAIR team at Facebook.

Thanks to Xiaoliang Dai, Marat Dukhan, Zijian He, Yunqing Hu, Yangqing Jia, Lingyi Liu, Yang Lu, Brad Stocks, Fei Sun, Yuandong Tian, Sam Tsai, Matt Uyttendaele, Peter Vajda, Yanghan Wang, Bichen Wu, Yiming Wu, Ran Xian, Fei Yang, Peizhao Zhang for their great contributions.

mobile-vision's People

Contributors

wat3rbro avatar newstzpz avatar zhanghang1989 avatar jerryzh168 avatar asanakoy avatar yiwenx14 avatar stephenyan1231 avatar datumbox avatar xiaoliangdai avatar sstsai-adl avatar facebook-github-bot avatar amyreese avatar jiaxuzhu92 avatar ifed-ucsd avatar bfrommfb avatar andrewor14 avatar ydwu4 avatar daixl1992 avatar terrychenism avatar drdarshan avatar siddharthshah52 avatar shchhan-meta avatar r-barnes avatar renganxu avatar malfet avatar nicolashug avatar mvsfb avatar mattcyu1 avatar lisroach avatar jialiangw219 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.