소스 검색

1.用于测试3588的程序

kappo 8 달 전
커밋
0f3be8b233

+ 1052 - 0
.gitignore

@@ -0,0 +1,1052 @@
+3rdparty/mpp/Android/arm64-v8a/libmpp.so
+3rdparty/mpp/Android/armeabi-v7a/libmpp.so
+3rdparty/mpp/include/rockchip/mpp_buffer.h
+3rdparty/mpp/include/rockchip/mpp_compat.h
+3rdparty/mpp/include/rockchip/mpp_err.h
+3rdparty/mpp/include/rockchip/mpp_frame.h
+3rdparty/mpp/include/rockchip/mpp_log_def.h
+3rdparty/mpp/include/rockchip/mpp_log.h
+3rdparty/mpp/include/rockchip/mpp_meta.h
+3rdparty/mpp/include/rockchip/mpp_packet.h
+3rdparty/mpp/include/rockchip/mpp_rc_api.h
+3rdparty/mpp/include/rockchip/mpp_rc_defs.h
+3rdparty/mpp/include/rockchip/mpp_task.h
+3rdparty/mpp/include/rockchip/rk_hdr_meta_com.h
+3rdparty/mpp/include/rockchip/rk_mpi_cmd.h
+3rdparty/mpp/include/rockchip/rk_mpi.h
+3rdparty/mpp/include/rockchip/rk_type.h
+3rdparty/mpp/include/rockchip/rk_vdec_cfg.h
+3rdparty/mpp/include/rockchip/rk_vdec_cmd.h
+3rdparty/mpp/include/rockchip/rk_venc_cfg.h
+3rdparty/mpp/include/rockchip/rk_venc_cmd.h
+3rdparty/mpp/include/rockchip/rk_venc_rc.h
+3rdparty/mpp/include/rockchip/rk_venc_ref.h
+3rdparty/mpp/include/rockchip/vpu_api.h
+3rdparty/mpp/include/rockchip/vpu.h
+3rdparty/mpp/Linux/aarch64/librockchip_mpp.so
+3rdparty/mpp/Linux/aarch64/librockchip_mpp.so.0
+3rdparty/mpp/Linux/aarch64/librockchip_mpp.so.1
+3rdparty/mpp/Linux/armhf/librockchip_mpp.so
+3rdparty/mpp/Linux/armhf/librockchip_mpp.so.0
+3rdparty/mpp/Linux/armhf/librockchip_mpp.so.1
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/valgrind_3rdparty.supp
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/valgrind.supp
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_eye_tree_eyeglasses.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_eye.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_frontalcatface_extended.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_frontalcatface.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_frontalface_alt_tree.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_frontalface_alt.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_frontalface_alt2.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_frontalface_default.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_fullbody.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_lefteye_2splits.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_licence_plate_rus_16stages.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_lowerbody.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_profileface.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_righteye_2splits.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_russian_plate_number.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_smile.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/haarcascades/haarcascade_upperbody.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/lbpcascades/lbpcascade_frontalcatface.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/lbpcascades/lbpcascade_frontalface_improved.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/lbpcascades/lbpcascade_frontalface.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/lbpcascades/lbpcascade_profileface.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/lbpcascades/lbpcascade_silverware.xml
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/cpufeatures-LICENSE
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/cpufeatures-README.md
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/jasper-copyright
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/jasper-LICENSE
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/jasper-README
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/libjpeg-turbo-LICENSE.md
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/libjpeg-turbo-README.ijg
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/libjpeg-turbo-README.md
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/libpng-LICENSE
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/libpng-README
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/libtiff-COPYRIGHT
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/openexr-AUTHORS.ilmbase
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/openexr-AUTHORS.openexr
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/openexr-fix_msvc2013_errors.patch
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/openexr-LICENSE
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/protobuf-LICENSE
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/protobuf-README.md
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/quirc-LICENSE
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/SoftFloat-COPYING.txt
+3rdparty/opencv/OpenCV-android-sdk/sdk/etc/licenses/zlib-README
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/arm64-v8a/libcpufeatures.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/arm64-v8a/libIlmImf.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/arm64-v8a/liblibjasper.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/arm64-v8a/liblibjpeg-turbo.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/arm64-v8a/liblibpng.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/arm64-v8a/liblibprotobuf.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/arm64-v8a/liblibtiff.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/arm64-v8a/liblibwebp.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/arm64-v8a/libquirc.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/arm64-v8a/libtegra_hal.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/arm64-v8a/libzlib.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a/libcpufeatures.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a/libIlmImf.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a/liblibjasper.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a/liblibjpeg-turbo.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a/liblibpng.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a/liblibprotobuf.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a/liblibtiff.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a/liblibwebp.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a/libquirc.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a/libtegra_hal.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a/libzlib.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/android.toolchain.cmake
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/OpenCV-arm64-v8a.mk
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/OpenCV-armeabi-v7a.mk
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/OpenCV.mk
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/OpenCVConfig-version.cmake
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/OpenCVConfig.cmake
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/abi-arm64-v8a/OpenCVConfig-version.cmake
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/abi-arm64-v8a/OpenCVConfig.cmake
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/abi-arm64-v8a/OpenCVModules-release.cmake
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/abi-arm64-v8a/OpenCVModules.cmake
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/abi-armeabi-v7a/OpenCVConfig-version.cmake
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/abi-armeabi-v7a/OpenCVConfig.cmake
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/abi-armeabi-v7a/OpenCVModules-release.cmake
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/abi-armeabi-v7a/OpenCVModules.cmake
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv/cv.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv/cv.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv/cvaux.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv/cvaux.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv/cvwimage.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv/cxcore.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv/cxcore.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv/cxeigen.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv/cxmisc.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv/highgui.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv/ml.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/calib3d.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/cvconfig.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/features2d.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/imgcodecs.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/imgproc.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/opencv_modules.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/opencv.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/calib3d/calib3d_c.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/calib3d/calib3d.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/affine.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/base.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/bindings_utils.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/bufferpool.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/check.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/core_c.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/core.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda_stream_accessor.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda_types.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda.inl.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cv_cpu_dispatch.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cv_cpu_helper.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cvdef.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cvstd.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cvstd.inl.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/directx.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/eigen.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/fast_math.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/ippasync.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/mat.inl.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/matx.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/neon_utils.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/ocl_genbase.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/ocl.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opengl.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/operations.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/optim.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/ovx.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/persistence.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/ptr.inl.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/saturate.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/softfloat.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/sse_utils.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/traits.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/types_c.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/types.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/utility.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/va_intel.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/version.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/vsx_utils.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/wimage.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/block.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/border_interpolate.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/color.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/common.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/datamov_utils.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/dynamic_smem.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/emulation.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/filters.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/funcattrib.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/functional.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/limits.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/reduce.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/saturate_cast.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/scan.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/simd_functions.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/transform.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/type_traits.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/utility.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/vec_distance.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/vec_math.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/vec_traits.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/warp_reduce.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/warp_shuffle.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/warp.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/detail/color_detail.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/detail/reduce_key_val.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/detail/reduce.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/detail/transform_detail.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/detail/type_traits_detail.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/cuda/detail/vec_distance_detail.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/hal/hal.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/hal/interface.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/hal/intrin_avx.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/hal/intrin_cpp.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/hal/intrin_forward.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/hal/intrin_neon.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/hal/intrin_sse_em.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/hal/intrin_sse.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/hal/intrin_vsx.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/hal/intrin.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/ocl_defs.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/opencl_info.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/opencl_svm.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/opencl_clamdblas.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/opencl_clamdfft.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/opencl_core_wrappers.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/opencl_core.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/opencl_gl_wrappers.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/opencl_gl.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/opencl_svm_20.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/opencl_svm_definitions.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/opencl_svm_hsa_extension.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdblas.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdfft.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/autogenerated/opencl_core.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/utils/filesystem.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/utils/logger.defines.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/utils/logger.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/utils/trace.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/features2d/features2d.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/features2d/hal/interface.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/imgcodecs/imgcodecs_c.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/imgcodecs/imgcodecs.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/imgcodecs/ios.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/imgproc/imgproc_c.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/imgproc/imgproc.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/imgproc/types_c.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/imgproc/detail/distortion_model.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/imgproc/hal/hal.hpp
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/include/opencv2/imgproc/hal/interface.h
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/staticlibs/arm64-v8a/libopencv_calib3d.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/staticlibs/arm64-v8a/libopencv_core.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/staticlibs/arm64-v8a/libopencv_features2d.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/staticlibs/arm64-v8a/libopencv_imgcodecs.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/staticlibs/arm64-v8a/libopencv_imgproc.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/staticlibs/armeabi-v7a/libopencv_calib3d.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/staticlibs/armeabi-v7a/libopencv_core.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/staticlibs/armeabi-v7a/libopencv_features2d.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/staticlibs/armeabi-v7a/libopencv_imgcodecs.a
+3rdparty/opencv/OpenCV-android-sdk/sdk/native/staticlibs/armeabi-v7a/libopencv_imgproc.a
+3rdparty/opencv/opencv-linux-aarch64/bin/opencv_version
+3rdparty/opencv/opencv-linux-aarch64/bin/setup_vars_opencv3.sh
+3rdparty/opencv/opencv-linux-aarch64/include/opencv/cv.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv/cv.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv/cvaux.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv/cvaux.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv/cvwimage.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv/cxcore.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv/cxcore.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv/cxeigen.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv/cxmisc.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv/highgui.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv/ml.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/calib3d.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/cvconfig.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/dnn.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/features2d.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/highgui.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/imgcodecs.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/imgproc.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/ml.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/objdetect.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/opencv_modules.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/opencv.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/photo.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/shape.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/superres.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/video.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videoio.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/calib3d/calib3d_c.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/calib3d/calib3d.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/affine.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/base.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/bindings_utils.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/bufferpool.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/check.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/core_c.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/core.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda_stream_accessor.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda_types.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda.inl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cv_cpu_dispatch.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cv_cpu_helper.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cvdef.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cvstd.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cvstd.inl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/directx.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/eigen.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/fast_math.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/ippasync.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/mat.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/mat.inl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/matx.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/neon_utils.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/ocl_genbase.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/ocl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opengl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/operations.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/optim.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/ovx.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/persistence.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/ptr.inl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/saturate.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/softfloat.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/sse_utils.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/traits.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/types_c.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/types.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/utility.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/va_intel.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/version.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/vsx_utils.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/wimage.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/block.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/border_interpolate.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/color.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/common.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/datamov_utils.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/dynamic_smem.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/emulation.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/filters.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/funcattrib.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/functional.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/limits.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/reduce.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/saturate_cast.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/scan.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/simd_functions.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/transform.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/type_traits.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/utility.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/vec_distance.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/vec_math.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/vec_traits.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/warp_reduce.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/warp_shuffle.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/warp.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/detail/color_detail.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/detail/reduce_key_val.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/detail/reduce.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/detail/transform_detail.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/detail/type_traits_detail.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/cuda/detail/vec_distance_detail.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/hal/hal.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/hal/interface.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/hal/intrin_avx.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/hal/intrin_cpp.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/hal/intrin_forward.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/hal/intrin_neon.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/hal/intrin_sse_em.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/hal/intrin_sse.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/hal/intrin_vsx.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/hal/intrin.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/ocl_defs.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/opencl_info.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/opencl_svm.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/opencl_clamdblas.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/opencl_clamdfft.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/opencl_core_wrappers.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/opencl_core.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/opencl_gl_wrappers.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/opencl_gl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/opencl_svm_20.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/opencl_svm_definitions.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/opencl_svm_hsa_extension.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdblas.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdfft.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/autogenerated/opencl_core.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/utils/filesystem.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/utils/logger.defines.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/utils/logger.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/core/utils/trace.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/dnn/all_layers.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/dnn/dict.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/dnn/dnn.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/dnn/dnn.inl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/dnn/layer.details.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/dnn/layer.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/dnn/shape_utils.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/features2d/features2d.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/features2d/hal/interface.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/all_indices.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/allocator.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/any.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/autotuned_index.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/composite_index.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/config.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/defines.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/dist.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/dummy.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/dynamic_bitset.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/flann_base.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/flann.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/general.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/ground_truth.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/hdf5.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/heap.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/hierarchical_clustering_index.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/index_testing.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/kdtree_index.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/kdtree_single_index.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/kmeans_index.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/linear_index.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/logger.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/lsh_index.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/lsh_table.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/matrix.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/miniflann.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/nn_index.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/object_factory.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/params.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/random.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/result_set.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/sampling.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/saving.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/simplex_downhill.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/flann/timer.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/highgui/highgui_c.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/highgui/highgui.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/imgcodecs/imgcodecs_c.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/imgcodecs/imgcodecs.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/imgcodecs/ios.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/imgproc/imgproc_c.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/imgproc/imgproc.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/imgproc/types_c.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/imgproc/detail/distortion_model.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/imgproc/hal/hal.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/imgproc/hal/interface.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/ml/ml.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/ml/ml.inl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/objdetect/detection_based_tracker.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/objdetect/objdetect_c.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/objdetect/objdetect.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/photo/cuda.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/photo/photo_c.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/photo/photo.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/shape/emdL1.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/shape/hist_cost.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/shape/shape_distance.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/shape/shape_transformer.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/shape/shape.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/warpers.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/autocalib.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/blenders.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/camera.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/exposure_compensate.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/matchers.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/motion_estimators.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/seam_finders.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/timelapsers.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/util_inl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/util.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/warpers_inl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/stitching/detail/warpers.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/superres/optical_flow.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/video/background_segm.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/video/tracking_c.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/video/tracking.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/video/video.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videoio/cap_ios.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videoio/videoio_c.h
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videoio/videoio.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/deblurring.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/fast_marching_inl.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/fast_marching.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/frame_source.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/global_motion.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/inpainting.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/log.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/motion_core.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/motion_stabilizing.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/optical_flow.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/outlier_rejection.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/ring_buffer.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/stabilizer.hpp
+3rdparty/opencv/opencv-linux-aarch64/include/opencv2/videostab/wobble_suppression.hpp
+3rdparty/opencv/opencv-linux-aarch64/lib/libopencv_calib3d.a
+3rdparty/opencv/opencv-linux-aarch64/lib/libopencv_core.a
+3rdparty/opencv/opencv-linux-aarch64/lib/libopencv_dnn.a
+3rdparty/opencv/opencv-linux-aarch64/lib/libopencv_features2d.a
+3rdparty/opencv/opencv-linux-aarch64/lib/libopencv_imgcodecs.a
+3rdparty/opencv/opencv-linux-aarch64/lib/libopencv_imgproc.a
+3rdparty/opencv/opencv-linux-aarch64/lib/libopencv_video.a
+3rdparty/opencv/opencv-linux-aarch64/lib/pkgconfig/opencv.pc
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/OpenCVConfig-version.cmake
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/OpenCVConfig.cmake
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/OpenCVModules-release.cmake
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/OpenCVModules.cmake
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/valgrind_3rdparty.supp
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/valgrind.supp
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/3rdparty/lib/libIlmImf.a
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/3rdparty/lib/liblibjasper.a
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/3rdparty/lib/liblibjpeg-turbo.a
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/3rdparty/lib/liblibpng.a
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/3rdparty/lib/liblibprotobuf.a
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/3rdparty/lib/liblibtiff.a
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/3rdparty/lib/liblibwebp.a
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/3rdparty/lib/libquirc.a
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/3rdparty/lib/libtegra_hal.a
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/3rdparty/lib/libzlib.a
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_eye.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_frontalcatface_extended.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_frontalcatface.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_frontalface_alt_tree.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_frontalface_alt2.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_fullbody.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_lefteye_2splits.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_licence_plate_rus_16stages.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_lowerbody.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_profileface.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_righteye_2splits.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_russian_plate_number.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_smile.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/haarcascades/haarcascade_upperbody.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/lbpcascades/lbpcascade_frontalcatface.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/lbpcascades/lbpcascade_frontalface_improved.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/lbpcascades/lbpcascade_frontalface.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/lbpcascades/lbpcascade_profileface.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/lbpcascades/lbpcascade_silverware.xml
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/jasper-copyright
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/jasper-LICENSE
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/jasper-README
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/libjpeg-turbo-LICENSE.md
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/libjpeg-turbo-README.ijg
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/libjpeg-turbo-README.md
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/libpng-LICENSE
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/libpng-opencv-libpng.patch
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/libpng-README
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/libtiff-COPYRIGHT
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/opencl-headers-LICENSE.txt
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/openexr-AUTHORS.ilmbase
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/openexr-AUTHORS.openexr
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/openexr-fix_msvc2013_errors.patch
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/openexr-LICENSE
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/protobuf-LICENSE
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/protobuf-README.md
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/quirc-LICENSE
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/SoftFloat-COPYING.txt
+3rdparty/opencv/opencv-linux-aarch64/share/OpenCV/licenses/zlib-README
+3rdparty/opencv/opencv-linux-armhf/bin/opencv_version
+3rdparty/opencv/opencv-linux-armhf/bin/setup_vars_opencv3.sh
+3rdparty/opencv/opencv-linux-armhf/include/opencv/cv.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv/cv.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv/cvaux.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv/cvaux.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv/cvwimage.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv/cxcore.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv/cxcore.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv/cxeigen.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv/cxmisc.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv/highgui.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv/ml.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/calib3d.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/cvconfig.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/features2d.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/imgcodecs.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/imgproc.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/opencv_modules.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/opencv.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/video.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/calib3d/calib3d_c.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/calib3d/calib3d.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/affine.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/base.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/bindings_utils.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/bufferpool.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/check.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/core_c.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/core.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda_stream_accessor.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda_types.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda.inl.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cv_cpu_dispatch.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cv_cpu_helper.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cvdef.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cvstd.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cvstd.inl.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/directx.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/eigen.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/fast_math.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/ippasync.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/mat.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/mat.inl.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/matx.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/neon_utils.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/ocl_genbase.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/ocl.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opengl.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/operations.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/optim.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/ovx.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/persistence.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/ptr.inl.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/saturate.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/softfloat.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/sse_utils.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/traits.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/types_c.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/types.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/utility.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/va_intel.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/version.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/vsx_utils.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/wimage.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/block.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/border_interpolate.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/color.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/common.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/datamov_utils.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/dynamic_smem.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/emulation.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/filters.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/funcattrib.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/functional.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/limits.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/reduce.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/saturate_cast.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/scan.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/simd_functions.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/transform.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/type_traits.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/utility.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/vec_distance.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/vec_math.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/vec_traits.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/warp_reduce.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/warp_shuffle.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/warp.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/detail/color_detail.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/detail/reduce_key_val.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/detail/reduce.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/detail/transform_detail.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/detail/type_traits_detail.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/cuda/detail/vec_distance_detail.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/hal/hal.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/hal/interface.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/hal/intrin_avx.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/hal/intrin_cpp.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/hal/intrin_forward.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/hal/intrin_neon.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/hal/intrin_sse_em.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/hal/intrin_sse.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/hal/intrin_vsx.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/hal/intrin.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/ocl_defs.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/opencl_info.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/opencl_svm.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/opencl_clamdblas.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/opencl_clamdfft.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/opencl_core_wrappers.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/opencl_core.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/opencl_gl_wrappers.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/opencl_gl.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/opencl_svm_20.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/opencl_svm_definitions.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/opencl_svm_hsa_extension.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdblas.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdfft.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/autogenerated/opencl_core.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/utils/filesystem.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/utils/logger.defines.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/utils/logger.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/core/utils/trace.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/features2d/features2d.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/features2d/hal/interface.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/imgcodecs/imgcodecs_c.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/imgcodecs/imgcodecs.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/imgcodecs/ios.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/imgproc/imgproc_c.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/imgproc/imgproc.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/imgproc/types_c.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/imgproc/detail/distortion_model.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/imgproc/hal/hal.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/imgproc/hal/interface.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/video/background_segm.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/video/tracking_c.h
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/video/tracking.hpp
+3rdparty/opencv/opencv-linux-armhf/include/opencv2/video/video.hpp
+3rdparty/opencv/opencv-linux-armhf/lib/libopencv_calib3d.a
+3rdparty/opencv/opencv-linux-armhf/lib/libopencv_core.a
+3rdparty/opencv/opencv-linux-armhf/lib/libopencv_features2d.a
+3rdparty/opencv/opencv-linux-armhf/lib/libopencv_imgcodecs.a
+3rdparty/opencv/opencv-linux-armhf/lib/libopencv_imgproc.a
+3rdparty/opencv/opencv-linux-armhf/lib/libopencv_video.a
+3rdparty/opencv/opencv-linux-armhf/lib/pkgconfig/opencv.pc
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/OpenCVConfig-version.cmake
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/OpenCVConfig.cmake
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/OpenCVModules-release.cmake
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/OpenCVModules.cmake
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/valgrind_3rdparty.supp
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/valgrind.supp
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/3rdparty/lib/libIlmImf.a
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/3rdparty/lib/liblibjasper.a
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/3rdparty/lib/liblibjpeg-turbo.a
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/3rdparty/lib/liblibpng.a
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/3rdparty/lib/liblibprotobuf.a
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/3rdparty/lib/liblibtiff.a
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/3rdparty/lib/liblibwebp.a
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/3rdparty/lib/libquirc.a
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/3rdparty/lib/libtegra_hal.a
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/3rdparty/lib/libzlib.a
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_eye.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_frontalcatface_extended.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_frontalcatface.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_frontalface_alt_tree.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_frontalface_alt2.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_fullbody.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_lefteye_2splits.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_licence_plate_rus_16stages.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_lowerbody.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_profileface.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_righteye_2splits.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_russian_plate_number.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_smile.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/haarcascades/haarcascade_upperbody.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/lbpcascades/lbpcascade_frontalcatface.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/lbpcascades/lbpcascade_frontalface_improved.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/lbpcascades/lbpcascade_frontalface.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/lbpcascades/lbpcascade_profileface.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/lbpcascades/lbpcascade_silverware.xml
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/jasper-copyright
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/jasper-LICENSE
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/jasper-README
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/libjpeg-turbo-LICENSE.md
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/libjpeg-turbo-README.ijg
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/libjpeg-turbo-README.md
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/libpng-LICENSE
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/libpng-README
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/libtiff-COPYRIGHT
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/openexr-AUTHORS.ilmbase
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/openexr-AUTHORS.openexr
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/openexr-fix_msvc2013_errors.patch
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/openexr-LICENSE
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/protobuf-LICENSE
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/protobuf-README.md
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/quirc-LICENSE
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/SoftFloat-COPYING.txt
+3rdparty/opencv/opencv-linux-armhf/share/OpenCV/licenses/zlib-README
+3rdparty/rga/RK356X/include/drmrga.h
+3rdparty/rga/RK356X/include/GrallocOps.h
+3rdparty/rga/RK356X/include/im2d_buffer.h
+3rdparty/rga/RK356X/include/im2d_common.h
+3rdparty/rga/RK356X/include/im2d_expand.h
+3rdparty/rga/RK356X/include/im2d_mpi.h
+3rdparty/rga/RK356X/include/im2d_single.h
+3rdparty/rga/RK356X/include/im2d_task.h
+3rdparty/rga/RK356X/include/im2d_type.h
+3rdparty/rga/RK356X/include/im2d_version.h
+3rdparty/rga/RK356X/include/im2d.h
+3rdparty/rga/RK356X/include/im2d.hpp
+3rdparty/rga/RK356X/include/rga.h
+3rdparty/rga/RK356X/include/RgaApi.h
+3rdparty/rga/RK356X/include/RgaMutex.h
+3rdparty/rga/RK356X/include/RgaSingleton.h
+3rdparty/rga/RK356X/include/RgaUtils.h
+3rdparty/rga/RK356X/include/RockchipRga.h
+3rdparty/rga/RK356X/lib/Android/arm64-v8a/librga.a
+3rdparty/rga/RK356X/lib/Android/arm64-v8a/librga.so
+3rdparty/rga/RK356X/lib/Android/armeabi-v7a/librga.a
+3rdparty/rga/RK356X/lib/Android/armeabi-v7a/librga.so
+3rdparty/rga/RK356X/lib/Linux/aarch64/librga.a
+3rdparty/rga/RK356X/lib/Linux/aarch64/librga.so
+3rdparty/rga/RK3588/include/drmrga.h
+3rdparty/rga/RK3588/include/GrallocOps.h
+3rdparty/rga/RK3588/include/im2d_buffer.h
+3rdparty/rga/RK3588/include/im2d_common.h
+3rdparty/rga/RK3588/include/im2d_expand.h
+3rdparty/rga/RK3588/include/im2d_mpi.h
+3rdparty/rga/RK3588/include/im2d_single.h
+3rdparty/rga/RK3588/include/im2d_task.h
+3rdparty/rga/RK3588/include/im2d_type.h
+3rdparty/rga/RK3588/include/im2d_version.h
+3rdparty/rga/RK3588/include/im2d.h
+3rdparty/rga/RK3588/include/im2d.hpp
+3rdparty/rga/RK3588/include/rga.h
+3rdparty/rga/RK3588/include/RgaApi.h
+3rdparty/rga/RK3588/include/RgaMutex.h
+3rdparty/rga/RK3588/include/RgaSingleton.h
+3rdparty/rga/RK3588/include/RgaUtils.h
+3rdparty/rga/RK3588/include/RockchipRga.h
+3rdparty/rga/RK3588/lib/Android/arm64-v8a/librga.a
+3rdparty/rga/RK3588/lib/Android/arm64-v8a/librga.so
+3rdparty/rga/RK3588/lib/Android/armeabi-v7a/librga.a
+3rdparty/rga/RK3588/lib/Android/armeabi-v7a/librga.so
+3rdparty/rga/RK3588/lib/Linux/aarch64/librga.a
+3rdparty/rga/RK3588/lib/Linux/aarch64/librga.so
+3rdparty/rga/RV110X/include/drmrga.h
+3rdparty/rga/RV110X/include/GrallocOps.h
+3rdparty/rga/RV110X/include/im2d_hardware.h
+3rdparty/rga/RV110X/include/im2d_type.h
+3rdparty/rga/RV110X/include/im2d_version.h
+3rdparty/rga/RV110X/include/im2d.h
+3rdparty/rga/RV110X/include/im2d.hpp
+3rdparty/rga/RV110X/include/rga.h
+3rdparty/rga/RV110X/include/RgaApi.h
+3rdparty/rga/RV110X/include/RgaMutex.h
+3rdparty/rga/RV110X/include/RgaSingleton.h
+3rdparty/rga/RV110X/include/RgaUtils.h
+3rdparty/rga/RV110X/include/RockchipRga.h
+3rdparty/rga/RV110X/lib/Linux/armhf/librga.so
+3rdparty/rk_mpi_mmz/readme.txt
+3rdparty/rk_mpi_mmz/include/rk_mpi_mmz.h
+3rdparty/rk_mpi_mmz/lib/Android/arm64-v8a/libmpimmz.so
+3rdparty/rk_mpi_mmz/lib/Android/armeabi-v7a/libmpimmz.so
+3rdparty/rk_mpi_mmz/lib/Linux/aarch64/libmpimmz.so
+3rdparty/rk_mpi_mmz/lib/Linux/armhf/libmpimmz.so
+3rdparty/stb/stb_image_resize.h
+3rdparty/stb/stb_image_write.h
+3rdparty/stb/stb_image.h
+3rdparty/zlmediakit/LICENSE
+3rdparty/zlmediakit/aarch64/libmk_api.so
+3rdparty/zlmediakit/include/mk_common.h
+3rdparty/zlmediakit/include/mk_events_objects.h
+3rdparty/zlmediakit/include/mk_events.h
+3rdparty/zlmediakit/include/mk_export.h
+3rdparty/zlmediakit/include/mk_frame.h
+3rdparty/zlmediakit/include/mk_h264_splitter.h
+3rdparty/zlmediakit/include/mk_httpclient.h
+3rdparty/zlmediakit/include/mk_media.h
+3rdparty/zlmediakit/include/mk_mediakit.h
+3rdparty/zlmediakit/include/mk_player.h
+3rdparty/zlmediakit/include/mk_proxyplayer.h
+3rdparty/zlmediakit/include/mk_pusher.h
+3rdparty/zlmediakit/include/mk_recorder.h
+3rdparty/zlmediakit/include/mk_rtp_server.h
+3rdparty/zlmediakit/include/mk_tcp.h
+3rdparty/zlmediakit/include/mk_thread.h
+3rdparty/zlmediakit/include/mk_track.h
+3rdparty/zlmediakit/include/mk_transcode.h
+3rdparty/zlmediakit/include/mk_util.h
+build/cmake_install.cmake
+build/CMakeCache.txt
+build/coco_80_labels_list.txt
+build/compile_commands.json
+build/Makefile
+build/output.jpg
+build/Test
+build/.cmake/api/v1/query/client-vscode/query.json
+build/.cmake/api/v1/reply/cache-v2-2a3c8490d9063a132a0d.json
+build/.cmake/api/v1/reply/cmakeFiles-v1-1cc3ad6efc62aea9694b.json
+build/.cmake/api/v1/reply/codemodel-v2-56fd77d18ba2d12f5b80.json
+build/.cmake/api/v1/reply/index-2024-08-26T15-28-05-0550.json
+build/.cmake/api/v1/reply/target-Test-Debug-1423b755f05bb38cfa6c.json
+build/CMakeFiles/cmake.check_cache
+build/CMakeFiles/CMakeDirectoryInformation.cmake
+build/CMakeFiles/CMakeOutput.log
+build/CMakeFiles/Makefile.cmake
+build/CMakeFiles/Makefile2
+build/CMakeFiles/progress.marks
+build/CMakeFiles/TargetDirectories.txt
+build/CMakeFiles/3.18.4/CMakeCCompiler.cmake
+build/CMakeFiles/3.18.4/CMakeCXXCompiler.cmake
+build/CMakeFiles/3.18.4/CMakeDetermineCompilerABI_C.bin
+build/CMakeFiles/3.18.4/CMakeDetermineCompilerABI_CXX.bin
+build/CMakeFiles/3.18.4/CMakeSystem.cmake
+build/CMakeFiles/3.18.4/CompilerIdC/a.out
+build/CMakeFiles/3.18.4/CompilerIdC/CMakeCCompilerId.c
+build/CMakeFiles/3.18.4/CompilerIdCXX/a.out
+build/CMakeFiles/3.18.4/CompilerIdCXX/CMakeCXXCompilerId.cpp
+build/CMakeFiles/Test.dir/build.make
+build/CMakeFiles/Test.dir/cmake_clean.cmake
+build/CMakeFiles/Test.dir/CXX.includecache
+build/CMakeFiles/Test.dir/depend.internal
+build/CMakeFiles/Test.dir/depend.make
+build/CMakeFiles/Test.dir/DependInfo.cmake
+build/CMakeFiles/Test.dir/flags.make
+build/CMakeFiles/Test.dir/link.txt
+build/CMakeFiles/Test.dir/progress.make
+build/CMakeFiles/Test.dir/src/beforeProcess.cpp.o
+build/CMakeFiles/Test.dir/src/main.cpp.o
+build/CMakeFiles/Test.dir/src/postprocess.cpp.o
+build/CMakeFiles/Test.dir/src/RKNNManager.cpp.o
+rknn_yolov5_demo/build-android_RK3562.sh
+rknn_yolov5_demo/build-android_RK3566_RK3568.sh
+rknn_yolov5_demo/build-android_RK3588.sh
+rknn_yolov5_demo/build-linux_RK3562.sh
+rknn_yolov5_demo/build-linux_RK3566_RK3568.sh
+rknn_yolov5_demo/build-linux_RK3588.sh
+3rdparty/cnpy/cnpy.cpp
+3rdparty/cnpy/cnpy.h
+rknn_yolov5_demo/build/build_linux_aarch64/cmake_install.cmake
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeCache.txt
+rknn_yolov5_demo/build/build_linux_aarch64/Makefile
+rknn_yolov5_demo/build/build_linux_aarch64/rknn_yolov5_demo
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/cmake.check_cache
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/CMakeDirectoryInformation.cmake
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/CMakeOutput.log
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Makefile.cmake
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Makefile2
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/progress.marks
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/TargetDirectories.txt
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/3.22.1/CMakeCCompiler.cmake
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_C.bin
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/3.22.1/CMakeSystem.cmake
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/3.22.1/CompilerIdC/a.out
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/3.22.1/CompilerIdCXX/a.out
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Progress/1
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Progress/2
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Progress/3
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Progress/4
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Progress/5
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Progress/6
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Progress/7
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Progress/8
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Progress/9
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/Progress/count.txt
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/build.make
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/cmake_clean.cmake
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/compiler_depend.internal
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/compiler_depend.make
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/compiler_depend.ts
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/depend.make
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/DependInfo.cmake
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/flags.make
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/link.txt
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/progress.make
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/src/main.cc.o
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/src/main.cc.o.d
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/src/postprocess.cc.o
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_demo.dir/src/postprocess.cc.o.d
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/build.make
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/cmake_clean.cmake
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/compiler_depend.internal
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/compiler_depend.make
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/compiler_depend.ts
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/depend.make
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/DependInfo.cmake
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/flags.make
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/link.txt
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/progress.make
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/src/main_video.cc.o
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/src/main_video.cc.o.d
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/src/postprocess.cc.o
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/src/postprocess.cc.o.d
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/utils/drawing.cpp.o
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/utils/drawing.cpp.o.d
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/utils/mpp_decoder.cpp.o
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/utils/mpp_decoder.cpp.o.d
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/utils/mpp_encoder.cpp.o
+rknn_yolov5_demo/build/build_linux_aarch64/CMakeFiles/rknn_yolov5_video_demo.dir/utils/mpp_encoder.cpp.o.d
+rknn_yolov5_demo/convert_rknn_demo/yolov5/dataset.txt
+rknn_yolov5_demo/convert_rknn_demo/yolov5/onnx2rknn.py
+rknn_yolov5_demo/convert_rknn_demo/yolov5/README_CN.md
+rknn_yolov5_demo/convert_rknn_demo/yolov5/README.md
+rknn_yolov5_demo/convert_rknn_demo/yolov5/onnx_models/yolov5s_for_apk_demo.onnx
+rknn_yolov5_demo/convert_rknn_demo/yolov5/onnx_models/yolov5s_relu.onnx
+rknn_yolov5_demo/include/drm_func.h
+rknn_yolov5_demo/include/postprocess.h
+rknn_yolov5_demo/include/rga_func.h
+rknn_yolov5_demo/model/bus.jpg
+rknn_yolov5_demo/model/coco_80_labels_list.txt
+rknn_yolov5_demo/model/RK3562/yolov5s-640-640.rknn
+rknn_yolov5_demo/model/RK3566_RK3568/yolov5s-640-640.rknn
+rknn_yolov5_demo/model/RK3588/yolov5s-640-640.rknn
+rknn_yolov5_demo/src/main_video.cc
+rknn_yolov5_demo/src/main.cc
+rknn_yolov5_demo/src/postprocess.cc
+rknn_yolov5_demo/utils/drawing.cpp
+rknn_yolov5_demo/utils/drawing.h
+rknn_yolov5_demo/utils/mpp_decoder.cpp
+rknn_yolov5_demo/utils/mpp_decoder.h
+rknn_yolov5_demo/utils/mpp_encoder.cpp
+rknn_yolov5_demo/utils/mpp_encoder.h
+runtime/Android.bp
+runtime/Android.go
+runtime/init.rknn_server.rc
+runtime/RK356X/Android/librknn_api/arm64-v8a/librknn_api.so
+runtime/RK356X/Android/librknn_api/arm64-v8a/librknnrt.so
+runtime/RK356X/Android/librknn_api/armeabi-v7a/librknn_api.so
+runtime/RK356X/Android/librknn_api/armeabi-v7a/librknnrt.so
+runtime/RK356X/Android/librknn_api/include/rknn_api.h
+runtime/RK356X/Android/librknn_api/include/rknn_matmul_api.h
+runtime/RK356X/Android/rknn_server/arm/rknn_server
+runtime/RK356X/Android/rknn_server/arm64/rknn_server
+runtime/RK356X/Linux/librknn_api/aarch64/librknn_api.so
+runtime/RK356X/Linux/librknn_api/aarch64/librknnrt.so
+runtime/RK356X/Linux/librknn_api/armhf/librknn_api.so
+runtime/RK356X/Linux/librknn_api/armhf/librknnrt.so
+runtime/RK356X/Linux/librknn_api/include/rknn_api.h
+runtime/RK356X/Linux/librknn_api/include/rknn_matmul_api.h
+runtime/RK356X/Linux/rknn_server/aarch64/usr/bin/restart_rknn.sh
+runtime/RK356X/Linux/rknn_server/aarch64/usr/bin/rknn_server
+runtime/RK356X/Linux/rknn_server/aarch64/usr/bin/start_rknn.sh
+runtime/RK356X/Linux/rknn_server/armhf/usr/bin/restart_rknn.sh
+runtime/RK356X/Linux/rknn_server/armhf/usr/bin/rknn_server
+runtime/RK356X/Linux/rknn_server/armhf/usr/bin/start_rknn.sh
+runtime/RK3588/Android/librknn_api/arm64-v8a/librknnrt.so
+runtime/RK3588/Android/librknn_api/armeabi-v7a/librknnrt.so
+runtime/RK3588/Android/librknn_api/include/rknn_api.h
+runtime/RK3588/Android/librknn_api/include/rknn_matmul_api.h
+runtime/RK3588/Android/rknn_server/arm/rknn_server
+runtime/RK3588/Android/rknn_server/arm64/rknn_server
+runtime/RK3588/Linux/librknn_api/aarch64/librknn_api.so
+runtime/RK3588/Linux/librknn_api/aarch64/librknnrt.so
+runtime/RK3588/Linux/librknn_api/armhf/librknn_api.so
+runtime/RK3588/Linux/librknn_api/armhf/librknnrt.so
+runtime/RK3588/Linux/librknn_api/include/rknn_api.h
+runtime/RK3588/Linux/librknn_api/include/rknn_matmul_api.h
+runtime/RK3588/Linux/rknn_server/aarch64/usr/bin/restart_rknn.sh
+runtime/RK3588/Linux/rknn_server/aarch64/usr/bin/rknn_server
+runtime/RK3588/Linux/rknn_server/aarch64/usr/bin/start_rknn.sh
+runtime/RK3588/Linux/rknn_server/armhf/usr/bin/restart_rknn.sh
+runtime/RK3588/Linux/rknn_server/armhf/usr/bin/rknn_server
+runtime/RK3588/Linux/rknn_server/armhf/usr/bin/start_rknn.sh
+runtime/RV1106/Linux/librknn_api/armhf/librknn_api.so
+runtime/RV1106/Linux/librknn_api/armhf/librknnmrt.a
+runtime/RV1106/Linux/librknn_api/armhf/librknnmrt.so
+runtime/RV1106/Linux/librknn_api/include/rknn_api.h
+runtime/RV1106/Linux/rknn_server/arm/usr/bin/restart_rknn.sh
+runtime/RV1106/Linux/rknn_server/arm/usr/bin/rknn_server
+runtime/RV1106/Linux/rknn_server/arm/usr/bin/start_rknn.sh

+ 65 - 0
.vscode/settings.json

@@ -0,0 +1,65 @@
+{
+    "files.associations": {
+        "vector": "cpp",
+        "iostream": "cpp",
+        "string": "cpp",
+        "array": "cpp",
+        "atomic": "cpp",
+        "bit": "cpp",
+        "*.tcc": "cpp",
+        "cctype": "cpp",
+        "chrono": "cpp",
+        "clocale": "cpp",
+        "cmath": "cpp",
+        "compare": "cpp",
+        "complex": "cpp",
+        "concepts": "cpp",
+        "condition_variable": "cpp",
+        "cstdarg": "cpp",
+        "cstddef": "cpp",
+        "cstdint": "cpp",
+        "cstdio": "cpp",
+        "cstdlib": "cpp",
+        "cstring": "cpp",
+        "ctime": "cpp",
+        "cwchar": "cpp",
+        "cwctype": "cpp",
+        "deque": "cpp",
+        "list": "cpp",
+        "map": "cpp",
+        "set": "cpp",
+        "unordered_map": "cpp",
+        "exception": "cpp",
+        "algorithm": "cpp",
+        "functional": "cpp",
+        "iterator": "cpp",
+        "memory": "cpp",
+        "memory_resource": "cpp",
+        "numeric": "cpp",
+        "optional": "cpp",
+        "random": "cpp",
+        "ratio": "cpp",
+        "string_view": "cpp",
+        "system_error": "cpp",
+        "tuple": "cpp",
+        "type_traits": "cpp",
+        "utility": "cpp",
+        "fstream": "cpp",
+        "initializer_list": "cpp",
+        "iomanip": "cpp",
+        "iosfwd": "cpp",
+        "istream": "cpp",
+        "limits": "cpp",
+        "mutex": "cpp",
+        "new": "cpp",
+        "ostream": "cpp",
+        "ranges": "cpp",
+        "sstream": "cpp",
+        "stdexcept": "cpp",
+        "stop_token": "cpp",
+        "streambuf": "cpp",
+        "thread": "cpp",
+        "typeinfo": "cpp",
+        "regex": "cpp"
+    }
+}

BIN
20170.jpg


+ 34 - 0
CMakeLists.txt

@@ -0,0 +1,34 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(UsbDevAI)
+set(CMAKE_CXX_STANDARD 14)
+
+
+include_directories(${CMAKE_SOURCE_DIR}/src)
+include_directories(${CMAKE_SOURCE_DIR}/runtime/RK3588/Linux/librknn_api/include)
+include_directories(${CMAKE_SOURCE_DIR}/3rdparty/rga/RK3588/include)
+include_directories(${CMAKE_SOURCE_DIR}/3rdparty/opencv/opencv-linux-aarch64/include)
+include_directories(${CMAKE_SOURCE_DIR}/3rdparty/mpp/include)
+
+set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/3rdparty/opencv/opencv-linux-aarch64/share/OpenCV)
+find_package(OpenCV REQUIRED)
+
+set(TARGET Test)
+
+set(SOURCE src/main.cpp src/beforeProcess.cpp src/postprocess.cpp src/RKNNManager.cpp)
+
+add_executable(${TARGET} ${SOURCE})
+
+target_link_directories(${TARGET} PRIVATE ${CMAKE_SOURCE_DIR}/runtime/RK3588/Linux/librknn_api/aarch64)
+target_link_directories(${TARGET} PRIVATE ${CMAKE_SOURCE_DIR}/3rdparty/rga/RK3588/lib/Linux/aarch64)
+target_link_directories(${TARGET} PRIVATE ${CMAKE_SOURCE_DIR}/3rdparty/opencv/opencv-linux-aarch64/lib)
+target_link_directories(${TARGET} PRIVATE ${CMAKE_SOURCE_DIR}/3rdparty/mpp/Linux/aarch64/)
+
+
+# use lib rknn_api opencv
+target_link_libraries(${TARGET} rknnrt)
+target_link_libraries(${TARGET} rga)
+target_link_libraries(${TARGET} pthread)
+target_link_libraries(${TARGET} opencv_core opencv_imgproc opencv_imgcodecs)
+
+

BIN
result.jpg


+ 141 - 0
rknn_yolov5_demo/CMakeLists.txt

@@ -0,0 +1,141 @@
+cmake_minimum_required(VERSION 3.4.1)
+
+project(rknn_yolov5_demo)
+
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+# skip 3rd-party lib dependencies
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--allow-shlib-undefined")
+
+# install target and libraries
+set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install/rknn_yolov5_demo_${CMAKE_SYSTEM_NAME})
+
+set(CMAKE_SKIP_INSTALL_RPATH FALSE)
+set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
+set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
+
+set(LIB_ARCH aarch64)
+
+# if (CMAKE_C_COMPILER MATCHES "aarch64")
+#   set(LIB_ARCH aarch64)
+# else()
+#   set(LIB_ARCH armhf)
+# endif()
+
+include_directories(${CMAKE_SOURCE_DIR})
+
+# rknn api
+if(TARGET_SOC STREQUAL "rk356x")
+  set(RKNN_API_PATH ${CMAKE_SOURCE_DIR}/../../runtime/RK356X/${CMAKE_SYSTEM_NAME}/librknn_api)
+elseif(TARGET_SOC STREQUAL "rk3588")
+  set(RKNN_API_PATH ${CMAKE_SOURCE_DIR}/../runtime/RK3588/${CMAKE_SYSTEM_NAME}/librknn_api)
+else()
+  message(FATAL_ERROR "TARGET_SOC is not set, ref value: rk356x or rk3588 or rv110x")
+endif()
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Android")
+  set(RKNN_RT_LIB ${RKNN_API_PATH}/${CMAKE_ANDROID_ARCH_ABI}/librknnrt.so)
+else()
+  set(RKNN_RT_LIB ${RKNN_API_PATH}/${LIB_ARCH}/librknnrt.so)
+endif()
+include_directories(${RKNN_API_PATH}/include)
+include_directories(${CMAKE_SOURCE_DIR}/../3rdparty)
+
+# opencv
+if (CMAKE_SYSTEM_NAME STREQUAL "Android")
+    set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/../3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/abi-${CMAKE_ANDROID_ARCH_ABI})
+else()
+  if(LIB_ARCH STREQUAL "armhf")
+    set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/../3rdparty/opencv/opencv-linux-armhf/share/OpenCV)
+  else()
+    set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/../3rdparty/opencv/opencv-linux-aarch64/share/OpenCV)
+  endif()
+endif()
+find_package(OpenCV REQUIRED)
+
+#rga
+if(TARGET_SOC STREQUAL "rk356x")
+  set(RGA_PATH ${CMAKE_SOURCE_DIR}/../3rdparty/rga/RK356X)
+elseif(TARGET_SOC STREQUAL "rk3588")
+  set(RGA_PATH ${CMAKE_SOURCE_DIR}/../3rdparty/rga/RK3588)
+else()
+  message(FATAL_ERROR "TARGET_SOC is not set, ref value: rk356x or rk3588")
+endif()
+if (CMAKE_SYSTEM_NAME STREQUAL "Android")
+  set(RGA_LIB ${RGA_PATH}/lib/Android/${CMAKE_ANDROID_ARCH_ABI}/librga.so)
+else()
+  set(RGA_LIB ${RGA_PATH}/lib/Linux//${LIB_ARCH}/librga.so)
+endif()
+include_directories( ${RGA_PATH}/include)
+
+# mpp
+set(MPP_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/mpp)
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+  set(MPP_LIBS ${MPP_PATH}/${CMAKE_SYSTEM_NAME}/${LIB_ARCH}/librockchip_mpp.so)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Android")
+  set(MPP_LIBS ${MPP_PATH}/${CMAKE_SYSTEM_NAME}/${CMAKE_ANDROID_ARCH_ABI}/libmpp.so)
+endif()
+include_directories(${MPP_PATH}/include)
+
+# zlmediakit
+set(ZLMEDIAKIT_PATH ${CMAKE_SOURCE_DIR}/../3rdparty/zlmediakit)
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+include_directories(${ZLMEDIAKIT_PATH}/include)
+set(ZLMEDIAKIT_LIBS ${ZLMEDIAKIT_PATH}/${LIB_ARCH}/libmk_api.so)
+endif()
+
+if (ZLMEDIAKIT_LIBS)
+    add_definitions(-DBUILD_VIDEO_RTSP)
+endif()
+
+set(CMAKE_INSTALL_RPATH "lib")
+
+# rknn_yolov5_demo
+include_directories( ${CMAKE_SOURCE_DIR}/include)
+
+add_executable(rknn_yolov5_demo
+        src/main.cc
+        src/postprocess.cc
+)
+
+target_link_libraries(rknn_yolov5_demo
+  ${RKNN_RT_LIB}
+  ${RGA_LIB}
+  ${OpenCV_LIBS}
+)
+
+if (MPP_LIBS)
+add_executable(rknn_yolov5_video_demo
+        src/main_video.cc
+        src/postprocess.cc
+        utils/mpp_decoder.cpp
+        utils/mpp_encoder.cpp
+        utils/drawing.cpp
+)
+target_link_libraries(rknn_yolov5_video_demo
+  ${RKNN_RT_LIB}
+  ${RGA_LIB}
+  ${OpenCV_LIBS}
+  ${MPP_LIBS}
+  ${ZLMEDIAKIT_LIBS}
+)
+endif()
+
+
+# install target and libraries
+set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install/rknn_yolov5_demo_${CMAKE_SYSTEM_NAME})
+install(TARGETS rknn_yolov5_demo DESTINATION ./)
+
+install(PROGRAMS ${RKNN_RT_LIB} DESTINATION lib)
+install(PROGRAMS ${RGA_LIB} DESTINATION lib)
+install(DIRECTORY model DESTINATION ./)
+
+if (MPP_LIBS)
+install(TARGETS rknn_yolov5_video_demo DESTINATION ./)
+install(PROGRAMS ${MPP_LIBS} DESTINATION lib)
+endif()
+
+if (ZLMEDIAKIT_LIBS)
+install(PROGRAMS ${ZLMEDIAKIT_LIBS} DESTINATION lib)
+endif()

+ 126 - 0
rknn_yolov5_demo/README.md

@@ -0,0 +1,126 @@
+# Yolo-v5 demo
+
+## Guide for exporting rknn model
+
+Please refer to this link:  https://github.com/airockchip/rknn_model_zoo/tree/main/models/CV/object_detection/yolo
+
+## Precautions
+
+1. Use rknn-toolkit2 version greater than or equal to **1.4.0**.
+2. When using the model trained by yourself, please pay attention to aligning post-processing parameters such as anchor, otherwise it will cause post-processing analysis errors.
+3. The official website and rk pre-training models both detect 80 types of targets. If you train your own model, you need to change the OBJ_CLASS_NUM and NMS_THRESH, BOX_THRESH post-processing parameters in include/postprocess.h.
+4. The demo needs the support of librga.so, please refer to https://github.com/airockchip/librga for compiling and using
+5. Due to hardware limitations, the demo model moves the post-processing part of the yolov5 model to the cpu implementation by default. The models attached to this demo all use relu as the activation function. Compared with the silu activation function, the accuracy is slightly lower, and the performance is greatly improved.
+
+
+## Android Demo
+
+### Compiling && Building
+
+According to the target platform, modifying the path for Android NDK on 'build-android_<TARGET_PLATFORM>.sh'
+
+for example,
+
+```sh
+ANDROID_NDK_PATH=~/opt/tool_chain/android-ndk-r17
+```
+
+then, running this script:
+
+```sh
+./build-android_<TARGET_PLATFORM>.sh
+```
+
+### Push all build output file to the board
+
+Connecting the usb port to PC,  then pushing all demo files to the board,
+
+```sh
+adb root
+adb remount
+adb push install/rknn_yolov5_demo /data/
+```
+
+### Running
+
+```sh
+adb shell
+cd /data/rknn_yolov5_demo/
+
+export LD_LIBRARY_PATH=./lib
+./rknn_yolov5_demo model/<TARGET_PLATFORM>/yolov5s-640-640.rknn model/bus.jpg
+```
+
+## Aarch64 Linux Demo
+
+### Compiling && Building
+
+According to the target platform, modifying the path for 'TOOL_CHAIN' on 'build-android_<TARGET_PLATFORM>.sh'
+
+```sh
+export TOOL_CHAIN=~/opt/tool_chain/gcc-9.3.0-x86_64_aarch64-linux-gnu/host
+```
+
+then run the script:
+
+```sh
+./build-linux_<TARGET_PLATFORM>.sh
+```
+
+### Push all build output file to the board
+
+
+Push install/rknn_yolov5_demo_Linux to the board,
+
+- If using adb via the EVB board:
+
+```
+adb push install/rknn_yolov5_demo_Linux /userdata/
+```
+
+- For other boards,  using the scp or other different approaches to push all files under install/rknn_yolov5_demo_Linux to '/userdata'
+
+### Running
+
+```sh
+adb shell
+cd /userdata/rknn_yolov5_demo_Linux/
+
+export LD_LIBRARY_PATH=./lib
+./rknn_yolov5_demo model/<TARGET_PLATFORM>/yolov5s-640-640.rknn model/bus.jpg
+```
+
+Note: Try searching the location of librga.so and add it to LD_LIBRARY_PATH if the librga.so is not found on the lib folder.
+Using the following commands to add to LD_LIBRARY_PATH.
+
+```sh
+export LD_LIBRARY_PATH=./lib:<LOCATION_LIBRGA.SO>
+```
+
+## Guide for Video Demo:
+- H264
+```
+./rknn_yolov5_video_demo model/<TARGET_PLATFORM>/yolov5s-640-640.rknn xxx.h264 264
+```
+For converting to h264 via the ffmpeg :
+```
+ffmpeg -i xxx.mp4 -vcodec h264 out.h264
+```
+
+- H265
+```
+./rknn_yolov5_video_demo model/<TARGET_PLATFORM>/yolov5s-640-640.rknn xxx.hevc 265
+```
+For converting to h265 via the ffmpeg :
+```
+ffmpeg -i xxx.mp4 -vcodec hevc out.hevc
+```
+- RTSP
+```
+./rknn_yolov5_video_demo model/<TARGET_PLATFORM>/yolov5s-640-640.rknn <RTSP_URL> 265
+```
+
+### Remark
+
+- **RK3562 only supports h264 video stream **
+- **rtsp video stream only available on the Linux system **

+ 126 - 0
rknn_yolov5_demo/README_CN.md

@@ -0,0 +1,126 @@
+# Yolo-v5 demo
+
+## 导出rknn模型步骤
+
+请参考 https://github.com/airockchip/rknn_model_zoo/tree/main/models/CV/object_detection/yolo
+
+
+## 注意事项
+
+1. 使用rknn-toolkit2版本大于等于1.4.0。
+2. 切换成自己训练的模型时,请注意对齐anchor等后处理参数,否则会导致后处理解析出错。
+3. 官网和rk预训练模型都是检测80类的目标,如果自己训练的模型,需要更改include/postprocess.h中的OBJ_CLASS_NUM以及NMS_THRESH,BOX_THRESH后处理参数。
+4. demo需要librga.so的支持,编译使用请参考 https://github.com/airockchip/librga
+5. 由于硬件限制,该demo的模型默认把 yolov5 模型的后处理部分,移至cpu实现。本demo附带的模型均使用relu为激活函数,相比silu激活函数精度略微下降,性能大幅上升。
+
+
+
+## Android Demo
+
+### 编译
+
+根据指定平台修改 `build-android_<TARGET_PLATFORM>.sh`中的Android NDK的路径 `ANDROID_NDK_PATH`,<TARGET_PLATFORM>可以是RK3566_RK3568, RK3562或RK3588 例如修改成:
+
+```sh
+ANDROID_NDK_PATH=~/opt/tool_chain/android-ndk-r17
+```
+
+然后执行:
+
+```sh
+./build-android_<TARGET_PLATFORM>.sh
+```
+
+### 推送执行文件到板子
+
+连接板子的usb口到PC,将整个demo目录到 `/data`:
+
+```sh
+adb root
+adb remount
+adb push install/rknn_yolov5_demo /data/
+```
+
+### 运行
+
+```sh
+adb shell
+cd /data/rknn_yolov5_demo/
+
+export LD_LIBRARY_PATH=./lib
+./rknn_yolov5_demo model/<TARGET_PLATFORM>/yolov5s-640-640.rknn model/bus.jpg
+```
+
+## Aarch64 Linux Demo
+
+### 编译
+
+根据指定平台修改 `build-linux_<TARGET_PLATFORM>.sh`中的交叉编译器所在目录的路径 `TOOL_CHAIN`,例如修改成
+
+```sh
+export TOOL_CHAIN=~/opt/tool_chain/gcc-9.3.0-x86_64_aarch64-linux-gnu/host
+```
+
+然后执行:
+
+```sh
+./build-linux_<TARGET_PLATFORM>.sh
+```
+
+### 推送执行文件到板子
+
+将 install/rknn_yolov5_demo_Linux 拷贝到板子的/userdata/目录.
+
+- 如果使用rockchip的EVB板子,可以使用adb将文件推到板子上:
+
+```
+adb push install/rknn_yolov5_demo_Linux /userdata/
+```
+
+- 如果使用其他板子,可以使用scp等方式将install/rknn_yolov5_demo_Linux拷贝到板子的/userdata/目录
+
+### 运行
+
+```sh
+adb shell
+cd /userdata/rknn_yolov5_demo_Linux/
+
+export LD_LIBRARY_PATH=./lib
+./rknn_yolov5_demo model/<TARGET_PLATFORM>/yolov5s-640-640.rknn model/bus.jpg
+```
+
+Note: Try searching the location of librga.so and add it to LD_LIBRARY_PATH if the librga.so is not found on the lib folder.
+Using the following commands to add to LD_LIBRARY_PATH.
+
+```sh
+export LD_LIBRARY_PATH=./lib:<LOCATION_LIBRGA.SO>
+```
+
+## 视频流Demo运行命令参考如下:
+- h264视频
+```
+./rknn_yolov5_video_demo model/<TARGET_PLATFORM>/yolov5s-640-640.rknn xxx.h264 264
+```
+注意需要使用h264码流视频,可以使用如下命令转换得到:
+```
+ffmpeg -i xxx.mp4 -vcodec h264 out.h264
+```
+
+- h265视频
+```
+./rknn_yolov5_video_demo model/<TARGET_PLATFORM>/yolov5s-640-640.rknn xxx.hevc 265
+```
+注意需要使用h265码流视频,可以使用如下命令转换得到:
+```
+ffmpeg -i xxx.mp4 -vcodec hevc out.hevc
+```
+- rtsp视频流
+```
+./rknn_yolov5_video_demo model/<TARGET_PLATFORM>/yolov5s-640-640.rknn <RTSP_URL> 265
+```
+
+### 注意
+
+- 需要根据系统的rga驱动选择正确的librga库,具体依赖请参考: https://github.com/airockchip/librga
+- **rk3562 目前仅支持h264视频流**
+- **rtsp 视频流Demo仅在Linux系统上支持,Android上目前还不支持**

BIN
rknn_yolov5_demo/convert_rknn_demo/yolov5/bus.jpg


BIN
rknn_yolov5_demo/out.jpg


+ 203 - 0
src/RKNNManager.cpp

@@ -0,0 +1,203 @@
+#include "beforeProcess.h"
+#include "RKNNManager.hpp"
+#include "RgaUtils.h"
+#include "im2d.h"
+#include "postprocess.h"
+#include <dlfcn.h>
+#include <sys/time.h>
+#include <exception>
+#include <iostream>
+
+RKNNManager::RKNNManager() : ctx(0), model_data(nullptr), model_data_size(0), resize_buf(nullptr) {}
+
+RKNNManager::~RKNNManager()
+{
+    release();
+}
+
+bool RKNNManager::initialize(const std::string &model_path)
+{
+    model_data = load_model(model_path.c_str(), &model_data_size);
+    if (!model_data)
+        return false;
+
+    int ret = rknn_init(&ctx, model_data, model_data_size, 0, NULL);
+    if (ret < 0)
+    {
+        std::cerr << "rknn_init error! ret=" << ret << std::endl;
+        return false;
+    }
+
+    ret = rknn_query(ctx, RKNN_QUERY_IN_OUT_NUM, &io_num, sizeof(io_num));
+    if (ret < 0)
+    {
+        std::cerr << "rknn_query error! ret=" << ret << std::endl;
+        return false;
+    }
+
+    memset(input_attrs, 0, sizeof(input_attrs));
+    for (int i = 0; i < io_num.n_input; i++)
+    {
+        input_attrs[i].index = i;
+        ret = rknn_query(ctx, RKNN_QUERY_INPUT_ATTR, &(input_attrs[i]), sizeof(rknn_tensor_attr));
+        if (ret < 0)
+        {
+            std::cerr << "rknn_query error! ret=" << ret << std::endl;
+            return false;
+        }
+    }
+
+    memset(output_attrs, 0, sizeof(output_attrs));
+    for (int i = 0; i < io_num.n_output; i++)
+    {
+        output_attrs[i].index = i;
+        ret = rknn_query(ctx, RKNN_QUERY_OUTPUT_ATTR, &(output_attrs[i]), sizeof(rknn_tensor_attr));
+        if (ret < 0)
+            return false;
+    }
+
+    if (input_attrs[0].fmt == RKNN_TENSOR_NCHW)
+    {
+        channel = input_attrs[0].dims[1];
+        height = input_attrs[0].dims[2];
+        width = input_attrs[0].dims[3];
+    }
+    else
+    {
+        height = input_attrs[0].dims[1];
+        width = input_attrs[0].dims[2];
+        channel = input_attrs[0].dims[3];
+    }
+
+    return true;
+}
+
+/// @brief 用于给输入图像进行推理
+/// @param input_image 输入图像的格式为BGR
+/// @param output_image 直接将结果绘制到输出图像
+/// @return
+bool RKNNManager::infer(int index,const cv::Mat &input_image, cv::Mat &output_image)
+{
+    rknn_input inputs[1];
+    memset(inputs, 0, sizeof(inputs));
+    inputs[0].index = 0;
+    inputs[0].type = RKNN_TENSOR_UINT8;
+    inputs[0].size = width * height * channel;
+    inputs[0].fmt = RKNN_TENSOR_NHWC;
+    inputs[0].pass_through = 0;
+
+    if (input_image.cols != width || input_image.rows != height)
+    {
+        resize_buf = malloc(height * width * channel);
+        memset(resize_buf, 0x00, height * width * channel);
+
+        rga_buffer_t src = wrapbuffer_virtualaddr((void *)input_image.data, input_image.cols, input_image.rows, RK_FORMAT_RGB_888);
+        rga_buffer_t dst = wrapbuffer_virtualaddr((void *)resize_buf, width, height, RK_FORMAT_RGB_888);
+        im_rect src_rect, dst_rect;
+        IM_STATUS status = imresize(src, dst);
+        if (status != IM_STATUS_SUCCESS)
+            return false;
+
+        inputs[0].buf = resize_buf;
+    }
+    else
+    {
+        inputs[0].buf = (void *)input_image.data;
+    }
+
+    int ret = rknn_inputs_set(ctx, io_num.n_input, inputs);
+    if (ret < 0)
+        return false;
+
+    rknn_output outputs[io_num.n_output];
+    memset(outputs, 0, sizeof(outputs));
+    for (int i = 0; i < io_num.n_output; i++)
+    {
+        outputs[i].want_float = 0;
+    }
+
+    ret = rknn_run(ctx, NULL);
+    if (ret < 0)
+        return false;
+
+    ret = rknn_outputs_get(ctx, io_num.n_output, outputs, NULL);
+    if (ret < 0)
+        return false;
+
+    float scale_w = (float)width / input_image.cols;
+    float scale_h = (float)height / input_image.rows;
+
+    detect_result_group_t detect_result_group;
+    std::vector<float> out_scales;
+    std::vector<int32_t> out_zps;
+    for (int i = 0; i < io_num.n_output; ++i)
+    {
+        out_scales.push_back(output_attrs[i].scale);
+        out_zps.push_back(output_attrs[i].zp);
+    }
+
+    post_process((int8_t *)outputs[0].buf, (int8_t *)outputs[1].buf, (int8_t *)outputs[2].buf, height, width,
+                 BOX_THRESH, NMS_THRESH, scale_w, scale_h, out_zps, out_scales, &detect_result_group);
+
+    output_image = input_image.clone();
+    char text[256];
+    for (int i = 0; i < detect_result_group.count; i++)
+    {
+        detect_result_t *det_result = &(detect_result_group.results[i]);
+        //sprintf(text, "%s %.1f%%", det_result->name, det_result->prop * 100);
+        //std::cout << index << " Class: " << det_result->name << ", Confidence: " << det_result->prop * 100 << "%" << std::endl;
+        
+        // int x1 = det_result->box.left;
+        // int y1 = det_result->box.top;
+        // int x2 = det_result->box.right;
+        // int y2 = det_result->box.bottom;
+        // //std::cout << "Box: (" << x1 << ", " << y1 << ") - (" << x2 << ", " << y2 << ")" << std::endl;
+        // rectangle(output_image, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(255, 0, 0, 255), 3);
+        // putText(output_image, text, cv::Point(x1, y1 + 12), cv::FONT_HERSHEY_SIMPLEX, 0.5, cv::Scalar(0, 0, 0));
+    }
+
+    rknn_outputs_release(ctx, io_num.n_output, outputs);
+    return true;
+}
+
+void RKNNManager::release()
+{
+    if (ctx)
+    {
+        rknn_destroy(ctx);
+        ctx = 0;
+    }
+    if (model_data)
+    {
+        free(model_data);
+        model_data = nullptr;
+    }
+    if (resize_buf)
+    {
+        free(resize_buf);
+        resize_buf = nullptr;
+    }
+}
+
+unsigned char *load_model(const char *filename, int *model_size)
+{
+    FILE *fp;
+    unsigned char *data;
+
+    fp = fopen(filename, "rb");
+    if (NULL == fp)
+    {
+        printf("Open file %s failed.\n", filename);
+        return NULL;
+    }
+
+    fseek(fp, 0, SEEK_END);
+    int size = ftell(fp);
+
+    data = load_data(fp, 0, size);
+
+    fclose(fp);
+
+    *model_size = size;
+    return data;
+}

+ 39 - 0
src/RKNNManager.hpp

@@ -0,0 +1,39 @@
+#ifndef RKNNMANAGER_HPP
+#define RKNNMANAGER_HPP
+
+#include <rknn_api.h>
+#include <opencv2/opencv.hpp>
+#include <string>
+#include <vector>
+
+static unsigned char *load_model(const char *filename, int *model_size);
+
+class RKNNManager
+{
+public:
+    RKNNManager();
+    ~RKNNManager();
+
+    bool initialize(const std::string &model_path);
+    bool infer(int index,const cv::Mat &input_image, cv::Mat &output_image);
+    void release();
+
+private:
+  
+
+    RKNNManager(const RKNNManager &) = delete;
+    RKNNManager &operator=(const RKNNManager &) = delete;
+
+    rknn_context ctx;
+    unsigned char *model_data;
+    int model_data_size;
+    rknn_input_output_num io_num;
+    rknn_tensor_attr input_attrs[1];
+    rknn_tensor_attr output_attrs[3];
+    int width, height, channel;
+    void *resize_buf;
+
+    // output image buffer
+};
+
+#endif // RKNNMANAGER_HPP

+ 61 - 0
src/beforeProcess.cpp

@@ -0,0 +1,61 @@
+#include "beforeProcess.h"
+#include <string>
+
+void dump_tensor_attr(rknn_tensor_attr *attr)
+{
+    std::string shape_str = attr->n_dims < 1 ? "" : std::to_string(attr->dims[0]);
+    for (int i = 1; i < attr->n_dims; ++i)
+    {
+        shape_str += ", " + std::to_string(attr->dims[i]);
+    }
+
+    printf("  index=%d, name=%s, n_dims=%d, dims=[%s], n_elems=%d, size=%d, w_stride = %d, size_with_stride=%d, fmt=%s, "
+           "type=%s, qnt_type=%s, "
+           "zp=%d, scale=%f\n",
+           attr->index, attr->name, attr->n_dims, shape_str.c_str(), attr->n_elems, attr->size, attr->w_stride,
+           attr->size_with_stride, get_format_string(attr->fmt), get_type_string(attr->type),
+           get_qnt_type_string(attr->qnt_type), attr->zp, attr->scale);
+}
+
+double __get_us(struct timeval t) { return (t.tv_sec * 1000000 + t.tv_usec); }
+
+unsigned char *load_data(FILE *fp, size_t ofst, size_t sz)
+{
+    unsigned char *data;
+    int ret;
+
+    data = NULL;
+
+    if (NULL == fp)
+    {
+        return NULL;
+    }
+
+    ret = fseek(fp, ofst, SEEK_SET);
+    if (ret != 0)
+    {
+        printf("blob seek failure.\n");
+        return NULL;
+    }
+
+    data = (unsigned char *)malloc(sz);
+    if (data == NULL)
+    {
+        printf("buffer malloc failure.\n");
+        return NULL;
+    }
+    ret = fread(data, 1, sz, fp);
+    return data;
+}
+
+int saveFloat(const char *file_name, float *output, int element_size)
+{
+    FILE *fp;
+    fp = fopen(file_name, "w");
+    for (int i = 0; i < element_size; i++)
+    {
+        fprintf(fp, "%.6f\n", output[i]);
+    }
+    fclose(fp);
+    return 0;
+}

+ 15 - 0
src/beforeProcess.h

@@ -0,0 +1,15 @@
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+
+#include <rknn_api.h>
+
+void dump_tensor_attr(rknn_tensor_attr *attr);
+
+double __get_us(struct timeval t);
+
+unsigned char *load_data(FILE *fp, size_t ofst, size_t sz);
+
+int saveFloat(const char *file_name, float *output, int element_size);

+ 69 - 0
src/main.cpp

@@ -0,0 +1,69 @@
+#include "RKNNManager.hpp"
+#include <opencv2/opencv.hpp>
+#include <sys/time.h>
+#include <thread>
+#include <iostream>
+
+void thread_infer(int index,RKNNManager* manager,cv::Mat *input, cv::Mat *output, int number)
+{
+    struct timeval start_time, stop_time;
+    gettimeofday(&start_time, NULL);
+
+    for (int i = number; i > 0; i--)
+    {
+       manager->infer(index,*input, *output);
+    }
+
+    gettimeofday(&stop_time, NULL);
+    printf("infer time: %.3f ms\n",
+           (stop_time.tv_sec - start_time.tv_sec) * 1000.0 +
+               (stop_time.tv_usec - start_time.tv_usec) / 1000.0 / 10);
+}
+
+int main()
+{
+
+    bool res = true;
+    struct timeval start_time, stop_time;
+    RKNNManager manager1,manager2,manager3,manager4,manager5,manager6;
+
+    res = manager1.initialize("../rknn_yolov5_demo/model/RK3588/yolov5s-640-640.rknn");
+    res = manager2.initialize("../rknn_yolov5_demo/model/RK3588/yolov5s-640-640.rknn");
+    res = manager3.initialize("../rknn_yolov5_demo/model/RK3588/yolov5s-640-640.rknn");
+    // res = manager4.initialize("../rknn_yolov5_demo/model/RK3588/yolov5s-640-640.rknn");
+    // res = manager5.initialize("../rknn_yolov5_demo/model/RK3588/yolov5s-640-640.rknn");
+    // res = manager6.initialize("../rknn_yolov5_demo/model/RK3588/yolov5s-640-640.rknn");
+
+    if (!res)
+    {
+        printf("initialize failed\n");
+        return -1;
+    }
+
+    cv::Mat InputImage, OutputImage;
+    cv::Mat OutputImage2, OutputImage3, OutputImage4, OutputImage5, OutputImage6;
+    InputImage = cv::imread("../20170.jpg");
+
+    cv::Mat img;
+    cv::cvtColor(InputImage, img, cv::COLOR_BGR2RGB);
+
+    std::thread(thread_infer,0,&manager1, &img, &OutputImage, 1000).detach();
+    std::thread(thread_infer,1,&manager2, &img, &OutputImage2, 1000).detach();
+    std::thread(thread_infer,2,&manager3, &img, &OutputImage3, 1000).detach();
+    // std::thread(thread_infer,3,&manager4, &img, &OutputImage4, 17).detach();
+    // std::thread(thread_infer,4,&manager5, &img, &OutputImage5, 17).detach();
+    // std::thread(thread_infer,5,&manager6, &img, &OutputImage6, 17).detach();
+    //std::thread(thread_infer, &img, &OutputImage3, 30).detach();
+    // std::thread(thread_infer, &InputImage, &OutputImage4).detach();
+    // // std::thread(thread_infer, &InputImage, &OutputImage5).detach();
+    // // std::thread(thread_infer, &InputImage, &OutputImage6).detach();
+
+    char a;
+
+    std::cin >> a;
+
+    cv::cvtColor(OutputImage, OutputImage, cv::COLOR_RGB2BGR);
+    cv::imwrite("output.jpg", OutputImage);
+
+    return 0;
+}

+ 374 - 0
src/postprocess.cpp

@@ -0,0 +1,374 @@
+// Copyright (c) 2021 by Rockchip Electronics Co., Ltd. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "postprocess.h"
+
+#include <math.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+
+#include <set>
+#include <vector>
+#define LABEL_NALE_TXT_PATH "./coco_80_labels_list.txt"
+
+static char *labels[OBJ_CLASS_NUM];
+
+const int anchor0[6] = {10, 13, 16, 30, 33, 23};
+const int anchor1[6] = {30, 61, 62, 45, 59, 119};
+const int anchor2[6] = {116, 90, 156, 198, 373, 326};
+
+inline static int clamp(float val, int min, int max) { return val > min ? (val < max ? val : max) : min; }
+
+char *readLine(FILE *fp, char *buffer, int *len)
+{
+    int ch;
+    int i = 0;
+    size_t buff_len = 0;
+
+    buffer = (char *)malloc(buff_len + 1);
+    if (!buffer)
+        return NULL; // Out of memory
+
+    while ((ch = fgetc(fp)) != '\n' && ch != EOF)
+    {
+        buff_len++;
+        void *tmp = realloc(buffer, buff_len + 1);
+        if (tmp == NULL)
+        {
+            free(buffer);
+            return NULL; // Out of memory
+        }
+        buffer = (char *)tmp;
+
+        buffer[i] = (char)ch;
+        i++;
+    }
+    buffer[i] = '\0';
+
+    *len = buff_len;
+
+    // Detect end
+    if (ch == EOF && (i == 0 || ferror(fp)))
+    {
+        free(buffer);
+        return NULL;
+    }
+    return buffer;
+}
+
+int readLines(const char *fileName, char *lines[], int max_line)
+{
+    FILE *file = fopen(fileName, "r");
+    char *s;
+    int i = 0;
+    int n = 0;
+
+    if (file == NULL)
+    {
+        printf("Open %s fail!\n", fileName);
+        return -1;
+    }
+
+    while ((s = readLine(file, s, &n)) != NULL)
+    {
+        lines[i++] = s;
+        if (i >= max_line)
+            break;
+    }
+    fclose(file);
+    return i;
+}
+
+int loadLabelName(const char *locationFilename, char *label[])
+{
+    printf("loadLabelName %s\n", locationFilename);
+    readLines(locationFilename, label, OBJ_CLASS_NUM);
+    return 0;
+}
+
+static float CalculateOverlap(float xmin0, float ymin0, float xmax0, float ymax0, float xmin1, float ymin1, float xmax1,
+                              float ymax1)
+{
+    float w = fmax(0.f, fmin(xmax0, xmax1) - fmax(xmin0, xmin1) + 1.0);
+    float h = fmax(0.f, fmin(ymax0, ymax1) - fmax(ymin0, ymin1) + 1.0);
+    float i = w * h;
+    float u = (xmax0 - xmin0 + 1.0) * (ymax0 - ymin0 + 1.0) + (xmax1 - xmin1 + 1.0) * (ymax1 - ymin1 + 1.0) - i;
+    return u <= 0.f ? 0.f : (i / u);
+}
+
+static int nms(int validCount, std::vector<float> &outputLocations, std::vector<int> classIds, std::vector<int> &order,
+               int filterId, float threshold)
+{
+    for (int i = 0; i < validCount; ++i)
+    {
+        if (order[i] == -1 || classIds[i] != filterId)
+        {
+            continue;
+        }
+        int n = order[i];
+        for (int j = i + 1; j < validCount; ++j)
+        {
+            int m = order[j];
+            if (m == -1 || classIds[i] != filterId)
+            {
+                continue;
+            }
+            float xmin0 = outputLocations[n * 4 + 0];
+            float ymin0 = outputLocations[n * 4 + 1];
+            float xmax0 = outputLocations[n * 4 + 0] + outputLocations[n * 4 + 2];
+            float ymax0 = outputLocations[n * 4 + 1] + outputLocations[n * 4 + 3];
+
+            float xmin1 = outputLocations[m * 4 + 0];
+            float ymin1 = outputLocations[m * 4 + 1];
+            float xmax1 = outputLocations[m * 4 + 0] + outputLocations[m * 4 + 2];
+            float ymax1 = outputLocations[m * 4 + 1] + outputLocations[m * 4 + 3];
+
+            float iou = CalculateOverlap(xmin0, ymin0, xmax0, ymax0, xmin1, ymin1, xmax1, ymax1);
+
+            if (iou > threshold)
+            {
+                order[j] = -1;
+            }
+        }
+    }
+    return 0;
+}
+
+static int quick_sort_indice_inverse(std::vector<float> &input, int left, int right, std::vector<int> &indices)
+{
+    float key;
+    int key_index;
+    int low = left;
+    int high = right;
+    if (left < right)
+    {
+        key_index = indices[left];
+        key = input[left];
+        while (low < high)
+        {
+            while (low < high && input[high] <= key)
+            {
+                high--;
+            }
+            input[low] = input[high];
+            indices[low] = indices[high];
+            while (low < high && input[low] >= key)
+            {
+                low++;
+            }
+            input[high] = input[low];
+            indices[high] = indices[low];
+        }
+        input[low] = key;
+        indices[low] = key_index;
+        quick_sort_indice_inverse(input, left, low - 1, indices);
+        quick_sort_indice_inverse(input, low + 1, right, indices);
+    }
+    return low;
+}
+
+static float sigmoid(float x) { return 1.0 / (1.0 + expf(-x)); }
+
+static float unsigmoid(float y) { return -1.0 * logf((1.0 / y) - 1.0); }
+
+inline static int32_t __clip(float val, float min, float max)
+{
+    float f = val <= min ? min : (val >= max ? max : val);
+    return f;
+}
+
+static int8_t qnt_f32_to_affine(float f32, int32_t zp, float scale)
+{
+    float dst_val = (f32 / scale) + zp;
+    int8_t res = (int8_t)__clip(dst_val, -128, 127);
+    return res;
+}
+
+static float deqnt_affine_to_f32(int8_t qnt, int32_t zp, float scale) { return ((float)qnt - (float)zp) * scale; }
+
+static int process(int8_t *input, int *anchor, int grid_h, int grid_w, int height, int width, int stride,
+                   std::vector<float> &boxes, std::vector<float> &objProbs, std::vector<int> &classId, float threshold,
+                   int32_t zp, float scale)
+{
+    int validCount = 0;
+    int grid_len = grid_h * grid_w;
+    int8_t thres_i8 = qnt_f32_to_affine(threshold, zp, scale);
+    for (int a = 0; a < 3; a++)
+    {
+        for (int i = 0; i < grid_h; i++)
+        {
+            for (int j = 0; j < grid_w; j++)
+            {
+                int8_t box_confidence = input[(PROP_BOX_SIZE * a + 4) * grid_len + i * grid_w + j];
+                if (box_confidence >= thres_i8)
+                {
+                    int offset = (PROP_BOX_SIZE * a) * grid_len + i * grid_w + j;
+                    int8_t *in_ptr = input + offset;
+                    float box_x = (deqnt_affine_to_f32(*in_ptr, zp, scale)) * 2.0 - 0.5;
+                    float box_y = (deqnt_affine_to_f32(in_ptr[grid_len], zp, scale)) * 2.0 - 0.5;
+                    float box_w = (deqnt_affine_to_f32(in_ptr[2 * grid_len], zp, scale)) * 2.0;
+                    float box_h = (deqnt_affine_to_f32(in_ptr[3 * grid_len], zp, scale)) * 2.0;
+                    box_x = (box_x + j) * (float)stride;
+                    box_y = (box_y + i) * (float)stride;
+                    box_w = box_w * box_w * (float)anchor[a * 2];
+                    box_h = box_h * box_h * (float)anchor[a * 2 + 1];
+                    box_x -= (box_w / 2.0);
+                    box_y -= (box_h / 2.0);
+
+                    int8_t maxClassProbs = in_ptr[5 * grid_len];
+                    int maxClassId = 0;
+                    for (int k = 1; k < OBJ_CLASS_NUM; ++k)
+                    {
+                        int8_t prob = in_ptr[(5 + k) * grid_len];
+                        if (prob > maxClassProbs)
+                        {
+                            maxClassId = k;
+                            maxClassProbs = prob;
+                        }
+                    }
+                    if (maxClassProbs > thres_i8)
+                    {
+                        objProbs.push_back((deqnt_affine_to_f32(maxClassProbs, zp, scale)) * (deqnt_affine_to_f32(box_confidence, zp, scale)));
+                        classId.push_back(maxClassId);
+                        validCount++;
+                        boxes.push_back(box_x);
+                        boxes.push_back(box_y);
+                        boxes.push_back(box_w);
+                        boxes.push_back(box_h);
+                    }
+                }
+            }
+        }
+    }
+    return validCount;
+}
+
+int post_process(int8_t *input0, int8_t *input1, int8_t *input2, int model_in_h, int model_in_w, float conf_threshold,
+                 float nms_threshold, float scale_w, float scale_h, std::vector<int32_t> &qnt_zps,
+                 std::vector<float> &qnt_scales, detect_result_group_t *group)
+{
+    static int init = -1;
+    if (init == -1)
+    {
+        int ret = 0;
+        ret = loadLabelName(LABEL_NALE_TXT_PATH, labels);
+        if (ret < 0)
+        {
+            return -1;
+        }
+
+        init = 0;
+    }
+    memset(group, 0, sizeof(detect_result_group_t));
+
+    std::vector<float> filterBoxes;
+    std::vector<float> objProbs;
+    std::vector<int> classId;
+
+    // stride 8
+    int stride0 = 8;
+    int grid_h0 = model_in_h / stride0;
+    int grid_w0 = model_in_w / stride0;
+    int validCount0 = 0;
+    validCount0 = process(input0, (int *)anchor0, grid_h0, grid_w0, model_in_h, model_in_w, stride0, filterBoxes, objProbs,
+                          classId, conf_threshold, qnt_zps[0], qnt_scales[0]);
+
+    // stride 16
+    int stride1 = 16;
+    int grid_h1 = model_in_h / stride1;
+    int grid_w1 = model_in_w / stride1;
+    int validCount1 = 0;
+    validCount1 = process(input1, (int *)anchor1, grid_h1, grid_w1, model_in_h, model_in_w, stride1, filterBoxes, objProbs,
+                          classId, conf_threshold, qnt_zps[1], qnt_scales[1]);
+
+    // stride 32
+    int stride2 = 32;
+    int grid_h2 = model_in_h / stride2;
+    int grid_w2 = model_in_w / stride2;
+    int validCount2 = 0;
+    validCount2 = process(input2, (int *)anchor2, grid_h2, grid_w2, model_in_h, model_in_w, stride2, filterBoxes, objProbs,
+                          classId, conf_threshold, qnt_zps[2], qnt_scales[2]);
+
+    int validCount = validCount0 + validCount1 + validCount2;
+    // no object detect
+    if (validCount <= 0)
+    {
+        return 0;
+    }
+
+    std::vector<int> indexArray;
+    for (int i = 0; i < validCount; ++i)
+    {
+        indexArray.push_back(i);
+    }
+
+    quick_sort_indice_inverse(objProbs, 0, validCount - 1, indexArray);
+
+    std::set<int> class_set(std::begin(classId), std::end(classId));
+
+    for (auto c : class_set)
+    {
+        nms(validCount, filterBoxes, classId, indexArray, c, nms_threshold);
+    }
+
+    int last_count = 0;
+    group->count = 0;
+    /* box valid detect target */
+    for (int i = 0; i < validCount; ++i)
+    {
+        if (indexArray[i] == -1 || last_count >= OBJ_NUMB_MAX_SIZE)
+        {
+            continue;
+        }
+        int n = indexArray[i];
+
+        float x1 = filterBoxes[n * 4 + 0];
+        float y1 = filterBoxes[n * 4 + 1];
+        float x2 = x1 + filterBoxes[n * 4 + 2];
+        float y2 = y1 + filterBoxes[n * 4 + 3];
+        int id = classId[n];
+        float obj_conf = objProbs[i];
+
+        group->results[last_count].box.left = (int)(clamp(x1, 0, model_in_w) / scale_w);
+        group->results[last_count].box.top = (int)(clamp(y1, 0, model_in_h) / scale_h);
+        group->results[last_count].box.right = (int)(clamp(x2, 0, model_in_w) / scale_w);
+        group->results[last_count].box.bottom = (int)(clamp(y2, 0, model_in_h) / scale_h);
+        group->results[last_count].prop = obj_conf;
+        char *label = labels[id];
+        strncpy(group->results[last_count].name, label, OBJ_NAME_MAX_SIZE);
+
+        // printf("result %2d: (%4d, %4d, %4d, %4d), %s\n", i, group->results[last_count].box.left,
+        // group->results[last_count].box.top,
+        //        group->results[last_count].box.right, group->results[last_count].box.bottom, label);
+        last_count++;
+    }
+    group->count = last_count;
+
+    return 0;
+}
+
+void deinitPostProcess()
+{
+    for (int i = 0; i < OBJ_CLASS_NUM; i++)
+    {
+        if (labels[i] != nullptr)
+        {
+            free(labels[i]);
+            labels[i] = nullptr;
+        }
+    }
+}

+ 42 - 0
src/postprocess.h

@@ -0,0 +1,42 @@
+#ifndef _RKNN_ZERO_COPY_DEMO_POSTPROCESS_H_
+#define _RKNN_ZERO_COPY_DEMO_POSTPROCESS_H_
+
+#include <stdint.h>
+#include <vector>
+
+#define OBJ_NAME_MAX_SIZE 16
+#define OBJ_NUMB_MAX_SIZE 64
+#define OBJ_CLASS_NUM 80
+#define NMS_THRESH 0.45
+#define BOX_THRESH 0.25
+#define PROP_BOX_SIZE (5 + OBJ_CLASS_NUM)
+
+typedef struct _BOX_RECT
+{
+    int left;
+    int right;
+    int top;
+    int bottom;
+} BOX_RECT;
+
+typedef struct __detect_result_t
+{
+    char name[OBJ_NAME_MAX_SIZE];
+    BOX_RECT box;
+    float prop;
+} detect_result_t;
+
+typedef struct _detect_result_group_t
+{
+    int id;
+    int count;
+    detect_result_t results[OBJ_NUMB_MAX_SIZE];
+} detect_result_group_t;
+
+int post_process(int8_t *input0, int8_t *input1, int8_t *input2, int model_in_h, int model_in_w,
+                 float conf_threshold, float nms_threshold, float scale_w, float scale_h,
+                 std::vector<int32_t> &qnt_zps, std::vector<float> &qnt_scales,
+                 detect_result_group_t *group);
+
+void deinitPostProcess();
+#endif //_RKNN_ZERO_COPY_DEMO_POSTPROCESS_H_

BIN
test2.jpg