ncnn-android-yolov7
這是一個示例 ncnn android 項目,它依賴于 ncnn 庫和 opencv
https://github.com/Tencent/ncnn
https://github.com/nihui/opencv-mobile
https://github.com/xiang-wuu/ncnn-android-yolov7
如何構(gòu)建和運行
步驟1
https://github.com/Tencent/ncnn/releases
下載 ncnn-YYYYMMDD-android-vulkan.zip或自己構(gòu)建 ncnn for android
將 ncnn-YYYYMMDD-android-vulkan.zip 提取到 app/src/main/jni 中,并在 app/src/main/jni/CMakeList 中將ncnn_DIR路徑更改為您的路徑.txt
步驟2
https://github.com/nihui/opencv-mobile
下載opencv-mobile-XYZ-android.zip
將opencv-mobile-XYZ-android.zip提取到app/src/main/jni中,并在app/src/main/jni/CMakeLists中將OpenCV_DIR路徑更改為您的路徑.txt
步驟3
使用Android Studio打開這個項目,構(gòu)建它并享受!
一些注意事項
- 安卓 ndk 相機(jī)用于最佳效率
- 由于缺少HAL3相機(jī)接口,崩潰可能發(fā)生在非常舊的設(shè)備上
- 所有模型均手動修改以接受動態(tài)輸入形狀
- 大多數(shù)小型模型在 GPU 上的運行速度比在 CPU 上的運行速度慢,這很常見
- 由于相機(jī)曝光時間較長,在黑暗環(huán)境中的FPS可能較低
跑自己的模型
流程:pt->onnx->ncnn。
1、yolov7(pt->onnx)
下載代碼和權(quán)重,這里用的是tiny。
代碼用main分支的,權(quán)重手動下載release里的。
運行
python export.py yolov7-tiny.pt --simplify
運行時要加simplify,不然onnx轉(zhuǎn)ncnn會有不支持的算子。
2、ncnn(onnx->ncnn)
使用下面這個網(wǎng)站轉(zhuǎn)換,要把三個勾都選上。
https://convertmodel.com
3、修改權(quán)重輸入輸出
進(jìn)入Netron,上傳自己的param文件查看權(quán)重輸入輸出(1個輸入、3個輸出),并更改代碼后即可直接編譯;
獲取晚后在ncnn-android-yolov7/app/src/main/jni/yolo.cpp的Yolo::detect方法修改著幾個地方:
in0->images
out0->265
out1->279
out2->293
4、修改標(biāo)注類別名稱
不出意外,到這里重新編譯一下就可以
由于部分設(shè)備不支持camera2,新增JNI方法,傳圖片進(jìn)行識別
具體調(diào)用看MainActivity處理文章來源:http://www.zghlxwxcb.cn/news/detail-606554.html
THE END
感謝查閱
玉念聿輝:編輯文章來源地址http://www.zghlxwxcb.cn/news/detail-606554.html
到了這里,關(guān)于ncnn-android-yolov7跑自己模型的注意事項的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!