跟一张照片走完OpenGlass全流程:不到25美元的AI智能眼镜是如何炼成的 跟一张照片走完OpenGlass全流程不到25美元的AI智能眼镜是如何炼成的【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址: https://gitcode.com/GitHub_Trending/op/OpenGlass设想一个常见场景你在活动上认识了一位新朋友聊得投机互换了微信。三分钟后你走回人群却发现自己完全想不起他叫什么。这时候如果眼镜能帮你把这张脸记住顺便在耳边轻轻补一句他叫李雷是做硬件的你会不会觉得这才是智能眼镜该有的样子OpenGlass 就是为此而生的开源项目用不到 25 美元的现成零件把任何一副普通眼镜改造成可破解的 AI 智能眼镜。它能记录你的生活、记住你见过的人、识别物体、翻译眼前的文字而且——整套代码、固件、图纸全部开源。你不需要相信厂商的营销话术因为你可以亲手拆开它、读懂它、改造它。25 美元大概是一杯咖啡加一个汉堡的钱。而科技巨头们的同类产品标价往往是它的百倍。它凭什么敢这么干与其听我转述不如跟着一张照片把整个系统走一遍。一张照片的完整旅程从按下快门到开口说话在 OpenGlass 里看见不是一个瞬间而是一条清晰的流水线。我们以一次拍照为例看看数据是如何流动的。第一站镜腿上的快门眼镜上的 ESP32 S3 微控制器一个约 15 元的国产芯片双核 240MHz自带 Wi-Fi 和蓝牙驱动着一颗 OV2640 摄像头。这颗摄像头的分辨率只有 30 万像素——没错比你家十年前的老手机还低。按下快门后固件调用esp_camera_fb_get()抓取一帧 JPEG 图片然后开始处理一个棘手的问题怎么把这张图送到手机上去第二站200 字节一次的蓝牙快递眼镜和手机之间没有 Wi-Fi 直连传输走的是低功耗蓝牙BLE。但 BLE 单次能携带的数据量极其有限一张 JPEG 图动辄几十 KB根本塞不进一个数据包。打开firmware/firmware.ino你会看到项目给出的朴素解法把图片切成小块每次只发 200 字节末尾用两个0xFF标记传输结束// 每次只拷贝 200 字节通过 BLE 分块推送给手机 size_t bytes_to_copy remaining; if (bytes_to_copy 200) { bytes_to_copy 200; } memcpy(s_compressed_frame_2[2], fb-buf[sent_photo_bytes], bytes_to_copy); // 推送到 BLE 特征值手机端监听并重组 photoDataCharacteristic-setValue(s_compressed_frame_2, bytes_to_copy 2); photoDataCharacteristic-notify();技术洞察作者没有为大文件传输引入任何复杂协议就用一个简单的分块标志位方案搞定。这背后是典型的嵌入式务实哲学——在资源受限的硬件上最好的协议就是够用的协议。30 万像素的 JPEG 经过压缩后通常只有 20~40KB按 200 字节/包计算几秒内就能传完完全够用。第三站手机上的看图说话照片到达手机后Expo 应用React Native 技术栈把图片交给一个本地运行的轻量级视觉模型——默认是 Moondream1.8B 参数通过 Ollama 在本地跑。看sources/agent/imageDescription.ts里的核心调用// 用本地小模型生成图片的文字描述模型可以自由替换 export async function imageDescription( src: Uint8Array, model: KnownModel moondream:1.8b-v2-fp16 ): Promisestring { return ollamaInference({ model: model, messages: [{ role: system, content: You are a very advanced model and your task is to describe the image as precisely as possible. Transcribe any text you see. }, { role: user, content: Describe the scene, images: [src], }] }); }注意这个细节系统提示词里特意加了一句Transcribe any text you see把你看到的任何文字都转写出来。因为对智能眼镜来说识别招牌、路牌、菜单上的文字往往比识别物体更有用。这不只是一行 prompt而是项目对眼镜到底该帮人看什么这个问题的回答。第四站云端大模型当记忆检索员现在照片变成了一段文字描述。但这还不够——你真正想问的是我面前这人是谁而不是请描述一下场景。再看sources/agent/Agent.ts里的逻辑OpenGlass 会把过去拍下的所有照片描述拼接成一份文字档案然后交给一个更强的问答模型比如 Groq 上的 Llama 3来回答你的问题// 把历史照片的描述拼成文本交给大模型回答用户问题 let combined ; for (let p of this.#photos) { combined \n\nImage # i \n\n p.description; } let answer await llamaFind(question, combined);技术洞察这是整套架构最巧妙的一步——用描述文本代替图像本身作为大模型输入。图像识别重活交给本地小模型免费干理解与推理巧活交给云端大模型干。好处显而易见云端大模型不需要处理图像成本和延迟都大幅下降同时你的原始照片也无需上传隐私得到保护。三个反直觉的设计决策藏着作者的真实权衡看完数据流你可能和我一样冒出几个疑问。这些疑问恰好就是项目设计哲学的最好注脚。疑问一为什么不用高分辨率摄像头因为眼镜不是相机。30 万像素足够 AI 识别物体和文字而更高分辨率只会让 BLE 传输变慢、功耗上升、续航缩短。这是够用就好对参数至上的一次胜利。组件成本约为什么选它ESP32 S3 微控制器15 元双核 240MHz、自带 Wi-Fi/BLE、内置 PSRAM资料全、社区大OV2640 摄像头5 元30 万像素足够 AI 识别低功耗驱动成熟3.7V 250mAh 锂电池3 元体积小、可更换配合动态功耗控制撑起全天使用3D 打印镜架外壳2 元图纸开源可自行调整尺寸适配各种镜框疑问二为什么 AI 推理不在眼镜上跑25 元的硬件根本跑不动大模型硬塞进去只会得到一个又烫又卡的结果。OpenGlass 的选择是眼镜只负责采集拍照、收音手机负责处理云端负责思考。这是目前成本约束下最合理的分工。疑问三为什么要留三种音频编码打开firmware/firmware.ino顶部你会看到一排被注释掉的宏定义// 三种音频编码按使用场景切换 // #define CODEC_OPUS // 高质量语音编码开发中 // #define CODEC_MULAW // Web 应用使用带宽占用小 #define CODEC_PCM // 原生应用使用简单直接作者没有把方案焊死而是把选择权留给使用者追求音质选 OpusWeb 端要低带宽选 Mu-law原生应用图省事选 PCM。这折射出整个项目的性格不替你决定而是让你自己权衡。60 张照片的验收报告开源项目怎么证明自己靠谱很多项目嘴上说自己能识别万物但你找不到任何证据。OpenGlass 的做法很硬核仓库里躺着一个prompts/series_1目录里面是60 张真实拍摄的测试照片每张都配了 4 个不同 AI 模型的完整描述输出。打开任何一张.md文件你都能看到同一场景的四种说法默认模型Moondream平铺直叙像个老实人——画面中有人坐在前景正在使用手机……LLaVA-Llama3绘声绘色像个写手——在喧嚣的房间中心一位金发卷发的年轻人正专注于他的黑色手机……LLaVA:34b-v1.6理性分析像个侦探——根据建筑特征和来往行人判断这很可能是一个火车站……这份验收报告是花真金白银算力和时间跑出来的prompts/generate.ts里的脚本就是当时的考试机器——批量读取图片、依次调用各模型、把结果写进 markdown。对新手来说这 60 组对比就是免费的模型选型指南想要快选 Moondream想要详细选 LLaVA 大模型一目了然。从一副眼镜到一个平台你可以在上面长出什么MIT 许可证意味着这套代码你可以随意改、随意用、随意分发。社区里已经有人把它往各个方向长健康监测版加心率血氧传感器变成可穿戴健康助手工业巡检版集成二维码扫描和 AR 标注辅助设备维护学习翻译版实时翻译菜单、公式识别外语学习好帮手户外运动版接 GPS 和运动传感器记录骑行轨迹想加新 AI 服务sources/modules/目录下已经躺着 Groq、Ollama、OpenAI 三个集成照葫芦画瓢新建一个文件即可。整个架构按职责切分得很干净agent/是 AI 代理层、modules/是服务集成、utils/是工具函数、app/是界面。项目不是让你用一个成品而是给了你一套可以自由组合的积木。四步把它变成你自己的眼镜如果读到这儿你已经心动了上手只需要四步# 第一步克隆仓库并安装依赖 git clone https://gitcode.com/GitHub_Trending/op/OpenGlass cd OpenGlass npm install # 第二步配置 AI 服务密钥 # 编辑 sources/keys.ts填入 Groq / OpenAI 的 API Key # 本地跑 Ollamaollama pull moondream:1.8b-v2-fp16 # 第三步烧录固件 # 用 Arduino IDE 打开 firmware/firmware.ino选择 XIAO_ESP32S3 开发板 # 记得在工具菜单里把 PSRAM 设为 OPI PSRAM # 第四步启动应用 npm start硬件方面照着 README 备齐 ESP32 S3、OV2640 摄像头、电池3D 打印一个镜架外壳25 美元以内就能凑齐。智能穿戴设备的未来不该只属于那些贴着天价标签、内部却是一团黑盒的封闭产品。OpenGlass 的价值恰恰在于它把智能眼镜这个听起来很高端的东西拆成了你桌上的零件、屏幕里的代码、和一次可以亲手完成的组装。它证明了一件事AI 眼镜不是买来的奢侈品而是可以做出来的日用品。现在去打开那个仓库把第一张属于你视角的照片交给你的第一副 AI 眼镜吧。【免费下载链接】OpenGlassTurn any glasses into AI-powered smart glasses项目地址: https://gitcode.com/GitHub_Trending/op/OpenGlass创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考