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

news2024/11/13 10:55:07

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

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

代码:

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()

        # 获取用户输入的 prompt
        prompt = 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 = imgtk
        camera_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.coloradmin.cn/o/2106584.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从源码到应用:数字药店系统与医保购药APP的开发实践

本篇文章,我们将深入探讨数字药店系统的开发过程,并介绍医保购药APP如何通过源码设计实现从基础功能到完整应用的转化。 一、数字药店系统概述 数字药店系统是一种基于互联网技术开发的在线药品销售与管理平台,通常包括药品展示、在线购买、…

NAT技术介绍+缺陷(内网穿透+工具),NAPT(介绍,替换过程,原理,NAT转换表)

目录 NAT技术 介绍 NAT转换表 引入 介绍 NAPT技术介绍 NAPT替换过程 NAPT原理 注意点 NAT缺陷 无法直接访问其他内网主机 内网穿透 工具 其他 NAT技术 介绍 NAT 是一种网络技术,它允许在一个公共 IP 地址和多个私有 IP 地址(入口路由器的wan口地址 …

屋顶上的气膜体育馆:商场创新的引流利器—轻空间

现代都市生活中,商场已成为不可或缺的一部分。然而,在竞争激烈的市场环境中,能够脱颖而出的商场往往依赖于独特的经营策略和创新的理念。上海嘉定某商场正是凭借其巧妙的创新思路,成功吸引了大量顾客,成为区域内的商业…

cc-proxy 常见几种代理场景

背景: 某项目全部内网环境,只有跳板机有访问互联网的权限,现在需要给内网的服务器更新系统,以及在线下载docker镜像 之前,使用过cc-proxy 这样的工具,当然现在这个工具已经停止维护了,使用完之…

2024源代码加密软件推荐,11款超好用的源代码加密软件推荐!

在数字化时代,源代码加密软件成为了保护企业与开发者心血的坚实盾牌。随着网络安全威胁的日益增多,选择一款高效、可靠的源代码加密工具变得至关重要。2024年,技术的迭代让加密软件更加成熟, 1.安秉源代码加密软件 安秉源代码加…

手机玩赛博朋克2077教程 GameViewer远程助你手机随时随地玩3A大作 手机怎么玩赛博朋克

手机居然也能玩赛博朋克2077,实现手机玩主机3A大作?如果你想用手机随时随地玩赛博朋克2077,可以用网易GameViewer远程实现。GameViewer远程作为一款专为游戏玩家打造的远程控制软件,让你随时随地畅玩电脑游戏,无论是手…

云原生 | 在 Kubernetes 中使用 Cilium 替代 Calico 网络插件实践指南!

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 0x00 简述介绍 什么是 Cilium? Cilium 是一款开源软件,它基于一种名为eBPF的新的Linux内核技术提供动力,用于透明地保护使用 Docker 和 Kubernetes 等Linux 容器管理平台中部署的应用程序服务之间的网络连接,Ciliu…

数据分析——基础

目录 一、什么是数据分析 1、什么是数据 2、数据分析 2.1 数据分析概念 2.2 数据分析要结合的维度 2.3 数据分析的目的 二、数据分析流程 三、不同需求下对应的数据呈现形式 四、数据分析的几种常见方法 一、什么是数据分析 1、什么是数据 是对客观事物的性质、状态以…

还不知道如何使用CHAT GPT?您 OUT 了!

别忘了,戳这个连接,重要的连接放三遍,你值得拥有!!! https://ai.ashuiai.com/auth/register?inviteCodeXT16BKSO3Shttps://ai.ashuiai.com/auth/register?inviteCodeXT16BKSO3S https://ai.ashuiai.com…

别让质量问题拖垮您的企业,快看看这些隐藏的风险

质量问题的严重性 在企业运营中,质量问题往往是致命的隐患。一旦产品质量出现纰漏,可能会导致客户流失、品牌声誉受损,甚至带来巨大的经济损失。质量问题不仅影响短期业绩,更可能动摇企业的根基,拖垮整个业务。无论您是…

ByteTrack多目标跟踪(一)—理论基础

ByteTrack多目标跟踪 算法概述 github: https://github.com/ifzhang/ByteTrack ByteTrack是一种基于Tracking-by-Detection范式的多目标跟踪算法。 先前的多目标追踪算法一般在完成当前帧的目标检测后只会保留置信度比较大的检测框用于进行目标跟踪,比如图中置信度…

Git的Merge操作原理,手动merge时主分支的提交记录的保留规则

merge merge 是 Git 中用于将不同分支的历史记录合并在一起的命令。它可以将一个分支的变化合并到当前分支中,同时保留两条分支的历史记录。merge 的主要用途: 整合功能:将某个功能分支(如 feature-branch)的修改合并到主分支(如 main)中。 保留提交历史:与 git reba…

drop database xx 傻逼玩意

DB2数据库,就是一个逗比。下面我演示一遍,从创建数据库到删除数据库跑路。哈哈 1.创建数据库 db2 create database test我创建了一个数据库 test 查一下数据库目录 db2 list db directory因为我电脑只有一个盘,C盘,我是装在C盘…

npm login 或者 npm publish 超时timeout

场景:空闲时间想自己尝试下npm发布包,毕竟这东西可以不用,但不能不会 步骤很简单 1.npm login 2.npm publish 这里有个坑。。。因为想发布到npm上,所以这里的镜像源要换回https://registry.npmjs.org,不能使用淘宝镜像…

基于SSM+MySQL的医院在线挂号系统

系统背景 在当前数字化转型浪潮的推动下,医疗服务行业正经历着前所未有的变革。随着人口老龄化的加剧、患者就医需求的日益增长以及医疗资源分布不均等问题的凸显,传统的就医模式已难以满足患者对于便捷、高效医疗服务的需求。因此,构建一套基…

神仙级AI大模型入门教程(非常详细),从零基础入门到精通,从看这篇开始!

一.初聊大模型 1.为什么要学习大模型? 在学习大模型之前,你不必担心自己缺乏相关知识或认为这太难。我坚信,只要你有学习的意愿并付出努力,你就能够掌握大模型,并能够用它们完成许多有意义的事情。在这个快速变化的时…

8千多古诗词唐诗宋词鉴赏ACCESS\EXCEL数据

虽然已经有很多诗词类的数据库,最近又再次找了一下古诗词类的数据,又发现了一些,可是真的是各有各的优点,各有各的特色,之后不再重找诗词类的数据了。 今天这个诗词鉴赏数据也不错,有分类TAG,也…

运维学习————Jenkins部署Jar包

目录 使用Jenkins部署Jar包 1、在Jenkins构建Jar包 2、把项目部署到jenkins本地 3、部署到远程服务器上(不是Jenkins所在的服务器) 4、其他jenkins部署方式(使用插件publish over ssh) 1、安装插件 2、配置system 3、jenkins配置 使用Jenkins部署…

【开端】clickhouse入门使用

一、绪论 这两天使用clickhouse进行数据分析,在使用上和mysql等关系型数据库还是有区别的,在SQL语法上也有差别,所以这里总结一下使用。 二、clickhouse入门使用 ClickHouse介绍 ClickHouse是俄罗斯的Yandex公司于2016年开源的列式存储数据…

SSM健身俱乐部网站—计算机毕业设计源码25623

摘 要 大数据时代下,数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势。在健身俱乐部的要求下,开发一款整体式结构的健身俱乐部网站…