Q-Multimodal 是一个面向多模态媒体分析的工具集,主要用于从媒体文件中提取视觉、视频和音频特征。它提供本地低层特征提取与基于 Gemini API 的中高层视觉语义分析两类能力。
用途 从图片、视频、音频等媒体中提取特征,用于后续的数据处理与分析。覆盖图像像素特征、视频帧特征、语音/音频特征以及音乐特征的提取,并支持借助 Gemini 进行视觉语义分析。
主要能力 本地流程提供四类通用、由命令行驱动的特征提取脚本:
- 图像视觉特征(pillow/visual_features.py):输入图片,输出 47 个像素特征(颜色、纹理、空间、质量)。
- 视频视觉特征(pillow/video_features.py):输入视频,输出帧级与视频级聚合特征,默认基于场景提取,可选 FFmpeg 固定间隔提取。
- 音频特征(opensmile/audio_features.py):输入视频/音频,输出 8 个可解释分数与原始 openSMILE 特征。
- 音乐特征(librosa/music_features.py):输入音频/视频,输出 13 个音乐原生分数与原始 librosa 特征。 其中 openSMILE 覆盖语音/韵律,librosa 覆盖音乐原生特征(节奏、调性/调式、和声、音色),两者互补。共享工具 common.py 提供 read_input()、save_excel()、derive_subject()、merge_checkpoints()。
Gemini 流程为配置驱动,提供标准与批量两种管线,均读取 pipeline_config.py 定义的路径、schema、元数据格式与校验规则:
- 标准管线(gemini/standard/gemini_standard.py):内联媒体、25 个 worker、自动重试。
- 批量管线(gemini/batch/[0-5]*.py + utils.py):6 步流程,享 50% 折扣,URI 在 48 小时后过期。
批量工作流示例命令(含上传、轮询、重试、合并):
python 0uploadMedia.py --config /path/to/config.py --submit --max-batch-gb 2 --key 1
python 3checkStatus.py --config /path/to/config.py --poll
python 4retryErrors.py --config /path/to/config.py --preview
失败数 >500 时:批量重试
python 4retryErrors.py --config /path/to/config.py --submit python 3checkStatus.py --config /path/to/config.py --poll python 4retryErrors.py --config /path/to/config.py --collect失败数 <=500 或批量重试后:实时回退
python 4retryErrors.py --config /path/to/config.py --standard python 5review.py --config /path/to/config.py --merge 选择建议:超过 5 GB 或超过 10 个 subject 且不紧急时使用批量,否则使用标准管线。每个 GOOGLE_API_KEY{N} 提供 20 GB 配额。
使用方式 首次在项目中采用该技能时进行初始化设置:确认 <BASE_DIR>(读取项目 CLAUDE.md,若未定义则询问用户项目根目录);定位已有的用户资产且不要移动它们,需与用户逐一确认位置,包括输入数据集文件(xlsx/csv/json/parquet)、媒体目录(建议每个 subject 一个子文件夹)、含 GOOGLE_API_KEY1-4 的 .env(仅 Gemini)、系统提示词文件(仅 Gemini);默认指向文件原位置,通过 pipeline_config.py 字段或 CLI 的 --input / --base-dir 参数指向找到的绝对路径,未经明确确认不要移动用户数据。仅在 <BASE_DIR> 下生成 scripts/ 与 output/,将实际使用的管线从 ${SKILL_DIR}/scripts/ 复制到 <BASE_DIR>/scripts/;output/ 在首次运行时由脚本自动创建。随后扫描输入列(适应文件格式)并确认 --id-cols,默认只保留来自 --file-col 的标识列,用户可要求额外列带入输出。 执行管线前应先阅读对应参考文件,其中包含全部参数、输出列定义、边界情况与校验规则。本地管线参考:references/image-visual-features.md、references/video-visual-features.md、references/audio-features.md、references/music-features.md。Gemini 管线参考:references/gemini-batch-workflow.md、references/gemini-standard.md、references/multi-key-management.md。共享参考:references/checkpoint-format.md。 本地命令模式:python <script> --input <file> --base-dir <root> [--features ...] [--id-cols ...] [--subjects ...] [--preview] [--merge]。 依赖:图像视觉需 Pillow、numpy、pandas、tqdm、openpyxl;视频视觉在此基础上加 scenedetect[opencv],使用 --extractor ffmpeg 时需 ffmpeg 在 PATH 中;音频需 opensmile、pandas、tqdm、openpyxl 及 ffmpeg;音乐需 librosa、numpy、scipy、soundfile、pandas、tqdm、openpyxl 及 ffmpeg(压缩/视频格式,经 audioread);Gemini 需 google-genai、python-dotenv 及上述依赖,并有含 GOOGLE_API_KEY1-4 的 .env。
新项目适配 本地管线(Pillow、openSMILE、librosa)无需修改,所有项目特定值通过 CLI 参数传入。Gemini 管线为配置驱动,无需修改脚本:脚本已复制到项目后,适配 <BASE_DIR>/scripts/pipeline_config.py,设置 BASE_DIR、INPUT_PATH、SYSTEM_PROMPT_PATH(相对 BASE_DIR,如 scripts/<prompt>.txt),设置 GROUP_COL、FILE_COL、ANALYSIS_FIELDS 以匹配输入 schema 与系统提示词,实现 subject_id() 与 format_metadata(),可选实现 validate_row() 做字段校验,运行时以 --config <BASE_DIR>/scripts/pipeline_config.py 调用。
适用范围与限制 包含:图像/视频/音频特征提取、Gemini 视觉语义分析、批处理任务管理、检查点合并、多 Key 配额管理。不包含:机器学习模型训练、深度学习推理、实时流式分析。使用前建议核对清单:阅读项目 CLAUDE.md 获取路径与列名;与用户确认 --id-cols 与 --features;用 --preview 干跑确认预期的 subject 与数量;提取完成且失败数为 0 或可接受;Gemini 流程需准备好含 API Key 的 .env 与系统提示词文件。
本工具的具体收费、价格与效果暂未提供。