2021SC@SDUSC
- 2021-09-29 第一次修改
- 2021-12 第二次修改
文章目录
简介
yolo(you only look once)是目标检测的算法之一,以快著名。yolo v5是其后续迭代的版本。
有几个术语:
目标检测:
计算机视觉领域常见的任务之一。视觉领域的任务,常见的还有分类,分割。
分类,即给定一张图片或一段视频判断里面包含什么类别的目标。
而目标检测,不光要判断目标是什么,还要判断哪有目标,目标在什么地方。
而分割,对目标的位置判断粒度更细。
YOLO系列:
YOLO是一种end-to-end网络,用于目标检测,并且由于其性能高,速度快,被广泛使用。
YOLO系列有很多改进版本,从v1到v5,其中v1v2v3都是同一个作者维护,但后来作者宣布永久退出视觉研究。后续的v4v5都是别的组织在维护。
环境配置
云端使用google的codelab获取远程的gpu资源,各种环境都是满足的。cpu跑的话买普通的服务器就好了。
值得一提的是,YOLOv5模型包括权重文件,都是可以从一个叫hub的地方直接获取的。
取巧一点,安卓或者鸿蒙设备直接aidlearning(现在叫aidlux)自己找arm的torch版本,也能运行。
软件依赖配置
似乎官方推荐是在docker里跑,目前手头没有配置好的linux设备暂且搁置。
使用ubuntu最新发新版,现更新各种初始配置。
按照网络教程在本地安装docker。
在ubuntu中,N卡不会被自动识别,需要手动安装驱动,详情参见网络。
在装完驱动后,还要装cuda,cudnn。
然后按照requirements.txt安装依赖。
# pip install -r requirements.txt
# Base ----------------------------------------
matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.2
Pillow>=7.1.2
PyYAML>=5.3.1
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.41.0
# Logging -------------------------------------
tensorboard>=2.4.1
# wandb
# Plotting ------------------------------------
seaborn>=0.11.0
pandas
# Export --------------------------------------
# coremltools>=4.1 # CoreML export
# onnx>=1.9.0 # ONNX export
# onnx-simplifier>=0.3.6 # ONNX simplifier
# scikit-learn==0.19.2 # CoreML quantization
# tensorflow>=2.4.1 # TFLite export
# tensorflowjs>=3.9.0 # TF.js export
# Extras --------------------------------------
# Cython # for pycocotools https://github.com/cocodataset/cocoapi/issues/172
# pycocotools>=2.0 # COCO mAP
# albumentations>=1.0.3
thop # FLOPs computation
数据标注、训练及检测
yolov5的图片标注格式似乎和之前的版本的YOLO格式不一样,包括模型的定义,数据的定义,都是用了一种名为YAML的格式。
在启动训练,检测时,会自动联网下载缺失的权重文件。因为服务器在国外,没梯子还是手动先下好。
其他
几个队友的链接
https://blog.csdn.net/xjunjin
https://blog.csdn.net/qq_53219137
https://blog.csdn.net/qq_57299978