2.3 KiB
2.3 KiB
实现方案 — 2026-04-30
R1 — PyTorch CUDA + SAM2 安装
步骤
pip uninstall torch torchvision torchaudio -ypip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124pip install sam2- 验证:
torch.cuda.is_available()→ True - 修改
backend/services/sam2_engine.py,移除 stub fallback,使用真实 SAM2
SAM2 模型配置
- 模型文件:
/home/wkmgc/Desktop/Seg_Server/models/sam2_hiera_tiny.pt(149MB) - 配置文件: 需下载对应 YAML 或使用默认配置
R2 — 视频封面
后端
frame_parser.py:parse_video()提取第一帧为thumbnail.jpgupload_frames_to_minio(): 同时上传 thumbnail 到projects/{id}/thumbnail.jpgmodels.py: Project 增加thumbnail_url字段schemas.py: ProjectOut 增加thumbnail_urlprojects.py: list_projects / get_project 返回 thumbnail presigned URL
前端
ProjectLibrary.tsx: 卡片背景显示proj.thumbnail_url的<img>
R3 — 帧率
后端
models.py: Project 增加original_fps(float),parse_fps(float, default=30)schemas.py: ProjectOut / ProjectCreate 增加字段frame_parser.py:parse_video()开头用 FFmpeg/FFprobe 读取原始帧率,返回给调用方- 解析时按
parse_fps参数提取帧
media.py:parse_media()传入 parse_fpsmain.py: 默认视频种子逻辑设置 original_fps
前端
useStore.ts: Project 增加original_fps,parse_fpsapi.ts: getProjects / createProject 映射字段ProjectLibrary.tsx: 显示真实帧率original_fps- 上传时弹窗允许设置 parse_fps
R4 — DICOM 批量导入
后端
models.py: Project 增加source_type(str, default="video")schemas.py: ProjectOut 增加 source_typemedia.py:upload_media()支持批量上传(List[UploadFile])- 新增
/api/media/upload/dicom接口,专用于批量 .dcm 上传 - DICOM 文件存储到
uploads/{project_id}/dicom/ - 上传完成后可直接触发解析
frame_parser.py:parse_dicom()支持从 MinIO 读取整个 dicom 目录
前端
ProjectLibrary.tsx:- 导入按钮支持两种模式: 视频导入 / DICOM 序列导入
- DICOM 模式:
<input multiple accept=".dcm"> - 上传进度显示
useStore.ts: Project 增加source_type