##如何在阿里云服务器上部署yolov5模型## |
您所在的位置:网站首页 › yolov5部署到ros中 › ##如何在阿里云服务器上部署yolov5模型## |
文章目录
YOLOV5 目标检测算法部署一、本地部署1.安装pytorch2.yolov5模型下载3.yolov5安装测试4.安装Flask5.flask Hello World 演示
二、云服务器部署1.安装部署2.释放端口3.后端部署4.前端部署5.screen 使用
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的可以不看 打开~/.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 #这里的指的是新增用户 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同样的,进入 http://127.0.0.1:5000 ,出现 进入链接http://0.0.0.0:8888,出现 上传图片测试,可以看到以下效果 1、所谓云服务器部署,就是将在本地部署好的服务器部署到云端,由于云服务器的内存比较小,且没有图形化界面不容易调试,一定要确保在本地运行没有问题之后再部署到云端 2、其次就是关于传输问题,如何将yolov5模型文件传输到云服务器,这边提供一个阿里云的上传方式:文件从本地上传到轻量应用服务器 1.安装部署后端部署(gunicorn部署) 前端部署(nginx部署) 2.释放端口部署过程将会占用两个端口,我的后端部署占用端口是5000,前端部署占用端口是80,在此之前需要释放端口5000, 单击红色区域,进入云服务器。 找到对应的防火墙\安全组页面,点击进去 点击添加规则, 端口范围窗口,输入5000 安装gunicorn pip install gunicorn # 云服务上默认是没有pip 工具的,需要根据提示安装 # 或者直接通过下面一行代码安装 sudo apt-get install pip #后端部署指令 gunicorn -w 2 -b 0.0.0.0:5000 flask_app:app当完成后端部署之后,可以通过IP地址访问到yolov5模型。 在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客户端断开后保持进程继续运行配置方法 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |