Firefly Cluster Server R1 多路人脸识别教程
本帖最后由 799959745 于 2022-2-9 08:56 编辑多路人脸识别解决方案简介
Firefly 多路人脸识别解决方案,可以给多个普通网络摄像头赋予 AI 分析能力,能应用在人脸识别、车牌识别、手势识别等场景。
该方案通过把 Cluster Server R1 集群服务器与 20 个摄像头接入到同一个路由器/交换机,利用集群服务器强大的视频编解码能力和高效的人脸识别算法,可对 20 个摄像头的视频数据进行采集和人脸分析,并且对分析结果和视频流进行合并、二次编译、推流和预览,实现对多路视频流的人脸识别。更多多路人脸识别解决方案介绍请看官方帖子:https://dev.t-firefly.com/thread-115162-1-1.html。
环境准备
硬件准备
1、准备多个网络摄像头,确认其 rtsp 流链接地址,PC 使用 VLC 软件能正常预览。
2、Cluster Server R1 服务器。相关官方介绍链接:https://www.t-firefly.com/product/clusterserver.html?theme=pc。
3、将 PC 、多个网络摄像头和 Cluster Server R1 服务器接入同一个局域网。Cluster Server R1 服务器网口接法:网线接入 Cluster Server R1 服务器的 LAN1 口(从工作灯的正面看:从左往右数第二个网口)。
软件准备
Cluster Server R1 服务器简称 CS-R1 服务器,以下均以该命名进行介绍。
PC 系统版本:ubuntu18.04
CS-R1 主板 RK3399 使用的固件名称:CS-R1-3399-JD4-MAIN-UBUNTU-RK3399-SERVER_UBUNTU_18.04_DESKTOP-ARC-GPT-20211227-1409.imgRK3399 固件获取:链接:https://pan.baidu.com/s/1auLe7fquD4kcpmdXCEqyFg
提取码:1234
(该 RK3399 固件已经内置 RV1126 需要烧录的固件:CS-R1-1126-JD4-SUB-ARC-GPT-20211224-1654.img)
CS-R1 子板 RV1126 使用的固件名称:CS-R1-1126-JD4-SUB-ARC-GPT-20211224-1654.imgRV1126 固件获取:
链接:https://pan.baidu.com/s/1eYD0V0JrquvqV_uy8c6XkA
提取码:1234
Qt 程序源码获取:#代码仓库拉取
git clone -b firefly git@gitlab.com:firefly-linux/app/cs_rx_cam_arc.git
#代码生成
git submodule update --initcs_rx_cam_arc 仓库介绍:
qt_rtsp_view:CS-R1 PC 端多路人脸识别客户端
server_rk3399:CS-R1 RK3399 端多路人脸识别服务端
server_rv1126:CS-R1 RV1126 端多路人脸识别服务端源代码编译平台说明(固件已经内置编译好了程序,以下仅是说明二次开发编译操作):
(1)qt_rtsp_view 在 PC 上编译。建议使用 Qt creator 进行编译。
(2)server_rk3399 在 RK3399 上编译。使用 ssh 登录到 CS-R1 的主板 RK3399。RK3399 的地址后面的步骤会介绍怎么获取。scp 拷贝文件夹到 RK3399。由于默认开机执行 server_rk3399 。所以需要 kill 掉再进行拷贝。
执行:cd cs_rx_cam_arc/server_rk3399
/usr/lib/qt5/bin/qmake .
make -j4
killall server_rk3399
cp server_rk3399 /home/firefly/注意:server_rk3399 程序必须放在 /home/firefly/ 执行。不能是绝对路径运行。需要按照以下流程执行:
cd /home/firefly/
./server_rk3399 --platform vnc
(3)server_rv1126 使用 buildroot 交叉工具进行编译。修改 server_rv1126/server_rv1126.pro 文件。将以下三个变量改成自己 sdk 所对应的工具路径。
QMAKE_CC= /home/lvsx/project/rv1126_8_6/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
QMAKE_CXX = /home/lvsx/project/rv1126_8_6/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK = /home/lvsx/project/rv1126_8_6/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++以上面的路径为例进行编译:
cd cs_rx_cam_arc/server_rv1126/
/home/lvsx/project/rv1126_8_6/buildroot/output/firefly_rv1126_rv1109_cs_r1_arc/host/bin/qmake ./
make将生成的 server_rv1126 通过 scp 等方式拷贝到 CS-R1 上的 RV1126 上的 /userdata/ 路径。server_rv1126 程序必须放在 /userdata/ 执行。不能是绝对路径运行。需要按照以下流程执行:
cd /userdata/
./server_rv1126 --platform vnc注意:RV1126 的 IP 地址后面的步骤会介绍怎么获取。
1、首次使用请用 PC 端接入 CS-R1 服务器的 TYPE-C 接口烧入 RK3399 固件。
注意:烧入完成之后请拔掉 PC 连接 CS-R1 服务器的 TYPE-C 线,否则软件无法发现子板设备。
2、安装 Qt Creator。版本为 Qt5.12.2。
注意:必须要安装 Qt Script 组件。多路人脸识别 Qt 预览程序依赖这个组件,不安装会出现编译错误。
3、编译 Qt 程序。使用 Qt creator 打开并导入 cs_rx_cam_arc/qt_rtsp_view 工程进行代码编译。
4、将 PC 接入路由器。CS-R1 服务器也接入该路由器,保证 PC 与 CS-R1 服务器在同一个局域网,保证 PC 与 CS-R1 服务器能 ping 通 。
5、运行 Qt 程序。点击扫描获取 CS-R1 服务器主板与子板的 IP 地址。由于此时子板未烧入特定固件,所以点击扫描只能获取到主板的 IP 地址。下图为烧入特定子板固件之后才会出现子板 IP 地址。
6、使用 Firefly 的 BMC 管理系统进行子板固件升级。
(1)根据 Qt 程序扫描得到的 IP 地址。在浏览器输入 <主板 IP 地址>:3000。登入默认账号:admin。登入默认密码:admin。
(2)进入 BMC 管理系统。点击子板固件升级-->新增子板固件升级-->选择升级固件-->选中升级固件-->添加全部-->升级固件(添加要升级的设备后按钮变亮)。
子板设备固件升级:
6、再次点击 Qt 程序扫描按钮获取 CS-R1 服务器主板与子板的 IP 地址。就能获取到子板的 IP 地址。
7、刚升级完的子板 RV1126 系统时间需要更新。点击系统-->同步更新子板系统时间。
8、在上述扫描获取到的 IP 地址。使用 ssh 登录所有子内部,账号为:root,密码为:firefly。使用(ifconfig eth0)命令记录下每一块板子的设备序列号所对应的 mac 地址如图所示。一定要先进行此操作才能开始激活虹软人脸识别算法。
9、虹软人脸识别算法激活。获取虹软人脸识别算法激活码:请联系 Firefly 商务获取。获取到激活码后修改文件:cs_rx_cam_arc/qt_rtsp_view/rkmedia_rtspget_arc_rtsp_test_sdk/ffarc_rv1126/arc_activationarc_activation 文件如图所示。填入获取的激活码信息。激活码所对应的是子板的 mac 地址。这就是为什么需要上述步骤记录下每块子板的 mac 地址信息。升级固件的时候一定不要进行擦除。擦除可能会导致 mac 地址改变。首次激活必须要联网进行激活。
10、如果 mac 地址不小心被擦除了。子板有内置程序可对 mac 地址进行修改。重启生效。修改命令:/usr/bin/vendor_storage -w VENDOR_LAN_MAC_ID -t string -i "对应的 mac 地址"
#例如
/usr/bin/vendor_storage -w VENDOR_LAN_MAC_ID -t string -i "2200EF835EE2"
11、修改 rtsp 流链接信息。rtsp 流链接文件:cs_rx_cam_arc/qt_rtsp_view/rkmedia_rtspget_arc_rtsp_test_sdk/ffarc_rk3399/rtsp_url_list链接文件说明:rtsp 流链接+‘#‘号+‘rtsp流取流次数(例如:second、third。自定义名称)’。
12、拷贝部署文件夹到指定目录。将 cs_rx_cam_arc/qt_rtsp_view/rkmedia_rtspget_arc_rtsp_test_sdk 文件夹拷贝到编译目录的路径,用作文件部署。
例如:cs_rx_cam_arc/build-qt_rtsp_view-Desktop_Qt_5_12_2_GCC_64bit-Debug/rkmedia_rtspget_arc_rtsp_test_sdk
执行程序
1、文件部署。
RK3399文件部署:点击文件-->文件部署-->自动部署RK3399文件-->默认选中 main 设备-->发送。
RV1126文件部署:点击文件-->文件部署-->自动部署RV1126文件-->默认选中 sub 设备-->发送。
2、人员注册。在程序运行目录新建一个文件夹img存放人员注册图片。点击文件-->人员注册-->选择图片-->开始注册。
3、验证人员注册是否注册到数据库。点击文件-->人员查询-->查看所有已注册人员。如下图:
4、启动主板服务器。点击预览-->启动主板服务器。
5、运行多路人脸识别程序。点击预览-->启动子板程序。20路人脸识别程序需要等待约20秒。
6、预览多路人脸识别视频画面。点击预览-->预览视频画面。效果如图:
7、预览单个视频画面。在上图中点击 rtsp 流地址的左边按钮。点击即可实现全屏预览。
全屏预览效果:
相关软件介绍
RK3399 运行的服务器是开源的 EasyDarwin 应用。在 CS-R1 服务器主板 RK3399 已经启动服务器的情况下浏览器输入:<rk3399的IP地址>:10008
即可进入 EasyDarwin 界面如图所示:
点击推流列表即可看到详细的推流数据:
根据网页上的接口文档说明使用浏览器请求获取到的数据。浏览器上输入:
<rk3399的IP地址>:10008/api/v1/pushers得到数据如下图所示:
软件二次开发
人脸识别程序需要掌握的知识:opencv、rv1126 rkmedia 接口使用、虹软人脸识别算法接口使用。
虹软人脸算法 SDK 下载链接:链接:https://pan.baidu.com/s/1jr9WQsddTLDTcSAMPdrM8A#list/path=%2F
提取码:u49i或者进入官网 core-1126-jd4 资料下载页面的算法 SDK 进行下载。
人脸识别源代码:
sdk/app/firefly_rkmedia_demo/rkmedia_rtspget_arc_rtsp_test.cc编译多路人脸识别固件(请保持 SDK 的代码是最新的,不是最新的没有 CS-R1-1126-jd4-sub-arc.mk 文件):
#进入 RV1129 开发 SDK 目录
cd SDK/
./build.sh device/rockchip/rv1126_rv1109/CS-R1-1126-jd4-sub-arc.mk
./build.sh
#固件生成在 SDK/rockdev/pack/ 目录
本帖最后由 李南 于 2022-1-28 17:05 编辑
大佬您好,按照文中指导,编译生成的可执行程序在子板上启动时报如下的错误:
This application failed to start because it could not find or load the Qt platform plugin "vnc"
in "/userdata/qt/plugins".
Available platform plugins are: linuxfb, minimal, offscreen, vnc.
Reinstalling the application may fix this problem.
Aborted (core dumped)
尝试了:1.将buildroot中qt5base-5.9.4/lib下的所有依赖库均拷贝到子板并赋值给环境变量;
2.将buildroot生成的qt相关plugins放到rv1126的/userdata/qt/plugins目录并赋值环境变量。
问题依旧。
请大佬指导!
李南 发表于 2022-1-27 17:12
大佬您好,按照文中指导,编译生成的可执行程序在子板上启动时报如下的错误:
This applicati ...
1.提供当前sdk的xml文件名称
cd sdk/
realpath .repo/manifest.xml2.提供具体的运行命令与输出log帮助分析
799959745 发表于 2022-2-9 08:58
1.提供当前sdk的xml文件名称
2.提供具体的运行命令与输出log帮助分析
第1条中提到的SDK的xml文件在哪里,在这个教程中没有看到呢 李南 发表于 2022-2-10 14:39
第1条中提到的SDK的xml文件在哪里,在这个教程中没有看到呢
在 sdk/.repo/manifest.xml 799959745 发表于 2022-2-10 14:54
在 sdk/.repo/manifest.xml
1.xml文件名是:.repo/manifests/rv1126_rv1109_linux/rv1126_rv1109_linux_20220125.xml
2.运行命令:
/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot//output/firefly_rv1126_rv1109/host/bin/qmake ./
make
期间未遇到任何错误 李南 发表于 2022-2-10 20:36
1.xml文件名是:.repo/manifests/rv1126_rv1109_linux/rv1126_rv1109_linux_20220125.xml
2.运行命令:
...
运行命令以及输出的log发上来 本帖最后由 李南 于 2022-2-11 10:44 编辑
799959745 发表于 2022-2-11 09:00
运行命令以及输出的log发上来
打印有点长,命令和对应的打印如下:
root@b74f37100b29:/home/nan/myFile/Projects/Hongruan/cs_rx_cam_arc/server_rv1126# /home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/bin/qmake ./
root@b74f37100b29:/home/nan/myFile/Projects/Hongruan/cs_rx_cam_arc/server_rv1126# make
/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/bin/uic MainWindow.ui -o ui_MainWindow.h
/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -DUSE_UPDATEENGINE=ON -DSUCCESSFUL_BOOT=ON --sysroot=/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DBUILDROOT -DRV1126 -DCONFIG_CTRL_IFACE_UNIX -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I-L/home/nan/myFile/Projects/Hongruan/cs_rx_cam_arc/server_rv1126/inc -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5 -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtWidgets -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtGui -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtNetwork -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtCore -I. -I. -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/mkspecs/devices/linux-buildroot-g++ -o main.o main.cpp
/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -DUSE_UPDATEENGINE=ON -DSUCCESSFUL_BOOT=ON --sysroot=/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DBUILDROOT -DRV1126 -DCONFIG_CTRL_IFACE_UNIX -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I-L/home/nan/myFile/Projects/Hongruan/cs_rx_cam_arc/server_rv1126/inc -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5 -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtWidgets -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtGui -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtNetwork -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtCore -I. -I. -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/mkspecs/devices/linux-buildroot-g++ -o MainWindow.o MainWindow.cpp
In file included from MainWindow.cpp:1:0:
MainWindow.h: In constructor 'MainWindow::MainWindow(QWidget*)':
MainWindow.h:62:17: warning: 'MainWindow::fileSocket' will be initialized after [-Wreorder]
QTcpSocket *fileSocket; //TCP文件套接字
^~~~~~~~~~
MainWindow.h:58:12: warning: 'qint64 MainWindow::receiveFileSize' [-Wreorder]
qint64 receiveFileSize; //接收的文件大小
^~~~~~~~~~~~~~~
MainWindow.cpp:32:1: warning: when initialized here [-Wreorder]
MainWindow::MainWindow(QWidget *parent) :
^~~~~~~~~~
In file included from MainWindow.cpp:1:0:
MainWindow.h:60:12: warning: 'MainWindow::receiveFileBytesReceived' will be initialized after [-Wreorder]
qint64 receiveFileBytesReceived;
^~~~~~~~~~~~~~~~~~~~~~~~
MainWindow.h:52:12: warning: 'qint64 MainWindow::blockSize' [-Wreorder]
qint64 blockSize; //每次读取文件数据块大小
^~~~~~~~~
MainWindow.cpp:32:1: warning: when initialized here [-Wreorder]
MainWindow::MainWindow(QWidget *parent) :
^~~~~~~~~~
In file included from MainWindow.cpp:1:0:
MainWindow.h:52:12: warning: 'MainWindow::blockSize' will be initialized after [-Wreorder]
qint64 blockSize; //每次读取文件数据块大小
^~~~~~~~~
MainWindow.h:47:12: warning: 'qint64 MainWindow::currentFileSize' [-Wreorder]
qint64 currentFileSize; //当前文件大小
^~~~~~~~~~~~~~~
MainWindow.cpp:32:1: warning: when initialized here [-Wreorder]
MainWindow::MainWindow(QWidget *parent) :
^~~~~~~~~~
In file included from MainWindow.cpp:1:0:
MainWindow.h:50:12: warning: 'MainWindow::totalFileBytesWritten' will be initialized after [-Wreorder]
qint64 totalFileBytesWritten; //所有文件已写入字节数
^~~~~~~~~~~~~~~~~~~~~
MainWindow.h:48:12: warning: 'qint64 MainWindow::totalFileSize' [-Wreorder]
qint64 totalFileSize; //所有文件大小
^~~~~~~~~~~~~
MainWindow.cpp:32:1: warning: when initialized here [-Wreorder]
MainWindow::MainWindow(QWidget *parent) :
^~~~~~~~~~
MainWindow.cpp: In member function 'void MainWindow::onCmdSocketBytesWritten(const qint64&)':
MainWindow.cpp:349:56: warning: unused parameter 'bytes' [-Wunused-parameter]
void MainWindow::onCmdSocketBytesWritten(const qint64 &bytes)
^~~~~
In file included from MainWindow.cpp:3:0:
register.h: At global scope:
register.h:60:12: warning: 'int load_cfg(const char*)' declared 'static' but never defined [-Wunused-function]
static int load_cfg(const char *cfg_file);
^~~~~~~~
/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -DUSE_UPDATEENGINE=ON -DSUCCESSFUL_BOOT=ON --sysroot=/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DBUILDROOT -DRV1126 -DCONFIG_CTRL_IFACE_UNIX -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I-L/home/nan/myFile/Projects/Hongruan/cs_rx_cam_arc/server_rv1126/inc -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5 -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtWidgets -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtGui -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtNetwork -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtCore -I. -I. -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/mkspecs/devices/linux-buildroot-g++ -o register.o register.cpp
register.cpp: In function 'int compare(int, const unsigned char*, const unsigned char*, const void*, int, void*)':
register.cpp:27:1: warning: no return statement in function returning non-void [-Wreturn-type]
}
^
register.cpp:8:44: warning: unused parameter 'name' [-Wunused-parameter]
int compare(int id , const unsigned char * name, const unsigned char * path, const void * feature,int len,void * data) {
^~~~
register.cpp:8:72: warning: unused parameter 'path' [-Wunused-parameter]
int compare(int id , const unsigned char * name, const unsigned char * path, const void * feature,int len,void * data) {
^~~~
register.cpp: In function 'void printSDKInfo()':
register.cpp:90:49: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'MRESULT {aka long int}' [-Wformat=]
printf("ASFOnlineActivation failed: %x\n", res);
^
register.cpp:92:47: warning: ISO C++ forbids converting a string constant to 'MPChar {aka char*}' [-Wwrite-strings]
res = ASFOfflineActivation("ArcFacePro32.dat");
^
register.cpp:94:50: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'MRESULT {aka long int}' [-Wformat=]
printf("ASFOfflineActivation failed: %x\n", res);
^
register.cpp: In function 'int startReister(int, char**)':
register.cpp:117:43: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'MRESULT {aka long int}' [-Wformat=]
printf("ASFInitEngine failed: %x\n", res);
^
register.cpp:121:22: warning: missing initializer for member 'sqldata::name' [-Wmissing-field-initializers]
sqldata data = { -1 };
^
register.cpp:121:22: warning: missing initializer for member 'sqldata::imgpath' [-Wmissing-field-initializers]
register.cpp:121:22: warning: missing initializer for member 'sqldata::data' [-Wmissing-field-initializers]
register.cpp:151:32: warning: missing initializer for member '__tag_ASVL_OFFSCREEN::i32Width' [-Wmissing-field-initializers]
ASVLOFFSCREEN offscreen1 = {0};
^
register.cpp:151:32: warning: missing initializer for member '__tag_ASVL_OFFSCREEN::i32Height' [-Wmissing-field-initializers]
register.cpp:151:32: warning: missing initializer for member '__tag_ASVL_OFFSCREEN::ppu8Plane' [-Wmissing-field-initializers]
register.cpp:151:32: warning: missing initializer for member '__tag_ASVL_OFFSCREEN::pi32Pitch' [-Wmissing-field-initializers]
register.cpp:154:40: warning: missing initializer for member 'ASF_MultiFaceInfo::faceOrient' [-Wmissing-field-initializers]
ASF_MultiFaceInfo detectedFaces1 = {0};
^
register.cpp:154:40: warning: missing initializer for member 'ASF_MultiFaceInfo::faceNum' [-Wmissing-field-initializers]
register.cpp:154:40: warning: missing initializer for member 'ASF_MultiFaceInfo::faceID' [-Wmissing-field-initializers]
register.cpp:154:40: warning: missing initializer for member 'ASF_MultiFaceInfo::wear_glasses' [-Wmissing-field-initializers]
register.cpp:154:40: warning: missing initializer for member 'ASF_MultiFaceInfo::left_eye_closed' [-Wmissing-field-initializers]
register.cpp:154:40: warning: missing initializer for member 'ASF_MultiFaceInfo::right_eye_closed' [-Wmissing-field-initializers]
register.cpp:155:46: warning: missing initializer for member '__tag_rect::top' [-Wmissing-field-initializers]
ASF_SingleFaceInfo SingleDetectedFaces = {0};
^
register.cpp:155:46: warning: missing initializer for member '__tag_rect::right' [-Wmissing-field-initializers]
register.cpp:155:46: warning: missing initializer for member '__tag_rect::bottom' [-Wmissing-field-initializers]
register.cpp:155:46: warning: missing initializer for member 'ASF_SingleFaceInfo::faceOrient' [-Wmissing-field-initializers]
register.cpp:156:32: warning: missing initializer for member 'ASF_FaceFeature::featureSize' [-Wmissing-field-initializers]
ASF_FaceFeature feature1 = {0};
^
register.cpp:160:68: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'MRESULT {aka long int}' [-Wformat=]
printf("%s ASFDetectFaces 1 failed: %x\n", argv, res);
^
register.cpp:170:81: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'MRESULT {aka long int}' [-Wformat=]
printf("%s ASFFaceFeatureExtractEx 1 failed: %x\n", argv, res);
^
register.cpp:174:83: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'MRESULT {aka long int}' [-Wformat=]
printf("%s ASFFaceFeatureExtractEx 1 sucessed: %x\n", argv, res);
^
register.cpp:218:45: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'MRESULT {aka long int}' [-Wformat=]
printf("ASFUninitEngine failed: %x\n", res);
^
/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -DUSE_UPDATEENGINE=ON -DSUCCESSFUL_BOOT=ON --sysroot=/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot -std=gnu++11 -Wall -W -dM -E -o moc_predefs.h ../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/mkspecs/features/data/dummy.cpp
/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/bin/moc -DQT_DEPRECATED_WARNINGS -DBUILDROOT -DRV1126 -DCONFIG_CTRL_IFACE_UNIX -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB --include ./moc_predefs.h -I/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/mkspecs/devices/linux-buildroot-g++ -I/home/nan/myFile/Projects/Hongruan/cs_rx_cam_arc/server_rv1126 -I/home/nan/myFile/Projects/Hongruan/cs_rx_cam_arc/server_rv1126/-L/home/nan/myFile/Projects/Hongruan/cs_rx_cam_arc/server_rv1126/inc -I/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5 -I/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtWidgets -I/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtGui -I/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtNetwork -I/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtCore -I/usr/include/c++/5 -I/usr/include/x86_64-linux-gnu/c++/5 -I/usr/include/c++/5/backward -I/usr/lib/gcc/x86_64-linux-gnu/5/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include MainWindow.h -o moc_MainWindow.cpp
/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -DUSE_UPDATEENGINE=ON -DSUCCESSFUL_BOOT=ON --sysroot=/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DBUILDROOT -DRV1126 -DCONFIG_CTRL_IFACE_UNIX -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I-L/home/nan/myFile/Projects/Hongruan/cs_rx_cam_arc/server_rv1126/inc -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5 -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtWidgets -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtGui -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtNetwork -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtCore -I. -I. -I../../rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/mkspecs/devices/linux-buildroot-g++ -o moc_MainWindow.o moc_MainWindow.cpp
/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ --sysroot=/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot -Wl,-O1 -o server_rv1126 main.o MainWindow.o register.o moc_MainWindow.o -L/home/nan/myFile/Projects/Hongruan/cs_rx_cam_arc/server_rv1126/lib -lstdc++ -larcsoft_face_engine -larcsoft_face -lffsqlite -lsqlite3 -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -L/home/nan/myFile/Projects/Hongruan/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lQt5Widgets -lQt5Gui -lQt5Network -lQt5Core -lrt -ldl -latomic -lpthread 李南 发表于 2022-2-11 10:42
打印有点长,命令和对应的打印如下:
root@b74f37100b29:/home/nan/myFile/Projects/Hongruan/cs_rx_c ...
不是你编译的命令。是你拷贝到1126板子上执行的命令{:4_89:} 本帖最后由 李南 于 2022-2-11 10:54 编辑
799959745 发表于 2022-2-11 10:44
不是你编译的命令。是你拷贝到1126板子上执行的命令
# ./server_rv1126 --platform vnc
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by ./server_rv1126)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by ./server_rv1126)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by ./server_rv1126)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by ./server_rv1126)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by /userdata/qt/lib/libarcsoft_face_engine.so)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by /userdata/qt/lib/libarcsoft_face_engine.so)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by /userdata/qt/lib/libarcsoft_face_engine.so)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by /userdata/qt/lib/libarcsoft_face_engine.so)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by /userdata/qt/lib/libarcsoft_face.so)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by /userdata/qt/lib/libarcsoft_face.so)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by /userdata/qt/lib/libarcsoft_face.so)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by /userdata/qt/lib/libarcsoft_face.so)
./server_rv1126: /lib/libstdc++.so.6: no version information available (required by /userdata/qt/lib/libarcsoft_face.so)
This application failed to start because it could not find or load the Qt platform plugin "vnc"
in "/userdata/qt/plugins/platforms".
Available platform plugins are: linuxfb (from /userdata/qt/plugins/platforms), minimal (from /userdata/qt/plugins/platforms), offscreen (from /userdata/qt/plugins/platforms), vnc (from /userdata/qt/plugins/platforms).
Reinstalling the application may fix this problem.
Aborted (core dumped)
期间我尝试过用qt写一个界面程序,界面上只打印helloworld,编译完成上传rk1126子板,运行也会遇到同样的问题——This application failed to start because it could not find or load the Qt platform plugin "vnc"