first commit

This commit is contained in:
2026-07-23 17:52:03 +09:00
commit 66d7052684
11 changed files with 756 additions and 0 deletions
+81
View File
@@ -0,0 +1,81 @@
from clearml.automation import PipelineController
def inject_xywh_from_detection(pipeline, node, parameters):
from clearml import Task
prev = pipeline.get_pipeline_dag()["model_training_v1"]
if not prev.executed:
raise ValueError("model_training_v1 has not finished yet")
task = Task.get_task(task_id=prev.executed)
artifacts = task.artifacts or {}
if "final_result" not in artifacts:
raise ValueError(
f"final_result not found on {prev.executed}; "
f"available={list(artifacts.keys())}"
)
result = artifacts["final_result"].get()
detections = result.get("output", {}).get("detections", [])
if not detections:
raise ValueError("No detections in model_training_v1.final_result")
box = None
for det in detections:
if det.get("name") == "person":
box = det["box"]
break
if box is None:
box = detections[0]["box"]
xywh = f"{box['x']},{box['y']},{box['w']},{box['h']}"
parameters["General/xywh"] = xywh
if node.job and node.job.task:
node.job.task.set_parameter("General/xywh", xywh)
return True
if __name__ == "__main__":
pipe = PipelineController(
name="Git_Data_Processing_Pipeline",
project="Git_Pipeline_Demo",
version="1.0.0",
add_pipeline_tags=True,
)
pipe.set_default_execution_queue("default")
pipe.add_step(
name="model_training_v1",
base_task_project="Normal_Object_Detection",
base_task_name="model-yolo26-human",
parameter_override={
"General/image_url": "https://link.lxl.kr/reumdata/20260619_145116_image.jpg"
},
)
pipe.add_step(
name="vcode2",
parents=["model_training_v1"],
base_task_project="Sample",
base_task_name="vcode",
cache_executed_step=False,
)
pipe.add_step(
name="model_training_v2",
parents=["vcode2"],
base_task_project="Person_Attribute_Recognition",
base_task_name="model-yolo-person-classify",
parameter_override={
"General/image_url": "https://link.lxl.kr/reumdata/20260619_145116_image.jpg",
},
task_overrides={
"script.branch": "main",
"script.version_num": "",
},
pre_execute_callback=inject_xywh_from_detection,
cache_executed_step=False,
)
pipe.start(queue="default")
pipe.wait()
print("파이프라인 실행이 완료되었습니다!")