• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

solrex/caffe-mobile: Optimized (for size and speed) Caffe lib for iOS and Androi ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

solrex/caffe-mobile

开源软件地址(OpenSource Url):

https://github.com/solrex/caffe-mobile

开源编程语言(OpenSource Language):

C++ 94.0%

开源软件介绍(OpenSource Introduction):

Caffe on Mobile Devices

Optimized (for size and speed) Caffe lib for iOS and Android with demo APP. (CPU_ONLY, NO_BACKWARD, NO_BOOST, NO_HDF5, NO_LEVELDB)

Screenshots

iPhone5s Meizu M3 note

NOTE: Cmake version 3.7.2 builds faster lib than version 3.5.1 (verified on Ubuntu 16.10/Android NDK r14). Don't know why. So please use a newer cmake if you can.

NOTE: NDK version r16+ is not supported. NDK r16 moves all standalone headers to unified headers. It causes a lot of cross compile problems which I cannot resolve. See issue #52.

For iPhone or iPhone Simulator

Step 1: Build Caffe-Mobile Lib with cmake

$ git clone --recursive https://github.com/solrex/caffe-mobile.git
$ ./tools/build_ios.sh

Step 2: Build iOS App: CaffeSimple with Xcode

  • For CaffeSimple to run, you need a pre-trained LeNet on MNIST caffe model and the weight file. Follow the instructions in Training LeNet on MNIST with Caffe to train your LeNet Model on MNIST. Then copy the the trained weight file caffe/examples/mnist/lenet_iter_10000.caffemodel to CaffeSimple app directory. Note: Check the batch size setting in net.prototxt, set it to 1 if needed.
$ cp $CAFFE/examples/mnist/lenet_iter_10000.caffemodel \
     $CAFFE_MOBILE/examples/ios/simple/CaffeSimple/data/weight.caffemodel
  • If you want to use your self-defined caffe network, use tools/prototxt2bin.py net.prototxt to convert your prototxt to protobin. Then place net.protobin in $CAFFE_MOBILE/examples/ios/simple/CaffeSimple/data/.

  • Load the Xcode project inside the $CAFFE_MOBILE/examples/ios/simple/ folder, connect your iPhone to Mac, change target to "Your Name's iPhone", and press Command-R to build and run it on your connected device.

For Android

Step 1: Build Caffe-Mobile Lib with cmake

Test passed ANDROID_ABI:

  • arm64-v8a
  • armeabi
  • armeabi-v7a with NEON (not stable)
$ git clone --recursive https://github.com/solrex/caffe-mobile.git
$ export NDK_HOME=/path/to/your/ndk  # C:/path/to/your/ndk on MinGW64 (/c/path/to/your/ndk not work for OpenBLAS)
$ ./tools/build_android.sh

For Windows Users:

Install the following softwares before you start:

  1. Git for Windows: A shell environment(MinGW64) to run the build.
  2. tdm64-gcc-5.1.0-2.exe: The GNU toolchain, remember to copy /path/to/TDM-GCC-64/bin/mingw32-make.exe to /path/to/TDM-GCC-64/bin/make.exe.
  3. cmake-3.8.2-win64-x64.msi: Cmake

Then start Git Bash application to run the build script.

Step 2: Build Android App: CaffeSimple with Android Studio

  • For CaffeSimple to run, you need a pre-trained LeNet on MNIST caffe model and the weight file. Follow the instructions in Training LeNet on MNIST with Caffe to train your LeNet Model on MNIST. Then copy the model file caffe/examples/mnist/lenet.prototxt and the trained weight file caffe/examples/mnist/lenet_iter_10000.caffemodel to the SD card root of your Android mobile phone. Check the batch size setting in net.prototxt, set it to 1 if needed.
$ adb push $CAFFE/examples/mnist/lenet_iter_10000.caffemodel \
     /sdcard/weight.caffemodel
$ adb push $CAFFE_MOBILE/examples/ios/simple/CaffeSimple/data/net.protobin \
     /sdcard/net.protobin
$ adb push $CAFFE_MOBILE/examples/ios/simple/CaffeSimple/data/test_image.jpg \
     /sdcard/test_image.jpg
  • If you want to use your self-defined caffe network, use tools/prototxt2bin.py net.prototxt to convert your prototxt to protobin. Then push net.protobin to your sdcard root directory.

  • Load the Android studio project inside the $CAFFE_MOBILE/examples/android/CaffeSimple/ folder, and press Command-R to build and run it on your connected device.

For MacOSX & Ubuntu

Step 1: Install dependency

$ brew install protobuf # MacOSX
$ sudo apt install libprotobuf-dev protobuf-compiler libatlas-dev # Ubuntu

Step 2: Build Caffe-Mobile Lib with cmake

$ git clone --recursive https://github.com/solrex/caffe-mobile.git
$ mkdir build
$ cd ../build
$ cmake ..
$ make -j 4

Step 3: Build Caffe-bin with cmake

$ brew install gflags
$ cmake .. -DTOOLS
$ make -j 4

Thanks




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap