瑞芯微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 * 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、后续待优化
花费时间
举报
更多回帖
rotate(-90deg);
回复
相关问答
算法
怎样
去
设计一款
RK3399Pro
嵌入式主机呢
2022-02-10
1588
怎样
去
解决
RK3399pro
文件会进入不了Ubuntu系统的问题呢
2022-02-11
2163
求一种
RK3399Pro
AI平台解决方案
2022-02-15
1496
浅析
RK3399
和
RK3399Pro
处理器性能的区别
2022-02-11
3333
基于
RK3399Pro
的uboot是
怎样
移植
的
2022-02-11
724
RK3399
与
RK3399Pro
处理器的性能有何不同
2022-02-10
1922
RK3399Pro
是
怎样
通过主机与ssh进行通讯的呢
2022-02-11
2321
如何用
RK3399Pro
去
烧录Debian10内核呢
2022-02-10
1034
请问一下
怎样
去
解决
RK3399Pro
ueventd的问题呢
2022-02-11
1221
RK3399Pro
高亮屏幕是如何
去
替换屏幕dts文件的
2022-02-11
660
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分