代码拉取完成,页面将自动刷新
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)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。