目标检测和实例分割是计算机视觉中关键的任务,使计算机能够在图像和视频中识别和定位物体。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
本文仅供学习交流使用,如有侵权请联系作者删除