주요 콘텐츠로 건너뛰기
지식 기술 자료

동일한 모델에 대해 로컬 환경 및 OVMS(OpenVINO™ Model Server)와 비교할 때 추론 결과가 다릅니다.

콘텐츠 형태: 문제 해결   |   문서 ID: 000098271   |   마지막 검토일: 2024-04-01

설명

  • 보험금 청구 처리 저장소를 사용하고 YOLO 모델을 로드하여 정확성을 테스트했습니다.
  • 추론 결과는 로컬로 로드된 YOLO ONNX 모델과 OVMS에 로드된 동일한 모델 간에 차이가 있습니다.
  • 04-accident-recog에서 관찰된 결과는 약 86%인 반면 OVMS는 약 88%의 수익을 올렸습니다.

해결 방법

OpenVINO™ 및 Ultralytics 로드 모델이 서로 다른 입력을 수신하여 결과에 차이가 있는 것으로 보입니다.

로컬 환경에서 실행하려면 다음과 같은 몇 가지 변경 사항을 적용해야 합니다.

04-04-사고-recog.ipynb

  1. 입력 이미지를 읽고 예측을 실행하는 셀:

    original_image: np.ndarray = cv2.imread("images/carImage3.jpg")
    blob = cv2.dnn.blobFromImage(original_image, size=(640, 640), swapRB=False)
    blob = np.ascontiguousarray(blob[0].transpose((1,2,0)))
    results = model.predict(blob)

  2. 원본 이미지에 결과를 그리는 셀:

    Image.fromarray(result.plot()[:,:,::-1].astype(np.uint8))

04-05-모델 서빙.ipynb

노트북 자체에는 변경 사항이 없습니다. remote_infer.py에서 필요한 변경 사항.

  1. 전처리 방법:

    // code placeholder
    def preprocess(image_path):
    original_image: np.ndarray = cv2.imread(image_path)
    [height, width, _] = original_image.shape

    # Calculate scale factor
    scale = (height/640, width/640)

    # Preprocess the image and prepare blob for model
    blob = cv2.dnn.blobFromImage(original_image, scalefactor=1 / 255, size=(640, 640), swapRB=True)
    return blob, scale, original_image

  2. 포스트 프로세스 내부의 draw_bounding_box 호출 :

    draw_bounding_box(original_image, class_ids[index], scores[index], round(box[0] * scale[1]), round(box[1] * scale[0]),round((box[0] + box[2]) * scale[1]), round((box[1] + box[3]) * scale[0]))

관련 제품

이 문서는 3개의 제품에 적용됩니다.
인텔® 제온 Phi™ 프로세서 소프트웨어 OpenVINO™ 툴킷 성능 라이브러리

부인 정보

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어서는 안 됩니다. 이 페이지의 영어 버전과 번역 사이에 모순이 있는 경우 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.

추가적 도움이 필요하십니까?

지원팀 연락처
지원팀 연락처