reCamera Pro 识别人脸并判定是否开门,GPIO 直接驱动继电器。
- 服务器: 一台装 Docker 的 Linux 服务器(不需要 GPU),运行人脸库、管理界面和 MQTT broker。
- 外设: 继电器模块,干接点接门禁控制器的开门输入。
reCamera Pro 识别人脸并判定是否开门,GPIO 直接驱动继电器。
在一台服务器上启动人脸库、MQTT broker 和管理界面。
| 现象 | 处理 |
|---|---|
找不到 docker compose | 在服务器上安装 docker-compose-plugin。 |
提示 NTP is not synchronised | 在服务器上执行 sudo timedatectl set-ntp true。 |
| 8080 端口被占用 | 修改人脸库端口,后续步骤的人脸库地址用同一个端口。 |
| 8088 端口被占用 | 释放 8088 端口,后续步骤的管理界面页面固定打开这个端口。 |
| 人脸库接口返回 404 | 首次注册前属正常。 |
| 管理界面打不开 | 在服务器上执行 docker logs usa-web 查看原因。 |
部署到门口设备可以访问的一台 Linux 服务器。
门口设备必须能访问这个地址。
ubuntu808080880.40各门口设备须填同一个值。
注册人员时管理界面调用的识别服务。留空时注册的人不会被识别。
决定人脸库版本里写入的模型标识。必须与门口实际设备一致,否则谁都认不出来。套餐 A 选 reCamera Pro;套餐 B、C 选标准版 reCamera;套餐 D 选 AI 主机。
登录管理界面时使用。
[]要在管理界面设备页显示的标准版 reCamera。其他套餐保持 `[]`。
在管理界面「人员库」为每个人上传 3 到 8 张照片完成注册。
| 现象 | 处理 |
|---|---|
| 注册被拒,提示少于三张图 | 至少上传 3 张照片。 |
| 新注册的人门仍不开 | 等 30 s 让设备拉取新版本后再试。 |
| 回滚被拒并提示某个人 | 此人已被删除。通过注册或编辑发布新版本,不要回滚。 |
设备提示 model_tag 不匹配 | 把识别服务地址指向门口设备上的识别服务,重新部署步骤 1 后重新注册。 |
把继电器接到摄像头和门禁控制器。
| 现象 | 处理 |
|---|---|
| GPIO 130 被其他程序占用 | 换一个空闲 GPIO,下一步填写对应编号。 |
在摄像头上启动 F1 门禁并写入门禁设置,摄像头上正在运行的其他应用会被停止。
先在摄像头上装好 F1 门禁(0.1.5 或以上):
表单中的服务器 IP、端口、匹配阈值与签名密钥自动取自步骤 1,只需填写门名称、GPIO 编号、继电器触点与断电后门的状态。
| 现象 | 处理 |
|---|---|
| 提示应用未安装 | 按前置条件在应用中心安装 F1 门禁。 |
提示 unknown parameter | F1 门禁版本低于 0.1.5,在应用中心更新后重新部署。 |
| 激活超时 | 刚装完第一次激活较慢,重试一次。 |
提示 npu.direct is busy | 在应用中心停止正在运行的其他应用后重新部署。 |
| 上电时门开了一次 | 继电器触点选反了,改正后重新部署。 |
在管理界面「设备」页确认门口设备用上了刚发布的库版本。
| 现象 | 处理 |
|---|---|
desired_version 落后于服务端 current | 等 30 s 后刷新页面。 |
active_version 落后于 desired_version | 查看 last_error,多为匹配阈值与步骤 1 不一致,用相同的值重新部署设备步骤。 |
signature.verified 为 null | 正常,验签失败会显示在 last_error。 |
clock.valid 为 false | 没有 NTP 的设备上属正常。 |
有人出现在 only_on_device | 有人直接在设备上注册过,下一个版本会覆盖。 |
| 页面为空 | 还没有设备上报,检查门口设备是否在线。 |
测试这道门:注册的人能开,照片不能开,远程开门可用。
| 现象 | 处理 |
|---|---|
| 照片能开门 | 停用这道门,检查识别服务 /health 中活体为 loaded。 |
回执为 executed 但继电器不响 | 检查继电器接线和设备上配置的引脚。 |
| 一次靠近继电器响两次 | 调大设备上的去抖时间后重测。 |
| 审计校验失败 | 保留日志文件,检查是否有两个进程在写它。 |
| 事件不再上报但门仍能开 | 摄像头在本地开门,检查它与 MQTT broker 1883 端口的连接。 |
debounced,继电器不再响。liveness_failed,继电器不响。executed。reCamera 2002 HQ PoE 识别人脸、判定是否开门,并用底板排针直接驱动继电器,开门路径不经过网络。
在一台服务器上启动人脸库、MQTT broker 和管理界面。
| 现象 | 处理 |
|---|---|
找不到 docker compose | 在服务器上安装 docker-compose-plugin。 |
提示 NTP is not synchronised | 在服务器上执行 sudo timedatectl set-ntp true。 |
| 8080 端口被占用 | 修改人脸库端口,后续步骤的人脸库地址用同一个端口。 |
| 8088 端口被占用 | 释放 8088 端口,后续步骤的管理界面页面固定打开这个端口。 |
| 人脸库接口返回 404 | 首次注册前属正常。 |
| 管理界面打不开 | 在服务器上执行 docker logs usa-web 查看原因。 |
部署到门口设备可以访问的一台 Linux 服务器。
门口设备必须能访问这个地址。
ubuntu808080880.40各门口设备须填同一个值。
注册人员时管理界面调用的识别服务。留空时注册的人不会被识别。
决定人脸库版本里写入的模型标识。必须与门口实际设备一致,否则谁都认不出来。套餐 A 选 reCamera Pro;套餐 B、C 选标准版 reCamera;套餐 D 选 AI 主机。
登录管理界面时使用。
[]要在管理界面设备页显示的标准版 reCamera。其他套餐保持 `[]`。
在管理界面「人员库」为每个人上传 3 到 8 张照片完成注册。
| 现象 | 处理 |
|---|---|
| 注册被拒,提示少于三张图 | 至少上传 3 张照片。 |
| 新注册的人门仍不开 | 等 30 s 让设备拉取新版本后再试。 |
| 回滚被拒并提示某个人 | 此人已被删除。通过注册或编辑发布新版本,不要回滚。 |
设备提示 model_tag 不匹配 | 把识别服务地址指向门口设备上的识别服务,重新部署步骤 1 后重新注册。 |
在 reCamera PoE 上安装门禁应用并写入人脸库设置。
192.168.42.1)或在同一网络,并知道 recamera 用户的 SSH 密码。http://<服务器 IP>:8080。/userdata 至少 20 MB 空闲。继电器怎么取电。 两种都行:
外部 5 V——一个 5 V USB 充电头,或门控侧已有的 12 V 经 DC-DC 降到 5 V,电源的地接到排针 GND,不用动板子。
板上焊接——PoE 底板(B3 PoE v1.2)上有 5 V 与 GND 焊盘,位置见下图,焊两根线出来。PoE 供电总量有限(板上保险 2 A、主路标称 1.2 A),继电器 100 mA 在余量内。焊前用万用表确认这两点是 5 V 与 GND。

| 现象 | 处理 |
|---|---|
| 摄像头上仍是原厂 face-recognition 应用 | 在摄像头上移除 face-recognition 后重新部署。 |
agent.log 结尾是 thresholds are not single-sourced | 重新部署这一步,不要手动修改 /userdata/f1-access/face-recognition.conf。 |
| 一个库版本都没激活 | 确认摄像头能访问人脸库地址;匹配阈值若被改成与步骤 1 不同的值,改回后重新部署。 |
| 启动时门开了一次 | 有效电平选错,接门禁控制器之前先改正。 |
| 继电器一直不响 | 确认接的是排针 D1,且 /userdata/f1-access/face-recognition.conf 中 [gpio] enabled = true。 |
在管理界面「设备」页确认门口设备用上了刚发布的库版本。
| 现象 | 处理 |
|---|---|
desired_version 落后于服务端 current | 等 30 s 后刷新页面。 |
active_version 落后于 desired_version | 查看 last_error,多为匹配阈值与步骤 1 不一致,用相同的值重新部署设备步骤。 |
signature.verified 为 null | 正常,验签失败会显示在 last_error。 |
clock.valid 为 false | 没有 NTP 的设备上属正常。 |
有人出现在 only_on_device | 有人直接在设备上注册过,下一个版本会覆盖。 |
| 页面为空 | 在步骤 1 填写设备控制端点并重新部署。 |
测试这道门:注册的人能开,照片不能开,远程开门可用。
| 现象 | 处理 |
|---|---|
| 照片能开门 | 停用这道门,检查识别服务 /health 中活体为 loaded。 |
回执为 executed 但继电器不响 | 检查排针 D1 的接线和继电器的触发电平。 |
| 一次靠近继电器响两次 | 调大设备上的去抖时间后重测。 |
| 审计校验失败 | 保留日志文件,检查是否有两个进程在写它。 |
| 管理界面没有事件 | 检查摄像头能访问服务器 1883 端口。 |
debounced,继电器不再响。liveness_failed,继电器不响。executed。reCamera 2002 或 2002w 识别人脸并判定是否开门。摄像头没有可用排针,开门指令经 MQTT 发到继电器节点。
在一台服务器上启动人脸库、MQTT broker 和管理界面。
| 现象 | 处理 |
|---|---|
找不到 docker compose | 在服务器上安装 docker-compose-plugin。 |
提示 NTP is not synchronised | 在服务器上执行 sudo timedatectl set-ntp true。 |
| 8080 端口被占用 | 修改人脸库端口,后续步骤的人脸库地址用同一个端口。 |
| 8088 端口被占用 | 释放 8088 端口,后续步骤的管理界面页面固定打开这个端口。 |
| 人脸库接口返回 404 | 首次注册前属正常。 |
| 管理界面打不开 | 在服务器上执行 docker logs usa-web 查看原因。 |
部署到门口设备可以访问的一台 Linux 服务器。
门口设备必须能访问这个地址。
ubuntu808080880.40各门口设备须填同一个值。
注册人员时管理界面调用的识别服务。留空时注册的人不会被识别。
决定人脸库版本里写入的模型标识。必须与门口实际设备一致,否则谁都认不出来。套餐 A 选 reCamera Pro;套餐 B、C 选标准版 reCamera;套餐 D 选 AI 主机。
登录管理界面时使用。
[]要在管理界面设备页显示的标准版 reCamera。其他套餐保持 `[]`。
在管理界面「人员库」为每个人上传 3 到 8 张照片完成注册。
| 现象 | 处理 |
|---|---|
| 注册被拒,提示少于三张图 | 至少上传 3 张照片。 |
| 新注册的人门仍不开 | 等 30 s 让设备拉取新版本后再试。 |
| 回滚被拒并提示某个人 | 此人已被删除。通过注册或编辑发布新版本,不要回滚。 |
设备提示 model_tag 不匹配 | 把识别服务地址指向门口设备上的识别服务,重新部署步骤 1 后重新注册。 |
在 reCamera 上安装门禁应用并写入人脸库设置。
192.168.42.1)或在同一网络,并知道 recamera 用户的 SSH 密码。http://<服务器 IP>:8080。/userdata 至少 20 MB 空闲。| 现象 | 处理 |
|---|---|
| 摄像头上仍是原厂 face-recognition 应用 | 在摄像头上移除 face-recognition 后重新部署。 |
agent.log 结尾是 thresholds are not single-sourced | 重新部署这一步,不要手动修改 /userdata/f1-access/face-recognition.conf。 |
| 一个库版本都没激活 | 确认摄像头能访问人脸库地址;匹配阈值若被改成与步骤 1 不同的值,改回后重新部署。 |
提示 mqtt.host 不匹配 | 在 /userdata/f1-access/face-recognition.conf 中设置 [mqtt] host = localhost。 |
| 已下发开门但继电器不响 | 确认继电器节点已连上 broker,且它的 Relay ID 与执行器 ID 一致。 |
在管理界面「设备」页确认门口设备用上了刚发布的库版本。
| 现象 | 处理 |
|---|---|
desired_version 落后于服务端 current | 等 30 s 后刷新页面。 |
active_version 落后于 desired_version | 查看 last_error,多为匹配阈值与步骤 1 不一致,用相同的值重新部署设备步骤。 |
signature.verified 为 null | 正常,验签失败会显示在 last_error。 |
clock.valid 为 false | 没有 NTP 的设备上属正常。 |
有人出现在 only_on_device | 有人直接在设备上注册过,下一个版本会覆盖。 |
| 页面为空 | 在步骤 1 填写设备控制端点并重新部署。 |
测试这道门:注册的人能开,照片不能开,远程开门可用。
| 现象 | 处理 |
|---|---|
| 照片能开门 | 停用这道门,检查识别服务 /health 中活体为 loaded。 |
回执为 executed 但继电器不响 | 检查继电器接线和继电器节点上配置的引脚。 |
| 一次靠近继电器响两次 | 调大设备上的去抖时间后重测。 |
| 审计校验失败 | 保留日志文件,检查是否有两个进程在写它。 |
| 管理界面没有事件 | 检查摄像头能访问服务器 1883 端口。 |
debounced,继电器不再响。liveness_failed,继电器不响。executed。AI 主机拉取门口现有摄像头的 RTSP 流,识别人脸并判定是否开门。
在一台服务器上启动人脸库、MQTT broker 和管理界面。
| 现象 | 处理 |
|---|---|
找不到 docker compose | 在服务器上安装 docker-compose-plugin。 |
提示 NTP is not synchronised | 在服务器上执行 sudo timedatectl set-ntp true。 |
| 8080 端口被占用 | 修改人脸库端口,后续步骤的人脸库地址用同一个端口。 |
| 8088 端口被占用 | 释放 8088 端口,后续步骤的管理界面页面固定打开这个端口。 |
| 人脸库接口返回 404 | 首次注册前属正常。 |
| 管理界面打不开 | 在服务器上执行 docker logs usa-web 查看原因。 |
部署到门口设备可以访问的一台 Linux 服务器。
门口设备必须能访问这个地址。
ubuntu808080880.40各门口设备须填同一个值。
注册人员时管理界面调用的识别服务。留空时注册的人不会被识别。
决定人脸库版本里写入的模型标识。必须与门口实际设备一致,否则谁都认不出来。套餐 A 选 reCamera Pro;套餐 B、C 选标准版 reCamera;套餐 D 选 AI 主机。
登录管理界面时使用。
[]要在管理界面设备页显示的标准版 reCamera。其他套餐保持 `[]`。
在管理界面「人员库」为每个人上传 3 到 8 张照片完成注册。
| 现象 | 处理 |
|---|---|
| 注册被拒,提示少于三张图 | 至少上传 3 张照片。 |
| 新注册的人门仍不开 | 等 30 s 让设备拉取新版本后再试。 |
| 回滚被拒并提示某个人 | 此人已被删除。通过注册或编辑发布新版本,不要回滚。 |
设备提示 model_tag 不匹配 | 把识别服务地址指向门口设备上的识别服务,重新部署步骤 1 后重新注册。 |
在主机上拉起识别服务与门禁节点。按主机型号与继电器接法选择部署目标。
sensecraft-statics.seeed.cc,用于下载约 32 MB 模型文件。| 现象 | 处理 |
|---|---|
access-node 反复重启,日志有 config error: | 执行 docker compose exec access-node access-node check-config 查看被拒的配置项。 |
access-node 一直 unhealthy | 执行 docker compose exec access-node access-node healthcheck 查看哪一项不通。 |
提示 LIVENESS IS NOT LOADED | 确认模型下载完成后重新部署。 |
| RTSP 在笔记本上能播、主机上不能 | 检查主机到摄像头的网络和 RTSP 账号密码。 |
| 明文人脸库地址被拒 | 先部署步骤 1 生成签名密钥,再重新部署这一步。 |
| 启动时门开了一次 | 有效电平反了,接门禁控制器之前先改正。 |
继电器接 J20 的 DO 输出。GPIO 接口选 sysfs,填写 DO 的 sysfs 编号。
sysfs、DO 的 sysfs GPIO 编号、有效电平、继电器触点、失效模式。recomputerdoor-front会拼进 MQTT 主题,也会写进每一条审计记录。按门命名,多道门在同一个 broker 上才分得开。
front远程开门指令按这个编号寻址。
部署前先在主机上测通这个地址。
sensecraft-missionpack.seeed.cn/solution/face-rec-api@sha256:0b0f37e2b170194f3e5b0577b6cd18ef6565143b7e637bd5d0ffb383aec0d5a1保持默认值,除非使用自己的构建。
sensecraft-missionpack.seeed.cn/solution/unmanned-store-access-node:0.1.1保持默认值,除非使用自己的构建。
sysfsJ20 选 sysfs;J30 / J40 选 libgpiod。
gpiochip0仅 libgpiod。reComputer J30 / J40 上为 gpiochip0。
仅 libgpiod。按部署页对照表填写 line(pin 31 = 106),不要用 `gpioinfo` 标为 used 的线。
仅 sysfs。DO1–DO4 预期为 463/464/465/462,用万用表确认。
哪个电平触发继电器。填反的话,引脚初始化时门就会被脉冲一次。
1500触点闭合多久,500–5000 ms。超界的值会被拒绝而不是钳位——钳位会把配错的 10 s 悄悄变成看起来合理的 5 s。
锁接在哪个触点上。断电即开的电磁锁接到 NO 上会长期敞门,而且看起来像装好了。
断电时这套安装应当怎样。它必须与你真正买的锁、真正接的触点一致。
0.62初始值,在装好的摄像头上测试后调整。
30新版本人脸库的激活时延基本就是这个数字加上下载时间。调小它花的是请求数,不影响正确性。
1883false随包 broker 不带 TLS,配合它时选关闭。
| 现象 | 处理 |
|---|---|
提示 gpio N is ALREADY EXPORTED | 该输出被其他程序占用,换一路 DO 或停掉那个程序。 |
在管理界面「设备」页确认门口设备用上了刚发布的库版本。
| 现象 | 处理 |
|---|---|
desired_version 落后于服务端 current | 等 30 s 后刷新页面。 |
active_version 落后于 desired_version | 查看 last_error,多为匹配阈值与步骤 1 不一致,用相同的值重新部署设备步骤。 |
signature.verified 为 null | 正常,验签失败会显示在 last_error。 |
clock.valid 为 false | 没有 NTP 的设备上属正常。 |
有人出现在 only_on_device | 有人直接在设备上注册过,下一个版本会覆盖。 |
| 页面为空 | 还没有设备上报,检查门口设备是否在线。 |
测试这道门:注册的人能开,照片不能开,远程开门可用。
| 现象 | 处理 |
|---|---|
| 照片能开门 | 停用这道门,检查识别服务 /health 中活体为 loaded。 |
回执为 executed 但继电器不响 | 检查继电器接线和设备上配置的引脚。 |
| 一次靠近继电器响两次 | 调大设备上的去抖时间后重测。 |
| 审计校验失败 | 保留日志文件,检查是否有两个进程在写它。 |
| 容器反复重启 | 执行 docker logs usa-access-node 查看被拒的设置。 |
debounced,继电器不再响。liveness_failed,继电器不响。executed。