Ubuntu18.04配置Seetaface6

2023-11-17

目录

一、下载安装Qt软件

1. 安装包下载

2. 安装Qt

 3. 配置

二、下载源码

三、编译工具

四、编译

1. 编译OpenRoleZoo

2. 编译SeetaAuthorize

3. 编译TenniS

五、运行

1. 修改lib路径

2. build project

3. 运行 Run!

六、详细Seetaface6的代码讲解


一、下载安装Qt软件

1. 安装包下载

官方下载地址,选择下载qt-opensourece-linux-x64-5.12.0.run。

2. 安装Qt

打开终端,cd到文件所在目录

1. 改变执行权限

sudo chmod +x qt-opensource-linux-x64-5.12.0.run

2. 安装

sudo ./qt-opensource-linux-x64-5.12.0.run

接下来会弹出图形界面安装向导,选择需要的部件安装,一直下一步直到结束。

注意: 1. 在Email这一步既可以选择Skip(跳过),也可以去Qt官网https://www.qt.io/zh-cn上注册一个

         2. 安装路径这一步尽量选择默认的

 3. 配置

(1)配置系统路径

sudo vi /etc/bash.bashrc

在文末添加如下代码:

export QTDIR=/opt/Qt5.12.0/5.12.0/gcc_64
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

保存之后需要终端中执行:

source /etc/bash.bashrc

(2)C++编译器

如果提示clang++ not found,则要么没有安装,要么没有设置好

安装指令:

sudo apt-get install build-essential

打开QT creator ,在Tools - Options - Kits 中的Compiler C和C++编译器都选上,这样就不会不能编译了。

(3)OpenGL库

如果编译出现缺少lGL,即cannot find -lGL 则需要安装openGL开发库

安装命令:

sudo apt-get install mesa-common-dev
sudo apt-get install libgl1-mesa-dev

(4)通用字体配置库

安装命令:

sudo apt-get install libfontconfig1

至此,Qt安装完成!

二、下载源码

 使用git命令:

git clone --recursive https://github.com/SeetaFace6Open/index.git

三、编译工具

--- make

sudo apt install make

--- gcc(系统自带)

sudo apt install gcc

--- g++(系统自带)

sudo apt install g++

--- cmake

sudo apt install cmake 

四、编译

1. 编译OpenRoleZoo

进入编译脚本所在文件夹:

cd index/OpenRoleZoo
cd craft

执行编译脚本编译:

chmod +777 build.linux.x64.sh 
./build.linux.x64.sh

出现如下报错
error: funciton in namespace 'std' does not name a template type 

 解决方案:
进入提示信息所给的pot.h文件中,导入头文件functional后保存文件重新编译

#include <functional>

 保存后重新执行脚本文件

2. 编译SeetaAuthorize

进入编译脚本所在文件夹

cd index/SeetaAuthorize
cd craft

执行编译脚本编译

chmod +777 build.linux.x64.sh 
./build.linux.x64.sh

3. 编译TenniS

进入编译脚本所在文件夹

cd index/TenniS
cd craft

执行编译脚本编译

chmod +777 build.linux.x64.sh 
./build.linux.x64.sh

 4. 编译剩余模块

方法与前三个模块的编译相同

chmod +777 build.linux.x64.sh 
./build.linux.x64.sh

可以写一个shell脚本程序进行编译
执行即可编译剩余模块 

cd FaceTracker6/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

cd SeetaEyeStateDetector/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

cd Landmarker/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

cd SeetaGenderPredictor/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

cd OpenRoleZoo/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

cd SeetaMaskDetector/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

cd FaceAntiSpoofingX6/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

cd PoseEstimator6/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

cd FaceBoxes/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

cd QualityAssessor3/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

cd FaceRecognizer6/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

cd SeetaAgePredictor/craft
chmod +777 build.linux.x64.sh 
./build.linux.x64.sh
cd ../..

五、运行

1. 修改lib路径

打开之前下载的Qt软件,选择文件(File)--->打开文件或项目--->Seetaface6--->index--->example--->qt--->seetaface_demo--->seetaface_demo.pro

修改完成后保存并退出。

2. build project

点击左下角的绿色三角运行,运行成功后会生成:

 建立文件夹models存放模型

从链接(https://pan.baidu.com/s/1LlXe2-YsUxQMe-MLzhQ2Aw 提取码:ngne)下载模型并解压到models文件夹下。

在这里插入图片描述

3. 运行 Run!

 再次点击左下角的绿色三角运行。

运行成功后

菜单界面:

人脸数据界面:

相机界面:

设置界面:

六、详细Seetaface6的代码讲解

http://leanote.com/blog/post/5e7d6cecab64412ae60016ef#title-46

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu18.04配置Seetaface6 的相关文章

  • 内核驱动程序从用户空间读取正常,但写回始终为 0

    因此 我正在努力完成内核驱动程序编程 目前我正在尝试在应用程序和内核驱动程序之间构建简单的数据传输 我使用简单的字符设备作为这两者之间的链接 并且我已成功将数据传输到驱动程序 但我无法将有意义的数据返回到用户空间 内核驱动程序如下所示 in
  • linux新手关于嵌入式linux设备驱动的问题

    最近在研究linux驱动 正如我读过的那些文章所说 设备驱动程序模块很可能会根据内核的需要自动加载 因此我想知道内核如何确定为特定设备 声卡 I2C spi 设备 等 我也无法彻底想象内核如何在启动时检测每个硬件设备 与嵌入式linux相关
  • 如何从脚本编辑 /etc/sudoers?

    我需要编辑 etc sudoers从脚本中添加 删除白名单中的内容 假设我有一个可以处理普通文件的命令 我如何将其应用到 etc sudoers 我可以复制并修改它 然后有visudo用修改后的副本替换原始版本 通过提供我自己的脚本 EDI
  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • 何时用引号将 shell 变量括起来?

    我应该或不应该在 shell 脚本中用引号括住变量吗 例如 下列说法正确的是 xdg open URL eq 2 or xdg open URL eq 2 如果是这样 为什么 一般规则 如果它可以为空或包含空格 或实际上任何空格 或特殊字符
  • 如何通过ssh获取远程命令的退出代码

    我正在通过 ssh 从远程计算机运行脚本 ssh some cmd my script 现在 我想在本地计算机上存储 shell 脚本的退出状态 我该怎么做 假设没有任何问题ssh其本身 其退出状态是在远程主机上执行的最后一个命令的退出状态
  • PIL 的 Image.show() 带来*两个*不同的查看器

    在 python shell 中处理图像时 我使用 image show 其中 image 是 Image 的实例 很久以前什么也没发生 但在定义了一个名为 xv 的 Mirage 符号链接后 我很高兴 最近几天 show 将显示 Imag
  • 在 ROS 中运行tensorRT时出现“LogicError:explicit_context_dependent失败:无效的设备上下文 - 没有当前活动的上下文?”

    我在 TensorRT 使用 python 中有一个推理代码 我想在 ROS 中运行此代码 但在尝试分配缓冲区时出现以下错误 LogicError explicit context dependent failed invalid devi
  • 我想在 Red Hat Linux 服务器中执行 .ps1 powershell 脚本

    我有一个在窗口中执行的 ps1 powershell 脚本 但我的整个数据都在 Linux 服务器中 有什么可能的方法可以让我在红帽服务器中执行 powershell 脚本 powershell脚本是 Clear Host path D D
  • 在 scapy 中通过物理环回发送数据包

    我最近发现了 Scapy 它看起来很棒 我正在尝试查看 NIC 上物理环回模块 存根上的简单流量 但是 Scapy sniff 没有给出任何结果 我正在做的发送数据包是 payload data 10 snf sniff filter ic
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • Docker忽略limits.conf(试图解决“打开文件太多”错误)

    我正在运行一个 Web 服务器 该服务器正在处理数千个并发 Web 套接字连接 为了实现这一点 在 Debian linux 我的基本镜像是 google debian wheezy 在 GCE 上运行 上 打开文件的默认数量设置为 100
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud

随机推荐

  • Hadoop - wordCount 实例

    hadoop 创建文件夹存放需要被统计的文件 hadoop fs mkdir usr 创建单子文件并写入内容 可在网上找几篇英文文章写入 vim word txt 上传到 hdfs hadoop fs put word txt usr 利用
  • C#开发学习~~~“未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)”

    引言 在 C 高阶编程 中文第10版 的2 2 4节中 有这样一段描述 看到这段话 我简单的理解为 只要在程序开始用using语句声明名称空间 就可以在当前名称空间使用声明的这个名称空间中的类和方法 但实践证明我的理解是有些错误的T0T 问
  • [坑]拦截器返回response.getWrite().println方法返回数据不全

    在SpringBoot项目中 前端ajax请求后端 拦截器进行登录拦截判断 如果超时返回false 则给前端返回一段json字符串 private static void returnJson HttpServletResponse res
  • C++ cin 实现循环读入

    习惯了使用while scanf d x 来实现循环读入 但是有时候使用泛型编程的时候就必须使用C 中的cin 但是当我想要实现循环读入的时候却发现有些困难 我们可以看一下下面这个简单的例子 include
  • 使用boost::units库进行信息单位转换的C++示例程序

    使用boost units库进行信息单位转换的C 示例程序 include
  • 电视机尺寸与观看距离

    电视机尺寸是指电视机屏幕对角线的长度 以英寸为单位 1英寸 2 54厘米 而且目前来看大多数液晶电视的标准屏幕比已经变成了宽的是16 9 根据勾股定理 对角线的长度是 337 根号337 开放得出 屏幕高度与对角线的比值就是9 337 一般
  • 【新版】系统架构设计师 - 案例分析 - 信息安全

    个人总结 仅供参考 欢迎加好友一起讨论 文章目录 架构 案例分析 信息安全 安全架构 安全模型 分类 BLP模型 Biba模型 Chinese Wall模型 信息安全整体架构设计 WPDRRC模型 各模型安全防范功能 网络安全体系架构设计
  • Linux中创建文件夹,删除文件夹

    Linux中创建目录 mkdir 文件夹 比如 mkdir test 删除文件夹 rm rf 文件夹 比如 rm rf soft vi强制不保存退出命令 q
  • const 定义数组问题

    const keysArr array aaa gt 11111 bbb gt 22222 ccc gt 33333 ddd gt 44444 上面是标准的错误格式 PHP编译不会报详细错误信息 500 查找半天的代码问题 一直未发现错误
  • 解决Jenkins构建前端时node-sass的.node文件下载报错问题的一种方案

    问题背景 公司的npm仓库未跟外网联通 为什么不联通 我也好鸡儿纳闷 使用Jenkins构建前端时 会在下载node sass的 node时报错 默认情况下会从github上去下 node文件 当然也可以通过配置 npmrc文件指定下载路径
  • 浅析Jetty与tomcat区别

    一 Jetty介绍 1 Jetty概述 Jetty是一个开源项目 最初由Mort Bay Consulting公司创建 它的目标是提供一个快速 灵活 可嵌入的Web服务器和Servlet容器 使Java开发人员能够轻松构建高性能的Web应用
  • 如何在 Mac 上录制屏幕?mac录屏教程分享

    您可以为整个屏幕或屏幕上的选定部分录制视频 1 使用 截屏 工具栏 要查看 截屏 工具栏 请同时按下以下三个按键 Shift Command 和 5 您将看到用于录制整个屏幕 录制屏幕的选定部分或拍摄屏幕静态图像的屏幕控制项 录制整个屏幕
  • 泛型的概念

    一 什么是泛型 参数化类型 为什么要引入泛型 1 将不同类型的数据添加到Arraylist中 取出数据要使用时 要进行强制转换 还原 向下转型 2 同时在编写程序时 不会报错 无类型安全监测机制 而结果出错ClassCastExceptio
  • 摄像头在H5的实时播放功能实现历程

    一 问题解决的路程 1 需求来源 因项目发展需求 需要在3D地图上进行实时摄像头监控展示 3D地图是基于浏览器H5页面展示的 在H5页面实时播放摄像头监控就需要可以直接拿到取流地址进行直接播放 以下各大摄像头产商取流方式 海康威视 默认IP
  • 网络层

    网络层 从它的名字可以看出 它解决的是网络与网络之间 即网际的通信问题 而不是同一网段内部的事 用于网络互联的设备都处于网络层 如 路由器 网络交互机等 一个底层网络内部只存在两层 即数据链接层 与 物理层 没有其它层
  • 考研C++/C数据结构之单链表两种查找方法

    继上篇文章我们探讨了单链表的两种创建方法 头插法和尾插法 今天我们来学习一下单链表的两种查找方法 按序查找和按值查找 按序查找的代码实现如下 按位查找 LinkList GetElem LinkList L int i int j 1 Li
  • python是真刑啊!爬虫这样用,离好日子越铐越近了~

    一个程序员写了个爬虫程序 整个公司200多人被端了 不可能吧 刚从朋友听到这个消息的时候 我有点不太相信 做为一名程序员来讲 谁还没有写过几段爬虫呢 只因写爬虫程序就被端有点夸张了吧 朋友说 消息很确认并且已经进入审判阶段了 01 对消息进
  • 求解视觉里程计(基于特征点法)

    目录 1 视觉里程计 VO 2 基于特征点法的视觉里程计算法 2 1 特征点 2 2 ORB特征点的提取与匹配 2 2 1 关键点与描述子 灰度质心法 特征描述子计算 2 2 2 特征点匹配 2 3 特征点法估计相机位姿 2 3 1 对极几
  • MySQL事务简介

    一 事务的起源 原子性 Atomicity 要么全做 要么全不做 一致性 Consistency 数据库中的数据全部符合现实中的约束 隔离型 Isolation 操作以原子性执行 且不同事务操作互不干扰 多种隔离级别 持久性 Durabil
  • Ubuntu18.04配置Seetaface6

    目录 一 下载安装Qt软件 1 安装包下载 2 安装Qt 3 配置 二 下载源码 三 编译工具 四 编译 1 编译OpenRoleZoo 2 编译SeetaAuthorize 3 编译TenniS 五 运行 1 修改lib路径 2 buil