超详细!用OpenGlass从零搭建AI智能眼镜:不到25美元实现人物识别与实时翻译
【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址: https://gitcode.com/GitHub_Trending/op/OpenGlass
想象这样一个画面:你戴着普通眼镜走进一家咖啡馆,刚坐下,手机屏幕上已经自动弹出"对面这位是上周三在发布会上交换过名片的产品经理",菜单上的法文也在一瞬间变成了中文——这不是科幻片,而是OpenGlass这个开源项目正在做的事。OpenGlass的核心使命只有一句话:把任何一副普通眼镜变成AI智能眼镜,全套零件不到25美元,整个搭建过程一个周末就能完成。
🔍 它凭什么值得动手:两个真实的周末故事
故事一:电子爱好者的3小时快感小张花了3小时完成全部硬件组装:把一块Seeed Studio XIAO ESP32 S3 Sense模块固定在3D打印的镜架卡槽里,接上一块250mAh的锂电池,用Arduino IDE上传固件,再戴上眼镜出门。当他看向街道路牌时,手机里的AI识别结果几乎同步刷新——这一切的成本,还不到两杯精品咖啡的价钱。
故事二:开发者的二次开发乐趣程序员小李并不满足于"能用"。他发现firmware/firmware.ino里图像采集的逻辑可以调优,于是修改了采集频率;又用prompts/generate.ts脚本一次性跑完几十张测试图,对比不同视觉模型的人物识别效果,最终把识别延迟压低了40%。OpenGlass的模块化设计,让这种"折腾"变得异常顺手。
💡 这两个故事想说明同一件事:OpenGlass的定位不是"买来即用的产品",而是一套可以拆开、看懂、改动的智能眼镜方案。25美元买到的不是成品,而是"掌控权"。
🛠️ 原理讲透但不说教:眼镜、手机和AI的"接力赛"
OpenGlass整套系统其实是一场三方接力赛,三个选手各司其职:
第一棒:ESP32 S3(硬件大脑)固件文件firmware/firmware.ino相当于眼镜的"脑干",负责初始化摄像头和麦克风、采集画面、并通过低功耗蓝牙把照片实时传给手机。你可以把它理解成一个"随身相机+对讲机",自己不做任何AI判断,只负责把看到的、听到的"快递"出去。
第二棒:手机/浏览器(调度中心)前端是一个Expo应用(入口在App.tsx),它通过Web蓝牙找到名为"OpenGlass"的设备并连接。sources/modules/useDevice.ts里定义了连接逻辑,连接成功后,sources/agent/Agent.ts这个"管家"开始接管:收到照片就调用AI生成文字描述,攒成一叠"记忆卡片"。
第三棒:本地+云端模型(判断大脑)这是最妙的设计——识别分两步走:
- 先用本地的视觉模型(默认
moondream:1.8b-v2-fp16,通过Ollama运行)把每张照片变成一段文字描述,比如"画面中有两个人,左侧穿蓝色外套的人在喝咖啡"; - 当你提问时,再用Groq上的Llama3把所有这些描述综合起来回答问题,最后甚至通过OpenAI的语音服务把答案念出来。
这样分工的好处是:视觉识别不烧钱(本地跑),语言理解用云端又快又聪明。照片→描述→问答,数据就这样一级级"接力"完成。
图:OpenGlass摄像头捕捉的真实第一视角画面——AI会把它转化成"场景描述",再供语言模型回答你的问题。
📋 上手前必须知道的3件事
第一件事:先认人——核心文件速查表
| 文件 | 职责 | 新手要不要动? |
|---|---|---|
README.md | 项目总览与完整上手流程 | ✅ 必读 |
firmware/firmware.ino | 摄像头/麦克风初始化、照片采集、BLE传输 | ❌ 默认可用 |
sources/keys.ts | Groq、OpenAI、Ollama的密钥/地址配置 | ✅ 必须配置 |
App.tsx | 前端入口,负责连接设备与显示结果 | ❌ 基础使用不用改 |
package.json | 依赖与启动脚本(yarn start等) | ❌ 自动处理 |
第二件事:密钥到底填在哪?
source/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 ?? '', };最省事的方式:直接把你的密钥字符串填进引号里,比如groq: "gsk_你的密钥"。Ollama那行填http://localhost:11434/api/chat即可。
第三件事:三个高频坑及解法
坑1:固件上传后疯狂重启/崩溃→ 原因99%是PSRAM没设对。上传固件前,务必在Arduino IDE的"工具→PSRAM"里选"OPI PSRAM",否则内存不足直接罢工。
坑2:报错"端口未找到"→ 三步排查:先确认USB线不是"只充电不传数据"的线;再用arduino-cli board list看看设备是否被识别;最后在设备管理器里确认COM口编号(Windows用户重点看)。
坑3:图像识别又卡又慢→ 优先使用轻量级模型moondream:1.8b-v2-fp16,用ollama pull下载后在sources/agent/imageDescription.ts里确认默认模型名就是它。重型模型(如llava:34b-v1.6)只在评测时用,日常佩戴别开。
🚀 动手实操:照做就能跑通
第一步:克隆仓库并安装依赖
git clone https://gitcode.com/GitHub_Trending/op/OpenGlass cd OpenGlass npm install✅ 你会看到:终端里滚动安装几十个npm包,最后没有红色报错。用yarn也行:
yarn install。
第二步:准备本地视觉模型(Ollama)
ollama pull moondream:1.8b-v2-fp16✅ 你会看到:进度条走到100%,显示"success"。这是本地识别的"眼睛",必须先就位。
第三步:配置密钥
编辑sources/keys.ts,填入Groq密钥(用于问答)和OpenAI密钥(用于语音播报),并把Ollama地址设为本地服务。没有Groq/OpenAI账号也能玩——纯本地问答依然可用,只是语音功能会受限。
第四步:上传固件(二选一)
方式A:Arduino IDE—— 打开firmware/firmware.ino,在"工具"里选择板子XIAO_ESP32S3和正确端口,务必把PSRAM设为"OPI PSRAM",然后点击上传。
方式B:命令行(arduino-cli),参考firmware/readme.md:
arduino-cli board list arduino-cli compile --build-path build --output-dir dist -e -u -p COM5 -b esp32:esp32:XIAO_ESP32S3:PSRAM=opi✅ 你会看到:编译进度条滚动,最后显示"Done uploading"。此时眼镜侧已就绪。
第五步:启动应用并连接
npm start✅ 你会看到:Expo启动后输出一个
localhost链接,用Chrome打开(目前最稳的是Web版)。页面中央出现一个 "Connect to the device" 按钮,点击后在弹窗里选择名为OpenGlass的设备完成蓝牙配对。
第六步:戴上眼镜,见证魔法
配对成功后,把眼镜朝向一个物体或人物,稍等一两秒,屏幕上的"lastDescription"就会刷新出AI对眼前画面的文字描述。向它提问,语音答案会直接放出来。
图:另一段OpenGlass第一视角画面,人物与场景结构清晰,正是验证识别效果的典型样本。
🧠 进阶玩法与高频疑问
三个值得一试的深度定制方向
1. 用prompts/generate.ts做模型选型评测仓库里prompts/series_1/下放了60张真实佩戴视角的测试图。运行npm run prompts,脚本会依次用moondream:1.8b-v2-fp16、llava-llama3、llava:34b-v1.6等模型跑完全部图片,并把结果写进对应的.md文件。对比后挑出"又快又准"的模型,改一行默认配置即可。
2. 调整固件的采集节奏与音频编码firmware/firmware.ino顶部有音频编码开关(CODEC_OPUS/CODEC_MULAW/CODEC_PCM),想改采集频率和BLE传输细节也都在这个文件里。如果要启用Opus,按firmware/readme.md提示把arduino-libopus和arduino-audio-tools两个库放进Arduino的libraries目录。
3. 换掉AI大脑,接入自己的服务ollamaInference把图片转base64后发给Ollama的/api/chat接口;imageDescription.ts里的系统提示词、模型名都是可改的。想接私有推理服务,改这一个模块就够了,其余代码完全不用动。
社区高频疑问
Q:没有3D打印机,镜架怎么办?A:仓库提供了开源的3D打印镜架模型,可以找网上的代打印服务花几块钱打一个;动手能力强的直接用扎带、胶水把模块固定在普通眼镜腿上也能跑通。
Q:识别结果都存在哪里?会不会隐私泄露?A:Agent.ts把每张照片连同描述存在内存数组中,问答只基于这些文字描述。数据不出你的手机和本地Ollama,除非你主动接入云端API,否则隐私是可控的。
Q:这个项目还在更新吗?A:官方已把项目迁移合并到Omi仓库继续迭代,本仓库的代码与文档仍完整可用,作为学习、二次开发的基础依然非常扎实。
🏁 写在最后:你的眼镜,你说了算
从一块25美元的开发板,到一副能"看懂"世界的AI智能眼镜,OpenGlass最迷人的地方在于:它把价格打下来了,也把门打开了。你可以只按教程跑通全流程享受乐趣,也可以深入固件、模型、交互的每一层,把它改造成完全属于自己的智能终端。项目完全开源,遇到问题翻翻源码、提个PR,说不定下一个让识别提速40%的优化,就出自你的手。周末到了,动手吧。🚀
【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址: https://gitcode.com/GitHub_Trending/op/OpenGlass
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考