Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
OPENMV
在OpenMV工程的基础上进行多模态机器人的开发
发布于 2024-09-19 12:20:58 浏览:159
订阅该版
经过对rtthread社区的官方文档学习后,发现目前vision板子上openmv工程已经很完善,甚至可以WiFi图传。 这对我的方案实现很有帮助,可以极大加快开发的速度和效率。按照教程描述,打开了mjpeg_streamer.py这个WiFi的例程,就很顺畅的跑起来了。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/328724e719035964fe66ddf8990f954c.png.webp) 当然上图所示的结果,也是需要按照教程中说的,修改了自己相应的WiFi联网热点名字和密码才能正确运行。之后就是在另一台Linux服务器上去连接同一个WiFi-AP路由器,vision板子必须和服务器互相ping通,才能打开浏览器访问WiFi图传的mjpeg流。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/a4d98f76163c4e6d0475e06b32371792.png.webp) 从上图可以看到,虽然因为操作不太方便造成的截图有点模糊,但是在另一台Linux服务器上浏览器已经正确的获取了mjpeg流。 到这里就很容易了,接下来的流程就是在服务器上处理WiFi图传流中的某一帧图片,截图保存后并把这张图片进行token化,准备作为多模态大模型vllm的query,传送给vllm然后获取到它的answer。 接下来,我尝试了几个ollama中的本机运行的多模态大模型vllm,例如llava-phi3/bakllava/llava-llama3等等。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/d110348d6809985ecc3282125fc5f8ac.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/7e120f5da104f623b6ca21ffb83b7bce.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/7e120f5da104f623b6ca21ffb83b7bce.png.webp) 运行测试结果都不如人意,主要是这台Linux服务器作为我自己用的测试服,只是开发和测试环境里用的,算力性能和内存资源等等都比较受限制,推理时间特别长。所以我干脆把图片传给了云端的Qwen2-vl多模态大模型,下面来看看它的答案answer情况(主要想看下它是如何开始胡说八道的哈哈(不是))。 首先我把获取到jmpeg流中的截取出来一个整体的截屏图片,如下所示。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/5a295baf95be755261cb7485214e3eec.png.webp) 然后我的prompt为------Q:请描述一下图片中的大概内容,从Qwen2-VL得到的答案如下所示。 A:图中是一个网页,地址栏写着192.168.2.103:8080,下面显示的是一段代码,代码内容如下: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/c19b5c0b7dcb5004afede1c1d31a89af.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/c9c20fcdc6d65acdc958c535120bb05d.png.webp) 这是一段Python代码,使用了picamera和HTTPServer库,实现了启动一个web服务,端口8080,可以实现实时显示Raspberry Pi的摄像头画面(你看看哈哈)。 这是不是已经接近了一本正经的胡说八道呢?代码部分完全是它自己生成。 然后我把这个整体图片再做一次中心截取,上传给它。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/a6c75452b063a6a19b4c167695786647.png.webp) 这次我的prompt为------Q:这个图片里面是什么呢? 从Qwen2-VL得到的答案如下所示。 A: 这张图片显示的是一段计算机代码,看起来像是Python语言编写的。虽然图片有些模糊,但我可以尝试解读一下其中的部分内容。代码似乎与网络通信有关,包括导入了一些库,比如os、sys、time、picamera以及两个HTTP相关的库。 此外,还定义了一个CameraServer类,继承自SimpleHTTPRequestHandler,处理GET请求。这个类有两个方法do_GET,分别对应于不同的路径。一个是根路径'/',另一个是'/stream.jpg'。根路径返回一个HTML页面,该页面包含一个指向'stream.jpg'的图片元素。而'/stream.jpg'路径则返回一个JPEG图片。 整个程序看起来像是一个简易的HTTP服务器,用于提供实时的图片流服务。 那这一次的答案就还是算比较靠谱了,而且它并没有自己胡编乱造,要给Qwen2-VL多模态大模型点赞! 最后呢作为比对基准,当然我们是用直接截屏的方式,获取了omv-ide中的图片上传的。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/328724e719035964fe66ddf8990f954c.png.webp) 这次我的prompt为------Q:这个图片里面是什么东西呢?从Qwen2-VL得到的答案如下所示。 A:: 图中是OpenMV IDE的界面,左侧是代码编辑区,右侧是图像预览区。代码是用python语言编写的,主要功能是通过WiFi传输视频流。 具体来说: 第23行到第30行是初始化摄像头模块并设置分辨率; 第31行到第40行是连接WiFi; 第41行到第57行是创建服务器套接字并开始发送视频流; 最后一行是串口输出的数据。 代码的具体含义如下: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/0ffb89a862312f96a847ad96f51d17df.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240919/987a2c783004fd9de7120ea021dea8f3.png.webp) 这段代码用于将OpenMV Cam连接到指定的Wi-Fi网络,并通过HTTP协议将压缩后的JPEG图像流发送到主机。首先初始化摄像头传感器和WLAN模块,然后尝试连接到指定的Wi-Fi网络。一旦成功连接,就创建一个TCP/IP套接字并监听端口8080上的连接请求。当有客户端连接时,就开始发送压缩后的JPEG图像流。最后关闭连接。 可以看出来,这次才是最靠谱的答案状态,并且根据实际的omv-mpy源码进行解释。 PS: 通过上述的操作流程和编码实现等等,我们已经完成了实测vision板子的多模态对话聊天全流程。 并且做了三项对比,由此我们可以熟知当前多模态大模型在具身智能机器人应用场景里的局限性,当然也包含了先进性。 最后, 尚未未实现的流程也有,例如扩展iis接口的Dmic硅麦,或者USB接口的mic采集语音音频,再用其他支持音视频交互的多模态大模型进行对话聊天的chatbot流程等。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
如去如来
这家伙很懒,什么也没写!
文章
5
回答
0
被采纳
0
关注TA
发私信
相关文章
1
OPENMV软件包怎么使用
2
OPENMV STM32H7 编译失败
3
openMV+micropy与RT1064的一个尝试
4
Vision Board连接不上OpenMV IDE
5
Vision Board使用openmv无法下载脚本
6
在visonboard开发中尝试在openmv中加载个人训练的YOLOv5模型,报错,超出内存
7
Vision Board 的openmv如何部署socket 模块
8
Vison Board 如何在openmv 、main.py脚本中实现和其它线程通信?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
flash
packages_软件包
cubemx
PWM
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
C++_cpp
ulog
at_device
本月问答贡献
用户名由3_15位
15
个答案
2
次被采纳
rv666
6
个答案
1
次被采纳
张世争
3
个答案
1
次被采纳
lchnu
1
个答案
1
次被采纳
大懒猫
1
个答案
1
次被采纳
本月文章贡献
alight
1
篇文章
6
次点赞
rv666
1
篇文章
4
次点赞
heyuanjie87
1
篇文章
3
次点赞
AJS琥珀清年
1
篇文章
3
次点赞
Ghost_Girls
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部