基于多模态大语言模型的摄像头实时感知交互

2024-09-05 13:04

本文主要是介绍基于多模态大语言模型的摄像头实时感知交互,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介:
调用本地摄像头,通过多模态大语言模型实时感知世界,并进行交互

界面:
在这里插入图片描述

代码:

import tkinter as tk
from tkinter import ttk
from PIL import Image, ImageTk
import cv2
import requests# 定义处理函数
def capture_and_send():# 从摄像头读取当前帧ret, frame = cap.read()if ret:# 将帧转换为图像格式_, buffer = cv2.imencode('.jpg', frame)image_data = buffer.tobytes()# 获取用户输入的 promptprompt = prompt_entry.get()# 构建请求数据files = {'image': ('image.jpg', image_data, 'image/jpeg')}data = {'prompt': prompt}# 发送 POST 请求到多模态大语言模型的服务response = requests.post('http://10.136.22.140:7860/qwenvl2', files=files, data=data)# 将响应显示在结果文本框中if response.status_code == 200:result = response.json()['text']result_entry.delete(1.0, tk.END)result_entry.insert(tk.END, result)else:result_entry.delete(1.0, tk.END)result_entry.insert(tk.END, "Error: " + str(response.status_code))def clear_text():# 清空两个文本框的内容prompt_entry.delete(0, tk.END)result_entry.delete(1.0, tk.END)def update_frame():ret, frame = cap.read()if ret:# 将图像转换为适合在 Tkinter 中显示的格式cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)img = Image.fromarray(cv2image)imgtk = ImageTk.PhotoImage(image=img)camera_label.imgtk = imgtkcamera_label.configure(image=imgtk)# 每 10 毫秒更新一次camera_label.after(10, update_frame)# 创建主窗口
root = tk.Tk()
root.title("Multi-modal AI Interface")
root.geometry("900x600")  # 设置窗口大小# 样式配置
style = ttk.Style()
style.configure("TButton", font=("Arial", 12), padding=10)
style.configure("TLabel", font=("Arial", 12))
style.configure("TEntry", font=("Arial", 12))
style.configure("TText", font=("Arial", 12))# 摄像头画面区域
camera_label = ttk.Label(root)
camera_label.grid(row=0, column=0, rowspan=6, padx=10, pady=10, sticky="nsew")# Prompt 输入框
prompt_label = ttk.Label(root, text="Enter prompt:")
prompt_label.grid(row=0, column=1, padx=10, pady=5, sticky="w")
prompt_entry = ttk.Entry(root, width=50)
prompt_entry.grid(row=1, column=1, padx=10, pady=5, sticky="ew")# 结果显示框
result_label = ttk.Label(root, text="Model Output:")
result_label.grid(row=2, column=1, padx=10, pady=5, sticky="w")
result_entry = tk.Text(root, width=50, height=15)
result_entry.grid(row=3, column=1, padx=10, pady=5, sticky="ew")# 发送按钮
send_button = ttk.Button(root, text="Send to Model", command=capture_and_send)
send_button.grid(row=4, column=1, padx=10, pady=5, sticky="ew")# 清空按钮
clear_button = ttk.Button(root, text="Clear Text", command=clear_text)
clear_button.grid(row=5, column=1, padx=10, pady=5, sticky="ew")# 打开摄像头
cap = cv2.VideoCapture(0)# 开始摄像头实时更新
update_frame()# 运行主循环
root.mainloop()# 释放摄像头
cap.release()
cv2.destroyAllWindows()

这篇关于基于多模态大语言模型的摄像头实时感知交互的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139035

相关文章

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了