使用NCNN在華為M5部署Yolov5

使用NCNN在華為M5平板部署Yolov5

  • 一、NCNN
  • 二、下載解壓NCNN
  • 三、下載ncnn-android-yolov5工程
  • 四、下載Android Studio[前提已經配置了jdk版本]
    • 1、安裝NDK、Cmske,這個必須要安裝,
    • 2、安裝Android
  • 五、構建工程
  • 六、修改源碼
  • 七、重新ysnc project
  • 八、安裝APP到終端
  • 九、把模型生成APK
  • 十、APK位置

一、NCNN

NCNN是一個騰訊開源的優化到極致的高性能神經網絡前向計算框架,可以把電腦端生成在深度學習模型移植到手機端,支持的模型非常多 NCNN官方的定義:NCNN是騰訊公司開源的一個專為手機端極致優化的高性能神經網絡前向計算框架。NCNN從設計之初,就深刻考慮手機端的部署和使用,無需第三方依賴,跨平臺,手機端CPU的速度快于目前所有已知的開源框架。基于NCNN,開發者能夠將深度學習算法輕松移植到手機端高效執行,開發出人工智能APP,將AI帶到你的指尖。 目前NCNN已經支持大部分的CNN網絡,包括本文中用到的YOLOv5,

二、下載解壓NCNN

我們接下來主要以帶加速的ncnn-android-vulkan.zip展開
在這里插入圖片描述

三、下載ncnn-android-yolov5工程

The YOLOv5 object detection android example
在這里插入圖片描述

接下來,
把ncnn-20231027-android-vulkan里面的文件復制一份到ncnn-android-yolov5-master的\app\src\main\jni目錄下:
在這里插入圖片描述

四、下載Android Studio[前提已經配置了jdk版本]

這中間有個注意是想,我們在安裝的時候jdk的時候,千萬不要安裝最新版本的,由于這個項目是三年前的,如果按照最新的jdk一定會和工程各種的不兼容。至于到底該按照哪個版本的jdk,可以參考下圖,
在這里插入圖片描述
為了確定gradle的版本,我們可以打開工程中的一個文件,如圖所示:
在這里插入圖片描述
文件默認的gradle是5.4.0版本,安裝java12版本就好了,我圖中之所以注釋掉,是因為,我安裝AS之前安裝的是最新的JDK版本,結果出現不兼容問題,當時要不省級gradle版本,要不降低JDK版本,我選擇了前者所以是7.5.0,所以大家可以在是先對應gradle版本安裝JDK,后期會省去很多麻煩。當前如果你之前確實已經按照了最新的JDK怎么辦,按照下圖選擇對應版本的JDK依然可以,親測有效。

在這里插入圖片描述

1、安裝NDK、Cmske,這個必須要安裝,

記得點擊右下方的ShowPackage Details按鈕,要不NDK和Cmake不會展開。這兩個的版本建議安裝紅框中的版本,至于為什么,可以明顯的看到不同版本的NDK明顯在toolchains中是不同的,確實了前兩個文件,后期會報錯。至于為什么是20不是23,大家可以想想這個工程上面說了是三年前的,所以工程肯定和當年的NDK版本兼容最好。選中兩個文件,然后點擊Apply,就會自動下載了。
在這里插入圖片描述
在這里插入圖片描述

2、安裝Android

至于Android選擇是什么版本,根據自己的手機系統確定,然后點擊Apply就會下載了。
在這里插入圖片描述
剩下的就是漫長的等待安裝了。
由于這篇博文,是安裝之后寫的,所以有坑的地方我都提前說了,如果大家遇到報錯,可以看看我往前的博客。

五、構建工程

用Android studio 打開(二)中下載的ncnn-android-yolov5-master項目的build.gradle文件,耐心等待構建完成。
在這里插入圖片描述

注意有兩個build.gradle,一個是工程的,一個是模塊的,不要點錯了
剩下的也是漫長的等待了…,會安裝一系列東西,之后Android studio會幫我們構建整個工程,耐心等待他走完。

六、修改源碼

打開ncnn-android-yolov5-master\app\src\main\jni\CMakeLists.txt
在這里插入圖片描述
將第五行的路徑改為自己的路徑

set(ncnn_DIR ${CMAKE_SOURCE_DIR}/ncnn-20201218-android-vulkan/${ANDROID_ABI}/lib/cmake/ncnn)

改為:

set(ncnn_DIR ${CMAKE_SOURCE_DIR}/${ANDROID_ABI}/lib/cmake/ncnn)
  • 簡單說明一下:ANDROID_ABI對應的是不同架構下的文件夾名稱

七、重新ysnc project

在這里插入圖片描述
在這里插入圖片描述

八、安裝APP到終端

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
可以看到,平板上已經有一個APP了。

九、把模型生成APK

按照圖上的操作順序,最下角提示APK生成成功。
在這里插入圖片描述

十、APK位置

我開始使用新的Android Studio,卻無法在IDE的實際位置中找到該應用程序的APK?
在這里插入圖片描述
我們在成功生成APK之后,會看到提示信息,當我我們點擊locate,就會打開APK的安裝位置。
因此Android Studio中的apk是在應用模塊的build文件夾內生成的。

正確的apk路徑為\app\build\outputs\apk。我正在使用Android Studio版本1.4.1。因此,可以根據所使用的Android Studio版本在app/build/apk/\app\build\outputs\apk處找到apk。
您可以在以下位置找到APK:

YourProject\\app\\build\\outputs\\apk
我的:ncnn-android-yolov5-master\app\build\outputs\apk

在這里插入圖片描述
*apk類型有:debug 和 release;debug版本較大,至于用哪個取決于手機性能了。
在這里插入圖片描述
我把debug版本的APK傳送手機上,并進行安裝。效果如下:

在這里插入圖片描述

至此yolov5的模型部署到安卓端側終于完結!!!

在部署的時候,也看了不少的博客,在此致謝。
華為P30部署yolov5

安卓端使用ncnn部署yolov5(v6.0)

OLOv5使用NCNN將模型部署到Android端教程(1)部署自己的訓練模型到Android實現靜態圖片檢測

記錄歷經三天將自己的yolov5模型部署到Android安卓手機

YOLOv5使用NCNN將模型部署到Android端教程(1)部署自己的訓練模型到Android實現靜態圖片檢測

新Android Studio中的Apk位置

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210922.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210922.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210922.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL深入——8

Order by語句是如何工作的? 首先我們來創建一個表 CREATE TABLE t (id int(11) NOT NULL,city varchar(16) NOT NULL,name varchar(16) NOT NULL,age int(11) NOT NULL,addr varchar(128) DEFAULT NULL,PRIMARY KEY (id),KEY city (city) ) ENGINEInnoDB; 全字段…

SQL命令---刪除數據表

介紹 使用sql語句實現刪除數據表。 命令 drop table 表名;

Python實戰演練之python實現神經網絡模型算法

python實現神經網絡模型算法 今天,厾羅和大家分享用Python實現神經網絡模型算法,僅用于技術學習交流。 實現技巧 1.導入依賴庫 主要是安裝相關的依賴庫。本文實現的環境為:python 3.7。 from __future__ import division import math …

C語言聯合體

聯合體 聯合體聯合體基本概念聯合體特點聯合體內存結構圖 聯合體 聯合體基本概念 聯合體概念: 結構體(struct)是一種結構體類型或者復雜類型,它可以包含多個類型不同的成員另外一種和結構體非常類似的類型,叫做聯合…

GPT-4 變懶了?官方回復

你是否注意到,最近使用 ChatGPT 的時候,當你向它提出一些問題,卻得到的回應似乎變得簡短而敷衍了?對于這一現象,ChatGPT 官方給出了回應。 譯文:我們聽到了你們所有關于 GPT4 變得更懶的反饋!我…

在HTML中插入音頻和視頻(詳解)

Hi i,m JinXiang ? 前言 ? 本篇文章主要介紹在HTML中插入音頻和視頻以及部分理論知識 🍉歡迎點贊 👍 收藏 ?留言評論 📝私信必回喲😁 🍉博主收將持續更新學習記錄獲,友友們有任何問題可以在評論區留言 …

外匯交易中的MT4軟件優勢:解析軟件對交易的影響!

近年來,隨著金融科技的不斷發展,MT4軟件作為外匯交易領域的領先平臺,備受交易者青睞。本文將探討MT4軟件在外匯交易中的優勢以及對交易的影響,幫助讀者深入了解這一交易利器。 ### 1. MT4軟件概述 MetaTrader 4(簡稱MT4)是一款由M…

深度學習 時間序列回歸學習筆記

目錄 常用的深度學習時間序列回歸模型: ARIMA模型 ETS模型 效果評估

低多邊形3D建模動畫風格紋理貼圖

在線工具推薦: 3D數字孿生場景編輯器 - GLTF/GLB材質紋理編輯器 - 3D模型在線轉換 - Three.js AI自動紋理開發包 - YOLO 虛幻合成數據生成器 - 三維模型預覽圖生成器 - 3D模型語義搜索引擎 當談到游戲角色的3D模型風格時,有幾種不同的風格&#xf…

【Linux】make/Makefile --- 自動化構建項目的工具

目錄 一、make/Makefile的簡單使用 二、Makefile 的語法規則 三、實現的原理 3.1 make/Makefile識別文件新舊 3.2 .PHONY修飾的偽目標總是被執行 3.3 make/Makefile是具有依賴性的推導能力的 四、語法技巧 五、注意事項 Linux中自動化構建項目最簡單的方式:…

python樂觀鎖和悲觀鎖

在并發編程中,鎖是一種常用的機制,用于保護共享資源的訪問。樂觀鎖和悲觀鎖是兩種不同的鎖機制。 樂觀鎖:不會一開始就加鎖,在更新的時候,判斷一下在此期間別人是否修改了數據,若修改了不執行此操作&#…

軟件質量:建立信心的十大指標

. Bug 數量——可能按優先級或嚴重性排列 一般來說,錯誤的數量會在項目生命周期的中期開始增加。在截止日期之前的幾天或幾周(取決于項目的規模),團隊將集中精力減少 bug 的數量,直到 bug 的數量達到某種漸近線。這個漸…

Nginx基礎篇:Nginx搭建、Nginx反向代理、文件服務器部署配置。

Nginx Linux系統安裝以及反向代理的配置 簡介優點nginx 環境安裝常用Nginx 命令nginx 文件服務器搭建 簡介 Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。Nginx是由伊戈爾賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點…

如何把kubernetes pod中的文件拷貝到宿主機上或者把宿主機上文件拷貝到kubernetes pod中

1. 創建一個 Kubernetes Pod 首先&#xff0c;下面是一個示例Pod的定義文件&#xff08;pod.yaml&#xff09;&#xff1a; cat > nginx.yaml << EOF apiVersion: v1 kind: Pod metadata:name: my-nginx spec:containers:- name: nginximage: nginx EOF kubectl app…

LabelImg的使用及注意事項

LabelImg是一款開源的圖像標注工具&#xff0c;它主要用于標注目標檢測、語義分割和圖像分類等深度學習中需要的數據集。通過使用LabelImg&#xff0c;用戶可以快速、準確地為圖片中的目標添加標注信息&#xff0c;從而建立數據集。 使用步驟&#xff1a; 下載LabelImg&#x…

java測試rtsp地址連接狀態,測試RTSP連接狀態是否成功,java如何測試rtsp地址連接是否成功

import java.net.Socket; import java.net.URI; import java.net.URISyntaxException;/*** ClassName: RTSPUtils* Description: 測試RTSP連接狀態* Author: zhanghui* Date: 2023-12-08* Version: 1.0**/ public class RTSPUtils {private static final int TIMEOUT_MS 10000…

我的創作紀念日(2周年)

機緣 在進入大學之前&#xff0c;完全沒有聽說過CSDN&#xff0c;第一次使用CSDN應該是搜C語言如何學&#xff0c;或者是和C語言相關的其他內容 因為我本人是學計算機專業的&#xff0c;大一剛開學因為疫情延遲了開學時間&#xff0c;老師線上教課&#xff0c;但是我之前是完…

永磁同步電機反電動勢系數怎么算?磁鏈強度怎么算?轉矩系數怎么算?

在進行永磁同步電機simulink仿真時&#xff0c;一個關鍵參數就是永磁體磁鏈強度&#xff0c; 實際上在simulink中&#xff0c;永磁體磁鏈強度/反電動勢系數/轉矩系數這三個是放一起的&#xff0c;這是因為他們都可互相算出來。 Torque constat (Nm/A) 轉矩系數 1.5 * Np *…

在瀏覽器中存儲token的最佳實踐

在瀏覽器中存儲token的最佳實踐 Web 應用程序不是靜態站點&#xff0c;而是靜態和動態內容的精心組合。更常見的是&#xff0c;Web 應用程序邏輯在瀏覽器中運行。該應用程序不是從服務器獲取所有內容&#xff0c;而是在瀏覽器中運行 JavaScript&#xff0c;從后端 API 獲取數據…

Tomcat部署開源站點JPress

前言 JPress使用Java開發&#xff0c;是我們常見的開源博客系統。JPress是一個開源的WordPress插件&#xff0c;它提供了一個簡單而強大的方式來創建企業級站點。該插件包括許多特性&#xff0c;例如主題定制、頁面構建器、性能優化、SEO、安全、電子商務和社交媒體整合等。使用…