Files
Pre_Seg_Server/工程分析/实现方案-20260430_001744.md

2.3 KiB
Raw Permalink Blame History

实现方案 — 2026-04-30

R1 — PyTorch CUDA + SAM2 安装

步骤

  1. pip uninstall torch torchvision torchaudio -y
  2. pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
  3. pip install sam2
  4. 验证: torch.cuda.is_available() → True
  5. 修改 backend/services/sam2_engine.py,移除 stub fallback使用真实 SAM2

SAM2 模型配置

  • 模型文件: /home/wkmgc/Desktop/Seg_Server/models/sam2_hiera_tiny.pt (149MB)
  • 配置文件: 需下载对应 YAML 或使用默认配置

R2 — 视频封面

后端

  1. frame_parser.py: parse_video() 提取第一帧为 thumbnail.jpg
  2. upload_frames_to_minio(): 同时上传 thumbnail 到 projects/{id}/thumbnail.jpg
  3. models.py: Project 增加 thumbnail_url 字段
  4. schemas.py: ProjectOut 增加 thumbnail_url
  5. projects.py: list_projects / get_project 返回 thumbnail presigned URL

前端

  1. ProjectLibrary.tsx: 卡片背景显示 proj.thumbnail_url<img>

R3 — 帧率

后端

  1. models.py: Project 增加 original_fps (float), parse_fps (float, default=30)
  2. schemas.py: ProjectOut / ProjectCreate 增加字段
  3. frame_parser.py:
    • parse_video() 开头用 FFmpeg/FFprobe 读取原始帧率,返回给调用方
    • 解析时按 parse_fps 参数提取帧
  4. media.py: parse_media() 传入 parse_fps
  5. main.py: 默认视频种子逻辑设置 original_fps

前端

  1. useStore.ts: Project 增加 original_fps, parse_fps
  2. api.ts: getProjects / createProject 映射字段
  3. ProjectLibrary.tsx: 显示真实帧率 original_fps
  4. 上传时弹窗允许设置 parse_fps

R4 — DICOM 批量导入

后端

  1. models.py: Project 增加 source_type (str, default="video")
  2. schemas.py: ProjectOut 增加 source_type
  3. media.py:
    • upload_media() 支持批量上传(List[UploadFile]
    • 新增 /api/media/upload/dicom 接口,专用于批量 .dcm 上传
    • DICOM 文件存储到 uploads/{project_id}/dicom/
    • 上传完成后可直接触发解析
  4. frame_parser.py: parse_dicom() 支持从 MinIO 读取整个 dicom 目录

前端

  1. ProjectLibrary.tsx:
    • 导入按钮支持两种模式: 视频导入 / DICOM 序列导入
    • DICOM 模式: <input multiple accept=".dcm">
    • 上传进度显示
  2. useStore.ts: Project 增加 source_type