都有对应标注,格式VOC (XML),选配Y0L0(TXT) .
label| pic_ num| box_ num
绑扎不规范: (3717, 14510)
并线线夹保护壳缺失: (3317, 11285)
耐张线夹保护壳缺失: (3748, 16148)
横杆腐蚀: (987, 1556)
塔头损坏: (972, 1021)
total: (9838, 44520)
电力电塔电线缺陷检测数据集统计表
标签名称 图片数量 边框数量
绑扎不规范 (绑扎不规范) 3717 14510
并线线夹保护壳缺失 (并线线夹保护壳缺失) 3317 11285
耐张线夹保护壳缺失 (耐张线夹保护壳缺失) 3748 16148
横杆腐蚀 (横杆腐蚀) 987 1556
塔头损坏 (塔头损坏) 972 1021
总计 9838 44520
项目结构
深色版本
power_line_defect_detection/
├── dataset/
│ ├── images/
│ │ └── *.jpg
│ ├── labels_voc/
│ │ └── *.xml
│ ├── labels_yolo/
│ │ └── *.txt
├── models/
│ └── yolov8/
├── src/
│ ├── train.py
│ ├── predict.py
│ ├── utils.py
│ ├── convert_voc_to_yolo.py
├── weights/
│ └── best_model.pt
├── requirements.txt
└── README.md
- 安装依赖
首先,确保你已经安装了必要的库。创建一个requirements.txt文件,内容如下:
深色版本
torch
torchvision
numpy
pandas
matplotlib
tqdm
pyyaml
opencv-python
ultralytics
lxml
然后,使用以下命令安装依赖:
bash
深色版本
pip install -r requirements.txt
2. 数据集准备
确保你的数据集已经按照以下结构组织:
深色版本
dataset/
├── images/
│ └── *.jpg
├── labels_voc/
│ └── *.xml
├── labels_yolo/
│ └── *.txt
每个文件夹中包含对应的图像文件和标签文件。确保所有图像文件都是.jpg格式,标签文件是VOC格式的.xml文件和YOLO格式的.txt文件。
- 数据集转换工具
为了方便使用YOLOv8模型,我们需要将VOC格式的标注文件转换为YOLO格式。可以使用以下脚本进行转换。
3.1 src/convert_voc_to_yolo.py
python
深色版本
import os
import xml.etree.ElementTree as ET
import shutil
def convert_voc_to_yolo(voc_dir, yolo_dir, class_names, image_size=(640, 640)):
os.makedirs(yolo_dir, exist_ok=True)
for xml_file in os.listdir(voc_dir):
if not xml_file.endswith('.xml'):
continue
t