본문으로 건너뛰기

! CoreML 추론기로 이미지 추론 (:predict)

선언

반환 결과, 오류 정보 = 시각 추론기 객체:predict(추론할 이미지)

또는

제출 여부, 오류 정보 = 시각 추론기 객체:predict(추론할 이미지, {
async = 비동기 여부,
multi_array_output = "table" 또는 "MLMultiArray",
uses_cpu_only = 이번 요청에서 CPU만 사용할지 여부,
})

매개변수

  • 추론할 이미지
    이미지 객체. 추론할 이미지 매개변수입니다.

  • async
    불리언형 선택 매개변수. true를 전달하면 추론을 비동기로 제출하며 기본값은 false입니다.

  • multi_array_output
    문자열형 선택 매개변수. MLMultiArray 특성값이 반환될 때 "table" 또는 "MLMultiArray" 중 반환 형식을 지정하며 기본값은 "table"입니다.

  • uses_cpu_only
    불리언형 선택 매개변수. 이번 추론에만 영향을 주며 true를 전달하면 이번에는 CPU만 사용합니다.

반환값

  • 반환 결과
    테이블형

    객체 탐지 모델의 반환 구조
    {
    {
    ["y"] = number_value,
    ["x"] = number_value,
    ["w"] = number_value,
    ["h"] = number_value,
    ["confidence"] = number_value(0.0 ~ 100.0),
    ["name"] = string_value,
    },
    ...
    }
    이미지 분류 모델의 반환 구조
    {
    {
    ["confidence"] = number_value(0.0 ~ 100.0),
    ["name"] = string_value,
    },
    ...
    }
    기타 유형 모델의 반환 구조
    {
    ...
    }

설명

  • 소프트웨어 버전 1.3.8 이상에서 사용할 수 있습니다.
  • iOS 12 미만 시스템 버전은 지원하지 않습니다.
  • 이미지 추론 컨텍스트를 사용해 이미지를 추론하고 결과를 반환합니다.
  • 모델이 MLMultiArray 특성값을 반환한다면 multi_array_output = "MLMultiArray"로 네이티브 텐서 객체를 유지하여 후처리를 이어갈 수 있습니다.
  • :run():predict()의 별칭입니다. 비동기로 제출한 뒤 :is_done():results()로 결과를 읽을 수 있습니다.
  • 시각 추론기 객체는 :metadata(), :compute_units(), :image_crop_and_scale_option(), :class_labels(), :is_vision_request() 등의 메서드도 지원합니다.

예제

compiled_model_path = XXT_HOME_PATH..'/models/yolo11m.mlmodelc' -- 컴파일된 모델 저장 위치

file.remove(compiled_model_path) -- 테스트 단계에서는 매번 다시 컴파일하며, 모델이 안정되면 이 줄을 주석 처리할 수 있습니다.

if not file.exists(compiled_model_path) then -- 아직 컴파일된 모델이 없다면 하나를 컴파일합니다.
local tmp_path, err = coreml.compile_model(XXT_HOME_PATH..'/models/yolo11m.mlpackage') -- 모델 컴파일
if not tmp_path then
error(err)
end
file.move(tmp_path, compiled_model_path, 'mo') -- 컴파일된 모델을 지정 위치로 이동합니다.
end

vnrequest, err = coreml.new_vision_request(compiled_model_path) -- 모델에서 추론기를 생성합니다.
if not vnrequest then
error(err)
end

rets = vnrequest:predict(screen.image()) -- 추론기로 이미지를 추론합니다.
nLog(rets)