##如何在阿里云服务器上部署yolov5模型##

YOLOV5 目标检测算法部署

一、本地部署

  • 演示系统环境:Ubuntu18.04 , pytorch1.7

1.安装pytorch

  • Anconda 安装

    • 下载地址:[Anaconda下载]

    • 找到当前路径(即下载好anconda包的文件夹)

    • bash ./Anaconda3-2020.07-Linux-x86_64.sh # 这里对应的是你下载的安装包
      
    • 添加Anaconda 国内镜像配置

      conda config --add channels
      https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
      conda config --add channels
      https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
      conda config --set show_channel_urls yes
      
    • 安装Pytorch
      首先为pytorch创建一个anaconda虚拟环境,环境名字(pytorch1.7),这个可以自己去设置

      conda create -n pytorch1.7 python=3.8
      

      安装成功之后激活pytorch1.7环境:

      conda activate pytorch1.7
      

      在创建的Pytorch环境下安装pytorch1.7版本指令如下:

      conda install pytorch torchvision cudatoolkit=10.2 -c pytorch # GPU版本
      
      conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cpuonly -c pytorch #仅CPU版本
      

      我这里配置的cpu去跑的,因为最终购买的云服务器也是cpu版本,如果是gpu版本的请往下看,cpu的可以不看

      1. 打开~/.bashrc文件,设置使用Pytorch1.7的环境为python3.8
      vim ~/.bashrc  # 打开bashrc文件
      
      # 添加路径
      alias python='/home/lzq/anaconda3/envs/pytorch1.6/bin/python3.8'
      
      # 上句指令中的用户名"lzq",需要修改成自己的用户名
      # 保存并退出
      source ~/.bashrc
      
      #执行之后自动返回base环境,需要重新激活:
      conda activate pytorch1.7
      

2.yolov5模型下载

  • 我用的是yolov5-3.1版本,如果想用其他版本,需要对应的权值文件,这里不在赘述

    在这里插入图片描述

    github代码链接

  • 如果没有办法科学上网,这里也提供我之前下载的百度网盘内容,我已经将权值文件放进weights文件夹

  • 链接:https://pan.baidu.com/s/1z3GNHQ2kFs979XA2aIbQqw
    提取码:3shc

3.yolov5安装测试

  • 在yolov5路径下执行

    python detect.py --source ./inference/images/ --weights weights/yolov5s.pt --conf 0.4
    

4.安装Flask

  • 在Pytorch1.7虚拟环境下执行

    sudo apt-get install flask
    
    sudo apt-get install jsonify
    
    # 如果新增用户提示没有sudoer权限
    可以执行一下指令,增加sudoer权限
    sudo usermod -aG sudo <username> #这里的<username>指的是新增用户
    

5.flask Hello World 演示

  • 在pytorch1.7的环境下,在yolov5-3.1路径下运行:
python flaskhello.py 	# flask Hello World演示

sh run.sh		#yolov5-flask服务启动命令


当出现OSError: [Errno 98] Address already in use解决办法
netstat -tunlp
kill -9 5000 	# 杀死5000端口进程
  • 至此,yolov5本地基于cpu的环境执行完毕,

  • 效果展示
    在这里插入图片描述

  • 在yolov5-3.1文件夹下执行

    python flaskhello.py
    
  • 如上图所示,按ctrl+左键,进入 http://127.0.0.1:5000,显示效果如下图,证明模型没有问题,

在这里插入图片描述

紧接着执行

sh run.sh

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hwb275ok-1638434347753)(C:\Users\lzq\AppData\Roaming\Typora\typora-user-images\image-20211202145946439.png)]

同样的,进入 http://127.0.0.1:5000 ,出现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8b4rjFqG-1638434347754)(C:\Users\lzq\AppData\Roaming\Typora\typora-user-images\image-20211202150109947.png)]

进入链接http://0.0.0.0:8888,出现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PLsdGWll-1638434347755)(C:\Users\lzq\AppData\Roaming\Typora\typora-user-images\image-20211202150317503.png)]

上传图片测试,可以看到以下效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xG1gf6Ci-1638434347757)(C:\Users\lzq\AppData\Roaming\Typora\typora-user-images\image-20211202150421640.png)]

二、云服务器部署

1、所谓云服务器部署,就是将在本地部署好的服务器部署到云端,由于云服务器的内存比较小,且没有图形化界面不容易调试,一定要确保在本地运行没有问题之后再部署到云端

2、其次就是关于传输问题,如何将yolov5模型文件传输到云服务器,这边提供一个阿里云的上传方式:文件从本地上传到轻量应用服务器

1.安装部署

后端部署(gunicorn部署)

前端部署(nginx部署)

2.释放端口

  • 部署过程将会占用两个端口,我的后端部署占用端口是5000,前端部署占用端口是80,在此之前需要释放端口5000,
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aFEaXifp-1638434347758)(C:\Users\lzq\AppData\Roaming\Typora\typora-user-images\image-20211202152919268.png)]

  • 单击红色区域,进入云服务器。

  • 找到对应的防火墙\安全组页面,点击进去

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yGf0gS4m-1638434347759)(C:\Users\lzq\AppData\Roaming\Typora\typora-user-images\image-20211202153017721.png)]

  • 点击添加规则,

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZITWtEKa-1638434347760)(C:\Users\lzq\AppData\Roaming\Typora\typora-user-images\image-20211202153132826.png)]

  • 端口范围窗口,输入5000
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pCUwB2eD-1638434347761)(C:\Users\lzq\AppData\Roaming\Typora\typora-user-images\image-20211202153227483.png)]

3.后端部署

  • 安装gunicorn

    pip install gunicorn  # 云服务上默认是没有pip 工具的,需要根据提示安装
    
    # 或者直接通过下面一行代码安装
    sudo apt-get install pip  
    
    #后端部署指令
    gunicorn -w 2 -b 0.0.0.0:5000 flask_app:app
    
  • 当完成后端部署之后,可以通过IP地址访问到yolov5模型。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZCBRV0wr-1638434347762)(C:\Users\lzq\AppData\Roaming\Typora\typora-user-images\image-20211202154514872.png)]

4.前端部署

# 安装nginx
sudo apt-get install nginx

# 新建配置文件
cd /etc/nginx/conf.d/ # 打开这个目录
vim index.conf # 创建index.conf,并通过vim方式将其打开,编辑请按 i, 退出编辑请按esc.

# 配置文件编写
server {
	listen 80;
	server_name 139.196.186.165;	 # 修改成自己的IP地址
	location / {
		root /home/lzq/yolov5-3.1;	 # 修改成自己的用户名
		index index.html index.htm;
		try_files $uri $uri/ /index.html;
	}
}

# 将算法部署到80端口,这样可以通过http://www.lzqlab.xyz或者http://lzqlab.xyz域名进行访问
server {
	listen 80;
	server_name www.lzqlab.xyz;	 # 修改成自己的IP地址
	location / {
		root /home/lzq/yolov5-3.1;	 # 修改成自己的用户名
		index index.html index.htm;
		try_files $uri $uri/ /index.html;
	}
}
server {
	listen 80;
	server_name lzqlab.xyz;	 # 修改成自己的IP地址
	location / {
		root /home/lzq/yolov5-3.1;	 # 修改成自己的用户名
		index index.html index.htm;
		try_files $uri $uri/ /index.html;
	}
}


# 紧接着更新配置文件:
sudo nginx -s reload

# 重启前端部署
sudo service nginx restart



5.screen 使用

在Linux系统中,通常我们在执行一些运行时间比较长的任务时,必须等待执行完毕才能断开SSH连接或关闭客户端软件,否则可能会导致执行中断。

使用管理终端screen执行,解决上述问题

  • 安装screen工具

    Linux系统默认没有screen工具,需要先安装。

    # Ubuntu 系列系统安装命令如下所示
    sudo apt-get install screen 
    

    使用说明

    #1. 执行如下命令,创建screen窗口
    screen -S [$name] # 名字可以自己取
    
    
    #2. 列出screen窗口
    screen -ls
    
    
    #3. 当需要运行脚本、执行程序时,在命令前添加screen即可
    
    #4. 然后使用ctrl + a,同时再按下d键,就可退出ssh登录,但不会影响screen程序的运行。
    
    #5. 若需要继续工作时,登录实例,然后执行如下命令,恢复会话即可。 
    
    #6. 如何进入到已运行的screen?
    screen -r [$name]
    
    # 7.如何干掉后端程序重启?
    sudo pkill -9 gunicorn
    
    

    引用:

    Linux系统SSH客户端断开后保持进程继续运行配置方法

  • 17
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
阿里云服务器上运行YOLOv5需要进行以下步骤: 1. 首先,在服务器上安装PyTorch和YOLOv5模型。可以使用以下命令安装PyTorch: ``` pip install torch torchvision ``` 然后,下载YOLOv5模型: ``` git clone https://github.com/ultralytics/yolov5.git ``` 2. 在YOLOv5路径下执行以下命令来运行YOLOv5检测: ``` python detect.py --source ./inference/images/ --weights weights/yolov5s.pt --conf 0.4 ``` 3. 安装Flask框架和相关依赖。在PyTorch 1.7的虚拟环境下执行以下命令: ``` sudo apt-get install flask sudo apt-get install jsonify ``` 4. 创建一个Flask应用程序,可以使用以下命令运行一个简单的Hello World演示: ``` python flaskhello.py ``` 5. 启动YOLOv5-Flask服务,可以使用以下命令: ``` sh run.sh ``` 如果出现端口被占用的错误,可以使用以下命令查看占用端口的进程并杀死它: ``` netstat -tunlp kill -9 5000 ``` 这样,你就可以在阿里云服务器上成功运行YOLOv5了。请确保按照上述步骤进行操作,并根据实际情况进行相应的配置和调整。 #### 引用[.reference_title] - *1* *2* *3* [##如何在阿里云服务器部署yolov5模型##](https://blog.csdn.net/m0_51055444/article/details/121680726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值