Initial Seg Data Server Net platform
This commit is contained in:
2
backend/app/modules/dataset/__init__.py
Normal file
2
backend/app/modules/dataset/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
"""Dataset task wrappers."""
|
||||
|
||||
88
backend/app/modules/dataset/tasks.py
Normal file
88
backend/app/modules/dataset/tasks.py
Normal file
@@ -0,0 +1,88 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from ...commands import CommandSpec, append_flag, bash, conda_python, required
|
||||
from ...config import settings
|
||||
|
||||
|
||||
DATASET_TOOL_DIR = settings.source_root / "DataSet_Own" / "1. 图片预处理(内含使用手册)"
|
||||
STACK_TOOL_DIR = settings.source_root / "Tool-图片堆叠"
|
||||
VIDEO_DIR = settings.source_root / "Seg_Predict_Own_Video_V2"
|
||||
YOLO_DATASET_DIR = settings.source_root / "Seg_All_In_One_YoloModel" / "Yolo数据集构建"
|
||||
|
||||
|
||||
def _dataset_script(name: str) -> Path:
|
||||
return DATASET_TOOL_DIR / name
|
||||
|
||||
|
||||
def build_dataset_task(job_type: str, params: dict, conda_env: str) -> CommandSpec | None:
|
||||
if job_type == "dataset.rename":
|
||||
args = bash(_dataset_script("1_rename_pics.sh"))
|
||||
append_flag(args, "-i", required(params, "image_dir"))
|
||||
append_flag(args, "-l", required(params, "label_dir"))
|
||||
return CommandSpec(args, DATASET_TOOL_DIR, "rename and normalize image/label names")
|
||||
|
||||
if job_type == "dataset.to_png":
|
||||
script = _dataset_script("2_1_Trans_to_png.py")
|
||||
args = conda_python(conda_env, script)
|
||||
append_flag(args, "-i", params.get("input_dir"))
|
||||
append_flag(args, "-o", params.get("output_dir"))
|
||||
return CommandSpec(args, DATASET_TOOL_DIR, "convert images to png")
|
||||
|
||||
if job_type == "dataset.resize":
|
||||
args = bash(_dataset_script("2_reformate_pics.sh"))
|
||||
append_flag(args, "-i", params.get("image_dir"))
|
||||
append_flag(args, "-l", params.get("label_dir"))
|
||||
append_flag(args, "-w", params.get("width", 1920))
|
||||
append_flag(args, "-h", params.get("height", 1080))
|
||||
return CommandSpec(args, DATASET_TOOL_DIR, "resize and reformat image/label folders")
|
||||
|
||||
if job_type == "dataset.pair":
|
||||
args = bash(_dataset_script("3_pair_ori_label.sh"))
|
||||
append_flag(args, "-i", required(params, "image_dir"))
|
||||
append_flag(args, "-l", required(params, "label_dir"))
|
||||
append_flag(args, "-p", params.get("prefix", ""))
|
||||
append_flag(args, "-s", params.get("suffix", ""))
|
||||
return CommandSpec(args, DATASET_TOOL_DIR, "check image and label pairing")
|
||||
|
||||
if job_type == "dataset.rebuild_labels":
|
||||
args = bash(_dataset_script("4_rebuild_labels.sh"))
|
||||
append_flag(args, "-l", required(params, "label_dir"))
|
||||
return CommandSpec(args, DATASET_TOOL_DIR, "rebuild color labels into GT masks")
|
||||
|
||||
if job_type == "dataset.stack":
|
||||
args = bash(_dataset_script("5_TOOL_stack_pics.sh"))
|
||||
append_flag(args, "-i", required(params, "image_dir"))
|
||||
append_flag(args, "-l", required(params, "label_dir"))
|
||||
append_flag(args, "-r", required(params, "result_dir"))
|
||||
append_flag(args, "-a", params.get("alpha", 0.3))
|
||||
append_flag(args, "-p", params.get("prefix", ""))
|
||||
append_flag(args, "-s", params.get("suffix", ""))
|
||||
return CommandSpec(args, DATASET_TOOL_DIR, "overlay image and label for inspection")
|
||||
|
||||
if job_type == "dataset.stitch":
|
||||
args = bash(_dataset_script("6_TOOL_stitch_pics.sh"))
|
||||
append_flag(args, "-i", required(params, "image_dir"))
|
||||
append_flag(args, "-l", required(params, "label_dir"))
|
||||
append_flag(args, "-r", required(params, "result_dir"))
|
||||
return CommandSpec(args, DATASET_TOOL_DIR, "stitch image and label panels")
|
||||
|
||||
if job_type == "dataset.video_frames":
|
||||
script = VIDEO_DIR / "1_Save_Frame_V2.py"
|
||||
args = conda_python(conda_env, script)
|
||||
append_flag(args, "--video", required(params, "video"))
|
||||
append_flag(args, "--interval", params.get("interval", 0.5))
|
||||
append_flag(args, "--resize", params.get("resize"))
|
||||
append_flag(args, "--output_dir", params.get("output_dir"))
|
||||
return CommandSpec(args, VIDEO_DIR, "extract video frames into DataSet_Public layout")
|
||||
|
||||
if job_type == "dataset.yolo_check_pairs":
|
||||
script = YOLO_DATASET_DIR / "0_1_check_picture_pair.py"
|
||||
args = conda_python(conda_env, script)
|
||||
append_flag(args, "-i", required(params, "image_dir"))
|
||||
append_flag(args, "-l", required(params, "label_dir"))
|
||||
return CommandSpec(args, YOLO_DATASET_DIR, "check YOLO image/label pairs")
|
||||
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user