当前位置:   article > 正文

使用免费 FlaskAPI 部署 YOLOv8

yolov8 flask 对外接口 unbuntu

目标检测和实例分割是计算机视觉中关键的任务,使计算机能够在图像和视频中识别和定位物体。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. 使用刚刚下载的密钥对连接到您的实例:

  1. sudo chmod 400 yourkey.pem
  2. sudo your_path/yourkey.pem ubuntu@ec2-ip-of-your-instance.eu-west-1.compute.amazonaws.com
  3. sudo apt-get install libgl1-mesa-glx # required by OpenCV

2. 更新和安装必要的库:首先,使用以下命令更新系统上的包列表:

  1. # Update and install necessary libraries
  2. sudo apt update
  3. sudo apt-get install libgl1-mesa-glx # needed by OpenCV

3. 下载并安装pip、virtualenv和virtualenvwrapper:Pip是Python的包管理器,用于从Python软件包索引(PyPI)安装软件包。而virtualenv和virtualenvwrapper是用于为您的项目创建隔离的Python环境的工具。使用以下命令下载并安装pip:

  1. # Download and install pip
  2. wget https://bootstrap.pypa.io/get-pip.py
  3. sudo python3 get-pip.py rm get-pip.py
  4. # Install virtualenv
  5. pip install virtualenv virtualenvwrapper

4. 设置虚拟环境:要设置虚拟环境,请在您的.bashrc文件中添加以下行,然后对其进行源代码:

  1. # Virtual Environments
  2. USER=ubuntu
  3. echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
  4. echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
  5. echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
  6. echo "export VIRTUALENVWRAPPER_VIRTUALENV=/home/$USER/.local/bin/virtualenv" >> ~/.bashrc
  7. echo "source /home/$USER/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc
  8. source ~/.bashrc

5. 增加交换内存:通过分配6GB到交换文件并将其添加到fstab文件来增加交换内存:

  1. # Increase the swap memory
  2. sudo fallocate -l 6G /swapfile
  3. sudo chmod 600 /swapfile
  4. sudo mkswap /swapfile
  5. sudo swapon /swapfile
  6. echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

6. 克隆YOLOv8 API存储库并部署API:克隆存储库并为YOLOv8 API创建一个新的虚拟环境:

  1. # Clone repo and deploy your API
  2. git clone https://github.com/hdnh2006/YOLOv8API
  3. cd YOLOv8API
  4. mkvirtualenv YOLOv8API

7. 安装torch和torchvision(仅支持CPU功能):使用以下命令安装torch和torchvision软件包:

  1. # Install torch and torchvision (just CPU functions)
  2. pip install torch torchvision -f https://download.pytorch.org/whl/cpu/torch_stable.html

8. 使用screen在后台运行模型:使用screen命令在后台运行YOLOv8 API,并通过运行以下命令允许访问端口5000来在端口5000上运行模型:

  1. # The model will run in the background
  2. screen -S YOLOv8API
  3. workon YOLOv8API
  4. python segment_api.py --weights yolov8s-seg.pt --port 5000
  5. # Open the port of your instance
  6. 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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/478883
推荐阅读
相关标签
  

闽ICP备14008679号