综合介绍
Find My Kids 是一个开源项目,托管在 GitHub 上,由开发者 Tomer Klein 创建。它结合了 DeepFace 人脸识别技术和 WhatsApp Green API,旨在帮助家长通过 WhatsApp 群组监控孩子的安全。用户可以在群组中分享图片,系统会自动分析图片中的人脸,识别预设的孩子面部特征,并向指定联系人发送实时通知。这款工具适合需要远程关注孩子安全的家庭,操作简单且功能强大。项目使用 Python 开发,支持 Docker 部署,代码开放,允许用户自由修改和优化。
功能列表
- 人脸识别:利用 DeepFace 技术,分析 WhatsApp 群组中的图片,识别预设的孩子面部特征。
- 实时通知:通过 WhatsApp Green API,向家长发送孩子被识别到的即时消息。
- 图片训练:支持用户上传孩子的照片,用于训练人脸识别模型。
- Web 界面:提供直观的 Web UI,方便用户管理图片和重新训练模型。
- Docker 支持:通过 Docker 容器部署,简化安装和运行流程。
- 自定义配置:允许用户设置 WhatsApp API 凭证和存储路径,灵活适配需求。
使用帮助
安装流程
Find My Kids 是一个基于 Python 的项目,推荐使用 Docker 进行部署,以下是详细的安装和配置步骤:
- 准备环境
- 确保系统已安装 Docker 和 Docker Compose。
- 访问 WhatsApp Green API 官网,注册一个账户。
- 注册后,创建开发者实例(免费层级),获取
InstanceId
和Token
。
- 克隆项目
在终端运行以下命令,将项目代码下载到本地:git clone https://github.com/t0mer/Find-my-kids.git cd Find-my-kids
- 配置 WhatsApp API
- 创建一个
.env
文件,或直接修改docker-compose.yml
文件中的环境变量。 - 添加以下内容:
GREEN_API_INSTANCE=your_whatsapp_instance_id GREEN_API_TOKEN=your_whatsapp_api_token
- 确保不要配置 webhook URL,因为它会干扰程序的正常运行。
- 创建一个
- 准备训练图片
- 在项目目录下,创建
find-my-kids/images/trainer
文件夹。 - 为每个孩子创建一个子文件夹,例如
Kid1
、Kid2
等。 - 将孩子的清晰照片(jpg 格式)放入对应文件夹,示例结构:
images/ └── trainer/ ├── Kid1/ │ ├── image1.jpg │ ├── image2.jpg ├── Kid2/ │ ├── image1.jpg └── ...
- 在项目目录下,创建
- 运行项目
- 在项目根目录运行:
docker-compose up -d
- Docker 将自动拉取
techblog/find-my-kids:latest
镜像并启动容器。 - 项目默认监听
7020
端口,可通过http://localhost:7020
访问 Web 界面。
- 在项目根目录运行:
- 验证安装
- 打开浏览器,访问
http://localhost:7020
,检查 Web 界面是否正常加载。 - 登录 WhatsApp 群组,确保你的账户已加入目标群组,并能接收通知。
- 打开浏览器,访问
使用方法
Find My Kids 的核心功能是通过人脸识别监控孩子的安全,以下是详细的操作流程:
配置人脸识别模型
- 上传训练图片:在 Web 界面中,进入“Gallery”选项卡,查看已上传的训练图片。
- 重新训练模型:点击“re-train”按钮,系统会根据
trainer
文件夹中的图片重新生成人脸识别模型。 - 注意事项:确保每张图片清晰,包含孩子的正面人脸,避免模糊或光线不足的照片。
监控 WhatsApp 群组
- 加入群组:确保你的 WhatsApp 账户已加入目标群组,系统会自动监控群组中的图片。
- 图片分析:当群组中有人分享图片,Find My Kids 会调用 DeepFace 分析图片,匹配预设的孩子人脸。
- 接收通知:如果识别到孩子,系统通过 WhatsApp Green API 向指定联系人发送消息,包含识别结果和时间戳。
管理通知
- 自定义通知:在配置文件中,可以设置通知的接收人(WhatsApp 号码)和消息格式。
- 查看历史:Web 界面提供识别记录,方便用户查看历史匹配结果。
Web 界面操作
- 导航:Web UI 包含“Gallery”、“Settings”和“Logs”三个主要选项卡。
- Gallery:管理训练图片和模型训练。
- Settings:调整 API 凭证、存储路径等配置。
- Logs:查看系统运行日志,便于排查问题。
注意事项
- 隐私保护:确保训练图片仅包含孩子的照片,避免上传无关人员图像。
- 网络要求:Docker 容器需要稳定的网络连接,以访问 WhatsApp API。
- 模型精度:识别效果依赖于训练图片的质量和数量,建议为每个孩子上传至少 5 张不同角度的照片。
- 法律合规:使用人脸识别功能时,遵守当地隐私和数据保护法规。
常见问题排查
- 无法连接 WhatsApp API:检查
GREEN_API_INSTANCE
和GREEN_API_TOKEN
是否正确,确认 WhatsApp 账户已通过 QR 码授权。 - 人脸识别失败:确保训练图片清晰,重新训练模型后重试。
- 容器启动失败:运行
docker logs find-my-kids
查看错误日志,检查 Docker 配置或网络问题。
通过以上步骤,用户可以快速部署和使用 Find My Kids,确保孩子的安全监控。项目的开源性质也允许开发者根据需求添加新功能,例如支持更多通知渠道或优化识别算法。
应用场景
- 家庭安全监控
家长可以将 Find My Kids 部署在家中服务器上,监控孩子在学校或社区活动中的照片。例如,学校活动群组分享的图片可以被系统自动分析,家长能及时知道孩子是否出现在特定场合。 - 社区儿童保护
社区可以利用 Find My Kids 建立共享监控网络。邻居在 WhatsApp 群组中分享街区监控照片,系统识别后通知家长,确保孩子在社区内的安全。 - 活动组织者使用
夏令营或课外活动组织者可以用 Find My Kids 监控参与者的安全。活动照片上传到群组后,系统自动识别孩子并通知家长,增加活动透明度。
QA
- Find My Kids 是否需要付费?
项目完全开源,代码免费使用。但需要注册 WhatsApp Green API 的免费开发者实例,可能涉及少量 API 调用费用。 - 人脸识别的准确性如何?
准确性取决于训练图片的质量和数量。建议为每个孩子上传 5-10 张清晰的正面照片,识别率可达 90% 以上。 - 支持其他通知方式吗?
当前仅支持 WhatsApp 通知。开发者可修改代码,添加短信或电子邮件通知。 - 如何保护数据隐私?
所有图片和数据存储在本地服务器,用户需自行确保服务器安全。不要将敏感数据上传到公共群组。