본문 바로가기
AI Framework/MMDetection

[MMDetection] 6주차: 실무 적용 및 확장 학습

by cogito21_python 2024. 5. 31.
반응형

강의 목표

  1. 실무에서 MMDetection을 활용하여 프로젝트를 수행하는 방법을 학습한다.
  2. 모델 배포 및 운영 방법을 이해한다.
  3. 최신 연구 동향 및 확장 학습 자료를 소개한다.

강의 구성

15강: 실무 적용 사례 (45분)

  • 내용
    • MMDetection을 활용한 실제 프로젝트 사례 소개
    • 다양한 산업 분야에서의 객체 검출 적용 사례
    • 실무 적용 시 고려 사항 및 문제 해결 방법
  • 활동
    • 실제 프로젝트 사례 탐색
    • Q&A 시간

16강: 모델 배포 및 운영 (60분)

  • 내용
    • 학습된 모델을 배포하는 방법 소개
    • 모델 최적화 및 경량화 기법 (예: TensorRT, ONNX)
    • 실시간 추론을 위한 API 서버 구축 방법
  • 활동
    • 모델 배포 및 최적화 예제 코드 작성
    • 실시간 추론 API 서버 구축 실습

17강: 최신 연구 동향 및 확장 학습 (45분)

  • 내용
    • 객체 검출 분야의 최신 연구 동향 소개
    • MMDetection을 확장하여 새로운 모델 및 기법 적용 방법
    • 추가 학습 자료 및 참고 문헌 소개
  • 활동
    • 최신 논문 읽기 및 토론
    • Q&A 시간

강의 자료

15강 자료

  1. 슬라이드: 실무 적용 사례 및 고려 사항
  2. 자료: 다양한 산업 분야의 객체 검출 적용 사례
  3. 링크:

16강 자료

  1. 슬라이드: 모델 배포 및 운영 방법 설명
  2. 자료: 모델 최적화 및 경량화 기법 예제
  3. 스크립트: 실시간 추론 API 서버 구축 코드 예제
  4. 링크:

17강 자료

  1. 슬라이드: 최신 연구 동향 및 확장 학습 자료
  2. 논문:
  3. 링크:
    • ArXiv - 최신 논문 검색 사이트

실습 안내

실습 1: 모델 배포 및 최적화

  1. 모델 최적화

  • PyTorch 모델을 ONNX로 변환
import torch
import torchvision.models as models

model = models.resnet50(pretrained=True)
dummy_input = torch.randn(1, 3, 224, 224)
torch.onnx.export(model, dummy_input, "resnet50.onnx")
  • ONNX 모델을 TensorRT로 변환
  1.  
trtexec --onnx=resnet50.onnx --saveEngine=resnet50.trt

 

  2. 실시간 추론 API 서버 구축

    • FastAPI를 사용한 예제 코드
from fastapi import FastAPI, File, UploadFile
import uvicorn
import numpy as np
import cv2
import onnxruntime as ort

app = FastAPI()
ort_session = ort.InferenceSession("resnet50.onnx")

def preprocess(image):
    image = cv2.resize(image, (224, 224))
    image = image.astype(np.float32)
    image = np.transpose(image, (2, 0, 1))
    image = np.expand_dims(image, axis=0)
    return image

@app.post("/predict/")
async def predict(file: UploadFile = File(...)):
    contents = await file.read()
    nparr = np.frombuffer(contents, np.uint8)
    image = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
    input_tensor = preprocess(image)
    outputs = ort_session.run(None, {"input": input_tensor})
    return {"outputs": outputs[0].tolist()}

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

 

실습 2: 최신 논문 읽기 및 토론

  1. 최신 논문 읽기
    • 각자 관심 있는 최신 논문 선택
    • 논문 요약 및 주요 내용 정리
  2. 토론
    • 각자 논문 내용을 발표하고 토론
    • 적용 가능한 아이디어 및 향후 연구 방향 논의

과제

  1. 학습한 모델을 ONNX로 변환하고, 실시간 추론 API 서버를 구축하여 제출합니다.
  2. 최신 논문을 읽고 요약한 후, 자신의 프로젝트에 적용할 수 있는 아이디어를 작성하여 제출합니다.

참고 자료

 

반응형