NCNN----Monodepthv2单目深度估计 小米手机部署

这篇具有很好参考价值的文章主要介绍了NCNN----Monodepthv2单目深度估计 小米手机部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目要求:学习了解单目深度估计模型MonoDepthv2,基于NCNN推理框架部署到小米手机
MonoDepthv2 论文:Digging Into Self-Supervised Monocular Depth Estimation
MonoDepthv2 源码:Monodepth2 GitHub

分析:
1)了解MonoDepthv2的基本原理和代码理解
2)将模型转化为更加方便高效的NCNN模型并在小米手机端完成推理过程

  • 结果展示:

NCNN----Monodepthv2单目深度估计 小米手机部署

  • 参考代码
    nihui/ncnn-android-nanodet

  • 模型转换
    一键转换 onnx2ncnn

  • 包依赖
    opencv-mobile-4.6.0-android (版本可选)
    ncnn-20230223-android-vulkan (版本可选)

  • 软件环境
    Android Studio, SDK Platforms: Android 11, 12, 13; SDK tools, NDK tools

  • 工程目录(重点修改部分已经标红)
    NCNN----Monodepthv2单目深度估计 小米手机部署

  • 具体修改项

    1. CMakeLists.txt
    project(nanodetncnn)
    
    cmake_minimum_required(VERSION 3.10)
    
    set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/opencv-mobile-4.6.0-android/sdk/native/jni)
    find_package(OpenCV REQUIRED core imgproc)
    
    set(ncnn_DIR ${CMAKE_SOURCE_DIR}/ncnn-20230223-android-vulkan/${ANDROID_ABI}/lib/cmake/ncnn)
    find_package(ncnn REQUIRED)
    add_library(nanodetncnn SHARED nanodetncnn.cpp nanodet.cpp ndkcamera.cpp)
    
    target_link_libraries(nanodetncnn ncnn ${OpenCV_LIBS} camera2ndk mediandk)
    
    
    1. nanodet.cpp (#59)设置模型输入输出尺寸
    int NanoDet::detect(cv::Mat& rgb)
    {
        ncnn::Mat in = ncnn::Mat::from_pixels_resize(rgb.data, ncnn::Mat::PIXEL_RGB, rgb.cols, rgb.rows,640, 192);
        in.substract_mean_normalize(mean_vals, norm_vals);
    
        ncnn::Extractor ex = nanodet.create_extractor();
        ex.input("input", in);
        ncnn::Mat model_out;
        ex.extract("output", model_out);
    
        cv::Mat out(192, 640, CV_32FC1, model_out.data);
    
    1. string.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="app_name">nanodetncnn</string>
        <string-array name="model_array">
            <item>MonoDepthv2</item>
    <!--        <item>MobilenetV2-Wave</item>-->
    <!--        <item>DenseNet</item>-->
    <!--        <item>DenseNet-Wave</item>-->
        </string-array>
        <string-array name="cpugpu_array">
            <item>CPU</item>
            <item>GPU</item>
        </string-array>
    </resources>
    
    1. nanodetncnn.cpp (#170) 设置模型路径和设备cpugpu选项
    JNIEXPORT jboolean JNICALL Java_com_tencent_nanodetncnn_NanoDetNcnn_loadModel(JNIEnv* env, jobject thiz, jobject assetManager, jint modelid, jint cpugpu)
    {
        // 检查一下选的模型和设备是不是在范围
        if (modelid < 0 || modelid > 2 || cpugpu < 0 || cpugpu > 1)
        {
            return JNI_FALSE;
        }
    
        AAssetManager* mgr = AAssetManager_fromJava(env, assetManager);
    
        __android_log_print(ANDROID_LOG_DEBUG, "ncnn", "loadModel %p", mgr);
    
        const char* modeltypes[] =
        {"mono-sim-opt",
        };
    
    1. gradle-wrapper.properties
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    #distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
    distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-5.4.1-all.zip
    
    1. local.properties
    ## This file must *NOT* be checked into Version Control Systems,
    # as it contains information specific to your local configuration.
    #
    # Location of the SDK. This is only used by Gradle.
    # For customization when using a Version Control System, please read the
    # header note.
    #Tue Apr 11 21:28:46 CST 2023
    sdk.dir=\\path\\to\\AppData\\Local
    ndk.dir=\\path\\to\\AppData\\Local\\ndk\\22.1.7171670
    
  • 小结
    1)Android Studio 配置过程会出现各种问题,需要耐心解决。如网络问题,SDK,NDK等路径配置问题;
    2)Android Studio检测手机设备时,需要检测相应的硬件环境,软件环境等一致;文章来源地址https://www.toymoban.com/news/detail-435827.html

到了这里,关于NCNN----Monodepthv2单目深度估计 小米手机部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 最新!!单目深度估计方向文献综述--Monocular Depth Estimation: A Thorough Review

    论文链接:https://ieeexplore.ieee.org/abstract/document/10313067 一个是考虑人类深度感知的机制,另一个是包括各种深度学习方法。 这篇论文是关于单目深度估计(Monocular Depth Estimation)的全面综述,由Vasileios Arampatzakis等人撰写。单目深度估计是指从二维图像中恢复三维场景的深度信

    2024年04月28日
    浏览(102)
  • 文献学习-37-动态场景中任意形状针的单目 3D 位姿估计:一种高效的视觉学习和几何建模方法

    Authors: Bin Li,† , Student Member, IEEE, Bo Lu,† , Member, IEEE, Hongbin Lin, Yaxiang Wang, Fangxun Zhong, Member, IEEE, Qi Dou, Member, IEEE and Yun-Hui Liu, Fellow, IEEE Source: IEEE TRANSACTIONS ON MEDICAL ROBOTICS AND BIONICS Keywords: Surgical Robotics, Pose Estimation, Geometry Modeling, Vision-based Manipulation Abstract: 导向图像的针具姿

    2024年04月17日
    浏览(40)
  • 在 Jetson Nano 上安装 ncnn 深度学习框架。

    本页面将指导您在 Jetson Nano 上安装腾讯的 ncnn 框架。由于 ncnn 框架面向移动设备(例如 Android 手机),因此它不支持 CUDA。然而,大多数 Android 手机使用 Vulkan API 对其 GPU 进行低级访问。 ncnn 框架可以使用 Vulkan 例程来加速深度学习模型的卷积。 Jetson Nano 具有 ncnn 将使用的

    2024年02月11日
    浏览(36)
  • 深度学习模型部署综述(ONNX/NCNN/OpenVINO/TensorRT)

    点击下方 卡片 ,关注“ 自动驾驶之心 ”公众号 ADAS巨卷干货,即可获取 今天自动驾驶之心很荣幸邀请到 逻辑牛 分享深度学习部署的入门介绍,带大家盘一盘ONNX、NCNN、OpenVINO等框架的使用场景、框架特点及代码示例。如果您有相关工作需要分享,请在文末联系我们! 点击

    2024年02月08日
    浏览(45)
  • 使用Android studio,安卓手机编译安装yolov8部署ncnn,频繁出现编译错误

    从编译开始就开始出现错误,解决步骤: 1.降低graddle版本,7.2-bin  ---   降低为 6.1.1-all 2.仍旧有报错,jdk从17降为 jdk 13, 在setting配置里, 进入build,excution,deployment文件夹中,(是一个文件夹,名字长,不是三个) 进入build tools,再进入 Gradle,  如图所示, 勾选,选择

    2024年04月28日
    浏览(51)
  • 【状态估计】深度传感器与深度估计算法(1/3)

    获得空间中目标位置或距离的传感器,按接收的媒介波来源可分为主动式和被动式两大范畴,主动式包括激光雷达、雷达、超声波传感器等,被动式主要为单目、多目相机等,同时两大类可组合为混合类型传感器,深度(即距离)测量机制可分为基于(被动)视差原理的机制

    2024年02月22日
    浏览(32)
  • 小米手机检测代码是多少,小米检测手机功能代码

    大家好,本文将围绕小米手机检测代码是多少展开说明,小米检测手机功能代码是一个很多人都想弄明白的事情,想搞清楚小米手机自己检测代码需要先了解以下几个事情。 使用小米手机的朋友们都知道,只需在拨号界面输入“*#*#64663#*#*”就能进行测试操作,但是红米和小米的

    2024年01月25日
    浏览(47)
  • 小米/红米手机数据恢复:从小米手机恢复已删除的数据

    如果您不小心删除了小米手机上的数据,后来发现您需要它,那么本文适合您。我将向您介绍一些最可靠的小米恢复方法,以将您的数据恢复到您的设备上。无论您是否有备份,都可以处理。让我们开始吧! 1.从小米云恢复已删除的数据 与大多数智能手机公司一样,小米也提

    2024年02月04日
    浏览(111)
  • 小米手机开发者选项在哪?小米手机怎么打开开发者选项

    小米手机开发者选项在哪?小米手机的开发者选项是什么?开发者选项是小米手机中的隐藏功能,为什么我们会问起这个呢?因为普通的设置我们都很容易就能找到,但开发者模式是需要用特殊的操作才能将其唤醒。下面就让我们看看怎么将这个隐藏设置给唤醒吧! 第1步:

    2024年02月10日
    浏览(42)
  • 小米路由青春版怎么用手机设置 手机设置小米路由器青春版图文教程

    前面我们已经详细介绍了如何通过笔记本设置小米路由器青春版,小米路由器青春版不仅可以使用电脑进行设置使用,同时也可以通过手机设置,如果家中没有笔记本的话,使用智能手机同样可以轻松完成路由器设置,而且比笔记本设置更为方便。话不多说,以下是手机设置

    2024年02月08日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包