SeetaFace6的NX部署


SeetaFace6的readme文檔

#  **SeetaFace6**

[![License](https://img.shields.io/badge/license-BSD-blue.svg)](LICENSE)

[[中文]()]

## 開源模塊

`SeetaFace6`是中科視拓最新開源的商業正式版本。突破了之前社區版和企業版版本不同步發布的情況,這次開源的v6版本正式與商用版本同步。

<div align=center>
<img src="./asserts/fas.jpg" width="310" height="180" />
</div>

此次開源包含了一直以來人臉識別的基本部分,如人臉檢測、關鍵點定位、人臉識別。同時增加了活體檢測、質量評估、年齡性別估計。並且響應時事,開放了口罩檢測以及戴口罩的人臉識別模型。

<div align=center>
<img src="./asserts/fr_mask.png" width="560" height="240" />
</div>


同時此次我們開源了商用版最新的推理引擎TenniS,ResNet50的推理速度,從SeetaFace2在I7的8FPS提升到了20FPS。同時人臉識別訓練集也大幅度提高,SeetaFace6人臉識別數據量增加到了上億張圖片。

為了應對不同級別的應用需求,SeetaFace6將開放三個版本模型:

模型名稱           | 網絡結構       | 速度(I7-6700) | 速度(RK3399) | 特征長度
-|-|-|-|-
通用人臉識別       | ResNet-50      | 57ms           | 300ms         | 1024
帶口罩人臉識別     | ResNet-50      | 34ms           | 150ms         | 512
通用人臉識別(小) | Mobile FaceNet | 9ms            | 70ms          | 512

作為能力兼容升級,SeetaFace6仍然能夠給眾多人臉識別應用提供業務能力。

<div align=center>
<img src="./asserts/app_matrix.png" width="600" height="320" />
</div>

同時該套算法適用於高精度的服務器部署外,也可以終端設備上很好的適應運行。
 
<div align=center>
<img src="./asserts/endpoints.png" width="680" height="180" />
</div>

<div align=center>
<img src="./asserts/api_matrix.png" width="360" height="180" />
</div>

## 編譯

### 下載源碼

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

### 編譯依賴
 
1. 編譯工具
2. For linux<br>
        GNU Make 工具<br>
        GCC 或者 Clang 編譯器
3. For windows<br>
        [MSVC](https://visualstudio.microsoft.com/zh-hans/) 或者 MinGW. <br>
        [jom](https://wiki.qt.io/Jom)
4. [CMake](http://www.cmake.org/)
5. 依賴架構<br>
 CPU 支持 AVX 和 FMA [可選](x86)或 NENO(ARM)支持

### 編譯順序說明
OpenRoleZoo 為常用操作的集合,SeetaAuthorize  為模型解析工程,TenniS 為前向計算框架。需要重點說明的是,此次 TenniS 同時放出了 **GPU** 計算源碼,可以編譯出 **GPU** 版本進行使用。上述三個模塊為基礎模塊,各個 SDK 的編譯均依賴上述模塊,因此需要優先編譯出 OpenRoleZoo, SeetaAuthorize 和 TenniS,然后再進行其他 SDK 模塊的編譯。

### 各平台編譯

####  linux 平台編譯說明

    cd ./craft
    運行腳本 build.linux.x64.sh(gpu版本為 build.linux.x64_gpu.sh)
    
####  windows 平台編譯說明

    cd ./craft
    執行腳本 build.win.vc14.all.cmd 編譯各個版本的庫(gpu版本為build.win.vc14.all_gpu.cmd)

#### Android 平台編譯說明
+ 安裝 ndk 編譯工具(推薦版本 **ndk-r16b**)
  - 從  https://developer.android.com/ndk/downloads 下載 ndk 並安裝
  - 設置環境變量, 導出ndk-build工具

+ 編譯
        各個模塊均含有 android/jni/Android.mk 和 android/jni/Application.mk 兩個編譯腳本文件。

        cd 到各模塊的 android/jni 目錄
        執行 ndk-build -j4 編譯

#### 其他 arm 等交叉編譯平台
當前版本並未直接對交叉編譯平台進行支持, 不過可參考文章 [cmake cross compile](https://zhuanlan.zhihu.com/p/100367053) 的說明進行 CMake 配置和對應平台的編譯。 
# 下載地址

### 百度網盤
模型文件:  
Part I: [Download](https://pan.baidu.com/s/1LlXe2-YsUxQMe-MLzhQ2Aw) code: `ngne`, including: `age_predictor.csta`, `face_landmarker_pts5.csta`, `fas_first.csta`, `pose_estimation.csta`, `eye_state.csta`, `face_landmarker_pts68.csta`, `fas_second.csta`, `quality_lbn.csta`, `face_detector.csta`, `face_recognizer.csta`, `gender_predictor.csta`, `face_landmarker_mask_pts5.csta`, `face_recognizer_mask.csta`, `mask_detector.csta`.   
Part II: [Download](https://pan.baidu.com/s/1xjciq-lkzEBOZsTfVYAT9g) code: `t6j0`,including: `face_recognizer_light.csta`.  

### Dropbox
Model files:  
Part I: [Download](https://www.dropbox.com/s/julk1f16riu0dyp/sf6.0_models.zip?dl=0), including: `age_predictor.csta`, `face_landmarker_pts5.csta`, `fas_first.csta`, `pose_estimation.csta`, `eye_state.csta`, `face_landmarker_pts68.csta`, `fas_second.csta`, `quality_lbn.csta`, `face_detector.csta`, `face_recognizer.csta`, `gender_predictor.csta`, `face_landmarker_mask_pts5.csta`, `face_recognizer_mask.csta`, `mask_detector.csta`.   
Part II: [Download](https://www.dropbox.com/s/d296i7efnz5evbx/face_recognizer_light.csta?dl=0) ,including: `face_recognizer_light.csta`.  

# 使用入門

關於基本的接口使用,請參見教程:
[《SeetaFace 入門教程》](http://leanote.com/blog/post/5e7d6cecab64412ae60016ef),github上有同步[文檔源碼](https://github.com/seetafaceengine/SeetaFaceTutorial)。

人臉識別的完整示例Demo見 [example/qt](./example/qt)。

在每個壓縮包的文檔中都包含了對應平台上的調用示例,請解壓對應平台壓縮包后分別獲取。

# 接口文檔

各模塊接口參見 [docs](./docs)

# 開發者社區

歡迎開發者加入 SeetaFace 開發者社區,請先加 SeetaFace 小助手微信,經過審核后邀請入群。

![QR](./asserts/QR.png)

# 聯系我們

`SeetaFace` 開源版可以免費用於商業和個人用途。如果需要更多的商業支持,請聯系商務郵件 bd@seetatech.com。

使用cmake-gui編譯各開源模塊

編譯OpenRoleZoo、SeetaAuthorize和TenniS三個核心模塊

1.編譯OpenRoleZoo模塊

(1)打開cmake-gui操作界面,參靠OpenRoleZoo/README.md文件配置下圖中的參數項

(2)根據圖中箭頭所示依次配置source code路徑、build路徑,修改CMAKE_BUILD_TYPE參數為Relase、修改CMAKE_INSTALL_PREFIX參數為項目根目錄下的build目錄中,點擊configure,點擊generate完成cmake編譯。

(3)進入配置的build路徑下打開命令行輸入界面,輸入make,完成編譯。

編譯過程中出現如下圖所示錯誤:

問題描述:

"error: funciton in namespace 'std' does not name a template type"

解決辦法:

進入提示信息所給的pot.h文件中,導入頭文件functional后保存文件重新編譯即可

#include <functional>

如果加了,還是報這個錯。可能原因是gcc版本是98的,編譯的時候需要加上-std=c++11

g++ main.cpp  -std=c++11

 (4)make成功之后執行make install完成OpenRoleZoo模塊的安裝,安裝成功后如圖所示:

項目根目錄build中生成如圖所示目錄:

2.編譯安裝SeetaAuthorize模塊

參靠SeetaAuthorize/README.md文件配置下圖中的參數項

進入SeetaAuthorize/build中執行

make
make install

完成SeetaAuthorize模塊編譯安裝

3.編譯安裝TenniS模塊

參靠TenniS/README.md文件配置下圖中的參數項

進入TenniS/build中執行

make
make install

完成TenniS模塊編譯安裝

 4.FaceAntISpoofingX6

5.FaceBoxes

6.FaceRecognizer6

7.FaceTracker6

8.Landmarker

9.PoseEstimator6

10.QualityAssessor3

11.SeetaAgePredictor

12.SeetaEyeStateDetector

13.SeetaGenderPredictor

14.SeetaMaskDetector


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM