当前位置: 首页 > news >正文

使用免费 FlaskAPI 部署 YOLOv8

目标检测和实例分割是计算机视觉中关键的任务,使计算机能够在图像和视频中识别和定位物体。YOLOv8是一种先进的、实时的目标检测系统,因其速度和准确性而备受欢迎。

Flask是一个轻量级的Python Web框架,简化了Web应用程序的开发。通过结合Flask和YOLOv8,我们可以创建一个易于使用、灵活的目标检测任务API。

在这篇文章中,我将向您展示如何仅使用Flask API部署YOLOv8目标检测和实例分割模型,仅供个人使用。由于这不是在生产环境中部署服务的正确方式。

7763b7e37c080386a63a1e482db668a6.jpeg

AWS中创建一个免费实例

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

1. 选择您的地区(我将使用eu-west-1)并转到EC2

3820b662af9f4520d10b215fcc4826a5.png

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

b4cba38c70b81dc0e67ebed356b7bfa4.png

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

98bf26e6e3c0bae7bcbcea3602639d44.png

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

f17c10a1797146253f4481a27f178962.png

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

381205ee1d80fdcd0d11978424d9d5e5.png

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

d5f2381247cf7729e2fbb346dd08e55a.png

准备实例以部署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

1ac6010a491085b3cb258bf9f066d2f9.png

本文仅供学习交流使用,如有侵权请联系作者删除

相关文章:

使用免费 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

依赖&#xff1a; <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.7</version> </dependency>示例&#xff1a; public class ThreadLocalUtil {private static ThreadLoc…...

程序员想要网上接单却看花了眼?那这几个平台你可得收藏好了!

现在经济压力这么大&#xff0c;但是生活成本还在上升&#xff0c;相信大家都知道“四脚吞金兽”的威力了吧&#xff01;话虽如此&#xff0c;但是生活总得继续&#xff0c;为了家庭的和谐幸福&#xff0c;为了孩子的未来&#xff0c;不少人选择多干几份工作&#xff0c;赚点外…...

前端食堂技术周刊第 102 期:Next.js 14、Yarn 4.0、State of HTML、SEO 从 0 到 1

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;肥牛宽粉 食堂技术周刊仓库地址&#xff1a;https://github.com/Geekhyt/weekly 大家好&#xff0c;我是童欧巴。欢迎来到前端食堂技术周刊&#xff0c;我们先来看下…...

GPT与人类共生:解析AI助手的兴起

随着GPT模型的崭新应用&#xff0c;如百度的​1​和CSDN的​2​&#xff0c;以及AI助手的普及&#xff0c;人们开始讨论AI对就业市场和互联网公司的潜在影响。本文将探讨GPT和AI助手的共生关系&#xff0c;以及我们如何使用它们&#xff0c;以及使用的平台和动机。 GPT和AI助手…...

HTML脚本、字符实体、URL

HTML脚本&#xff1a; JavaScript 使 HTML 页面具有更强的动态和交互性。 <script> 标签用于定义客户端脚本&#xff0c;比如 JavaScript。<script> 元素既可包含脚本语句&#xff0c;也可通过 src 属性指向外部脚本文件。 JavaScript 最常用于图片操作、表单验…...

UOS安装Jenkins

一&#xff0c;环境准备 1.安装jdk 直接使用命令行&#xff08;sudo apt install -y openjdk-11-jdk&#xff09;安装jdk11 2.安装maven 参考此篇文章即可 UOS安装并配置Maven工具_uos 安装maven_蓝天下的一员的博客-CSDN博客 不过要注意这篇文章有个小错误&#xff0c;我…...

纯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 并解压缩 以下需要的四个文件夹及里面的文件百度网盘下载链接&#xff1a; https://pan.baidu.com/s/1QYpjOfSBJPmjmVuFZdSgFQ?pwdo9ta 下载 AdminLTE-3.1…...

Linux驱动 编译乱序和执行乱序

编译乱序 现代的高性能编译器在目标码优化上都具备对指令进行乱序优化的能力。编译器可以对访存的指令进行乱序&#xff0c;减少逻辑上不必要的访存&#xff0c;以及尽量提高Cache命中率和CPU的Load/Store单元的工作效率。 因此在打开编译器优化以后&#xff0c;看到生成的汇编…...

京东大数据平台(京东数据分析):9月京东牛奶乳品排行榜

鲸参谋监测的京东平台9月份牛奶乳品市场销售数据已出炉&#xff01; 9月份&#xff0c;牛奶乳品市场销售呈大幅上涨。鲸参谋数据显示&#xff0c;今年9月&#xff0c;京东平台牛奶乳品市场的销量为2000万&#xff0c;环比增长约65%&#xff0c;同比增长约3%&#xff1b;销售额为…...

Hadoop RPC简介

数新网络-让每个人享受数据的价值https://www.datacyber.com/ 前 言 RPC&#xff08;Remote Procedure Call&#xff09;远程过程调用协议&#xff0c;一种通过网络从远程计算机上请求服务&#xff0c;而不需要了解底层网络技术的协议。RPC它假定某些协议的存在&#xff0c;例…...

你没有见过的 git log 风格

背景 git大家都不陌生&#xff0c;git log 也是大家经常用的指令&#xff0c;今天分享三种 git log的美化格式&#xff0c;大家看看哪种更易读。 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&#xff1a;使用双指针的方法&#xff0c;前后交换 func reverseString(s []byte) {// 思路1&#xff1a;使用双指针进行交换// 思路2&#xff1a;使用库函数进行交换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 仿真 主要参考学习下面的博客和开源项目 自动驾驶规划控制&#xff08;&#xff21;*、pure pursuit、LQR算法&#xff0c;使用c在ubuntu和ros环境下实现&#xff09; https://github.com/NeXTzhao/planning Pure-Pursuit 的理论基础见今年六月…...

Selenium学习(Java + Edge)

Selenium /səˈliːniəm/ 1. 简介 ​ Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Safari、Google Chrome、Opera、Edge等。 ​ 适用于自动化测试&#x…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...

Windows 下端口占用排查与释放全攻略

Windows 下端口占用排查与释放全攻略​ 在开发和运维过程中&#xff0c;经常会遇到端口被占用的问题&#xff08;如 8080、3306 等常用端口&#xff09;。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口&#xff0c;帮助你高效解决此类问题。​ 一、准…...