Skip to content

About

🍼 Smart Crib Guard - 智能婴儿床监控系统。采用Qwen2.5-VL-7B多模态大模型进行LoRA微调,实现婴儿行为9分类识别,支持实时预警与智能交互,融合端云一体化架构。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

智能婴儿床监控系统 Smart Crib Guard

English | 中文

License: MIT Python 3.11+

基于多模态大模型与端云一体化架构,构建智能婴儿床监控系统,实现婴儿状态实时识别、风险预警与智能交互。

✨ 核心特性

  • 🎯 婴儿状态多分类识别:基于 Qwen2.5-VL-7B 的 LoRA 微调,覆盖 9 种典型行为

    • 翻身、爬床栏、哭闹、吐奶、打喷嚏、打哈欠、转身、睡眠、安静状态
    • 训练 Loss 收敛至 0.0175,模型精度优异
  • 📊 自动化数据处理管道

    • 视频自动抽帧,高效数据采集
    • 多种数据增强:亮度调整、角度变换、随机裁剪、镜像翻转
    • JSON 格式化标注,支持批量数据处理
  • 🚀 高效推理部署

    • 支持单张图像和视频批量推理
    • 实时分类结果输出和可视化
    • 混淆矩阵和分类报告生成
  • 🔧 端云一体化架构

    • 本地推理和云端微调相结合
    • 灵活的配置管理系统
    • 支持模型热更新

🚀 快速开始

前置条件

  • Python 3.11+
  • CUDA 12.0+ (推荐使用 GPU)
  • 8GB+ 显存(推荐 16GB+)

安装

# 克隆仓库
git clone https://github.com/Zsyyxrs/smart-crib-guard.git
cd smart-crib-guard

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 安装依赖
pip install -r requirements.txt

快速推理示例

单张图像推理

python scripts/inference/infer_image.py \
  --image_path "path/to/image.jpg" \
  --model_name_or_path "Qwen/Qwen2.5-VL-7B" \
  --adapter_name_or_path "path/to/lora/adapter"

视频推理

python scripts/inference/infer_video.py \
  --video_path "path/to/video.mp4" \
  --model_name_or_path "Qwen/Qwen2.5-VL-7B" \
  --adapter_name_or_path "path/to/lora/adapter" \
  --output_dir "./output"

数据集构建

python scripts/data/build_dataset.py \
  --input_dir "path/to/raw/data" \
  --output_json "dataset.json"

📖 项目结构

smart-crib-guard/
├── README.md                    # 中文文档(主)
├── README_EN.md                 # 英文文档
├── LICENSE                      # MIT 许可证
├── requirements.txt             # 依赖文件
├── pyproject.toml              # 项目配置
│
├── src/
│   └── crib_guard/             # 核心包
│       ├── __init__.py
│       ├── data/               # 数据处理模块
│       │   ├── augmentation.py # 数据增强
│       │   ├── dataset.py      # 数据集处理
│       │   └── processing.py   # 数据预处理
│       ├── models/             # 模型模块
│       │   └── inference.py    # 推理相关
│       └── utils/              # 工具函数
│           └── helpers.py      # 辅助函数
│
├── scripts/                     # 脚本目录
│   ├── train/                  # 训练脚本
│   │   ├── train_lora.py       # LoRA 微调
│   │   └── config/             # 训练配置
│   ├── data/                   # 数据处理脚本
│   │   ├── build_dataset.py    # 构建数据集
│   │   ├── augment.py          # 数据增强
│   │   └── merge.py            # 合并数据集
│   └── inference/              # 推理脚本
│       ├── infer_image.py      # 图像推理
│       └── infer_video.py      # 视频推理
│
├── result/                      # 推理结果目录
│   ├── .gitkeep
│   └── README.md
│
├── output/                      # 模型输出目录
│   ├── .gitkeep
│   └── README.md
│
└── data/                        # 数据目录(仅本地)
    ├── .gitkeep
    └── README.md

📊 核心成果

模型性能

指标 数值
基础模型 Qwen2.5-VL-7B
微调方法 LoRA (r=64, alpha=16)
训练 Loss 0.0175 ↓
识别类别数 9 种
推理延迟 ~1.2s/图像 (GPU)

识别类别

序号 行为类别 风险等级 描述
1 翻身 低 婴儿自主翻身动作
2 爬床栏 高 婴儿尝试爬出床栏
3 哭闹 中 婴儿哭泣状态
4 吐奶 中 婴儿吐奶表现
5 打喷嚏 低 生理反射行为
6 打哈欠 低 正常睡眠迹象
7 转身 低 身体转向动作
8 睡眠 低 正常睡眠状态
9 安静状态 低 清醒且安静

🏗 技术架构

数据处理流程

原始视频
    ↓
[视频抽帧] → 帧序列
    ↓
[数据增强] → 多样化数据集
  • 亮度调整
  • 角度变换
  • 随机裁剪
  • 镜像翻转
    ↓
[JSON 标注] → 标准化格式
    ↓
[数据集构建] → 可用于训练

模型微调流程

Qwen2.5-VL-7B (基础模型)
    ↓
[LoRA 适配器]
    ↓
[监督微调] (SFT)
  • 训练配置:learning_rate=1e-4
  • 批次大小:32
  • 优化器:AdamW
    ↓
[收敛验证] Loss: 0.0175
    ↓
[模型合并] → 生产模型

推理部署

输入(图像/视频)
    ↓
[预处理] → Qwen2.5-VL 格式
    ↓
[模型推理] → 分类结果
    ↓
[后处理] → 风险预警
    ↓
输出(分类结果 + 可视化)

📝 使用示例

1. 构建数据集

from src.crib_guard.data import build_dataset

# 从原始视频构建数据集
dataset = build_dataset(
    video_dir="./data/videos",
    annotation_file="./data/annotations.json",
    output_dir="./output/dataset"
)

2. 批量推理

from src.crib_guard.models import InferenceEngine

engine = InferenceEngine(
    model_name="Qwen/Qwen2.5-VL-7B",
    adapter_path="./output/adapter",
    device="cuda:0"
)

# 推理
results = engine.infer_video("path/to/video.mp4")

# 可视化
engine.visualize_results(results, output_path="./output/results.mp4")

3. 性能评估

python scripts/inference/infer_video.py \
  --video_path "test_video.mp4" \
  --generate_report \
  --save_confusion_matrix

🔧 配置说明

训练配置 (scripts/train/config)

# Qwen2.5-VL-7B LoRA 微调配置
model_name_or_path: Qwen/Qwen2.5-VL-7B
adapter_name_or_path: null
lora_target: q_proj,v_proj,k_proj,o_proj,gate_proj,up_proj,down_proj
lora_rank: 64
lora_alpha: 16
lora_dropout: 0.1
dataset: baby_behavior
template: qwen_vl
learning_rate: 1e-4
num_train_epochs: 3
batch_size: 32

推理配置

# 推理参数
config = {
    "model_name": "Qwen/Qwen2.5-VL-7B",
    "adapter_path": "./output/adapter",
    "temperature": 0.3,
    "max_tokens": 128,
    "device": "cuda:0"
}

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

👤 作者

Shangyi Zhu

📚 参考资源

🎯 后续计划

  • 支持更多视觉模型(如 LLaVA, GPT-4V)
  • 实时推理 Web 服务
  • 移动端部署适配
  • 更大规模数据集训练
  • 行为预测和异常检测

最后更新: 2026-05-29

如有问题,欢迎通过 GitHub Issues 反馈。

About

🍼 Smart Crib Guard - 智能婴儿床监控系统。采用Qwen2.5-VL-7B多模态大模型进行LoRA微调,实现婴儿行为9分类识别,支持实时预警与智能交互,融合端云一体化架构。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages