Skip to content

137277900675a/vlm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

工地安全 VLM 系统

本项目基于开源视觉语言模型(VLM)与 LoRA 微调,实现对工地安全隐患的视觉问答(VQA)识别与结构化输出。

目录结构

D:\vlm\
├── data/
│   ├── raw/helmet/kaggle/images/    # 501张原始图片
│   ├── processed/                     # VLM自动标注结果
│   └── vqa/train.jsonl               # 300条VQA训练样本
├── src/
│   ├── config/paths.py               # 路径配置
│   ├── data/                         # 数据处理
│   ├── app/streamlit_app.py          # 前端界面
│   ├── training/finetune_lora.py     # LoRA微调脚本
│   ├── inference/demo.py             # 推理Demo
│   └── evaluation/evaluate.py        # 评估脚本
├── models/lora_safety/               # LoRA权重输出目录
├── outputs/
│   └── vqa_representative_samples.json  # 24条代表性样本
├── requirements.txt
└── README.md

快速开始

0. 下载模型(国内镜像)

python -m src.models.download_qwen_model --size 2B

1. 启动前端(工地安全多模态助手)

cd D:\vlm
streamlit run src/app/streamlit_app.py --server.port 8502

访问 http://localhost:8502

2. LoRA 微调

cd D:\vlm
python -m src.training.finetune_lora ^
  --model_name Qwen/Qwen2-VL-2B-Instruct ^
  --data_path data/vqa/train.jsonl ^
  --output_dir models/lora_safety ^
  --num_epochs 3 ^
  --batch_size 2 ^
  --learning_rate 2e-4

3. 推理Demo

Base模型推理:

python -m src.inference.demo ^
  --image data\raw\helmet\kaggle\images\hard_hat_workers1.png ^
  --question "这张图中有哪些安全隐患?"

微调模型推理:

python -m src.inference.demo ^
  --image data\raw\helmet\kaggle\images\hard_hat_workers1.png ^
  --question "这张图中有哪些安全隐患?" ^
  --use_finetuned

4. 评估

本地模型评估(推荐):

python -m src.evaluation.evaluate ^
  --test_data data/vqa/train.jsonl ^
  --lora_path models/lora_safety ^
  --num_samples 50

API快速测试(辅助):

python -m src.evaluation.eval_api --compare --compare_samples 5

| 样本输出 | ✅ | 24条代表性VQA样本(JSON) |

核心代码

  • src/training/finetune_lora.py - LoRA微调(使用本地模型)
  • src/inference/demo.py - 推理Demo(使用本地模型)
  • src/evaluation/evaluate.py - 评估脚本(使用本地模型,Base vs FT对比)
  • src/evaluation/eval_api.py - API快速测试(辅助工具,仅用于标注)
  • src/app/streamlit_app.py - Streamlit前端

技术参数

  • 基础模型: Qwen2-VL-2B-Instruct
  • LoRA配置: Rank=16, Alpha=32, Dropout=0.05
  • 训练参数: Epochs=3, Batch=2, LR=2e-4, BF16
  • 数据集: 501张图片 → 300条VQA样本

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages