安卓部署:手机端Anchor-free的目标检测模型Nanodet

Nanodet

在这里插入图片描述
在这里插入图片描述

深度学习目标检测已经发展了许多年,从Two-stage到One-stage,从Anchor-base到Anchor-free,再到今年的用Transformer做目标检测,各种方法百花齐放,但是在移动端目标检测算法上,yolo系列和SSD等Anchor-base的模型一直占据着主导地位。这个项目的主要目的是希望能够开源一个移动端实时的Anchor-free检测模型,能够提供不亚于yolo系列的性能,而且同样方便训练和移植。
看了大佬的文章介绍,整个项目主要是基于轻量级,Anchor-free。网络模型选择的是ShuffleNetV2,可以对其他轻量级模型进行尝试(MobileNet系列,GhostNet,还有最近的EfficientNet)其实自己魔改一个也不错。
其次是损失函数,基于FCOS的轻量化(centerness分支在轻量级的模型上很难收敛)
解决:GFocalLoss完美去掉了FCOS系列的Centerness分支,而且在coco数据集上涨点显著。GFL的出现不仅去掉了难以训练的Centerness,而且还省去了这一分支上的大量卷积,减少了检测头的计算开销,非常适合移动端的轻量化部署。
目前也新出了GFLV2,应该对模型还有提升。还有ATSS,对于正负样本的选择,也比较影响在实时端的推理速度。

本人训练了一下其它数据集,发现效果也不错。
在此记录一下实际安卓操作步骤。
借鉴:https://github.com/nihui/ncnn-android-benchmark
致敬:https://github.com/RangiLyu/nanodet

首先第一步下载ncnn-android-vulkan.zip

链接:https://github.com/Tencent/ncnn/releases
*android 静态库/动态库,支持 GPU

在这里插入图片描述
打开下载包,将这四个文件复制到nihui大佬项目的app\src\main\jni
并更改你的CMakeLists.txt文件请添加图片描述
主要是更改ncnn_DIR路径,将对应的ncnn版本更改为你下载的ncnn-android-vulkan.zip版本

project(nanodetncnn)

cmake_minimum_required(VERSION 3.10)

set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/opencv-mobile-4.5.1-android/sdk/native/jni)
find_package(OpenCV REQUIRED core imgproc)

set(ncnn_DIR ${CMAKE_SOURCE_DIR}/202107202c4ae09/${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)

下载opencv-mobile-4.5.1-android到app\src\main\jni下。
准备模型文件:原项目中已有作者推理好的模型文件。

准备Android Studio 一路next

然后设置Android SDK
请添加图片描述
主要是勾选安卓版本 我的Android Studio是2019的 这里最多选择Android10.0
选择cmke NDK
请添加图片描述
请添加图片描述
务必选择上 不然无法编译。

在编译过程中可能出现问题:

这里推荐一个万能解决方法(但是很费时间):
打开C:\Users\Admin 删除**.gradle**文件 即可重新编译。
NDK路径设置:
请添加图片描述
即可打开原本项目进行编译
激动人心的时刻。
将安卓手机连接电脑,将手机设置为开发者模式,并打开USB调试
请添加图片描述
启动项目,等待安装。
请添加图片描述
手机里面出现nanodetncnn,完成!!!!
请添加图片描述
跑的基本模型,cpuFPS可以达到25左右,可以说效果非常不错。
接下来打算训练自己的数据集,也可以尝试下其他backbone或者方法,并进行ncnn推理移植到移动端,后续更新!!!

参考:
作者:RangiLyu
链接:https://zhuanlan.zhihu.com/p/306530300

  • 0
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值