当前位置: 首页 > 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…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...