OpenGlass 智能眼镜改装全攻略:25美元让普通镜架“长出“AI眼睛
OpenGlass 智能眼镜改装全攻略:25美元让普通镜架"长出"AI眼睛
【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址: https://gitcode.com/GitHub_Trending/op/OpenGlass
副标题:一套开源软硬件方案,实现实时识人、文字翻译与生活记录,从零到戴上的完整实操指南
你平时戴的那副眼镜,除了让你看清路牌,还能帮你"读懂"路牌——把英文菜单翻译成中文、认出三年前见过一面的熟人、记住刚逛过的每件商品价格。听起来像科幻片道具,但 OpenGlass 这个开源项目告诉你:只需要 25 美元不到的现成零件,再加一个周末下午,这一切就能成真。
它不是眼镜,是装在你脸上的"第二副视网膜"
如果非要用一句话概括:OpenGlass 是一套把普通镜架改造成 AI 智能眼镜的开源方案,用 ESP32 S3 芯片做采集端,借助云端大模型做理解端,最后把答案以文字或语音的形式递到你眼前。
打个比方——如果说你的眼镜是"窗户",那 OpenGlass 就是给这扇窗户装了位全天候值班的"瞭望员":他负责不停地看、不停地记、随叫随到地回答你的问题,而这位"瞭望员"的薪水,全部由开源社区和免费大模型买单。
为什么值得动手:五个让你心动的理由
- 🎯成本低到离谱:核心物料只需一块 Seeed XIAO ESP32 S3 Sense 开发板、一块 250mAh 锂电池,总价控制在 25 美元内,比一顿外卖还便宜
- 🔓全链路开源:从硬件固件到前端界面,代码全部敞开,改一处逻辑、换一个模型都随你
- 🧠模型自由切换:既能用本地跑的 Ollama 轻量视觉模型,也能调 Groq、OpenAI 的云端接口,按需选择
- 🧩模块化结构:固件、AI 代理、前端三块彼此独立,想只升级"大脑"不动"身体"完全可行
- 🕶️形态自由:3D 打印的镜架挂件一扣即用,任何有腿儿的眼镜都能变身
两位玩家的真实体验:一个玩改装,一个玩应用
故事一:电子工程系学生阿凯的"周末装机记"
阿凯在实验室里熬了三个晚上,第一次把 OpenGlass 跑通。他先是打印了仓库里提供的 STL 镜架模型,把 XIAO 开发板嵌进去,接好电池,再用 Arduino IDE 刷入固件。第一次戴上时,他对着窗外随手一指,手机上的 Expo 界面就弹出了 AI 对窗外街景的描述——"一辆白色面包车停在红砖建筑前,路牌上写着 XX 路"。他当场愣住:原来让机器"看见"世界,离普通人这么近。
故事二:旅行博主老周的"随身翻译官"
老周不碰代码,只按 README 一步步装好依赖、填好密钥。他带着这套眼镜去泰国,镜头对准街边菜单,AI 逐字念出菜品内容;在博物馆里,对着英文展牌问一句"这上面写了什么",答案立刻以文字形式显示在屏幕上。他笑称:"以前旅游靠翻译软件举手机,现在靠眼镜眨眨眼就完事。"
原理拆解:一张照片从"看见"到"听懂"要走四步
很多人以为智能眼镜很神秘,其实 OpenGlass 的数据流清晰得像个流水线:
第一步:采集。固件层(firmware/firmware.ino)驱动摄像头按固定节奏拍照——默认每 5 秒一张,你也可以改成 1 秒或 30 秒,改一个数字即可。拍下的 JPEG 图像被切成小块,通过 BLE 蓝牙通道分片推送给手机端。
第二步:拼装。手机上的 Expo 应用(sources/app/DeviceView.tsx)负责接收分片、校验序号、把碎片拼回完整图片,顺带旋转回正确的方向。
第三步:理解。拼好的图片交给 AI 代理(sources/agent/Agent.ts),它会调用图像描述模型生成文字版"旁白"。这段旁白会被缓存起来,作为后续问答的依据——相当于先给照片写"笔记",再拿笔记回答问题。
第四步:应答。当你对着输入框提问,系统把之前所有"笔记"打包喂给 LLM(默认走 Groq 的 Llama3),模型只依据笔记内容作答,最后把答案显示在界面,甚至通过 TTS 读出来。
一个值得注意的设计:OpenGlass 特意把"看图说话"和"问答"拆成两个模型——轻量的 moondream 负责视觉描述,强大的 Llama3 负责推理应答,各司其职,速度和成本都能兼顾。
上手速通:跟着六步,一个下午跑起来
第一步:准备硬件
清单只有三样:Seeed XIAO ESP32 S3 Sense、3.7V 锂电池、3D 打印的镜架挂件(STL 文件在仓库里)。没有打印机的朋友,网上找代打服务十块钱以内搞定。
第二步:刷固件
用 Arduino IDE 打开 firmware/firmware.ino,按以下顺序操作:
- 在"文件→首选项"里添加 ESP32 开发板管理地址
- 在"工具→开发板"中搜索并安装 esp32 包
- 板型选择
XIAO_ESP32S3 - 关键一步:在"工具"菜单里把 PSRAM 设为
OPI PSRAM,否则内存不足直接崩溃 - 插上 USB,选中端口,点击上传
如果你习惯命令行,也可以用 arduino-cli 一键编译烧录:
arduino-cli compile --build-path build --output-dir dist -e -u -p COM5 -b esp32:esp32:XIAO_ESP32S3:PSRAM=opi第三步:克隆代码并装依赖
git clone https://gitcode.com/GitHub_Trending/op/OpenGlass cd OpenGlass yarn install第四步:配置密钥
密钥统一放在 sources/keys.ts 中,它读取三个环境变量:
export const keys = { groq: process.env.EXPO_PUBLIC_GROQ_API_KEY ?? '', ollama: process.env.EXPO_PUBLIC_OLLAMA_API_URL ?? '', openai: process.env.EXPO_PUBLIC_OPENAI_API_KEY ?? '', };如果你打算全程用本地模型,只需准备 Ollama 地址(默认 http://localhost:11434/api/chat),云端密钥可暂时留空。
第五步:拉取本地视觉模型
ollama pull moondream:1.8b-v2-fp16这个 1.8B 的轻量模型在低功耗设备上表现均衡,是官方默认推荐。
第六步:启动应用
yarn startExpo 会打开一个本地链接,浏览器访问即可看到连接界面。点击"Connect to the device",选择名为 OpenGlass 的蓝牙设备,戴上眼镜,世界就开始"说话"了。
新手高频疑问:现象、原因与解法对照
| 现象 | 原因 | 解法 |
|---|---|---|
| 固件上传时报"端口未找到" | 驱动未装或端口未选中 | 换一根支持数据传输的 USB 线,在设备管理器确认端口号,重新选择 |
| 编译通过但一开机就重启 | PSRAM 未设置为 OPI | 工具菜单中把 PSRAM 改成 OPI PSRAM 后重新上传 |
| 识别结果为空或一直转圈 | Ollama 服务未启动或模型未下载 | 先执行ollama serve,再确认ollama pull完成 |
| 图像描述明显"胡说八道" | 默认模型过轻,场景太复杂 | 在 prompts/generate.ts 或 imageDescription.ts 中换用 llava:34b-v1.6 等大模型 |
| 想批量测试不同模型效果 | 手动换模型太麻烦 | 运行yarn prompts,脚本会自动跑完四个模型并生成对比报告 |
关于最后一条多说两句:仓库里专门准备了 prompts/series_1 目录,放了 50 多张真实场景照片和对应的 AI 描述输出。你可以直接看 .md 文件对比四个模型(默认描述、llava-llama3、llava:34b-v1.6、moondream)在同一张图上的表现差异,这是挑选视觉模型最直观的参考资料。
进阶玩法:把 OpenGlass 玩成自己的形状
跑通基础流程后,你会发现可玩性远不止于此:
- 调频率:在 DeviceView.tsx 里改自动拍照的间隔参数(当前写死为 5 秒),实现"快照模式"或"省电模式"
- 换模型:ollama.ts 中定义了一套 KnownModel 类型,往里加新模型名即可
- 加语音:openai.ts 已经封装了 TTS 能力,把回答读出来的代码路径是现成的
- 跑对比实验:prompts/generate.ts 会自动遍历所有测试图片、跑遍模型并写回结果文件,做模型评测像写作业一样简单
写在最后:开源的意义,是让每个人都能"看见"
OpenGlass 最打动我的地方,不是它技术多炫,而是它把"AI 硬件"的门槛砸到了 25 美元——你不需要大厂供应链,不需要芯片设计能力,一块开发板加一个开源仓库就能拥有自己的智能眼镜。项目的模块化设计让任何人都能贡献:有人优化固件采集逻辑,有人调教提示词,有人补充测试图片集,每一个 PR 都在让这个方案变得更聪明。
最后提醒一句:该项目已整体迁移至 Omi 仓库,当前仓库不再接收新维护,想跟进最新迭代的朋友请关注 Omi 的后续发布。趁动手的热情还在,去把那份 STL 打印出来吧——你的眼镜,该睁眼了。
【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址: https://gitcode.com/GitHub_Trending/op/OpenGlass
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
