ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenGlass 图像评测管线实战:以工业建筑天窗场景为样本的 4 模型视觉描述对比

OpenGlass 图像评测管线实战:以工业建筑天窗场景为样本的 4 模型视觉描述对比 人工智能AI 应用智能硬件本地部署可穿戴AI Agent【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址https://gitcode.com/GitHub_Trending/op/OpenGlass点击查看免费下载OpenGlass 是一个将普通眼镜改造成 AI 智能眼镜的开源项目其视觉能力的质量依赖背后图像理解模型的真实表现。本文以仓库中系列图像样本prompts/series_1/img_22.jpeg一幅大型工业建筑内部仰视图含采光天窗、波纹金属屋面板、风机与管线等结构为核心样本完整拆解 OpenGlass 的自动化图像评测流程从prompts/generate.ts批量脚本、imageDescription到 Ollama/Groq/OpenAI 多后端调用链再到img_22.md的 4 模型描述输出。读完你将掌握如何复现这套多模型评测、如何读懂各模型对同一场景描述差异的技术成因以及如何把文本描述二次加工成可执行的问答证据。评测产物img_22.md结构识别与主题定位prompts/series_1/img_22.md是 OpenGlass 评测管线的直接产物按####标题####分隔为 4 段每段对应一次独立模型推理####Description####默认模型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 模型的输出。从三份描述可以看出不同模型对同一场景的感知层次差异明显模型场景定性识别出的结构元素表述风格moondream默认/显式工业/商业建筑内部多层金属结构、立柱、天窗、银灰色横梁、白色窗框、圆形通风口、植物客观列举式词汇量有限但结构名称准确llava-llama3现代室内空间白色窗框、横穿墙面的银色横梁、两个金属支架、圆形通风口、窗台植物描述性、细节丰富带设计语言llava:34b-v1.6高架桥/架空走道下方不确定场景梁与支撑结构、金属或涂层表面、日光阴影推测式、强调视角与不确定性结合 对应图像仰视视角的屋面构造含采光天窗与波纹金属屋面板可以看出moondream 与 llava-llama3 基本正确地将其识别为室内/建筑内部结构而 llava:34b-v1.6 因视角与构图将其误判为高架桥或架空走道下方并在输出中明确标注无法确定具体场景。这正是视觉模型评测中最有价值的信号同一张图不同模型的场景推理能力差异显著。复现评测generate.ts的批量驱动方式prompts/generate.ts是生成img_22.md这类文件的自动化脚本。它读取prompts/下所有子目录中的.jpeg图像为每张图依次跑 4 个模型的描述测试最后把结果写入与图片同名的.md文件扫描逻辑遍历prompts目录的每个子目录即series_1等系列只收集以.jpeg结尾的文件输出路径为同名 .mdgenerate.ts第 12–24 行测试编排runTest(title, test)用cli-progress显示进度条把每次输出追加为####title####\n 内容第 26–37 行四轮测试依次调用imageDescription(img)、imageDescription(img, llava-llama3)、imageDescription(img, llava:34b-v1.6)、imageDescription(img, moondream:1.8b-v2-fp16)第 40–51 行落盘全部完成后一次性写回img_*.md文件第 60–62 行模糊测试脚本第 53–57 行注释保留了imageBlurry测试入口说明管线预留了图像清晰度评估能力但当前评测未启用。执行入口在 package.json 的 scripts 中prompts: ts-node ./prompts/generate.ts运行时在仓库根目录执行yarn promptsts-node来自 devDependenciests-node: ^10.9.2无需额外编译即可直接运行 TypeScript 脚本。底层调用链imageDescription与多后端路由img_22.md的每一段描述最终都经过 sources/agent/imageDescription.ts 统一入口。其签名与行为如下export async function imageDescription(src: Uint8Array, model: KnownModel moondream:1.8b-v2-fp16): Promisestring关键设计默认模型是moondream:1.8b-v2-fp16所以####Description####与显式指定该模型的段落内容一致系统提示词固定You are a very advanced model and your task is to describe the image as precisely as possible. Transcribe any text you see.——要求模型尽量精确描述并转写图中文字用户消息固定Describe the scene并附带images: [src]原始像素数据所有模型都通过ollamaInference走 Ollama HTTP 接口imageDescription.ts第 6–18 行即本仓库的视觉评测统一由本地 Ollama 服务承载。KnownModel联合类型定义于 sources/modules/ollama.ts 第 9–16 行仓库当前支持 7 个模型名包括llama3、llava-llama3、llava:34b-v1.6、moondream:1.8b-v2-fp16等评测仅使用其中 4 个。Ollama 推理封装ollamaInference的实现细节sources/modules/ollama.ts 中的ollamaInference是视觉描述的核心执行器代码将 TypeScript 消息结构转换为 Ollama Chat API 请求export async function ollamaInference(args: { model: KnownModel, messages: { role: system | user | assistant, content: string, images?: Uint8Array[] }[], }) { ... }实现要点Base64 转换每条含图消息的images字段经 sources/utils/base64.ts 的toBase64转成 Base64 字符串后放入请求ollama.ts第 24–31 行同一工具文件还提供带data:image/jpeg;base64,前缀的toBase64Image供需要 Data URL 的场景复用内容规范化系统提示词经过 sources/utils/trimIdent.ts 的trimIdent处理——该工具会去除首尾空行并计算所有非空行的最小公共缩进后统一左对齐避免模板字符串的缩进污染请求体请求构造通过axios.post(keys.ollama, { stream: false, model, messages })发出stream: false表示等待完整响应而非流式输出重试机制请求包裹在backoff中sources/utils/time.ts失败后按指数退避重试默认最小延迟 250ms、最大 1000ms、最多 50 次失败createBackoff默认参数exponentialBackoffDelay在[minDelay, maxDelay]范围内随机返回等待时间避免同时刻集中重试返回值取response.message.content再经trimIdent去缩进后返回字符串。配置前提keys.ollama来自 sources/keys.ts 的环境变量EXPO_PUBLIC_OLLAMA_API_URL即运行评测前需先启动本地 Ollama 服务并设置该变量指向其地址如http://localhost:11434。Groq 与 OpenAI 的密钥分别对应EXPO_PUBLIC_GROQ_API_KEY、EXPO_PUBLIC_OPENAI_API_KEY缺省为空字符串。从描述到问答llamaFind与openAIFind的二次加工img_22.md中原始描述偏冗长且带推测性表述尤其 llava:34b-v1.6 的高架桥猜测直接使用时噪声较大。OpenGlass 提供了两套把描述文本转成精确答案的助手定义于 sources/agent/imageDescription.tsllamaFind(question, images)把图片描述文本注入系统提示词交给 Groq 的llama3-70b-8192推理sources/modules/groq-llama3.ts 第 8–23 行通过api.groq.com/openai/v1/chat/completions调用带 Bearer TokenopenAIFind(question, images)同样注入描述文本交给 OpenAIgpt-4o推理sources/modules/openai.ts 第 84–103 行。两者的系统提示词约束一致核心规则可概括为只依据提供的图像描述作答不得虚构或泛化场景回答中不得提及图像、场景或描述本身必须简洁、具体。典型用法是把img_22.md中某段描述作为images参数、把待回答问题如图中屋面有哪些结构作为question即可获得仅依据该模型描述的判定性答案。这种先多模型描述、再 LLM 裁决的两段式流程正好规避了视觉模型输出的猜测性噪声——例如 llava:34b-v1.6 的高架桥误判会在问答裁决阶段被其他描述交叉证伪。输出解读如何评估视觉模型的描述质量回到img_22.md这份真实产物可以从三个维度评估各模型对同一场景的表现结构识别准确度moondream 输出包含多层金属结构、立柱、天窗与 img_22.jpeg 实际的屋面桁架、采光玻璃一致结构性命名最准确llava-llama3 识别出银色横梁、金属支架、圆形通风口细节正确但把场景定性为室内装饰llava:34b-v1.6 将其误判为高架桥下方结构关系理解出现偏差细节丰富度llava-llama3 输出最长能描述窗框颜色对比、金属反光、植物点缀等层次llava:34b-v1.6 次之但偏重构图与光影推理moondream 输出最短、最克制接近要素清单风格场景推理与置信度表达llava:34b-v1.6 明确写出难以确定是购物中心/交通枢纽还是工业环境无法看清文字或标志这种对不确定性的显式表达本身就是评测中很有价值的元信息——说明 34B 参数模型在缺乏上下文时倾向提出假设而小模型反而更保守地准确。这正是 OpenGlass 将评测产物按模型分节落盘####标题####分隔的原因不同模型的描述可以横向对比也可以单独作为下游问答的证据源为选型用哪个模型做眼镜的实时视觉理解提供可复现的依据。相关文件速查评测产物prompts/series_1/img_22.md样本图像prompts/series_1/img_22.jpeg批量评测脚本prompts/generate.ts视觉描述 Agent 入口sources/agent/imageDescription.tsOllama 推理封装与模型列表sources/modules/ollama.tsGroq/OpenAI 问答助手sources/modules/groq-llama3.ts、sources/modules/openai.ts工具函数sources/utils/base64.ts、sources/utils/trimIdent.ts、sources/utils/time.tsAPI 配置sources/keys.ts运行入口package.json赞分享人工智能AI 应用智能硬件本地部署可穿戴AI Agent【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址https://gitcode.com/GitHub_Trending/op/OpenGlass点击查看免费下载相关推荐OpenGlass 图像描述评测多视觉模型对比样本 img_17 全解析OpenGlass 图像描述评测多视觉模型对比样本 img_17 全解析 导读 本文基于 OpenGlass 开源智能眼镜项目评测数据集 prompts/se人工智能AI 应用智能硬件本地部署可穿戴AI AgentZcash 2.0.5-2 版本详解Sprout→Sapling 迁移工具、turnstile 共识规则与 ARMv8 支持Zcash 2.0.5 2 版本详解Sprout→Sapling 迁移工具、turnstile 共识规则与 ARMv8 支持 Zcash 2.0.5 2 是继人工智能AI 应用智能硬件本地部署可穿戴AI AgentomiGlass 多模态视觉描述评测玻璃天窗场景下的多模型图像描述对比与流水线解析omiGlass 多模态视觉描述评测玻璃天窗场景下的多模型图像描述对比与流水线解析 在 omiGlass 智能眼镜开源项目中视觉能力的基础是看懂眼前的世界人工智能AI 应用语音移动开发后端桌面应用智能硬件MCP 服务上一篇RxDB Sharding RxStorage 分片插件实战为 IndexedDB 等存储提升读写性能的完整指南下一篇V8 开发命令速查指南用 gm.py 构建、d8 调试与 run-tests.py 测试创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表