一副普通眼镜如何变成AI助手?OpenGlass 25元开源改造方案全解析
【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址: https://gitcode.com/GitHub_Trending/op/OpenGlass
OpenGlass 是一个把任意眼镜变成 AI 智能眼镜的开源项目,硬件成本不到 25 元。这篇文章不打算按"先看硬件、再看软件"的老套路介绍它,而是换一条更实用的路径带你读完:先从一个真实场景出发,理解它到底能帮你做什么;再顺着一条数据流,看懂照片和声音是怎么从镜腿走到 AI 模型里的;最后用一份清单,让你今晚就能开始动手。整个过程大约十分钟。
先讲一个"看了又忘"的场景
想象你站在火车站候车厅,面前一块大屏滚动着车次信息,你掏出手机拍下来、放大、反复确认,最后还是怕记错。又或者你在会议室里,白板上的架构图画完就擦掉了,之后怎么也想不起细节。OpenGlass 想解决的正是这类时刻——它让"眼前的东西"自动变成"可检索的记录"。
项目的思路很直接:眼镜负责拍照和收音,手机 App 负责接收数据,AI 模型负责理解和回答。测试目录里存了大量真实场景的识别结果,比如下面这张室内测试图,多个 AI 模型都对它输出了结构化的场景描述,而不是简单的"有人、有椅子"。
这套能力听起来不复杂,但真正的难点在于:怎么用最少的硬件把这套流程跑通。
一条从镜腿到模型的数据链
整个系统的数据流可以拆成四步,每一步都对应项目里一个具体的目录:
- 采集:摄像头按指令抓拍 JPEG 帧,麦克风以 16kHz 采样录音,这部分逻辑在 firmware/firmware.ino 里
- 传输:数据不走 Wi-Fi,而是通过 BLE 蓝牙特征值(characteristic)分包推送到手机,固件里用
photoDataCharacteristic每包 200 字节地推照片 - 解析:React Native 应用在 sources/app/ 中接收数据,
useDevice.ts负责与名为 "OpenGlass" 的蓝牙设备建立连接 - 推理:sources/agent/imageDescription.ts 把图片交给视觉模型,生成文字描述,再由 Agent 汇总回答你的提问
有个细节值得留意:固件里音频编码用宏开关切换三种方案,注释写得很清楚——Opus 用于高质量语音、Mu-law 给 Web 应用、PCM 给原生应用。一个 25 元的设备留了三套编码方案,这是典型的"模块化优先"设计,你在 firmware/firmware.ino 顶部就能看到这几行开关:
// 三选一,改宏即换编码方案 // #define CODEC_OPUS // 高质量语音编码 // #define CODEC_MULAW // Web 应用使用 #define CODEC_PCM // 原生应用使用硬件清单:四样东西,加起来不到 25 元
拆开成本看,这个项目对"够用"的把握相当克制:
| 组件 | 成本 | 选择理由 |
|---|---|---|
| Seeed XIAO ESP32 S3 开发板 | 约 15 元 | 双核 240MHz,自带摄像头与麦克风接口、PSRAM |
| 250mAh 锂电池 | 约 3 元 | 体积小,可全天待机、随时更换 |
| 3D 打印镜架挂载件 | 约 2 元 | 开源 STL 文件,适配不同镜框 |
| 线材与焊接件 | 约 5 元 | 按需裁剪 |
为什么选 ESP32 S3 而不是更便宜的方案?因为它同时满足三个硬指标:内置 PSRAM 能直接缓存相机帧(固件里CAMERA_FB_IN_PSRAM就是这么用的)、BLE 与 Wi-Fi 双模、且整个生态文档开源。它把"能跑"的门槛降到了最低。
摄像头只选 30 万像素的 OV2640,这并非妥协——AI 识别物体和文字,30 万像素绰绰有余,反而低分辨率意味着更小的 BLE 传输压力和更低的功耗。数字背后的逻辑是:在智能眼镜上,像素不是越高越好,够用且省电才是。
换脑自由:同一个镜头,四种 AI 轮流出场
OpenGlass 最值得玩的一点,是它把"大脑"做成了可插拔的。imageDescription函数接受一个模型参数,默认用moondream:1.8b-v2-fp16,但你完全可以换成llava-llama3或llava:34b-v1.6。项目还分别接入了 Groq 和 OpenAI 的接口,加上本地 Ollama,一共四条推理通道:
// sources/agent/imageDescription.ts export async function imageDescription( src: Uint8Array, model: KnownModel = 'moondream:1.8b-v2-fp16' ): Promise<string> { return ollamaInference({ model, messages: [/* 系统提示 + 图片 */] }); }同样的输入,不同模型输出的风格差别很大:小模型三句话讲完场景,大模型会补上环境细节和人物状态。这意味着你可以按场景挑模型——赶时间用轻量模型秒回,写日记用大模型补全细节。如果想要私有化部署,Ollama 方案支持全程本地推理,数据不出设备。
项目还内置了一个批处理脚本 prompts/generate.ts,能把一批测试图自动喂给多个模型、把结果写进 markdown 文件。想对比模型效果?跑一遍脚本,答案就有了。
三十分钟从零跑通
上手流程比想象中短,分两条线:
- 烧固件:Arduino IDE 装好 ESP32 开发板包,打开 firmware/firmware.ino,记得在 Tools 里把 PSRAM 设为 "OPI PSRAM",否则内存不够用
- 跑应用:克隆仓库并安装依赖
git clone https://gitcode.com/GitHub_Trending/op/OpenGlass cd OpenGlass npm install然后在 sources/keys.ts 填入你的 API 密钥(用EXPO_PUBLIC_*环境变量注入),本地 Ollama 则执行ollama pull moondream:1.8b-v2-fp16。最后npm start启动 Expo 开发服务器,浏览器打开后点连接设备,眼镜里的画面就会开始流入 AI 了。
整套东西是 MIT 协议,固件、App、测试脚本全部开放。想在 modules 目录下加一个新 AI 服务商,照葫芦画瓢写一个文件即可。
下一步:你的眼镜由你定义
OpenGlass 现在只能识别场景、记录对话,但它的接口已经把可能性铺开了:给固件加一个传感器、给 App 加一个处理函数、给 Agent 加一个技能,都是顺着现有结构就能完成的改动。社区里已经有人把心率传感器接进来做健康记录,也有人把它改造成扫码巡检工具。
如果你想试试,今晚就能做第一步:把仓库克隆下来,先不碰硬件,跑一遍npm run prompts脚本,看看它如何用四个模型描述同一批图片。等你看懂了这条数据链,再下单那 25 元的零件也不迟。技术民主化的下一步,往往就从一次动手开始。
【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址: https://gitcode.com/GitHub_Trending/op/OpenGlass
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考