- 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 타입 오류 수정
39 lines
1.3 KiB
Python
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])
|