目标检测(Object Detection)是计算机视觉领域的一项重要技术,旨在识别图像或视频中的特定目标并确定其位置。通过训练深度学习模型,如卷积神经网络(CNN),可以实现对各种目标的精确检测。常见的目标检测任务包括:人脸检测、行人检测、车辆检测等。目标检测在安防监控、自动驾驶、智能零售等领域具有广泛应用前景。
论文链接:YOLOX: Exceeding YOLO Series in 2021
背景:随着物体检测的发展,YOLO系列始终追求实时应用的最佳速度和精度权衡。而且在过去两年中,目标检测学术界的主要进展都集中在无锚检测器 、高级标签分配策略 和端到端(无 NMS)检测器。而YOLOV4和YOLOV5仍然是基于锚的检测器。由于计算资源的限制导致这些优秀的检测器并不能广泛运用。
创新与贡献:
我这里的环境安装的方式是根据源码安装的,但是我的代码是下载的bubbliiiing的。
第一步:Install YOLOX from source
cd YOLOX
pip install -v -e . # or python setup.py develop
第二步:安装cuda、torch、torchvision重要的环境。参考这个博客
环境 | 版本 |
---|---|
python | 3.7.11 |
cuda | 10.1 |
torch | 1.8.0+cu101 |
torchvision | 0.9.0+cu101 |
第三步:安装之后进入到此环境下的代码主目录,在终端运行
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
下载YOLOX-S:点击
下载之后将模型放在下图位置,并修改predict.py路径
然后运行predict.py即可,输入图片路径,将得到下面的结果。
通过labelImg标注图片得到xml和原图,分别放置在这两个文件夹下(labelImg的使用可查看这个博客)
这时候就需要将此数据集转换成VOC格式的数据集,方可训练。
通过voc_annotation.py来将数据集进行划分,注意几个地方:
运行后发现
这时候你会发现在主目录下会得到两个txt文件,一个用于训练一个用于验证。
然后你运行train.py,model_path修改为自己的类别文件路径。然后就可以运行。
python train.py
训练的同时我们也可以通过tensorboard来查看训练损失和其他指标的图
通过get_map.py来验证模型的准确率、召回率、F1和mAP。(若想要测试集多点,需通过voc_annotation.py来划分数据集的测试集)
python get_map.py
修改的地方:
由于训练时间问题,我只是简单测试了一下训练效果,没有进行大量的epoch训练,所以效果并不是很好。
通过predict.py来对模型测试。
修改的地方: