33 lines
1.4 KiB
Python
33 lines
1.4 KiB
Python
from person_attr import PersonAttribute
|
|
|
|
# 실제 사용하시는 모델 아키텍처 라이브러리 임포트 필요
|
|
# from person_attr import PersonAttributeModel
|
|
|
|
|
|
class PersonAttrService(PersonAttribute):
|
|
def __init__(self):
|
|
# ClearML이 load(model_filepath)로 가중치를 주입하므로 초기 로드는 생략
|
|
super().__init__(auto_load=False)
|
|
|
|
def load(self, model_filepath):
|
|
"""ClearML이 다운로드한 가중치 경로(model_filepath)를 받아 모델을 로드합니다."""
|
|
|
|
# 1. (선택) 추가 설정/아키텍처 초기화가 필요하면 여기에 작성
|
|
# 2. 모델 아키텍처 초기화는 PersonAttribute.load_model()에서 수행
|
|
# 3. 가중치 로드
|
|
super().load(model_filepath)
|
|
|
|
print(f"[{self.device}] Model loaded successfully using: {model_filepath}")
|
|
|
|
def predict(self, request: dict):
|
|
"""엔드포인트로 들어온 데이터 추론 (예: 오디오 데이터)"""
|
|
# 이 부분은 클라이언트가 보내는 데이터 형식에 따라 파싱 로직을 수정해야 합니다.
|
|
image_url = request.get("image_url") or request.get("url")
|
|
xywh = request.get("xywh")
|
|
|
|
# 텐서 변환 및 추론
|
|
attributes = self.process(str(image_url), str(xywh))
|
|
|
|
# 결과 반환 (반드시 JSON 직렬화가 가능한 dict, list 등 형태여야 함)
|
|
return attributes
|