本文背景
A服务器作为一个项目的主服务器,B服务器作为一个AI图像识别的服务器,且所有图片都是存储于A服务器的,现在需要A服务器携带图片地址调用B服务器接口,然后B服务器从A服务器根据A服务器携带的地址去获取图片,然后对图片进行识别,并将识别后的信息响应给A服务器,且B服务器最终将获取到的图片删除。
概述
本节教程讲述在Ubuntu系统上搭建挂载一个基于Yolo项目的Flask接口教程,最终达到本文背景所说的目的。
步骤1:准备相关文件
如图
best.pt是我的一个识别模型
DetectUtil.py是识别图片的工具文件
RemoteUtil.py是B服务器远程链接到A服务器获取图片的工具文件
Main.py是主要的Flask接口程序,内容为如下图,可以看到这里去另一个服务器获取了图片,并利用best.pt模型进行了识别,最终返回了识别后的信息
步骤2:将项目放置于Yolo项目中
如图,我在ultralytics中建立了一个名为mydetect的空目录,将要用到的文件放了进去,check.py是一个检查环境的文件,这里用不到
步骤3:下载相关库
在Main.py、DetectUtil.py、RemoteUtil.py中,所需下载库有如下
pip3.9 install cffi
pip3.9 install flask
pip3.9 install flask_cors
pip3.9 install paramiko
pip3.9 install scp
在项目虚拟环境中下载上述所有库即可
步骤4:挂载启动Flask文件
注意,幽络源这里提到的是挂载启动,而不仅仅是启动,正常我们在终端中利用python3.9 Main.py启动项目后,若终端关闭后,项目也就随之关闭了,而挂载启动则不会随终端关闭而关闭。
在虚拟环境中来到mydetect目录,执行如下命令即可将flask接口进行挂载启动
nohup python3.9 Main.py &
如图
此时,我们可以通过如下命令查看挂载日志
cat nohup
如图,显示一切正常
步骤5:停止服务
步骤4中我们学会了挂载Flask服务,并查看其挂载启动日志,那么当我们需要停止呢?
首先可以通过如下命令来查看服务是否存在
ps -ef | grep "python3.9 Main.py"
然后通过如下命令关闭服务
pkill -f "python3.9 Main.py"
如下图,可以看到服务关闭了
结语
以上是幽络源的在Ubuntu系统上搭建挂载一个基于Yolo项目的Flask接口教程,如有疑问或感兴趣的伙伴可加入我们的官方Q群307531422交流询问。