Gemini Vision + Raspberry Pi 化身“数字导盲犬”?
本文讨论了一位程序员利用树莓派、摄像头、Gemini和Python构建PeregrineEye设备,使其成为“数字导盲犬”为视障者服务的项目经历,包括项目灵感、功能、构建过程、遇到的挑战及未来计划等。关键要点包括:
1.项目灵感:程序员因眼睛疲劳引发思考,结合AutoBerry Pi项目,想为视障人士创造了解周围环境的设备。
2.项目功能:能进行图像描述,将图片和音频描述保存为MP3;未来将推出交互式指导。
3.项目构建:利用Gemini视觉模型分析图片,Python的Google文本转语音引擎实现文本转语音,硬件包含树莓派等部件,以Python集成硬件和库。
4.面临挑战:存在照明敏感度、大模型幻觉、距离和细节、多任务管理等问题。
5.未来计划:增加麦克风支持,连接API保存相关数据,集成RAG模块增强理解能力。
6.项目潜力:可用于获取营养信息、识别仓库标签、跟踪健康进度等。
7.引发思考:项目引发对视觉大模型、TTS领域及接入其他模型的讨论,演变为检验AI普惠性的课题 。
导语
当Gemini初现锋芒,全球开发者都为多模态AI的"视觉智能"心跳加速——演示视频里,模型对汉堡配料如数家珍,对化学方程式信手拈来。但鲜有人追问:当炫技的聚光灯熄灭,这些技术究竟能在真实世界的暗角点燃怎样的火种?
一位程序员用树莓派+摄像头+Gemini+Python构建的PeregrineEye设备,给出了他的答案:在视力模糊的日子里,让AI化身"数字导盲犬",通过实时图像描述与语音反馈,为视障者重构空间认知。这个极客版"第三只眼",既验证了多模态大模型的实用价值,也暴露出技术落地时的刺骨现实。下面来看看他的项目经历吧!
灵感
作为一名程序员,我花了无数的时间盯着代码。有一天,眼睛疲劳迫使我只能用模糊的视线面对世界。这次经历凸显了视力对我们日常生活的深远影响。这引发了一个问题:当我的视力需要休息时,导致这种暂时退步的技术——人工智能能否成为一种辅助工具?
由于我一直在从事另一个名为AutoBerry Pi的项目,我决定在它上面添加一个摄像头和一个音响罩,这样我就可以与 LLM 和周围环境进行互动,创造出一些可以帮助视障人士了解周围环境的东西。
值得一提的是,我知道这个概念已经存在了有:一个非常酷的概念视频,一个男人使用 ChatGPT帮助导航。
PEREGRINEYE项目并不是想与之竞争;这个项目是在该视频发布之前构思的,纯粹是出于我对在旅途中使用设备测试 LLM 的热爱。
项目预览
下面是这款相机的外形
功能
- 图像描述:在光线充足的任何地方拍摄一张照片,AI相机会立即从您的视角描述图像中的元素,提供丰富的细节。它将图片和音频描述都保存为 MP3 以供日后参考。
- 即将推出:交互式指导。不久,AI相机 将更进一步。只需告诉它您在拍摄的图像中寻找什么,它就会提供音频说明,帮助您找到物体、绕过障碍物或与周围环境互动。
它是如何建造的
1、图像描述引擎
我们利用 Gemini 视觉模型来分析设备拍摄的图片并生成详细的描述。提示词对于塑造输出的质量极为重要。我们目前使用的基本提示为我们提供了中等到良好的结果:
提示词:您是一个数字助理,需要为盲人提供视觉反馈,帮助他们在周围环境中导航。收到图像后,详细描述关键物体和结构,包括它们的相对位置和上下文信息。您的回复应简洁、清晰且信息丰富,使用户能够有效地定位自己。此外,学习并适应经常访问的地方,以提供个性化指导。您的回复要自然,并专注于提供有价值的帮助,使您的用户能够进行日常导航。
代码现在需要从更新1.5-flash到:
model= genai.GenerativeModel(model_name="gemini-1.5-pro-latest")
尽管 Gemini 视觉模型提供了不错的结果,但它并不是这类项目的最佳选择,因为它有时会产生不准确的描述(“幻觉”)。通过更好的参数化和模型微调,这可能会得到改善。
2、文本转语音 (TTS)
我们使用 Python 的 Google 文本转语音 (gTTS) 引擎,该引擎可将描述性文本转换为清晰的音频供用户使用。gTTS 是一个易于使用的库,可让您创建无限量的语音,使其成为付费 TTS 服务的绝佳替代品。使用 gTTS,您可以将任何文本转换为语音,包括较长的文本。虽然某些基于云的 TTS 服务可能有使用限制,但gTTS 目前不需要任何付费 API或额外功能来实现我们一直使用的目的,允许免费和无限地生成语音。
frombutton_libraryimportButtonimportsubprocessimportosfromPILimportImagefromaudio_libraryimportAudioRecorderfromgttsimportgTTSfrompygameimportmixerfromdotenvimportload_dotenvimportglob
3、硬件
系统的核心部件包括:
- Raspberry Pi Zero 2W:系统核心的紧凑且价格实惠的微控制器。
- Adafruit Voice Bonnet:用于高品质音频输入和输出,确保用户和设备之间的清晰通信。
- UPS Lite:提供可靠的电源,确保不间断运行。
- Raspberry Pi 摄像头:捕获图像,并通过图像描述引擎进行实时分析。
由于树莓派的配件丰富,要搭建这样一个应用的原型非常容易。
4、编程
Python 作为主要的编程语言来集成各种硬件组件和库,确保摄像头、视觉模型和文本转语音系统之间的顺畅交互。
我们遇到的挑战
1、照明敏感度
- 照明条件差时的表现:正如预期的那样,Gemini Vision 的准确度在照明条件差的情况下会显著降低。这会导致幻觉增多和物体识别不准确。
- 照明条件充足的表现:模型在光线充足的图像下表现最佳,表现出更高的精度和更少的幻觉。
更新:更换相机后,我注意到图像质量有了显著改善,这大大提高了模型的性能。因此,我建议选择原装 Raspberry Pi 相机:Raspberry Pi 相机,它提供了更好的效果。
2、大模型幻觉
物体幻觉:
- Gemini Vision有时会识别出图像中实际上不存在的物体。这通常涉及通常在场景环境中发现但在特定图片中不存在的物体。例如,即使没有视觉证据,它也可能推断出架子后面有柜台。
- 在一个例子中,模型错误地识别了广告牌上的墨西哥公众人物Lily Téllez,尽管她没有出现在图片中。这表明模型可能倾向于将知名人物与某些地点、背景甚至颜色联系起来。我仍然不完全理解它怎么会错误地识别图片中的 Lily。虽然这张照片与政治有关(这是准确的,尽管照片中的人不是政治人物),但唯一明显的线索似乎是“VOTA”这个词,意思是“投票”。
3、距离和细节
- 特写图像准确度:Gemini Vision 在分析特写图像时表现出色。细节更清晰,幻觉更少,物体识别更准确。
- 距离带来的挑战:相机与拍摄对象之间的距离越大,性能就越差。细节变得越不清晰,从而导致误解和幻觉。
4、多任务管理
- 当前面临的一个重大挑战是同时管理多项服务。这包括语音生成、AI API 调用、按钮和麦克风输入,以及确保 AI 的快速响应时间。
下一步是什么?
1、麦克风支持
下一步是使提示动态化,以适应用户与设备交互的特定需求。通过将麦克风集成到音频引擎盖中,可以实现这一点,允许根据用户输入实时自定义提示。
2、连接 API 以保存图像、请求和 LLM 输出
我计划创建一个端点来保存图像、用户请求和 LLM 生成的输出。这将使我能够建立与设备交互的全面记录,并有可能转变为用户设备交互的有用百科全书。
3、RAG 集成(检索增强生成)
我的目标是集成一个模块,允许设备从另一个 API 检索数据,通过访问外部知识源来增强其理解和与图像交互的能力。这将有助于提供更多背景信息并提高图像解释的准确性。
结论
老实说,在超市里闲逛,指着随机的东西,看看 LLM 认为它在看什么,这真是太有趣了——有时它很准确,有时,嗯,不太准确!但这都是乐趣的一部分。这个小装置有太多的潜力,不仅仅是玩玩而已。想象一下,用它来从食物图片中获取营养信息,在繁忙的仓库中识别标签,甚至跟踪你的健康和康复进度。这个东西可以做很多事情,我迫不及待地想看看它下一步会去哪里!
结语
如今大模型的都在你追我赶,当GPT-4o的实时视频解析刷新认知,当Llava-1.6在本地端跑出惊艳的视觉推理,这个开源项目正站在多模态大模型革命的十字路口。我们亟需一场开发者间的"技术众筹":
您是否部署过更"接地气"的视觉大模型?哪些开源方案在抗干扰、防幻觉方面表现优异?
在TTS领域,ElevenLabs的拟真声线、Azure Neural的抑扬顿挫,或是本地部署的Bark模型,谁能赋予设备更温暖的"声音灵魂"?
若将设备接入SAM图像分割模型,能否实现"帮我找到左边第三个红色罐头"的精准定位?
这场始于程序员个人痛点的极客实验,正在演变为检验AI普惠性的社会课题。欢迎大家在评论区参与讨论!