Funpack4-1: 基于MaixPy调用智谱GLM-4V多模态大模型图像理解
该项目使用了MaixPy m1w Dock 开发板,实现了AI相机的设计,它的主要功能为:串口图传,多模态大模型图像理解。
标签
嵌入式系统
Funpack活动
显示
开发板
USB
墨非沧海
更新2025-04-08
吉林大学
16

第1章                     项目描述

1.1       项目功能介绍

本项目实现了一种多模态大模型智能图片理解助理,可以基于硬件的摄像头获取图片和屏幕展示大模型的图像理解结果。

使用摄像头采集画面,并通过网络发给大语言模型,识别画面中拍摄的物体,并将画面内容的描述显示至屏幕上。

1.2       设计思路

本项目首先基于MaixPy m1w Dock的硬件功能,实现拍照和向屏幕展示文字两种基础功能。

基于官方手册和Github的开源项目,找到若干年前的串口控制单片机方案。基于该串口方案,使用图片与字节互转技术,利用串口发送字节流实现信息传递转换。使用智谱AI的免费多模态大模型API ,网络发送图片并接收信息,进行图像语义理解。编写简化的智能排版程序,展示到硬件屏幕。

选用串口方案,主要是因为该方案稳定且为USB 3.0速度,多个电子硬件社区对该型板卡的网络图传讨论停滞在 2019 年,且基于ESP的网络图传速度非常慢,在第二代Maix-II-Dock板卡对该网络图传功能进行了速度升级。

主要参考资源:

官网教程:

https://wiki.sipeed.com/hardware/zh/maix/maixpy_develop_kit_board/Maix_dock.html

[GitHub - 66my/mpfshell: 一个简单的基于 shell 的文件浏览器,适用于基于 ESP8266 Micropython 的设备](https://github.com/66my/mpfshell)

Mpfshell-lite

串口通信原理:

https://blog.csdn.net/z5859095/article/details/140623341

官方图传教程(仅适配 Maix-II-Dock 固件):

https://wiki.sipeed.com/hardware/zh/maixII/M2/maixhub_train.html?highlight=%E4%BC%A0%E5%9B%BE

网络传图方法(需要短接硬件刷ESP固件,官方出厂固件不直接支持该库,配置较为麻烦):

https://github.com/sipeed/MaixPy-v1_scripts/blob/master/network/demo_http_get_jpg.py

 

 

1.3       硬件框图

image.png

image.png

1.4       软件流程图


 image.png

第2章                     硬件介绍

MAIX Dock开发板是MAIX产品线的一员,是基于嘉楠堪智科技的边缘智能计算芯片K210设计的一款AIOT开发板。化繁为简的设计,整洁小巧,板载Type-C接口和USB-UART电路,用户可以直接通过USB Type-C线连接电脑进行开发,配置128Mbit FlashLCDDVPMicro SD卡等接口并把所有IO引出,方便用户扩展。Sipeed M1w Dock Suit K210 开发板是由Seeed提供的一款开发套件,该套件配置了M1w dock模块、 2.4 英寸 LCD 以及OV2640 鱼眼相机。

Seeed Studio Sipeed M1w Dock Suit K210开发板设计适用于边缘计算。MAIX DockSipeed专门构建的模块,用于在边缘运行AI,将其称为AIoT。该模块占位小、功耗低、性能高,可在边缘部署高精度AIRV64 AI板采用28nm工艺、双核RISC-V 64IMAFDC,以及片上大型8MB高速SRAM400MHz频率处理器。

MAIX Dock开发板是SiPEED公司MAIX产品线的一员,基于嘉楠堪智科技的边缘智能计算芯片K210(RISC-V架构 64位双核)设计的一款AIOT开发板。化繁为简的设计,整洁小巧,板载Type-C接口和USB-UART电路,用户可以直接通过USB Type-C线连接电脑进行开发,配置128Mbit FlashLCDDVPMicro SD卡等接口并把所有IO引出,方便用户扩展。

MaixDock 开发是以M1W AI模块作为核心单元,功能非常强大。模块内置64位双核处理器芯片,拥有8M的片上SRAM,在AI机器视觉、听觉性能方面表现突出,内置多种硬件加速单元(KPUFPUFFT等),总算力最高可达1TOPS,可以方便地实现各类应用场景的机器视觉/听觉算法,也可以进行语言方向扫描和语言数据输出的前置处理工作。

 

 

第3章                     实现的功能及图片展示

闪光灯下识别效果:

image.png

上位机端反馈处理进度:

image.png

 

地板拍照识别效果:

image.png

游戏手柄识别效果:

image.png

橘子识别效果:

image.png

 

第4章                     主要代码片段及说明

图像拍照、文字排版和展示功能:

img=sensor.snapshot()
img.draw_string(10,10, ("Dark object on table," ), color=(0,128,0), scale=2)
img.draw_string(10,50, ("..." ), color=(0,128,0), scale=2)
img.draw_string(10,100, ("..." ), color=(0,128,0), scale=2)
lcd.display(img)

图像压缩、转换为字节码。

img = img.compress(quality=80)  # 压缩图片为jpg,质量为80%
img_bytes = img.to_bytes()
print(img_bytes)

上位机端,字节码转换为图像:

image = Image.open(io.BytesIO(byte_data))
image.save("output_image.png")


上位机端,控制开启命令行并持续输入:


process = subprocess.Popen("mpfs", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)


        Mpfs命令行控制单片机的规则:

mpfs


python代码中实现控制

commands = [
    "open COM6\n",  # 打开 COM6
    "lcd D:/24Python/Other/Hardware_code_py\n",  # 切换到目标目录
    "runfile maix_test.py\n",  # 执行 maix_test.py
    "quit\n"  # 退出
]

图像通过网络上传给智谱AIchatglm)处理。

    img_base = base64.b64encode(img_file.read()).decode('utf-8')
client = ZhipuAI(api_key=" ")
response = client.chat.completions.create(
    model="glm-4v-Flash",  # 填写需要调用的模型名称,该模型免费调用
    messages=[
      {
        "role": "user",
        "content": [
          {
            "type": "image_url",
            "image_url": {
                "url": img_base
            }
          },

第5章                     遇到的主要难题及解决方法

本项目主要困难在图传方案选择上,花了很长时间翻论坛评估网络图传方案的可行性,最后还是认为串口方案更加灵活易用。结合现有的开源库资源,设计了一套图传逻辑,传输速度基于USB3.0非常快。配合mpfshell-lite库进行设计开发也比较困难,因为mpfshell不支持这个板卡(无法连接板卡),所以需要进一步理解mpfshell-lite库。

另外调用多模态API,选定模型和调试也花了一定时间。

 

 

第6章                     对本活动心得体会

多模态模型配合硬件这种需求出现不到一年半的时间,很难想象技术的发展和推广速度如此之快,随着技术进步,复杂需求对个人开发者来说越来越容易实现。得益于开源社区的进步和 Saas 服务模式的成熟,嵌入式软件开发可以更加灵活和高效。

感谢硬禾学堂和DigiKey发起的这次活动,如 Sipeed M1w Dock Suit 这类同时具备摄像、视频输出、网络、串口功能的高性能板卡,能够非常好地满足个人开发者的开发需求。

 

附件下载
图传转换代码提交.zip
运行“图传合并v1.1.py”即可,会自动调用其他文件。
团队介绍
墨海纵横,鸢游四方
团队成员
墨非沧海
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号