You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
lqy0707 cd38c17f22
钥匙柜
3 weeks ago
arcsoft 钥匙柜 3 weeks ago
commands 钥匙柜 3 weeks ago
conf 钥匙柜 3 weeks ago
endpoints 钥匙柜 3 weeks ago
helper 钥匙柜 3 weeks ago
models 钥匙柜 3 weeks ago
services 钥匙柜 3 weeks ago
task 钥匙柜 3 weeks ago
templates 钥匙柜 3 weeks ago
transfer 钥匙柜 3 weeks ago
.env 钥匙柜 3 weeks ago
ArcFacePro64.dat 钥匙柜 3 weeks ago
README.md 钥匙柜 3 weeks ago
main.py 钥匙柜 3 weeks ago
requirement.txt 钥匙柜 3 weeks ago
rmscmd.py 钥匙柜 3 weeks ago
上下位机协议.md 钥匙柜 3 weeks ago
药剂流转流程.jpg 钥匙柜 3 weeks ago

README.md

准备工作

Python >= 3.8.0 (推荐3.10.11版本)
Mysql >= 5.7.0 (可选推荐8.0版本)
Redis(可选最新版)

下载代码

后端运行

  1. 创建虚拟环境python -m venv venv
  2. 安装依赖环境: pip3 install -r requirements.txt
  3. 启动项目: python3 main.py

在线接口文档

访问地址:http://localhost:8080/docs (opens new window)(默认为此地址,如有修改请按照配置文件)

项目结构

├── api                             // 接口文件
   ├── sessions.py                 // 登录模块
       ├── router.py              // 子路由
       ├── user.py                // 用户接口
       └── role.py                // 角色接口
   └── usenets.py                  // 组网模块
       ├── router.py              // 子路由
       └── xx.py                  // XX功能
   └── router.py                   // 总路由
├── core                            // 核心组件
   ├── Auth.py                     // JWT鉴权
   ├── Event.py                    // 事件监听
   ├── Logger.py                   // 日志
   ├── Response.py                 // 常用返回类型封装
   ├── Utils.py                    // 工具函数
   └── Exception.py                // 异常处理
├── database                        // docker 启动 celery 脚本
   ├── mysql.py                    // mysql数据库
   └── redis.py                    // redis数据库
├── models                          // 模型
   ├── sessions.py                 // 登录模型文件
       ├── user.py                // 用户模型
       └── role.py                // 角色模型
   └── usenets.py                  // 组网模型文件
        └── xx.py                  // XX功能模型
├── schems                          // 请求校验&返回格式化文件
   ├── sessions.py                 // 登录schems文件
       ├── user.py                // 用户schems
       └── role.py                // 角色schems
   └── usenets.py                  // 组网schems文件
        └── xx.py                  // XXschems
├── endpoints                       // 该目录下存放不同设备类型的后端接口柜体/中控/壁挂/下位机 
|   ├── cab                         // 柜体后端WEB接口
|   ├── plane                       // 柜体下位机后端WEB接口
|   ├── terminal                    // 壁挂终端后端WEB接口
|   └── web                         // 中控平台后端WEB入口
├── static                          // 静态资源文件
├── main.py                         // 入口文件
└── requirements.txt                // 项目环境依赖

  • 虹软的配个函数都会返回一盒状态码,要做好状态码的判断工作,确保使用正确,如果状态码 返回值不是 MOK(值为0),说明函数执行出错,可以对照 doc文档中的错误码解释对照
  • 涉及到传入图片的函数操作,要确保送入的图片宽度为 4 的整数倍如果不是则要提前做好裁剪或者做resize操作。
  • 当前默认为图片检测模式人脸属性值中的faceID始终为空当需要运行视频人脸检测的话可以将 初始化引擎 函数中 ASF_DETECT_MODE_IMAGE 改为 ASF_DETECT_MODE_VIDEO即代表追踪模式这样可以减少人脸检测的消耗并且此时返回的人脸信息中的faceID 将会有值,这在视频人脸识别中很有用,可以减少人脸重复提取识别。
  • 特征值和人脸属性检测可能会失败。虹软在做特征提取和属性提取这些功能时会对人脸区域有一个判断操作如果人脸模糊或者提供的人脸坐标位置不对有偏差会返回81925(人脸特征检测结果置信度低)错误码。所以一定要对返回状态码引起重视。
  • 虹软有两个描述人脸检测位置和角度信息的对象ASF_SingleFaceInfo (单人脸信息)ASF_MultiFaceInfo(多人脸信息),人脸识别流程是先检测到人脸,再对人脸提取特征值信息,再用特征值信息比较相似度。虹软人脸检测时返回ASF_MultiFaceInfo 对象(哪怕只检测到了一个人), 用于提取人脸特征信息的函数需要 输入 ASF_SingleFaceInfo 的对象,因此在提取特征信息时,需要根据 ASF_MultiFaceInfo 中的信息 构建 ASF_SingleFaceInfo对象来提取特征值,除了 提取特征值函数外,虹软的其他人脸属性 提取,比如:年龄/性别识别活体检测人脸3D角度 等功能都是要送入ASF_MultiFaceInfo 对象但是其中活体检测又要求单张大图片中只能检测一个活体超出返回未知而3D角度检测单张大图时最多返回4个 人脸的3D角度值这些地方可能不太好控制需要注意。

static添加dictionary_files目录

.env内容 其它配置查看conf/setting.py

# 项目名称
PROJECT_NAME = "珠海食药"

# 虹软
ARCSOFT_APP_ID = '3zedF4M48gsn1XeXaxWVR6DBEJJxDQYxgVk2B3w8KLgA'
ARCSOFT_SDK_KEY = '4HKQrzqK95PrNLSB6vTFaR5GnR47REpoCikzYEd5T3Q2'

# Jwt
JWT_SECRET_KEY = "09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7"
JWT_ALGORITHM = "HS256"


# 药剂是否需要原路返回,(放入不同位置是否需要报警) 0不需要 1需要
BACKTRACK = 0

# 天平串口 com1
BALANCE_SERIAL = '/dev/ttyS0'

# 柜体型号 9000 3000 1804 1806 1800
CLIENT_NUMBER = '9000'
# 数据库连接
DB_URL = 'mysql://root:123456@192.168.2.100:3306/rms_ge_prod'
# 终端ID
TERMINAL_ID = "c97fe831-87bc-47eb-ab0f-88caa4593065"
# 柜体大类ID
DEFAULT_ARCHIVE_ID = "54a3857e-4c1d-4af7-858b-89920b7be38d"

# 天平型号 旧(圆天平)old 新new
BALANCE_MODEL = "old"

conda pip换源

conda activate rms
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

连接总库

DB_URL = 'mysql://root:123456@192.168.20.100:3306/rms_ge_prod'

版本说明

  • 2023.12.26 版本更新 v5.0.1fix展厅分支合并
  • 2023.12.26 版本更新 v5.0.2
    • 修复设为空瓶开封日期处理异常问题
    • 修复定位到孔位盘点接口,对象不存在问题