ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

omiGlass 多模态视觉模型图像描述评测:从 prompts 基准数据到实时问答 Agent 的完整链路

omiGlass 多模态视觉模型图像描述评测:从 prompts 基准数据到实时问答 Agent 的完整链路 omiGlass 多模态视觉模型图像描述评测从 prompts 基准数据到实时问答 Agent 的完整链路【免费下载链接】FriendAI that sees your screen, listens to your conversations and tells you what to do项目地址: https://gitcode.com/GitHub_Trending/fr/Friend本篇技术指南围绕 omiGlass 开源智能眼镜项目中的omiGlass/prompts/series_1/img_57.md评测文档展开深入讲解该项目如何批量调用多种多模态视觉语言模型llava 系列与 moondream对同一张眼镜实拍照片生成图像描述并解析描述结果如何进入Agent问答流水线最终支撑看见画面、听懂问题、给出回答的智能体能力。读者读完可以完整复现这套评测流程并理解各模型在图像描述任务上的表现差异与其在实时问答中的取舍。一、img_57.md 是什么一份一行图片、四份描述的评测产物在omiGlass/prompts/series_1/目录下存在 57 组一一对应的文件对每组由一张img_N.jpeg600×800 实拍照片和一份同名img_N.md组成。img_57.md正是其中一份自动生成的评测输出文档全文结构非常规整以####Description####作为分隔标记依次记录了四份由不同模型生成的图像描述Description无后缀的基准描述Description (llava-llama3)Description (llava:34b-v1.6)Description (moondream:1.8b-v2-fp16)。也就是说这不是一份人工撰写的说明文档而是一份多模型图像描述能力对比基准benchmark的输出工件。它的核心价值在于同一输入画面、同一套描述指令不同视觉语言模型给出了差异化的观察视角这为评估和选型提供了直接的对照样本。从仓库结构看这类series_*目录是评测数据的组织单位omiGlass/prompts/series_1/下共有 57 张图片及对应 md任何新的图片序列都可以按同样格式追加形成可扩展的评测集。二、评测流水线的源码实现generate.ts 如何批量驱动四个模型img_57.md并非手工编写而是由 omiGlass/prompts/generate.ts 批量生成。理解这个脚本就能掌握整套评测的机制其核心逻辑如下扫描图片遍历prompts/下所有子目录即series_*系列收集其中所有.jpeg文件并推导出对应的输出.md路径replace(.jpeg, .md)。依次跑四个模型对每张图片依次执行runTest调用imageDescription(img)四次分别传入不同模型参数Description不指定模型走默认值Description (llava-llama3)显式传入llava-llama3Description (llava:34b-v1.6)显式传入llava:34b-v1.6Description (moondream:1.8b-v2-fp16)显式传入moondream:1.8b-v2-fp16。拼装输出每次结果以####{title}####\n{output}\n的格式追加到该图片的outputs字符串中。落盘全部测试跑完后将拼接结果写入同名.md文件——这正是img_57.md里####分段的来源。脚本还使用cli-progress输出进度条并预留了被注释掉的imageBlurry模糊度检测扩展位说明这套基准框架本身是可裁剪、可扩展的。底层调用链imageDescription → ollamaInference评测实际调用的是 omiGlass/sources/agent/imageDescription.ts 中导出的imageDescription函数。它的实现非常简洁但定义了整个评测的提示词规范export async function imageDescription(src: Uint8Array, model: KnownModel moondream:1.8b-v2-fp16): Promisestring { return ollamaInference({ model: model, messages: [{ role: system, content: You are a very advanced model and your task is to describe the image as precisely as possible. Transcribe any text you see. }, { role: user, content: Describe the scene, images: [src], }] }); }要点如下默认模型是moondream:1.8b-v2-fp16这是小体量视觉语言模型兼顾了描述质量与推理速度System Prompt 要求尽可能精确地描述图像并转录画面中出现的任何文字——Transcribe any text you see 这一条对于眼镜拍摄场景尤其关键因为 omiGlass 拍到的屏幕、招牌、文档都可能包含需要被读取的文本信息User Prompt 仅用一句Describe the scene说明评测刻意保持指令中性让差异完全由模型能力体现。Ollama 推理适配层KnownModel 与 base64 图像传输ollamaInference实现在 omiGlass/sources/modules/ollama.ts它负责把图像字节流转成 base64 后通过 HTTP 调用 Ollama 的/api/chat接口export type KnownModel | llama3 | llama3-gradient | llama3:8b-instruct-fp16 | llava-llama3 | llava:34b-v1.6 | moondream:1.8b-v2-fp16 | moondream:1.8b-v2-moondream2-text-model-f16实现细节值得注意messages中的每条消息会把images: Uint8Array[]映射为toBase64(image)字符串数组见 omiGlass/sources/utils/base64.ts随后axios.post(keys.ollama, { stream: false, model, messages })一次性请求完整结果请求被backoff包装见 omiGlass/sources/utils/time.ts具备失败重试的容错能力返回结果经过trimIdent清洗见 omiGlass/sources/utils/trimIdent.ts该工具会去掉首尾空行并压缩每行公共缩进保证写入 md 的描述文本干净整齐Ollama 服务地址来自keys.ollama即环境变量EXPO_PUBLIC_OLLAMA_API_URL见 omiGlass/sources/keys.ts默认指向本地 Ollama 的http://localhost:11434/api/chat。三、img_57 画面与四份描述逐条对照img_57.jpeg拍摄的是一位短发男士站在建筑前、仰头看向镜头的画面构图是典型的自下而上的仰拍视角。下面逐条还原img_57.md中四份描述观察各模型的观察重点1. 基准描述Description基准描述把握了画面的人物与空间要素一位短发男士站在建筑前抬头看向相机镜头给出其面部与头部的仰视视角场景看起来在室内或屋顶画面中没有树木等户外元素。它偏向清单式的事实罗列构图、主体、背景归属交代得比较干净。2. llava-llama3llava-llama3 的观察明显带有情绪与叙事色彩它捕捉到喜悦与惊叹的瞬间人物部分面部被手遮挡、隔着手指露出灿烂笑容背景是白色金属屋顶与纵横交错形成图案的黑色梁架明暗对比强烈并进一步解读为感染力的笑容与私人时刻中分享快乐的故事。这份描述在视觉元素之外增加了情感推断与叙事化表达画面细节白顶黑梁的纹理也比基准描述更丰富。3. llava:34b-v1.6llava:34b-v1.6 侧重视角与光线环境人物处于高角度拍摄、向上望且微笑、身体微微倾斜背景因透视关系不够清晰推测为带天花板/屋顶框架结构的室内场景光线提示为白天可能来自头顶的窗户或天窗。它在不确定处使用了it seems likecould be等谨慎措辞体现出对大模型幻觉的抑制倾向。4. moondream:1.8b-v2-fp16moondream 同样描述了仰拍视角下的人物笑容并强调站在带天窗/大窗户的开敞建筑前自然光充满房间。它独立识别出了天窗/大窗采光这一llava:34b 只是猜测的光源细节同时对微笑从下方略微仰角捕捉的镜头语言给出了自己的判断。四模型横向对比维度基准描述llava-llama3llava:34b-v1.6moondream:1.8b-v2-fp16人物主体短发男士仰视镜头手掩面、露齿笑仰头微笑、微侧身仰角微笑背景识别建筑前室内或屋顶白色金属屋顶、黑色梁架屋顶/天花板框架推测天窗/大窗的开敞建筑光线描述未提及未明确白天可能经窗/天窗自然光充满室内风格倾向事实清单情绪化叙事谨慎推断场景光线综合同一张图、同一个提示词四个模型给出了主体一致、细节分层、风格各异的描述这正是该评测集最有价值的地方它把模型差异显性化了为按用途选型提供了依据。四、从评测到实战描述如何驱动 omiGlass 的问答 Agentseries_1评测并非孤立实验它复用的正是 omiGlass/sources/agent/imageDescription.ts 中生产环境同款函数。在真实使用中omiGlass/sources/agent/Agent.ts 的Agent类把图像描述与问答串成完整链路第一步拍照即描述。addPhoto(photos)在AsyncLock内逐张处理眼镜传来的照片对每张调用imageDescription(p)生成描述文本与照片一起存入#photos数组并将最新描述推送到 UI 状态。评测文档里的####Description####正是这一步产物的离线批量形态。第二步描述汇总问答。当用户提问时answer(question)先把所有历史照片的描述拼成Image #0、Image #1…的合并文本再交给llamaFind见 imageDescription.ts。llamaFind构造的 System Prompt 有三个硬约束只能依据提供的图像描述作答不泛化、不推测额外场景答案必须简洁具体。这保证了问答阶段不引入描述之外的幻觉信息。第三步云端大模型推理 语音播报。实际问答推理由 omiGlass/sources/modules/groq-llama3.ts 的groqRequest完成调用的是llama3-70b-8192密钥来自EXPO_PUBLIC_GROQ_API_KEY同时answer()开头会触发startAudio()见 omiGlass/sources/modules/openai.ts为后续 TTS 语音播报做准备。由此可以看清评测与产品的对应关系series_1里跑的四个视觉模型负责看描述Groq 上的 llama3-70b 负责想推理OpenAI TTS 负责说播报img_57.md这类文件就是把看这一环单独拎出来做质量审计的产物。五、本地复现与扩展把评测跑起来参照 omiGlass/README.md 的软件配置步骤可以完整复现这套评测与运行环境# 1. 安装依赖在 omiGlass 目录下 npm install # 或 yarn install # 2. 配置密钥Expo 环境变量 cp .env.template .env # .env 中需设置 # EXPO_PUBLIC_GROQ_API_KEY — Groq 密钥问答用 llama3-70b-8192 # EXPO_PUBLIC_OPENAI_API_KEY — OpenAI 密钥TTS 语音播报用 # EXPO_PUBLIC_OLLAMA_API_URL — Ollama 地址默认 http://localhost:11434/api/chat # 3. 拉取视觉模型本评测的默认模型 ollama pull moondream:1.8b-v2-fp16 # 如需跑满四个模型还需ollama pull llava-llama3、ollama pull llava:34b-v1.6 # 4. 启动应用 npm start复现评测本身则执行generate.ts可用ts-node或项目配置的脚本方式运行它会自动扫描prompts/下所有series_*目录的.jpeg并重写对应的.md文件。若想扩展新增图片在series_1/或新建series_2/目录放入img_N.jpeg重跑generate.ts即自动生成对应 md新增模型在 ollama.ts 的KnownModel联合类型中追加模型名并在generate.ts中仿照现有runTest增加一组测试即可。需要提醒的是运行评测前必须先确保本地 Ollama 已pull了对应模型否则ollamaInference会因接口返回错误而失败backoff重试只能缓解瞬时故障无法替代模型就位。六、评测结果解读给实战选型的参考回到img_57.md本身四份描述揭示的选择逻辑可以概括为三点事实准确性优先选基准描述/llava:34b当需要严格的主体—背景—构图事实如仰视视角、室内/屋顶时基准描述与 llava:34b 的清单式、带限定词的表达更克制幻觉风险相对低叙事丰富度优先选 llava-llama3如果面向用户展示、需要感染力、故事感的生动描述llava-llama3 的输出更自然但要意识到其中包含模型的主观推断如分享快乐的故事不能当作客观事实实时链路选 moondream 默认档imageDescription的默认模型就是moondream:1.8b-v2-fp16在Agent.addPhoto的实时拍照场景里小模型换来的是更快的首 token 延迟与问答阶段的 Groq 云端大模型形成轻前端 重推理的分工。最后需要强调一个边界无论哪个模型图像描述都是概率推理结果而非绝对事实——同一画面出现屋顶/天花板手部遮挡等细节分歧正如本案例所示恰恰说明在 omiGlass 这类随拍场景中多模型交叉评测是评估看见能力的可靠手段而非单一描述可以尽信。评测集的持续扩充新增 series、新增模型正是为了让这种交叉验证覆盖更多真实画面。相关文件索引评测数据omiGlass/prompts/series_1/img_57.md本文主体、omiGlass/prompts/series_1/img_57.jpeg评测流水线omiGlass/prompts/generate.ts描述函数omiGlass/sources/agent/imageDescription.tsOllama 推理适配omiGlass/sources/modules/ollama.ts实时问答 AgentomiGlass/sources/agent/Agent.ts、omiGlass/sources/modules/groq-llama3.ts配置与密钥omiGlass/sources/keys.ts、omiGlass/README.md【免费下载链接】FriendAI that sees your screen, listens to your conversations and tells you what to do项目地址: https://gitcode.com/GitHub_Trending/fr/Friend创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表