yolov8 目标检测快速streamlit可视化界面

参考:
https://github.com/ultralytics/ultralytics/blob/2330caa50a8a8e0bb61408df8dca0721fb350dbe/ultralytics/solutions/streamlit_inference.py

版本:

ultralytics                    8.2.27 
# Ultralytics YOLO 🚀, AGPL-3.0 licenseimport cv2
import streamlit as st
import torchfrom ultralytics import YOLO# Hide main menu style
menu_style_cfg = """<style>MainMenu {visibility: hidden;}</style>"""# Main title of streamlit application
main_title_cfg = """<div><h1 style="color:#FF64DA; text-align:center; font-size:40px; font-family: 'Archivo', sans-serif; margin-top:-50px;">Ultralytics YOLOv8 Streamlit Application</h1></div>"""# Subtitle of streamlit application
sub_title_cfg = """<div><h4 style="color:#042AFF; text-align:center; font-family: 'Archivo', sans-serif; margin-top:-15px;">Experience real-time object detection on your webcam with the power of Ultralytics YOLOv8! 🚀</h4></div>"""def inference():# Set html page configurationst.set_page_config(page_title="Ultralytics Streamlit App", layout="wide", initial_sidebar_state="auto")# Append the custom HTMLst.markdown(menu_style_cfg, unsafe_allow_html=True)st.markdown(main_title_cfg, unsafe_allow_html=True)st.markdown(sub_title_cfg, unsafe_allow_html=True)# Add elements to vertical setting menust.sidebar.title("USER Configuration")yolov8_model = st.sidebar.radio("Model", ("yolov8n", "yolov8s", "yolov8m", "yolov8l"))conf_thres = st.sidebar.text_input("Confidence Threshold", "0.25")nms_thres = st.sidebar.text_input("NMS Threshold", "0.45")col1, col2 = st.columns(2)org_frame = col1.empty()ann_frame = col2.empty()if st.sidebar.button("Start"):model = YOLO(yolov8_model + ".pt")  # Load the yolov8 modelvideocapture = cv2.VideoCapture(0)  # Capture the webcamif not videocapture.isOpened():st.error("Could not open webcam.")stop_button = st.button("Stop")  # Button to stop the inference# execute code until webcam closedwhile videocapture.isOpened():success, frame = videocapture.read()if not success:st.warning("Failed to read frame from webcam. Please make sure the webcam is connected properly.")break# Store model predictionsresults = model(frame, conf=float(conf_thres), iou=float(nms_thres))annotated_frame = results[0].plot()  # Add annotations on frame# display frameorg_frame.image(frame, channels="BGR")ann_frame.image(annotated_frame, channels="BGR")if stop_button:videocapture.release()  # Release the capturetorch.cuda.empty_cache()  # Clear CUDA memoryst.stop()  # Stop streamlit app# Release the capturevideocapture.release()# Clear CUDA memorytorch.cuda.empty_cache()# Destroy windowcv2.destroyAllWindows()# Main function call
if __name__ == "__main__":try:inference()except SystemExit:pass

运行:
streamlit run .\YOLO\streamlit_yolo.py

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40131.shtml

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

相关文章

网络安全--计算机网络安全概述

文章目录 网络信息系统安全的目标网络安全的分支举例P2DR模型信息安全模型访问控制的分类多级安全模型 网络信息系统安全的目标 保密性 保证用户信息的保密性&#xff0c;对于非公开的信息&#xff0c;用户无法访问并且无法进行非授权访问&#xff0c;举例子就是&#xff1a;防…

用StartAI文生图做电商设计 AI服装面料设计教程

AI电商设计需要考虑以下多个问题&#xff0c;面面俱到即可小成本做电商 步骤&#xff1a;电商选品确定文生图关键 理解面料特性&#xff1a;了解不同面料的特性&#xff0c;如透气性、弹性、耐用性等&#xff0c;以便更好地利用AI进行设计。色彩搭配&#xff1a;利用AI分析流…

【特征选择精通指南】在scikit-learn中优化你的机器学习模型

标题&#xff1a;【特征选择精通指南】在scikit-learn中优化你的机器学习模型 特征选择是机器学习中的一个关键步骤&#xff0c;它涉及从原始数据集中选择最相关的特征以提高模型的性能和减少过拟合的风险。scikit-learn&#xff0c;作为Python中一个广泛使用的机器学习库&…

C++编程逻辑讲解step by step:多态

概念 C面向对象中的多态性是指同一种类型的对象在不同的情况下表现出不同的行为。 从代码层面看&#xff0c;实际上“同一种类型”就表明了&#xff0c;这里可以在循环里用相同的代码统一处理不同的功能。这一点很重要。 题目 界面上&#xff0c;拖动鼠标画矩形或者椭圆。 …

自动做市商AMM

自动做市商&#xff08;AMM&#xff09;&#xff1a;重塑去中心化金融的市场机制 1、为什么需要AMM&#xff1f; 在传统金融市场中&#xff0c;做市商通过提供买卖双方的报价来维持市场的流动性和稳定性。然而&#xff0c;在去中心化金融&#xff08;DeFi&#xff09;领域&am…

linux screen

计算机最开始只有黑白界面,我们通过键盘设备输入字符进行编程等行为进行编程, 让计算机完成我们设定的任务. 随着计算机技术及硬件的发展, 黑白屏幕被图形界面替代, 应用程序的 GUI 界面操作成为主流, 只有远程终端由于带宽占用少,实时性高等优点一直存在到现在. 然后有时由于网…

FFmpeg开发笔记(四十三)使用SRS开启SRT协议的视频直播服务

《FFmpeg开发实战&#xff1a;从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX&#xff0c;通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了&#xff0c;无法应用于真实直播的生产环境&#xff0c;真正能用于生产环境…

java项目总结2

3.了解Java的内存分配 4.重载 定义&#xff1a;在一个类中&#xff0c;有相同名的&#xff0c;但是却是不同参数&#xff08;返回类型可以不一样&#xff09; 重载的优点&#xff1a; 1.减少定义方法时使用的单词 2.减少调用方法时候的麻烦&#xff08;比如sum的返回两个数的…

AUTOSAR汽车电子嵌入式编程精讲300篇-智能网联汽车CAN总线-基于迁移学习的驾驶行为评价方法

目录 前言 驾驶行为评价相关研究 系统模型和应用价值 挑战和解决方案 迁移学习在汽车工业中的应用 算法模型 驾驶行为评价模型的设计 驾驶行为数据的收集和预处理 驾驶行为评价模型的搭建 实验环境和数值结果 实验环境 MTL网络性能分析 前言 随着5G、GPS导航、…

《UDS协议从入门到精通》系列——图解0x84:安全数据传输

《UDS协议从入门到精通》系列——图解0x84&#xff1a;安全数据传输 一、简介二、数据包格式2.1 服务请求格式2.2 服务响应格式2.2.1 肯定响应2.2.2 否定响应 Tip&#x1f4cc;&#xff1a;本文描述中但凡涉及到其他UDS服务的&#xff0c;将陆续提供链接跳转方式以便快速了解他…

Python 3 CGI编程

Python 3 CGI编程 引言 CGI(Common Gateway Interface)是一种重要的互联网技术,它允许 web 服务器执行外部程序来处理用户请求,并生成动态内容。尽管现代 web 开发中 CGI 的使用已经不如以前那么普遍,被诸如 PHP、Python 的 WSGI、Java 的 Servlet 等技术所取代,但了解…

以太坊DApp交易量激增83%的背后原因解析

引言 最近&#xff0c;以太坊网络上的去中心化应用程序&#xff08;DApp&#xff09;交易量激增83%&#xff0c;引发了广泛关注和讨论。尽管交易费用高达2.4美元&#xff0c;但以太坊仍在DApp交易量方面遥遥领先于其他区块链网络。本文将深入探讨导致这一现象的主要原因&#…

机器人控制系列教程之Delta机器人奇异性分析

并联机器人奇异性 对于并联机构的奇异性问题比串联机构复杂。某些位形机构会失去自由度&#xff0c;某些位形机构会出现不可控自由度。其分析方法主要有几何法和代数法&#xff0c; 几何法&#xff1a; 即根据高等空间相关知识和机构中角度范围、干涉条件等推导出机构的奇异位…

力扣Hot100-19删除链表的倒数第n个节点(双指针)

给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;[]示例 3&#xff1a;…

OpenCV 图像最小外包围矩形的绘制及长短边的计算

目录 一、概述 1.1意义 1.2应用 二、代码实现 三、实现效果 3.1原始图像 3.2处理后图像 3.3数据输出 一、概述 最小外包围矩形&#xff08;Minimum Bounding Rectangle, MBR&#xff09;在计算机视觉和图像处理中的意义和应用非常广泛。它是指能够完全包围目标的最小矩…

phpexcel导入导出

前言&#xff1a; 如果你到处的excel软件打开有问题&#xff0c;下面有介绍解决办法 导入 1. composer init 初始化 2. 下载phpspreadsheet 这里需要注意php版本&#xff0c;需要大于7.2 composer require phpoffice/phpspreadsheet3. 编写代码 <?php require vendo…

WPF 3D绘图 点云 系列五

基本概念:点云是某个坐标系下的点的数据集。 可能包含丰富的信息,包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等等 点云可以将现实世界原子化,通过高精度的点云数据可以还原现实世界。万物皆点云。 通过三维激光扫描仪进行数据采集获取点云数据,其次通过二维影像进行…

Java | Leetcode Java题解之第213题打家劫舍II

题目&#xff1a; 题解&#xff1a; class Solution {public int rob(int[] nums) {int length nums.length;if (length 1) {return nums[0];} else if (length 2) {return Math.max(nums[0], nums[1]);}return Math.max(robRange(nums, 0, length - 2), robRange(nums, 1,…

小试牛刀-区块链代币锁仓(Web页面)

Welcome to Code Blocks blog 本篇文章主要介绍了 [区跨链代币锁仓(Web页面)] ❤博主广交技术好友&#xff0c;喜欢我的文章的可以关注一下❤ 目录 1.编写目的 2.开发环境 3.实现功能 4.代码实现 4.1 必要文件 4.1.1 ABI Json文件(LockerContractABI.json) 4.2 代码详解…

AI绘画-Stable Diffusion 原理介绍及使用

引言 好像很多朋友对AI绘图有兴趣&#xff0c;AI绘画背后&#xff0c;依旧是大模型的训练。但绘图类AI对计算机显卡有较高要求。建议先了解基本原理及如何使用&#xff0c;在看看如何实现自己垂直行业的绘图AI逻辑。或者作为使用者&#xff0c;调用已有的server接口。 首先需…