RK3399Pro使用ncnn推理框架实现mtcnn人脸检测算法移植

RK3399Pro使用ncnn推理框架实现mtcnn人脸检测算法

首先移植ncnn框架

一、首先下载ncnn的源码包

git clone https://github.com/Tencent/ncnn.git

二、编译ncnn源码

mkdir -p build-aarch64-linux-gnu
cd build-aarch64-linux-gnu
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-linux-gnu.toolchain.cmake ..
make -j4
make install
注意:不同的工具链需要修改../toolchains/aarch64-linux-gnu.toolchain.cmake这个文件里面的toolchains

三、测试

1、进入build-aarch64-linux-gnu路径下
2、进入examples路径下有编译好的测试应用
3、复制ncnn的网络模型参数到当前文件下 cp ../../examples/squeezenet_v1.1.* .
4、执行:./squeezenet ../../images/32-ncnn.png
5、结果:
	747 = 0.140954
	446 = 0.098634
	531 = 0.063560
6、安装成功

四、mtcnn网络搭建

1、源码clone:git clone https://github.com/imistyrain/MTCNN.git
2、然后进入ncnn目录
3、修改CMakelists.txt在前面添加
    FIND_PACKAGE( OpenMP REQUIRED)
    if(OPENMP_FOUND)
    message("OPENMP FOUND")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
    endif()
4、在尾部添加
	target_link_libraries(${DEMO_NAME} opencv_highgui opencv_videoio opencv_imgcodecs opencv_video opencv_photo opencv_imgproc opencv_core)
	
5、修改完成如下:

    FIND_PACKAGE( OpenMP REQUIRED)
    if(OPENMP_FOUND)
    message("OPENMP FOUND")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
    endif()

    AUX_SOURCE_DIRECTORY(./ SRC_FILES)

    include_directories("/usr/local/include/ncnn")
    link_directories("/usr/local/lib")

    set(DEMO_NAME ntnn)
    add_executable(${DEMO_NAME} ${SRC_FILES})
    target_link_libraries(${DEMO_NAME} ${OpenCV_LIBS} )

    target_link_libraries(${DEMO_NAME} ncnn)

    target_link_libraries(${DEMO_NAME} opencv_highgui opencv_videoio opencv_imgcodecs opencv_video opencv_photo opencv_imgproc opencv_core)
6、然后执行修改main.cpp这个文件
	如下
	#include <algorithm>
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    #include <opencv2/imgproc.hpp>
    #include <stdio.h>
    #include <vector>
    #include <iostream>
    #include "net.h"
    #include "platform.h"
    #include "mtcnn.h"
    #define MAXFACEOPEN 0 

7、修改完成后,然后新建build文件夹
8、然后进入build文件夹,执行cmake … && make
9、测试
我使用的是480 * 640的摄像头,无人脸的时候耗时在500ms,有人脸的耗时在1s多点
使用240 * 320的裁剪后图片,无人脸耗时有波动在:10ms ~ 400ms之间。有人脸大概耗时500ms

10、后续待优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值