wing-ops/prediction/image/mx15hdi/Main/Combine_module.py
jeonghyo.k 3946ff6a25 feat(prediction): 이미지 분석 서버 Docker 패키징 + DB 코드 제거
- prediction/image/ FastAPI 서버 Docker 환경 구성
  - Dockerfile: PyTorch 2.1 + CUDA 12.1 기반 GPU 이미지
  - docker-compose.yml: GPU 할당 + 데이터 볼륨 마운트
  - requirements.txt: 서버 의존성 목록
  - .env.example: 환경변수 템플릿
  - DOCKER_USAGE.md: 빌드/실행/API 사용법 문서
  - Dockerfile에 .dockerignore 제외 폴더 mkdir -p 추가
- .gitignore: prediction/image 결과물 및 모델 가중치(.pth) 제외 추가
- dbInsert_csv.py, dbInsert_shp.py 삭제 (미사용 DB 로직)
- api.py: dbInsert import 및 주석 처리된 DB 호출 코드 제거
- aerialRouter.ts: req.params 타입 오류 수정
2026-03-10 18:37:36 +09:00

39 lines
1.3 KiB
Python

import sys
from pathlib import Path
_MAIN_DIR = Path(__file__).parent # mx15hdi/Main/
_MX15HDI_DIR = _MAIN_DIR.parent # mx15hdi/
# 파이프라인 모듈 임포트
sys.path.insert(0, str(_MX15HDI_DIR / 'Detect'))
sys.path.insert(0, str(_MX15HDI_DIR / 'Metadata' / 'Scripts'))
sys.path.insert(0, str(_MX15HDI_DIR / 'Georeference' / 'Scripts'))
sys.path.insert(0, str(_MX15HDI_DIR / 'Polygon' / 'Scripts'))
from Inference import load_model, run_inference
from Export_Metadata_mx15hdi import run_metadata_export
from Create_Georeferenced_Images_nadir import run_georeference
from Oilshape import run_oilshape
def run_pipeline(file_id: str, model=None):
"""
4단계 파이프라인을 순서대로 실행한다.
model이 None이면 내부에서 1회 로드한다 (단독 실행 시).
api.py에서는 사전 로드된 model을 전달하여 재로딩을 방지한다.
"""
if model is None:
model = load_model()
run_inference(model, file_id)
run_metadata_export(file_id)
run_georeference(file_id)
run_oilshape(file_id)
if __name__ == "__main__":
params = sys.argv[1:] if len(sys.argv) > 1 else []
if not params:
raise ValueError("파라미터가 제공되지 않았습니다. 폴더 이름을 명령줄 인자로 입력해주세요.")
run_pipeline(params[0])