一、在此之前你是不是要先把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