# FRLite-Edge **Repository Path**: cpn-platform/frlite ## Basic Information - **Project Name**: FRLite-Edge - **Description**: 人脸及属性识别(边端处理)模块 - **Primary Language**: Python - **License**: MIT - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-12-03 - **Last Updated**: 2024-11-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 业务推理-轻量化人脸及属性识别(*Face Recognition Lite*) ### 1 概述 - 基于*python*的轻量化人脸及属性识别模块 - 基于*haar*分类器或*opencv-ssd*模型的人脸检测 - 基于*facenet-tflite*的人脸识别 - 基于*gender-net*模型的性别识别 - 基于*age-net*模型的年龄识别 - 无需*pytorch*或*tensorflow*,**仅需*tflite*与*opencv*即可满足上述功能**,模块足够**轻量化** ### 2 使用 #### 2.0 简述 - 轻量化的人脸检测模型选择(*MTCNN*精度高,但太过复杂) - 生成*facenet-tflite*模型(可参考*github*教程,环境严格要求) - 依据人脸识别原理与*tflite*的模块限制,确定识别人脸特征方法 - 尽可能**减少依赖包的数量与模型的大小** #### 2.1 依赖 - 依据`requirements.txt`下载依赖 - `tflite`的轮子从*Tensorflow Lite*官网下载 - *windows*系统下,安装支持`python3.7`版本的依赖的指令: ``` pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-win_amd64.whl ``` - *linux*系统下,安装支持`python3.7`版本的依赖的指令: ``` pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-linux_x86_64.whl ``` #### 2.2 程序入口(`main.py`) - 实现基于*gRPC*完成计算卸载-业务推理-展示平台的通信 - 依据计算卸载调度模块的图片`bytes`数据,完成人脸及属性识别 - 使用`python main.py -h`可查看操作说明 ```shell python main.py [-ds ds_addr='IP:5800'] [-ai ai_port=6585] [--bed_port=5000] [--redis_host='localhost'] [--redis_port=6379] [--redis_db=0] [--redis_password='0'] [--db_port=9000] [--db_topic='db'] [--detect_thr=0.5] [--rkg_peaks=3] [--rkg_dist_thr=22] [--detect_mode='MODEL'] [--log_level='INFO'] [--do_option] [--debug_mode] ``` #### 2.3 人脸及属性识别(`lite.py`) - 内置人脸检测(*2*种模式)、人脸识别、性别与年龄识别功能 - 通过实例化类`FaceRecognitionLite`即可调用 #### 2.4 特征数据与模型获取(`updater.py`) - 从`manufacor`获取最新的特征与模型 - 可直接操作该文件进行强制更新 - 使用`python updater.py -h`查看操作说明 #### 2.5 *.proto*文件编译 ```shell python -m grpc_tools.protoc -I ./protos --python_out=./protos --grpc_python_out=./protos ./protos/*.proto ```