Yolov5部署成为Python接口 当然是用flask实现啦~ yolo5写成接口

一、在此之前你是不是要先把yolov5跑通?

yolov5的环境特别简单,建议在Ubuntu18.04下面部署,一次成型,省去很多麻烦。

  • Ubuntu18.04
  • RTX2080
  • CUDA10.0
  • CUDNN7.4.1
  • Torch1.3.1GPU
  • torchvision0.4.2
  • Python 3.6.5

项目地址:https://gitee.com/situyufeng/yolov5.git

github太慢了 我把他迁到了gitee上面

装好Torch以后呢,记得修改pip为清华源,然后修改requirements.txt里面关于cocoapi的部分。

第13行:

git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI

换成:

git+https://gitee.com/situyufeng/cocoapi.git#subdirectory=PythonAPI

然后

pip install -r requirements.txt

至此所有跑通yolov5的准备工作已经结束了

权重的话不要担心,文末我上传了整个项目,希望可以换点积分。

对了,运行下面这个命令的话是可以跑通的~

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

yolov5最方便的地方就是用Python写的,不需要编译,不需要编译,不需要编译!

二、开始搭建flask接口!

第一件事就是安装flask

pip install flask

接下来接口的主要函数文件都是基于detect.py,本来想做成yolov3那种项目和配置,奈何能力有限,读取权重的时候无法生成model。说到这里,yolov4我也尝试过做成flask接口,这里OpenCV拖了后腿,最新OpenCV不支持yolo4里面的mish函数,所以没有办法读取整个模型,可能是因为太新了不兼容。

打开detect.py复制一份,改成yolo5.py

因为我改动的部分实在是太多了,这里只能简要说一下了,具体的修改见我上传的代码。

part1 detect.py就是核心推断函数,只不过传参使用命令行的方式传进去的,
但是所有的参数并不是每一个都需要修改,常用的也就是图片路径
(这里需要夸赞U神单张批量和视频都写到一个函数里面了,当初改yolov3的时候简直麻烦到天上去了),
剩下的参数写成默认参数就可以了:
def detect( save_img=False,
            o_weights = "weights/yolov5s.pt",
            o_source = "inference/images",
            o_output = "inference/output",
            o_img_size 
  • 13
    点赞
  • 152
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
YOLOv5是一种流行的目标检测算法,它可以用来识别图像或视频中的多个对象。而Flask是一种用Python编写的轻量级Web应用程序框架,可以用于创建API接口。 将YOLOv5Flask接口,可以通过HTTP协议来与该目标检测算法进行交互。具体步骤如下: 1. 安装FlaskYOLOv5依赖:首先,需要在系统上安装Flask框架和YOLOv5的相关依赖库,如torch、numpy和opencv。 2. 创建Flask应用:在Python代码中,创建一个Flask应用,定义好路由和处理函数。可以通过装饰器来指定处理函数的URL和请求方法。 3. 加载模型:在处理函数中,加载YOLOv5的预训练模型文件,可以使用torchvision或其他工具库来加载模型权重。 4. 接收图像数据:通过Flask的请求对象,获取到上传的图像数据。可以使用request对象的方法获取文件内容,或者在请求体中解析图像数据。 5. 图像预处理:对接收到的图像数据进行预处理,如缩放、归一化、格式转换等,以适应模型的输入要求。 6. 执行目标检测:将预处理后的图像输入到加载好的YOLOv5模型中,执行目标检测算法,获取到图像中的目标位置和标签。 7. 结果处理:根据算法的输出结果,可以进行一些后续的处理,如过滤、排序、绘制边框和标签等。 8. 返回结果:将处理完的结果以JSON格式返回给客户端,可以使用Flask的响应对象构造响应数据。 9. 运行Flask应用:在代码中添加启动Flask应用的逻辑,可以通过命令行或IDE来运行。 10. 测试接口:使用客户端工具(如Postman)或浏览器访问Flask的URL,上传图像并查看识别结果。 总结起来,将YOLOv5Flask接口可以方便地通过HTTP请求调用目标检测算法,并获取结果。这样的设计可以使目标检测算法更加易用和可扩展,对于需要实时检测对象的应用场景来说是非常有用的。
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值