
人工智能AI 应用智能硬件本地部署可穿戴AI Agent【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址https://gitcode.com/GitHub_Trending/op/OpenGlass点击查看免费下载导读本文基于 OpenGlass 开源智能眼镜项目评测数据集 prompts/series_1/img_17.md 展开逐条剖析同一张模糊过曝图像在四种视觉大模型基础版、llava-llama3、llava:34b-v1.6、moondream:1.8b-v2-fp16下的描述输出并结合 prompts/generate.ts、sources/agent/imageDescription.ts 等源码还原 OpenGlass 图像理解评测管线的完整调用链与工程实现。读完本文你将掌握 OpenGlass 多模型图像描述评测的机制、各模型的输出风格差异、质量判定方法以及如何在自己的智能眼镜项目里复现这套评测流程。一、样本背景这是一条真实的多模型评测记录img_17.md是 OpenGlass 项目prompts/series_1/目录下的第 17 号图像评测记录。它并不是一篇人工撰写的手册而是一份由评测脚本自动生成的模型输出文件每一行####Description (模型名)####之前的内容都是对应视觉模型对同一张输入图片img_17.jpeg的真实推理结果。该文件结构如下####Description####默认模型的描述输出对应 imageDescription.ts 中KnownModel的默认值moondream:1.8b-v2-fp16####Description (llava-llama3)####llava-llama3 模型的输出####Description (llava:34b-v1.6)####llava:34b-v1.6 大模型的输出####Description (moondream:1.8b-v2-fp16)####moondream:1.8b-v2-fp16 模型的输出与第一项同名模型说明同一模型可能被重复评测以作对照。从四条输出看输入图像img_17.jpeg是一张严重模糊、过曝的室内图像画面呈青绿色调左侧为带颗粒质感的暗绿色区域右侧存在强烈过曝的亮斑整体轮廓难以辨识。这正是 OpenGlass 评测集中特意保留的“困难样本”用于考察视觉模型在低质量图像上的鲁棒性。二、评测管线的源码实现从图片目录到 Markdown 输出2.1 脚本入口与文件扫描prompts/generate.ts 是整个评测的驱动器。它通过fs.readdirSync遍历prompts/下的每个系列目录如series_1筛选所有.jpeg图片并把对应的.md文件路径记录为输出目标let files fs.readdirSync(path.join(__dirname, f)); for (let s of files) { if (s.endsWith(.jpeg)) { let image fs.readFileSync(path.join(__dirname, f, s)); imageTests.push({ path: path.join(__dirname, f, s).replace(.jpeg, .md), image, outputs: }); } }这段代码表明每张img_N.jpeg图片都会与同名的img_N.md一一对应评测结束后结果被写回该 md 文件——这正是img_17.md的生成来源。2.2 四组评测的串行执行脚本通过runTest(title, test)对同一批图片依次执行四轮评测generate.tsDescription调用默认模型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的格式追加到outputs字段——这就是img_17.md中####分隔标题的来源。脚本还使用cli-progress的进度条new progress.SingleBar(...)实时显示处理进度便于在大批量图片上观察运行状态。2.3 图像描述的核心调用链所有评测最终都汇入同一个函数 imageDescription.ts 中的imageDescription(src, model)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], }] }); }该函数构建了一条两段式提示词system要求模型尽可能精确地描述图像并转录所见文本Transcribe any text you see——这也解释了为什么img_17.md中四条描述都明确标注画面中没有文字no text present in the image说明模型确实执行了文字转录检查userDescribe the scene并将图片以Uint8Array形式放入images字段随请求发送。KnownModel类型的完整取值定义在 sources/modules/ollama.ts包括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等评测脚本目前只使用了其中四个。2.4 Ollama 推理封装Base64 转换与指数退避ollamaInferencesources/modules/ollama.ts负责真正与 Ollama 服务通信每个 message 中的images数组通过toBase64()转换成 Base64 字符串后放入请求体sources/utils/base64.ts请求以stream: false方式 POST 到keys.ollama配置的服务地址默认http://localhost:11434/api/chatmodel 参数动态指定整个请求被 createBackoff 包装失败时按指数退避重试默认最小延迟 250ms、最大延迟 1000ms、最多重试 50 次提高评测在本地模型服务偶发抖动时的稳定性响应文本经trimIdent去除公共缩进sources/utils/trimIdent.ts后返回。三、img_17 四条模型输出逐条解读3.1 默认模型moondream:1.8b-v2-fp16画面为青绿色背景一道白光从右侧照射、位于画面中心偏上形成独特氛围。这条描述抓住了图像最显著的两个特征——主色调青绿色与光源方位右侧、中心偏上并给出了interesting visual effect / unique atmosphere的定性判断。它没有提及模糊倾向于把画面当作一个正常场景来描述。3.2 llava-llama3特写镜头中的物体居中位于从黑到蓝渐变的深色背景上物体表面有纹理疑似金属或塑料左右各有一盏灯照亮物体无图案、无文字背景虚化是静物构图。这是信息量最丰富、结构化程度最高的一条它识别出居中物体 渐变背景的构图推断材质金属或塑料、光源数量两盏与布局左右各一并明确给出静物构图、无动作发生的场景判定。与默认模型相比llava-llama3 更擅长生成有条理的场景叙事。3.3 llava:34b-v1.6图像非常模糊、失焦右上角有明亮光源可能是发光标志其余场景难以辨认可能包含房间内的设备或结构因缺乏清晰度只能给出大致描述。34B 大参数模型展现出不同的行为模式它直接点明图像质量缺陷blurry、out of focus并对不确定内容保持审慎只能提供大致描述且未虚构具体物体。这条输出恰当地反映了图像质量评估这一侧面与 OpenGlass 同时内置的imageBlurry质量判定目标相呼应。3.4 moondream:1.8b-v2-fp16显式调用模糊的室内画面两面墙壁涂有绿色油漆光源位于墙后造成眩光使画面明亮而失真两侧各有一扇窗户暗示有自然光或外部照明。同为 moondream 模型显式调用时的输出与默认项不同并新增了环境推理把绿色调解读为油漆墙面、亮斑解读为墙后光源造成的眩光甚至推测出窗户与外部照明。这说明同一模型在多次采样下结果存在随机性也说明它倾向于把画面元素脑补成具体室内场景。3.5 四模型对比小结模型是否点明模糊/质量差是否虚构细节结构化程度输出风格moondream默认否低低简短直述llava-llama3否中材质/光源推断高有条理叙事llava:34b-v1.6是低明确说无法辨认中谨慎保守moondream显式是高窗户/墙面脑补中环境联想可以得出一个实践结论在 OpenGlass 的低质量图像评测场景中llava:34b-v1.6 对图像缺陷最诚实llava-llama3 描述结构最佳moondream 家族则可能对模糊画面产生过度联想。因此在实际的智能眼镜问答链路中先用质量判定过滤低质量帧、再交给描述模型是更稳妥的工程选择。四、为什么要评测模糊图像质量判定在智能眼镜中的角色OpenGlass 的愿景是把任何眼镜变成 AI 智能眼镜实时拍摄画面会被送入视觉模型理解。真实佩戴场景中运动模糊、过曝、弱光、玻璃反光几乎是常态因此模型对低质量图像的鲁棒性直接决定产品可用性。仓库为此专门内置了质量判定模块 sources/agent/imageBlurry.tsexport async function imageBlurry(src: Uint8Array): Promisestring { return ollamaInference({ model: moondream:1.8b-v2-moondream2-text-model-f16, messages: [{ role: system, content: You are an very advanced model and your task is to determine if the image is broken, blurry or just low quality. You must always answer as YES or NO. }, { role: user, content: Is this image blurry, broken or low quality? YES or NO., images: [src], }] }); }它要求模型只回答YES或NO用于在把图像送入描述/问答链路之前先做一次二值判定。有意思的是generate.ts 中该评测被注释掉了// console.log(\Run blurry tests);说明模糊评测当时已具备但未纳入默认批量流程——而img_17 这类模糊样本的存在恰好为将来启用该评测提供了现成的测试数据。在 sources/modules/openai.ts 中还能看到另一条启发式链路先用视觉模型生成描述文本再把描述文本交给gptRequest或 Groq 的llamaFind做二次问答见 sources/agent/imageDescription.ts并强制约束只依据描述回答、不得推测。这意味着描述文本的质量会向上传导到最终问答结果这也是项目坚持用多模型、多样本series_1共 57 张评测描述质量的根本原因。五、如何在本地复现这套评测5.1 环境准备克隆仓库并安装依赖package.json为 npm/yarn 项目README.md 中npm install或yarn install均可配置密钥sources/keys.ts 通过环境变量注入配置——EXPO_PUBLIC_GROQ_API_KEYGroq、EXPO_PUBLIC_OPENAI_API_KEYOpenAI、EXPO_PUBLIC_OLLAMA_API_URLOllama 地址默认http://localhost:11434/api/chat自托管 Ollama 服务并按需拉取模型镜像例如ollama pull moondream:1.8b-v2-fp16。5.2 运行评测npm start或yarn start本项目为 Expo 应用评测脚本位于prompts/目录下。运行后脚本会扫描prompts/下所有系列目录的.jpeg图片对每张图依次执行四轮模型评测并把结果写回同名.md文件——img_17.md正是这样产生的。如需扩展可在 generate.ts 的runTest调用处增加新的模型标题与参数或在 ollama.ts 的KnownModel联合类型中登记更多模型。5.3 结果判读建议关注模型是否主动报告模糊/低质量——这是低质量图像鲁棒性的核心信号关注描述中的虚构细节数量——过度脑补意味着该模型在模糊帧上不可靠如需流水线化可先调用 imageBlurry.ts 的imageBlurry做 YES/NO 过滤再对合格帧调用imageDescription同一模型的输出存在随机性如img_17.md中两条 moondream 输出不同建议多次采样或固定 temperature 后再做横向对比。六、总结与延伸阅读img_17.md是 OpenGlass 评测体系中一个颇具代表性的困难样本它以四段真实模型输出直观展示了视觉模型在模糊过曝图像上截然不同的行为——有的直述缺陷、有的虚构细节、有的结构化叙事。配合 prompts/generate.ts 的批量评测脚本与 sources/agent/imageDescription.ts 的描述实现读者可以完整复现并扩展这套多模型图像理解评测管线为自家智能眼镜的视觉链路选择更可靠的模型组合。可继续深入阅读的仓库文件评测脚本与输出格式prompts/generate.ts图像描述与二次问答 Agentsources/agent/imageDescription.ts模糊/质量判定 Agentsources/agent/imageBlurry.tsOllama 推理封装与模型清单sources/modules/ollama.tsGroq / OpenAI 文本问答封装sources/modules/groq-llama3.ts、sources/modules/openai.ts密钥与配置入口sources/keys.ts工程辅助工具sources/utils/base64.ts、sources/utils/time.ts、sources/utils/trimIdent.ts评测数据集其他prompts/series_1/img_*.md记录可作多模型输出对比的补充样本赞分享人工智能AI 应用智能硬件本地部署可穿戴AI Agent【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址https://gitcode.com/GitHub_Trending/op/OpenGlass点击查看免费下载相关推荐使用 Hindsight 为 Dify 工作流接入持久化长期记忆Retain / Recall / Reflect 插件完整指南使用 Hindsight 为 Dify 工作流接入持久化长期记忆Retain / Recall / Reflect 插件完整指南 导读 Dify 是目前最流人工智能AI 应用智能硬件本地部署可穿戴AI Agentspring-boot-demo 实战Spring Boot 整合 Redis 缓存与 Lettuce 连接池完整指南spring boot demo 实战Spring Boot 整合 Redis 缓存与 Lettuce 连接池完整指南 本篇技术指南以 spring boot人工智能AI 应用智能硬件本地部署可穿戴AI AgentomiGlass 多模态视觉描述评测玻璃天窗场景下的多模型图像描述对比与流水线解析omiGlass 多模态视觉描述评测玻璃天窗场景下的多模型图像描述对比与流水线解析 在 omiGlass 智能眼镜开源项目中视觉能力的基础是看懂眼前的世界人工智能AI 应用语音移动开发后端桌面应用智能硬件MCP 服务上一篇AWS SDK for Java V2 操作 AWS Elastic Beanstalk 实战指南应用与环境全生命周期管理下一篇如何使用FanControl做风扇控制3步配置温度曲线与3档参数指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考