使用免费 FlaskAPI 部署 YOLOv8
目标检测和实例分割是计算机视觉中关键的任务,使计算机能够在图像和视频中识别和定位物体。YOLOv8是一种先进的、实时的目标检测系统,因其速度和准确性而备受欢迎。
Flask是一个轻量级的Python Web框架,简化了Web应用程序的开发。通过结合Flask和YOLOv8,我们可以创建一个易于使用、灵活的目标检测任务API。
在这篇文章中,我将向您展示如何仅使用Flask API部署YOLOv8目标检测和实例分割模型,仅供个人使用。由于这不是在生产环境中部署服务的正确方式。

AWS中创建一个免费实例
个人项目的成本效益解决方案Amazon Web Services(AWS)为刚刚入门或从事个人项目的用户提供了免费层选项。只要您的使用保持在指定限制范围内,此选项允许您探索和利用各种AWS服务,而不会产生额外费用。免费层实例非常适合熟悉AWS并尝试不同服务之前,小规模应用程序的运行、测试新想法,甚至部署YOLOv8 API。创建AWS账户后,您必须按照以下步骤操作:
1. 选择您的地区(我将使用eu-west-1)并转到EC2

2. 单击“启动实例”按钮

3. 选择您的映像,我更喜欢Ubuntu 20.04,并选择您的实例类型“免费层符合条件”

4. 创建您的密钥对(实例密钥访问)

5. 将存储设置为30GB,第一年免费。然后按“启动实例”

6. 更改端口设置并打开实例的端口5000

准备实例以部署YOLOv8 FlaskAPI
在本教程中,我使用了我的个人笔记本电脑运行Ubuntu 20.04来演示该过程。如果您使用不同的操作系统,如Windows或macOS,建立SSH连接的过程可能会有所不同。
1. 使用刚刚下载的密钥对连接到您的实例:
sudo chmod 400 yourkey.pem
sudo your_path/yourkey.pem ubuntu@ec2-ip-of-your-instance.eu-west-1.compute.amazonaws.com
sudo apt-get install libgl1-mesa-glx # required by OpenCV 2. 更新和安装必要的库:首先,使用以下命令更新系统上的包列表:
# Update and install necessary libraries
sudo apt update
sudo apt-get install libgl1-mesa-glx # needed by OpenCV 3. 下载并安装pip、virtualenv和virtualenvwrapper:Pip是Python的包管理器,用于从Python软件包索引(PyPI)安装软件包。而virtualenv和virtualenvwrapper是用于为您的项目创建隔离的Python环境的工具。使用以下命令下载并安装pip:
# Download and install pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py rm get-pip.py
# Install virtualenv
pip install virtualenv virtualenvwrapper 4. 设置虚拟环境:要设置虚拟环境,请在您的.bashrc文件中添加以下行,然后对其进行源代码:
# Virtual Environments
USER=ubuntu
echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
echo "export VIRTUALENVWRAPPER_VIRTUALENV=/home/$USER/.local/bin/virtualenv" >> ~/.bashrc
echo "source /home/$USER/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc 5. 增加交换内存:通过分配6GB到交换文件并将其添加到fstab文件来增加交换内存:
# Increase the swap memory
sudo fallocate -l 6G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab 6. 克隆YOLOv8 API存储库并部署API:克隆存储库并为YOLOv8 API创建一个新的虚拟环境:
# Clone repo and deploy your API
git clone https://github.com/hdnh2006/YOLOv8API
cd YOLOv8API
mkvirtualenv YOLOv8API 7. 安装torch和torchvision(仅支持CPU功能):使用以下命令安装torch和torchvision软件包:
# Install torch and torchvision (just CPU functions)
pip install torch torchvision -f https://download.pytorch.org/whl/cpu/torch_stable.html 8. 使用screen在后台运行模型:使用screen命令在后台运行YOLOv8 API,并通过运行以下命令允许访问端口5000来在端口5000上运行模型:
# The model will run in the background
screen -S YOLOv8API
workon YOLOv8API
python segment_api.py --weights yolov8s-seg.pt --port 5000# Open the port of your instance
sudo ufw allow 5000 9. 最后一步:“享受”自己的成果,浏览器转http://ec2-ip-of-your-instance.eu-west-1.compute.amazonaws.com:5000,现在,您可以运行一个Flask应用程序,部署YOLOv8目标检测或实例分割模型作为API。用户可以通过一个简单的Web界面与API互动,或通过向/detect端点发出HTTP请求来互动。
结论
在本文中,我们演示了如何使用Flask API部署YOLOv8目标检测模型,仅供个人使用。这种方法为各种应用中的目标检测和实例分割任务提供了一种灵活、易于使用的解决方案,如安全系统、个人防护装备、物体计数。
· END ·
HAPPY LIFE

本文仅供学习交流使用,如有侵权请联系作者删除
相关文章:
使用免费 FlaskAPI 部署 YOLOv8
目标检测和实例分割是计算机视觉中关键的任务,使计算机能够在图像和视频中识别和定位物体。YOLOv8是一种先进的、实时的目标检测系统,因其速度和准确性而备受欢迎。 Flask是一个轻量级的Python Web框架,简化了Web应用程序的开发。通过结合Fla…...
不使用屏幕在树莓派4B安装Ubuntu22.04桌面版(64位)
因为时间有限只说一下基本路径: 1首先安装Ubuntu22.04server版本 2设置服务器版本的SSH和WiFi 3通过服务器版本安装Ubuntu-desktop升级到Ubuntu22.04桌面版 4在桌面版上安装远程控制软件:xrdp; 5使用Windows自带的远程桌面连接访问Ubuntu 6完成...
Pymysql模块使用操作
一、pymysql模块安装 二、测试数据库连接 测试数据库连接.py from pymysql import Connectioncon None try:# 创建数据库连接con Connection(host"localhost",port3306,user"root",password"XXXXX")# 测试链接print(con.get_host_info())print…...
8+双疾病+WGCNA+多机器学习筛选疾病的共同靶点并验证表达
今天给同学们分享一篇双疾病WGCNA多机器学习的生信文章“Shared diagnostic genes and potential mechanism between PCOS and recurrent implantation failure revealed by integrated transcriptomic analysis and machine learning”,这篇文章于2023年5月16日发表…...
springboot如何获取前端请求头的值并加入ThreadLocal
依赖: <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.7</version> </dependency>示例: public class ThreadLocalUtil {private static ThreadLoc…...
程序员想要网上接单却看花了眼?那这几个平台你可得收藏好了!
现在经济压力这么大,但是生活成本还在上升,相信大家都知道“四脚吞金兽”的威力了吧!话虽如此,但是生活总得继续,为了家庭的和谐幸福,为了孩子的未来,不少人选择多干几份工作,赚点外…...
前端食堂技术周刊第 102 期:Next.js 14、Yarn 4.0、State of HTML、SEO 从 0 到 1
美味值:🌟🌟🌟🌟🌟 口味:肥牛宽粉 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看下…...
GPT与人类共生:解析AI助手的兴起
随着GPT模型的崭新应用,如百度的1和CSDN的2,以及AI助手的普及,人们开始讨论AI对就业市场和互联网公司的潜在影响。本文将探讨GPT和AI助手的共生关系,以及我们如何使用它们,以及使用的平台和动机。 GPT和AI助手…...
HTML脚本、字符实体、URL
HTML脚本: JavaScript 使 HTML 页面具有更强的动态和交互性。 <script> 标签用于定义客户端脚本,比如 JavaScript。<script> 元素既可包含脚本语句,也可通过 src 属性指向外部脚本文件。 JavaScript 最常用于图片操作、表单验…...
UOS安装Jenkins
一,环境准备 1.安装jdk 直接使用命令行(sudo apt install -y openjdk-11-jdk)安装jdk11 2.安装maven 参考此篇文章即可 UOS安装并配置Maven工具_uos 安装maven_蓝天下的一员的博客-CSDN博客 不过要注意这篇文章有个小错误,我…...
纯CSS实现卡片上绘制透明圆孔
<template><div class"dot-card-wrapper"><div class"top-wrapper"><slot name"top"></slot></div><!-->核心是下面这部分</--><div class"dot-row"><div class"left-…...
用前端框架Bootstrap的AdminLTE模板和Django实现后台首页的页面
承接博文 用前端框架Bootstrap和Django实现用户注册页面 继续开发实现 后台首页的页面。 01-下载 AdminLTE-3.1.0-rc 并解压缩 以下需要的四个文件夹及里面的文件百度网盘下载链接: https://pan.baidu.com/s/1QYpjOfSBJPmjmVuFZdSgFQ?pwdo9ta 下载 AdminLTE-3.1…...
Linux驱动 编译乱序和执行乱序
编译乱序 现代的高性能编译器在目标码优化上都具备对指令进行乱序优化的能力。编译器可以对访存的指令进行乱序,减少逻辑上不必要的访存,以及尽量提高Cache命中率和CPU的Load/Store单元的工作效率。 因此在打开编译器优化以后,看到生成的汇编…...
京东大数据平台(京东数据分析):9月京东牛奶乳品排行榜
鲸参谋监测的京东平台9月份牛奶乳品市场销售数据已出炉! 9月份,牛奶乳品市场销售呈大幅上涨。鲸参谋数据显示,今年9月,京东平台牛奶乳品市场的销量为2000万,环比增长约65%,同比增长约3%;销售额为…...
Hadoop RPC简介
数新网络-让每个人享受数据的价值https://www.datacyber.com/ 前 言 RPC(Remote Procedure Call)远程过程调用协议,一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议。RPC它假定某些协议的存在,例…...
你没有见过的 git log 风格
背景 git大家都不陌生,git log 也是大家经常用的指令,今天分享三种 git log的美化格式,大家看看哪种更易读。 git log -15 --graph --decorate --oneline 带有 pretty 格式的git log 风格 log --color --graph --prettyformat:‘%Cred%h%C…...
轻松搭建个人邮件服务器:实现远程发送邮件的hMailServer配置
文章目录 前言1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 前言 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpola…...
刷题笔记day08-字符串01
344. 反转字符串 思路1:使用双指针的方法,前后交换 func reverseString(s []byte) {// 思路1:使用双指针进行交换// 思路2:使用库函数进行交换for i, j : 0, len(s) - 1; i < j; {s[i], s[j] s[j], s[i]ij--} }思路2&…...
Pure-Pursuit 跟踪双移线 Gazebo 仿真
Pure-Pursuit 跟踪双移线 Gazebo 仿真 主要参考学习下面的博客和开源项目 自动驾驶规划控制(A*、pure pursuit、LQR算法,使用c在ubuntu和ros环境下实现) https://github.com/NeXTzhao/planning Pure-Pursuit 的理论基础见今年六月…...
Selenium学习(Java + Edge)
Selenium /səˈliːniəm/ 1. 简介 Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Safari、Google Chrome、Opera、Edge等。 适用于自动化测试&#x…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
书籍“之“字形打印矩阵(8)0609
题目 给定一个矩阵matrix,按照"之"字形的方式打印这个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为:1,…...
数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)
名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 原创笔记:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:《数据结构第4章 数组和广义表》…...
2025-05-08-deepseek本地化部署
title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek:小白也能轻松搞定! 如何给本地部署的 DeepSeek 投喂数据,让他更懂你 [实验目的]:理解系统架构与原…...
ZYNQ学习记录FPGA(二)Verilog语言
一、Verilog简介 1.1 HDL(Hardware Description language) 在解释HDL之前,先来了解一下数字系统设计的流程:逻辑设计 -> 电路实现 -> 系统验证。 逻辑设计又称前端,在这个过程中就需要用到HDL,正文…...
