news 2026/8/18 15:53:21

一副普通眼镜如何变成AI助手?OpenGlass 25元开源改造方案全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一副普通眼镜如何变成AI助手?OpenGlass 25元开源改造方案全解析

一副普通眼镜如何变成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 模型都对它输出了结构化的场景描述,而不是简单的"有人、有椅子"。

这套能力听起来不复杂,但真正的难点在于:怎么用最少的硬件把这套流程跑通。

一条从镜腿到模型的数据链

整个系统的数据流可以拆成四步,每一步都对应项目里一个具体的目录:

  1. 采集:摄像头按指令抓拍 JPEG 帧,麦克风以 16kHz 采样录音,这部分逻辑在 firmware/firmware.ino 里
  2. 传输:数据不走 Wi-Fi,而是通过 BLE 蓝牙特征值(characteristic)分包推送到手机,固件里用photoDataCharacteristic每包 200 字节地推照片
  3. 解析:React Native 应用在 sources/app/ 中接收数据,useDevice.ts负责与名为 "OpenGlass" 的蓝牙设备建立连接
  4. 推理: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-llama3llava: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 文件。想对比模型效果?跑一遍脚本,答案就有了。

三十分钟从零跑通

上手流程比想象中短,分两条线:

  1. 烧固件:Arduino IDE 装好 ESP32 开发板包,打开 firmware/firmware.ino,记得在 Tools 里把 PSRAM 设为 "OPI PSRAM",否则内存不够用
  2. 跑应用:克隆仓库并安装依赖
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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/18 15:52:24

用JSON定义游戏界面:FlatUI序列化功能完整上手教程

用JSON定义游戏界面&#xff1a;FlatUI序列化功能完整上手教程 【免费下载链接】flatui Efficient Immediate Mode UI for Games 项目地址: https://gitcode.com/gh_mirrors/flatu/flatui FlatUI 是 Google 开源的高效即时模式&#xff08;Immediate Mode&#xff09;游…

作者头像 李华
网站建设 2026/8/18 15:51:36

开发效率提升300%:这套SpringBoot3+Vue3脚手架让你的项目快速启动

项目介绍 基于SpringBoot3、SpringSecurity、MybatisPlus、Vue3、TypeScript、Vite、ElementPlus、MySQL等技术栈实现的单体前后端分离后台管理系统&#xff1b;后端基于Java语言采用SpringBoot3、SpringSecurity、MybatisPlus、MySQL等主流技术栈&#xff0c;前端基于Vue3、T…

作者头像 李华
网站建设 2026/8/18 15:46:14

BilibiliDown使用指南:收藏夹300条内容一键落地的离线视频备份方案

BilibiliDown使用指南&#xff1a;收藏夹300条内容一键落地的离线视频备份方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/…

作者头像 李华
网站建设 2026/8/18 15:45:32

Python进阶 - sys模块 退出程序与异常信息获取

&#x1f44b; 大家好&#xff0c;欢迎来到我的技术博客&#xff01; &#x1f4da; 在这里&#xff0c;我会分享学习笔记、实战经验与技术思考&#xff0c;力求用简单的方式讲清楚复杂的问题。 &#x1f3af; 本文将围绕Python进阶这个话题展开&#xff0c;希望能为你带来一些…

作者头像 李华
网站建设 2026/8/18 15:44:59

用 relly 学 Rust 系统编程:零拷贝与安全内存操作实战

用 relly 学 Rust 系统编程&#xff1a;零拷贝与安全内存操作实战 【免费下载链接】relly RDBMS のしくみを学ぶための小さな RDBMS 実装 项目地址: https://gitcode.com/gh_mirrors/re/relly relly 是一个用 Rust 编写、专为学习而生的迷你 RDBMS&#xff08;关系型数据…

作者头像 李华