Rockchip RV1126上实现人脸检测------blazeface

目录

1 下载工程

2 编译

2.1 首先将CMakeLists.txt修改为如下的形式

2.2 添加opencv库文件和头文件

2.3 编写build.sh

3 运行


工程源自:https://github.com/zxcv1884/rv1126_rknn_blazeface

1 下载工程

 首先下载工程:https://github.com/zxcv1884/rv1126_rknn_blazeface

2 编译

直接用github上工程自带的东西是编译不通过的,需要做如下修改

2.1 首先将CMakeLists.txt修改为如下的形式

cmake_minimum_required(VERSION 3.8.2)
PROJECT (PROJECT)

set(CMAKE_CXX_STANDARD 11)
add_definitions(-g -O0 -ggdb -gdwarf -funwind-tables -rdynamic)
#add_definitions(-DDEBUG -DRKAIQ)  #修改1, 去掉-DRKAIQ,否则报错


#opencv, added by chenhongwei.#修改2, 添加opencv的头文件和库文件
include_directories(/data/chw/rv1126_20211012/rv1126_rknn_blazeface/include/opencv)
include_directories(/data/chw/rv1126_20211012/rv1126_rknn_blazeface/include/opencv2)
link_libraries(
        "/data/chw/rv1126_20211012/rv1126_rknn_blazeface/lib/libopencv_core.so"
        "/data/chw/rv1126_20211012/rv1126_rknn_blazeface/lib/libopencv_features2d.so"
        "/data/chw/rv1126_20211012/rv1126_rknn_blazeface/lib/libopencv_flann.so"
        "/data/chw/rv1126_20211012/rv1126_rknn_blazeface/lib/libopencv_highgui.so"
        "/data/chw/rv1126_20211012/rv1126_rknn_blazeface/lib/libopencv_imgcodecs.so"
        "/data/chw/rv1126_20211012/rv1126_rknn_blazeface/lib/libopencv_imgproc.so"
        "/data/chw/rv1126_20211012/rv1126_rknn_blazeface/lib/libopencv_videoio.so"
        "/data/chw/rv1126_20211012/rv1126_rknn_blazeface/lib/libopencv_video.so"
        "/data/chw/rv1126_20211012/rv1126_rknn_blazeface/lib/libopencv_calib3d.so"
		"/data/chw/rv1126_20211012/rv1126_rknn_blazeface/lib/libpaho-mqtt3a.so"
        "/data/chw/rv1126_20211012/rv1126_rknn_blazeface/lib/libpaho-mqttpp3.so"
        )

		
#aux_source_directory(${PROJECT_SOURCE_DIR}/common COMMON_SRCS) #修改3, 不编译common文件夹的内容,否则会报错
#set(LIBS easymedia rkaiq pthread rknn_api rtsp)                #修改4,去掉用不到的库。
set(LIBS rknn_api rtsp)
set(OpenCV_LIBS 
	opencv_core
	opencv_imgcodecs
	opencv_imgproc
  opencv_videoio)
#rkmedia
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_SOURCE_DIR}/include/easymedia)
include_directories(${PROJECT_SOURCE_DIR}/include/rkmedia)
# rkaiq
include_directories(${CMAKE_SYSROOT}/usr/include/rkaiq/algos)
include_directories(${CMAKE_SYSROOT}/usr/include/rkaiq/common)
include_directories(${CMAKE_SYSROOT}/usr/include/rkaiq/iq_parser)
include_directories(${CMAKE_SYSROOT}/usr/include/rkaiq/uAPI)
include_directories(${CMAKE_SYSROOT}/usr/include/rkaiq/xcore)

link_directories(${PROJECT_SOURCE_DIR}/lib
				 ${PROJECT_SOURCE_DIR}/lib/opencv)

add_executable(blazeface main.cpp BlazeFace.cpp BlazeFace.h ${COMMON_SRCS})
target_link_libraries(blazeface ${LIBS} ${OpenCV_LIBS})

install(TARGETS blazeface DESTINATION bin)

一共做了4处修改,均在文件中做出了标注

2.2 添加opencv库文件和头文件

opencv的交叉编译见 ubuntu交叉编译opencv_陈 洪 伟的博客-CSDN博客_rv1126移植opencv1.首先在ubuntu上安装RV1126的交叉编译工具链方法见RV1109_RV1126 EVB开发板环境搭建及使用总结中的步骤4.2.下载opencv源码并解压去Releases - OpenCV下载源码,我这里使用的3.4.12版本。3.https://cumtchw.blog.csdn.net/article/details/120825584

我是直接把之前编译的opencv库文件和头文件拷贝过来了。

2.3 编写build.sh

 为了编译方便,这里编写了一个编译脚本。

#!/bin/bash

set -e

# for rk1808 aarch64
#GCC_COMPILER=${RK1808_TOOL_CHAIN}/bin/aarch64-linux-gnu


# for rk1806 armhf
# GCC_COMPILER=~/opts/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf

# for rv1109/rv1126 armhf
###GCC_COMPILER=${RV1109_TOOL_CHAIN}/bin/arm-linux-gnueabihf
GCC_COMPILER=/data/chw/rv1126_20211012/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf

ROOT_PWD=$( cd "$( dirname $0 )" && cd -P "$( dirname "$SOURCE" )" && pwd )

# build rockx
BUILD_DIR=${ROOT_PWD}/build

if [[ ! -d "${BUILD_DIR}" ]]; then
  mkdir -p ${BUILD_DIR}
fi

cd ${BUILD_DIR}
rm -rf *
cmake .. \
    -DCMAKE_C_COMPILER=${GCC_COMPILER}-gcc \
    -DCMAKE_CXX_COMPILER=${GCC_COMPILER}-g++
make clean
make 
#make install
cd -
mkdir -p blazeface_demo
cp ./build/blazeface ./blazeface_demo
cp models/anchors.bin ./blazeface_demo
cp models/blazeface.rknn ./blazeface_demo
cp images/hinton.jpg ./blazeface_demo 
cp images/ldh.jpg ./blazeface_demo
cp ./lib/librknn_api.so ./blazeface_demo

#cp run_rk180x.sh install/rknn_face_demo/
#cp run_rv1109_rv1126.sh install/rknn_face_demo/
#p  -dr lib/*            install/rknn_yolov5_demo/lib

这里把可执行程序,模型文件,图片,库文件,都放到了blazeface_demo文件夹下。

3 运行

adb push rknn_face_demo/ /home
./blazeface blazeface.rknn hinton.jpg
adb pull /home/blazeface_demo/output.jpg ./

最后得到结果

猜你喜欢

转载自blog.csdn.net/u013171226/article/details/123552954