You've already forked DataMate
feat: 完善数据标注导出格式兼容性验证
- 后端:添加 YOLO 格式对 TEXT 数据集的限制验证 - 后端:统一 COCO/YOLO 兼容性校验规则(仅允许图像类或目标检测类数据集) - 后端:修复 datasetType 字段传递,在任务列表响应中补充 dataset_type - 前端:在导出对话框中禁用 TEXT 数据集的 COCO/YOLO 选项 - 前端:添加 datasetType 和 labelingType 字段传递 - 前端:对齐前后端 COCO/YOLO 兼容性规则 - 前端:优化提示文案,明确说明格式适用范围 修改文件: - runtime/datamate-python/app/module/annotation/service/export.py - runtime/datamate-python/app/module/annotation/service/mapping.py - runtime/datamate-python/app/module/annotation/schema/mapping.py - frontend/src/pages/DataAnnotation/Home/ExportAnnotationDialog.tsx - frontend/src/pages/DataAnnotation/Home/DataAnnotation.tsx - frontend/src/pages/DataAnnotation/annotation.const.tsx
This commit is contained in:
@@ -84,7 +84,7 @@ DATASET_TYPE_IMAGE = "IMAGE"
|
||||
DATASET_TYPE_OBJECT_DETECTION = "OBJECT_DETECTION"
|
||||
LABELING_TYPE_CONFIG_KEY = "labeling_type"
|
||||
LABELING_TYPE_OBJECT_DETECTION = "OBJECT_DETECTION"
|
||||
COCO_COMPATIBLE_DATASET_TYPES = {
|
||||
DETECTION_COMPATIBLE_DATASET_TYPES = {
|
||||
DATASET_TYPE_IMAGE,
|
||||
DATASET_TYPE_OBJECT_DETECTION,
|
||||
}
|
||||
@@ -236,7 +236,7 @@ class AnnotationExportService:
|
||||
project: LabelingProject,
|
||||
format_type: ExportFormat,
|
||||
) -> None:
|
||||
if format_type != ExportFormat.COCO:
|
||||
if format_type not in (ExportFormat.COCO, ExportFormat.YOLO):
|
||||
return
|
||||
|
||||
dataset_type = self._normalize_type_value(
|
||||
@@ -249,11 +249,11 @@ class AnnotationExportService:
|
||||
if dataset_type == DATASET_TYPE_TEXT:
|
||||
raise HTTPException(
|
||||
status_code=400,
|
||||
detail="导出格式 COCO 不支持文本类数据集(TEXT),请改用 JSON/JSONL/CSV 格式",
|
||||
detail=f"导出格式 {format_type.value.upper()} 不支持文本类数据集(TEXT),请改用 JSON/JSONL/CSV 格式",
|
||||
)
|
||||
|
||||
if (
|
||||
dataset_type in COCO_COMPATIBLE_DATASET_TYPES
|
||||
dataset_type in DETECTION_COMPATIBLE_DATASET_TYPES
|
||||
or labeling_type == LABELING_TYPE_OBJECT_DETECTION
|
||||
):
|
||||
return
|
||||
@@ -261,7 +261,7 @@ class AnnotationExportService:
|
||||
raise HTTPException(
|
||||
status_code=400,
|
||||
detail=(
|
||||
"导出格式 COCO 仅适用于图像类或目标检测类数据集,"
|
||||
f"导出格式 {format_type.value.upper()} 仅适用于图像类或目标检测类数据集,"
|
||||
f"当前数据集类型: {dataset_type or 'UNKNOWN'},"
|
||||
f"标注类型: {labeling_type or 'UNKNOWN'}"
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user