xref: /OK3568_Linux_fs/external/rknpu2/examples/rknn_yolov5_android_apk_demo/README.md (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1# 简介
2 - rknn_yolov5_android_apk_demo 是RK356X/RK3588上如何调用NPU的demo,该demo的基础模型是yolov5s
3
4
5
6# 使用说明
7
8 - 可以使用android studio 2021.2.1 (Windows)或者android studio 2021.3.1(Linux/macOS) 编译该工程
9 - yolov5s.rknn是使用rknn toolkit2将yolov5s.onnx转换而来,具体转换方法参考rknn toolkit2的examples/onnx/yolov5
10
11
12
13# 代码说明
14
15## 代码分为两大部分:
16 - JAVA: com.rockchip.gpadc.demo: 读取camera输入,并调用jni进行inference,并将结果显示出来
17
18 - JNI: 调用rknnrt进行实际inference
19
20
21
22# 权限
23   运行本程序需要Camera及EXTERNAL_STORAGE读写权限
24
25
26# FAQ
27
28## 编译时出现“files found with path 'lib/arm64-v8a/xxx.so' from inputs:”类似错误
29```
30Execution failed for task ':app:mergeDebugNativeLibs'.
31> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction
32   > 2 files found with path 'lib/arm64-v8a/librga.so' from inputs:
33      - rknpu2/examples/rknn_yolov5_android_apk_demo/app/build/intermediates/merged_jni_libs/debug/out/arm64-v8a/librga.so
34      - rknpu2/examples/rknn_yolov5_android_apk_demo/app/build/intermediates/cxx/Debug/3f40b265/obj/arm64-v8a/librga.so
35     If you are using jniLibs and CMake IMPORTED targets, see
36     https://developer.android.com/r/tools/jniLibs-vs-imported-targets
37
38* Try:
39> Run with --info or --debug option to get more log output.
40> Run with --scan to get full insights.
41```
42或者
43```
442 files found with path 'lib/arm64-v8a/xxx.so' from inputs:
45 - rknn_yolov5_android_apk_demo/app/build/intermediates/merged_jni_libs/debug/out/arm64-v8a/librga.so
46 - rknn_yolov5_android_apk_demo/app/build/intermediates/cxx/Debug/3f40b265/obj/arm64-v8a/librga.so
47If you are using jniLibs and CMake IMPORTED targets, see
48https://developer.android.com/r/tools/jniLibs-vs-imported-targets
49```
50则需要添加 app/build.gradle中的"jniLibs.srcDirs = ['libs']",具体原因参考“https://developer.android.com/r/tools/jniLibs-vs-imported-targets51
52
53
54## app启动时,出现"E/SurfaceView: Exception configuring surface"的错误
55
56```
57D/rkyolo: camera facing: 1
58V/rkyolo: Camera Supported Preview Size = 160x90
59V/rkyolo: Camera Supported Preview Size = 320x180
60V/rkyolo: Camera Supported Preview Size = 432x240
61V/rkyolo: Camera Supported Preview Size = 640x360
62V/rkyolo: Camera Supported Preview Size = 800x448
63V/rkyolo: Camera Supported Preview Size = 864x480
64V/rkyolo: Camera Supported Preview Size = 1024x576
65V/rkyolo: Camera Supported Preview Size = 1280x720
66V/rkyolo: Camera Supported Preview Size = 1600x896
67V/rkyolo: Camera Supported Preview Size = 1920x1080
68E/SurfaceView: Exception configuring surface
69    java.lang.RuntimeException: setParameters failed
70        at android.hardware.Camera.native_setParameters(Native Method)
71        at android.hardware.Camera.setParameters(Camera.java:2068)
72        at com.rockchip.gpadc.demo.MainActivity.setCameraParameters(MainActivity.java:295)
73        at com.rockchip.gpadc.demo.MainActivity.startCamera(MainActivity.java:245)
74        at com.rockchip.gpadc.demo.MainActivity.access$300(MainActivity.java:47)
75        at com.rockchip.gpadc.demo.MainActivity$TSurfaceHolderCallback.surfaceCreated(MainActivity.java:199)
76```
77
78是因为app设置的分辨率该camera不支持,需要修改"app/src/main/java/com/rockchip/gpadc/demo/rga/HALDefine.java"中CAMERA_PREVIEW_WIDTH及CAMERA_PREVIEW_HEIGHT为摄像头支持的分辨率。