Detección de rostros en Rockchip RV1126------blazeface

contenido

1 Descarga el proyecto

2 Compilar

2.1 Primero modifique CMakeLists.txt al siguiente formulario

2.2 Agregar archivos de biblioteca y archivos de encabezado opencv

2.3 Escribiendo build.sh

3 correr


Fuente del proyecto: https://github.com/zxcv1884/rv1126_rknn_blazeface

1 Descarga el proyecto

 Primero descarga el proyecto: https://github.com/zxcv1884/rv1126_rknn_blazeface

2 Compilar

El uso directo de las cosas que vienen con el proyecto en github no se puede compilar, y se deben realizar las siguientes modificaciones

2.1 Primero modifique CMakeLists.txt al siguiente formulario

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)

Se han realizado un total de 4 modificaciones, todas ellas marcadas en la ficha

2.2 Agregar archivos de biblioteca y archivos de encabezado opencv

Para la compilación cruzada de opencv, consulte  la compilación cruzada de ubuntu de opencv_CSDN blog-CSDN blog_rv1126 para trasplantar el código fuente de opencv Opencv y descomprimirlo en Versiones: código fuente de descarga de OpenCV, uso la versión 3.4.12 aquí. 3. https://cumtchw.blog.csdn.net/article/details/120825584

Copié directamente los archivos de la biblioteca opencv y los archivos de encabezado compilados antes.

2.3 Escribiendo build.sh

 Para facilitar la compilación, aquí se escribe un script de compilación.

#!/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

Aquí, los programas ejecutables, los archivos de modelo, las imágenes y los archivos de biblioteca se colocan en la carpeta blazeface_demo.

3 correr

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

el resultado final

Supongo que te gusta

Origin blog.csdn.net/u013171226/article/details/123552954
Recomendado
Clasificación