kentoo-zbcast / deepfashion2-yolov5-trt-sever

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

deepfashion2-yolov5-trt-sever

image
##这是一个服装检索的项目,使用的数据集是大型服装混合数据集deepfashion2,基于yolov5的backbone的特征图进行衣服图案相似性检索。

项目阶段:

一、训练yolov5并提取特征编码

二、服务器端flask部署

三、本地tensorrt加速

四、tensorrt加速后的模型重新部署到服务器端


第一阶段:
1.下载标注的服装数据集deepfashion2,并用deepfashion2coco.py将一定数量的数据集转为coco格式,修改参数运行两次分别会生成traion.json和val.json,然后运行extrect_some_example.py提取图片到指定的文件夹,图片数量与deepfashion2coco.py文件中一致。

2. 修改example.py中的路径信息并运行,将coco的json文件转为yolov5需要的txt格式。

3.修改train.py中的路径信息,参数设置,即可训练,训练后的模型保存在runs/train/weights下面。

4.运行detect.py可完成推理,修改相应参数。

5.运行search_demo.py即可对图像进行检索,将要检索的一张图像放入新建的demo文件夹中,然后修改search_demo.py中的部分参数即可根据相似性进行图片检索。 使用的yolov5自身的特征向量,并未引入新的网络。输出结果会保存在runs/detect/exp...下面,查询准确率90%+


第二阶段:

一个Flask服务器端,部署的代码在model_sever文件夹。

修改search_rank_5.py的参数,然后python运行即可,相信你看得懂。

返回为gallery文件夹里面与query图片最相似的5张图片,不懂就问,欢迎star和留言。


第三阶段:


YOLOV5目前无法onnx-》engine,部分操作ops官方不支持,所以,可以使用https://github.com/wang-xinyu/tensorrtx.git的方法,

他使用了trt的API搭建了网络,生成了engine,调用时可用python和C++。不过编译前记得修改yololayer.h和.cu的参数。
另外,我遇到了undefined reference to `nvinfer1::YoloPluginCreator::YoloPluginCreator()' 这样的坑,谁会的话可以帮帮我。


第四阶段:
待写。。。

About

License:Apache License 2.0


Languages

Language:Python 97.7%Language:Shell 2.0%Language:Dockerfile 0.3%