将基于 YOLOv8 进行模型训练使用 FLIR 数据集 如何训练配对的红外可见光行人车辆目标检测数据集 建立深度学习红外可见光车辆行人检测系统 推理识别检测 行人 车辆 将基于 YOLOv8 进行模型训练使用 FLIR 数据集 如何训练配对的红外可见光行人车辆目标检测数据集 建立深度学习红外可见光车辆行人检测系统 推理识别检测 行人 车辆文章目录一、环境搭建1. 安装 CUDA 驱动和 Anaconda2. 创建 Python 虚拟环境3. 安装 PyTorch 和其他依赖二、数据准备三、模型训练1. 加载预训练模型2. 开始训练四、模型推理1. 推理单张图片2. 批量推理五、模型评估以下文字及代码仅供参考学习使用。数据集描述FLIR配对行人车辆目标检测数据集10400张数据集包含3个类别为pedestrian,bicycle,carjpg图片和txt标签1使用 FLIR 数据集进行行人、自行车和汽车的目标检测任务将基于 YOLOv8 进行模型训练、推理及评估。以下将详细介绍如何设置环境、准备数据、训练模型以及进行推理和评估。一、环境搭建1. 安装 CUDA 驱动和 Anaconda确保系统已经安装了 CUDA 驱动并且可以通过命令nvidia-smi查看 GPU 信息。下载并安装 Anaconda 来管理 Python 环境。2. 创建 Python 虚拟环境打开终端或 Anaconda Prompt# 创建名为 flir_yolo 的环境conda create-nflir_yolopython3.8# 激活环境conda activate flir_yolo3. 安装 PyTorch 和其他依赖根据 CUDA 版本选择合适的 PyTorch 安装命令pipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117 pipinstallultralytics opencv-python matplotlib numpy tqdm tensorboard scikit-learn验证是否成功python-cimport torch; print(torch.cuda.is_available())应输出True。二、数据准备假设数据集结构如下flir_dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/ └── data.yaml创建一个data.yaml文件来描述数据集的路径和类别信息# data.yamltrain:./flir_dataset/images/trainval:./flir_dataset/images/valnc:3names:[pedestrian,bicycle,car]确保每个子文件夹内的图像和标签文件名一一对应且已经按照train和val分割好。三、模型训练1. 加载预训练模型从 Ultralytics 加载 YOLOv8 的一个预训练模型作为起点fromultralyticsimportYOLO modelYOLO(yolov8s.pt)# 或者选择其他尺寸的模型2. 开始训练使用您的数据集对模型进行微调resultsmodel.train(datapath/to/data.yaml,# 替换为您的 data.yaml 文件路径epochs100,# 根据需要调整batch16,# 调整以适应 GPU 内存imgsz640,# 图像大小projectruns/detect/flir,nameyolov8s_flir)四、模型推理1. 推理单张图片加载训练好的模型并对新图像进行预测fromultralyticsimportYOLOimportcv2fromPILimportImage modelYOLO(runs/detect/flir/yolov8s_flir/weights/best.pt)resultsmodel(path/to/new_image.jpg)# 显示结果forrinresults:im_arrayr.plot()# 绘制边界框和标签imImage.fromarray(im_array[...,::-1])# RGB PIL imageim.show()2. 批量推理编写脚本来遍历整个文件夹中的所有图像并应用上述推理步骤。简单的批量推理示例仅供参考importos source_dirpath/to/test_images# 测试图像所在目录output_dirruns/detect/outputos.makedirs(output_dir,exist_okTrue)forfilenameinos.listdir(source_dir):iffilename.endswith(.jpg)orfilename.endswith(.png):img_pathos.path.join(source_dir,filename)resultsmodel(img_path)forrinresults:im_arrayr.plot()imImage.fromarray(im_array[...,::-1])output_pathos.path.join(output_dir,filename)im.save(output_path)print(fSaved{output_path})五、模型评估在验证集上评估模型性能metricsmodel.val(datapath/to/data.yaml,splitval)print(fmAP50:{metrics.box.map50:.4f})print(fmAP50-95:{metrics.box.map:.4f})