1 Star 0 Fork 1

王晓鹏/cv_yolov8

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
check_yolo_label.py 1.54 KB
一键复制 编辑 原始数据 按行查看 历史
王晓鹏 提交于 2024-07-01 17:20 +08:00 . update
import os
import re
def check_yolo_label_validity(label_folder):
"""
检查YOLO格式的标签文件是否合法。
:param label_folder: 存放YOLO标签文件的目录路径。
"""
# 正确的正则表达式,匹配YOLO格式的标签行:类ID 整数 四个归一化坐标值,每两个值间由空格分隔
yolo_pattern = re.compile(r'^\d+\s+\d+(\.\d+)?\s+\d+(\.\d+)?\s+\d+(\.\d+)?\s+\d+(\.\d+)?$')
for root, dirs, files in os.walk(label_folder):
for file in files:
if file.endswith('.txt'):
file_path = os.path.join(root, file)
with open(file_path, 'r') as f:
lines = f.readlines()
for i, line in enumerate(lines, start=1):
# 去除行尾的换行符并检查是否符合YOLO格式
if not yolo_pattern.match(line.strip()):
print(f"警告:文件 {file_path}{i}行不符合YOLO标签格式:{line.strip()}")
# 可选:进一步检查坐标和尺寸是否在0-1之间
else:
coords = list(map(float, line.strip().split()[1:]))
if any(coord < 0 or coord > 1 for coord in coords[:4]): # 检查前四个坐标值
print(f"警告:文件 {file_path}{i}行的坐标或尺寸超出范围(0-1):{line.strip()}")
# 使用示例
label_folder = 'labels' # 替换为你的标签文件夹路径
check_yolo_label_validity(label_folder)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/chris118/cv_yolov8.git
git@gitee.com:chris118/cv_yolov8.git
chris118
cv_yolov8
cv_yolov8
master

搜索帮助