瑞芯微Rockchip开发者社区
直播中

刘艳

7年用户 2317经验值
私信 关注
[问答]

RK3399Pro是怎样去移植Tencent的mtcnn人脸检测算法的

RK3399Pro是怎样去移植Tencent的mtcnn人脸检测算法的?有哪些移植步骤?

回帖(1)

梁艳

2022-2-15 14:20:24
20 * 240 的检测结果

## 首先移植ncnn框架
### 一、首先下载ncnn的源码包
git clone
### 二、编译ncnn源码
mkdir -p build-aarch64-linux-gnu
pushd build-aarch64-linux-gnu
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-linux-gnu.toolchain.cmake ..
make -j4
make install
popd
注意:不同的工具链需要修改../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网络搭建
```cmake
1、源码clone:git clone

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)
```
```c++
6、然后执行修改main.cpp这个文件
如下
#include
  #include
  #include
  #include
  #include
  #include
  #include
  #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、后续待优化
     
花费时间
举报

更多回帖

发帖
×
20
完善资料,
赚取积分