目录

一. 烧写Android系统

二. 安装Android-NDK

三. 连接Android设备和Linux主机

四. 部署MobileNetSSD到Android (5. Compile and execute demo)


一. 烧写Android系统

    下载固件:sd_ROC-RK3399-PC_Android8.1.0_DEFAULT_181016.img.xz

    烧写固件:http://wiki.t-firefly.com/zh_CN/ROC-RK3399-PC/guidebook.html#xia-zai-he-shao-xie-gu-jian

    通过以上两步即完成Android系统的准备。

二. 安装Android-NDK

    下载链接:https://developer.android.com/ndk/downloads/older_releases.html

    参考链接:Android NDK 安装配置指南

三. 连接Android设备和Linux主机

1. 使用TypeC-USB线分别接Android设备和Linux主机,使用 lsusb 命令查看Android设备的ID:

【MNN学习五】在Android上部署MobileNetSSD之一_第1张图片

    这里,查到设备的ID为2207. (注意:有的TypeC-USB线只能用来充电,不能传输数据,所以lsusb命令不会显示ID)

2. ADB工具的使用

    参考链接:ADB的安装和使用

sudo apt-get install android-tools-adbmkdir -p ~/.androidvi ~/.android/adb_usb.ini# add the following line:0x2207sudo vi /etc/udev/rules.d/70-android.rules# add the following line:SUBSYSTEM=="usb", ATTR{idVendor}=="2207", MODE="0666"sudo udevadm control --reload-rulessudo udevadm triggersudo adb kill-serveradb start-serveradb devicesadb shell

【MNN学习五】在Android上部署MobileNetSSD之一_第2张图片

3. Android设备打开USB调试模式

    a. 依次进入目录 Settings/System/About table/, 鼠标连续左击 Build number 七次进入开发者选项(会有提示)

    b. 返回目录 Settings/System即可看到 Developer options, 左击进入打开 USB debuging 选项

    c. 进入目录 Settings/Connected devices, USB选项默认为 Charging this device, 这种情况下我们不能在Linux主机上浏览  

  Android系统的内容(如下图所示Unable to access “ROC RK3399 PC”);若改成 Transfer files 即可在Android设备和Linux主

  机之间传递文件。

【MNN学习五】在Android上部署MobileNetSSD之一_第3张图片

【MNN学习五】在Android上部署MobileNetSSD之一_第4张图片

四. 部署MobileNetSSD到Android (5. Compile and execute demo)

git clone https://github.com/xindongzhang/MNN-APPLICATIONS.gitcd MNN-APPLICATIONS/applications/mssd/tensorflow

【MNN学习五】在Android上部署MobileNetSSD之一_第5张图片

adb shell   cd /data/local/tmp/tfexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/local/tmp/tfndk-buildadb push ../libs/arm64-v8a /data/local/tmp/tfadb push tf_mssd.mnn /data/local/tmp/tfadb push image /data/local/tmp/tf/imageadb pull /data/local/tmp/tf/output ./output

    注意:adb push ../libs/arm64-v8a/ /data/local/tmp

    下面对 tf_mssd.cpp 进行修改:

std::string image_name = "./body.jpg";std::string model_name = "./tf_body_det.mnn";int forward = MNN_FORWARD_CPU;// int forward = MNN_FORWARD_OPENCL;// int forward = MNN_FORWARD_VULKAN;int precision = 2;int power     = 0;int memory    = 0;int threads   = 1;     // single threadint INPUT_SIZE = 300;int OUTPUT_NUM = 1917;   // for 300x300

    下图是检测结果,单线程CPU需要200ms.(另外,int8量化后需要125ms. 量化前四线程GPU只需30ms)

【MNN学习五】在Android上部署MobileNetSSD之一_第6张图片

【MNN学习五】在Android上部署MobileNetSSD之一_第7张图片

 

【MNN学习五】在Android上部署MobileNetSSD之一_第8张图片

【MNN学习五】在Android上部署MobileNetSSD之一_第9张图片


参考链接:https://github.com/xindongzhang/MNN-APPLICATIONS

                  https://askubuntu.com/questions/518479/ubuntu-doesnt-recognize-android-devices-anymore

 

更多相关文章

  1. 2013.04.03——— android 图片缓存之二LruCache介绍
  2. Android -- adb devices找不到设备的解决办法
  3. Android利用Matrix简单处理图片
  4. 使用远程调试Android设备
  5. ubuntu 使用adb shell命令识别android设备
  6. android带有文字的图片按钮的两种实现方式
  7. 《Android 智能穿戴设备开发-从入门精通》读书笔记
  8. 如何实现对Android设备进行文本的模拟输入

随机推荐

  1. RelativeLayout布局用到的主要属性
  2. Android Studio 单刷《第一行代码》系列
  3. Android Studio 单刷《第一行代码》系列
  4. 在android平台上如何实现H264解码
  5. Android 打包签名
  6. android的Activity采用透明主题
  7. Android(安卓)Wi-Fi 5G Only时Wi-Fi不可
  8. Android 文件系统及权限修改
  9. Android(安卓)提交数据到服务器
  10. android学习的进阶(从零开始,从初级到高级)