Apple의 Vision 프레임워크: 대부분의 개발자가 클라우드 API를 찾는 작업 중 이미 내장된 기능들
Apple의 Vision 프레임워크는 “OS” 접미사가 없는 그것으로, 24개가 넘는 온디바이스 컴퓨터 비전 작업을 제공합니다. 대부분의 iOS 개발자는 이 프레임워크가 디바이스의 Neural Engine에서 마이크로초 단위로 수행하는 작업에 OpenAI Vision API, Google Cloud Vision, 또는 AWS Rekognition을 기본으로 사용합니다. 이러한 기본 선택은 평가보다는 편향을 반영합니다. 클라우드 API는 “현대적 AI”처럼 느껴지고 Vision은 “플랫폼 배관”처럼 느껴지기 때문에 플랫폼이 외면당하는 것입니다. 이 편향은 플랫폼이 현재 무엇을 담고 있는지 잘못 읽고 있습니다.
Vision은 로컬 우선 CV 프레임워크입니다. 사용 가능할 때는 Neural Engine에서, 그렇지 않을 때는 GPU에서, 최후의 수단으로 CPU에서 실행됩니다. 대부분의 작업은 몇 밀리초 안에 추론이 이루어집니다. 이 프레임워크는 호출당 비용이 없습니다. 데이터는 디바이스를 떠나지 않습니다. API가 존재하지 않으므로 API 키도 존재하지 않습니다. iOS 앱이 수행하는 대부분의 컴퓨터 비전 작업에 있어 이는 올바른 도구입니다.
TL;DR
- Apple Vision은 24개가 넘는 온디바이스 CV 작업을 제공합니다. 텍스트 인식, 얼굴 감지 및 랜드마크, 신체 및 손 자세 추정, 바코드 읽기, 문서 분할, 이미지 임베딩, 시각적 주의(saliency), 동물 감지, 윤곽선, 궤적, 광학 흐름, 그리고 모든 Core ML 모델을 위한 러너를 포함합니다.
- 각 작업은 Neural Engine에서 밀리초 단위로 실행되며, 호출당 비용이 없고, 네트워크가 필요 없으며, 제3자 텔레메트리를 생성하지 않습니다.
- 클라우드 API는 한 가지 특정한 경우에 우위를 점합니다. 이미지에 대한 복잡한 의미론적 추론(차트, 밈, 또는 문서의 의도를 이해하는 멀티모달 LLM)이 그 경우입니다. 픽셀 수준 작업(얼굴 찾기, 텍스트 읽기, 손 감지)에서는 Vision이 비용, 지연시간, 프라이버시 측면에서 우위를 점합니다.
- 에이전트 워크플로우 연결: Vision의 결과는 네트워크 왕복 없이 App Intents와 온디바이스 LLM 호출인 Foundation Models에 입력됩니다. 전체 파이프라인이 로컬에서 실행됩니다.
Vision이 실제로 담고 있는 것
Vision은 작업을 VNRequest 타입으로 그룹화합니다. 요청이 생성되고, 매개변수로 구성되며, 이미지(또는 CVPixelBuffer, 또는 CIImage, 또는 CGImage, 또는 URL)가 입력되어 실행됩니다. 결과는 요청에 첨부된 관찰 결과로 반환됩니다. 아래 카테고리는 iOS 26 기준으로 프레임워크의 영역을 다룹니다.
텍스트 인식
VNRecognizeTextRequest는 OCR을 수행합니다. 이 요청은 recognitionLevel(라이브 카메라 스트림용 .fast, 문서 스캔용 .accurate), 언어 힌트, 사용자 지정 단어 목록, 그리고 경계 상자 신뢰도를 지원합니다. iOS 18+의 정확한 경로는 영수증, 표지판, 인쇄된 문서에 대해 상용 OCR API에 필적하며, 손글씨 인식은 다양한 언어로 지원됩니다.
let request = VNRecognizeTextRequest { request, error in
guard let observations = request.results as? [VNRecognizedTextObservation] else { return }
let lines = observations.compactMap { $0.topCandidates(1).first?.string }
print(lines.joined(separator: "\n"))
}
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true
request.recognitionLanguages = ["en-US"]
let handler = VNImageRequestHandler(cgImage: image, options: [:])
try handler.perform([request])
OpenAI Vision API를 통한 동일한 작업은 저해상도 모드에서 호출당 약 1센트의 일부, 고해상도 모드에서는 그보다 훨씬 많은 비용이 들고, 1-3초의 왕복 시간이 소요되며, 이미지를 OpenAI 서버로 전송합니다. Vision은 100-300ms 만에 로컬에서 무료로, 데이터 유출 없이 결과를 반환합니다.
얼굴 감지 및 랜드마크
Vision에는 세 가지 계층의 얼굴 분석이 포함되어 있습니다.
VNDetectFaceRectanglesRequest는 프레임 내 모든 얼굴의 경계 상자를 반환합니다.VNDetectFaceLandmarksRequest는 얼굴마다 구조화된 랜드마크 영역(턱선, 입, 눈, 눈썹, 코, 동공)을 반환하며, 각각 여러 개의 키포인트를 가집니다.VNDetectFaceCaptureQualityRequest는 카메라 앱이 셀피 캡처 타이밍에 사용하는 품질 점수를 반환합니다.
얼굴을 찾거나, 얼굴에 맞춰 자르거나, 얼굴을 흐리게 하거나, 얼굴을 세야 하는 대부분의 앱에서는 사각형 요청이 올바른 도구입니다. 사용자의 얼굴에 무언가를 애니메이션화하는 앱(필터, 마스크, 추적)에서는 랜드마크와 동공 추적이 올바른 도구입니다. 이 중 어느 것도 모델 파일이나 네트워크 호출을 필요로 하지 않습니다.
신체 및 손 자세
VNDetectHumanBodyPoseRequest는 VNHumanBodyPoseObservation.JointName4에 정의된 19개의 명명된 관절(코, 목, 어깨, 팔꿈치, 손목, 엉덩이, 무릎, 발목, 귀, 눈, 루트)을 2D 좌표와 관절별 신뢰도와 함께 반환합니다. VNDetectHumanBodyPose3DRequest는 LiDAR 스캐너가 있는 디바이스에서 토폴로지를 3D 공간으로 확장합니다. VNDetectHumanHandPoseRequest는 손가락 관절 해상도로 21개의 손 랜드마크를 반환합니다.
신체 자세는 피트니스 앱이 웨어러블 없이 반복 횟수를 세는 데, AR 앱이 사용자의 손에 가상 콘텐츠를 부착하는 데, 자세 앱이 폼을 평가하는 데 사용됩니다. 손 자세는 제스처 인식을 구동합니다(사용자가 손가락 두 개를 올리면, 앱이 손가락 두 개를 봅니다). 둘 다 최신 iPhone Neural Engine에서 60fps로 실행됩니다. 클라우드 등가물은 Google MediaPipe 또는 독점 피트니스 기술 API이며, 이 프레임워크가 이를 대체합니다.
바코드 및 QR
VNDetectBarcodesRequest는 대부분의 소매 및 재고 워크플로우에 필요한 심볼로지(QR, PDF417, Aztec, Code 128, Code 39, EAN-13, ITF14, Data Matrix, GS1 DataBar 등)를 읽고 원시 페이로드와 경계 사각형을 반환합니다. 감지는 밀리초 단위로 실행되며 Apple의 카메라 앱이 이미 검증한 저조도 조건에서도 작동합니다.
문서 분할
VNDetectDocumentSegmentationRequest는 프레임 내 직사각형 문서를 찾아 원근감을 고려한 모서리 점을 반환합니다. 이 요청은 문서 스캐너 앱이 문서를 잘라내고 평면 이미지로 직사각형화하는 데 사용됩니다. Apple 자체의 VisionKit 프레임워크는 이 요청과 UI를 함께 래핑하지만, 앱이 사용자 지정 UI가 필요할 때 기본 작업을 직접 호출할 수 있습니다.
시각적 주의(Saliency) 및 미학
VNGenerateAttentionBasedSaliencyImageRequest는 이미지에서 시청자의 주의가 가장 집중될 가능성이 있는 위치의 히트맵을 반환합니다. VNGenerateObjectnessBasedSaliencyImageRequest는 객체가 있는 위치의 히트맵을 반환합니다. VNCalculateImageAestheticsScoresRequest는 iOS 18에서 공개 API로 추가되었으며1, 유틸리티 분류(메모, 스크린샷)와 미학 값을 포함한 미학 품질 점수를 반환합니다. 이 점수는 Photos가 “추억” 후보를 표시하는 데 사용하는 것이며, 자동 자르기 결정에 입력되는 값입니다.
이미지 분류 및 임베딩
VNClassifyImageRequest는 내장 분류기(웹 규모 데이터로 훈련된 모델의 1,000개 이상의 카테고리)를 사용하여 이미지에 대한 상위 N개 카테고리 레이블을 반환합니다. VNGenerateImageFeaturePrintRequest는 이미지 유사도 검색에 적합한 특징 벡터(모델의 임베딩)를 반환합니다.
임베딩은 사진 앱, 레시피 앱의 “비슷한 요리 찾기”, 또는 무드보드 앱의 유사도 기반 중복 제거가 실제로 작동하는 방식입니다. 클라우드 등가물은 OpenAI CLIP 임베딩 또는 Google의 Vertex AI이며, Vision은 이를 로컬에서 무료로 반환합니다.
객체 추적 및 궤적
VNDetectTrajectoriesRequest는 프레임 전체에 걸쳐 움직이는 객체를 추적하고 포물선 궤적 적합(던진 공, 발사된 화살)을 반환합니다. VNTrackObjectRequest는 비디오 시퀀스 전체에서 수동으로 경계가 지정된 객체를 따라갑니다.
궤적은 스포츠 앱(야구공, 농구공, 테니스공 추적)의 기본 프리미티브입니다. 감지는 라이브 AVFoundation 스트림에서 작동하며 실시간으로 결과를 반환합니다.
VNCoreMLRequest를 통한 사용자 지정 모델
VNCoreMLRequest는 Vision 파이프라인을 통해 모든 Core ML 모델을 실행합니다. 이 요청은 모델의 입력 설명에 따라 전처리(이미지 크기 조정, 색공간 변환, 정규화)를 자동으로 처리합니다. 앱은 Create ML에서 사용자 지정 분류기를 훈련하거나(소수의 카테고리, 카테고리당 100개의 샘플 이미지, 10분의 훈련) 게시된 모델을 다운로드하여 .mlpackage를 앱 번들에 넣고 단 세 줄의 코드로 Vision을 통해 실행합니다.
let model = try VNCoreMLModel(for: MyClassifier(configuration: .init()).model)
let request = VNCoreMLRequest(model: model) { request, error in
let results = request.results as? [VNClassificationObservation]
print(results?.first?.identifier, results?.first?.confidence)
}
let handler = VNImageRequestHandler(cgImage: image, options: [:])
try handler.perform([request])
사용자 지정 분류기에 대한 클라우드 등가물은 서버에서 모델을 호스팅하고, 추론 컴퓨팅 비용을 지불하고, API를 관리하고, 네트워크 지연을 받아들이는 것입니다. Vision은 이를 앱 번들의 .mlpackage와 요청 핸들러로 변환합니다.
클라우드 API가 실제로 우위를 점하는 곳
Vision의 영역은 픽셀 수준 작업입니다. 이것을 찾고, 이 이미지를 분류하고, 이 텍스트를 인식하는 것입니다. 이 프레임워크는 이미지의 의미에 대한 복잡한 의미론적 추론을 제공하지 않습니다. 클라우드 API가 올바른 선택인 세 가지 경우입니다.
멀티모달 LLM 이해. “이 이미지에서 이 사람은 무엇을 하고 있나요?” “이 차트는 오해의 소지가 있나요?” “이 메뉴를 번역하고 어떤 항목이 채식인지 알려주세요.” 이 중 어느 것도 픽셀 수준 질문이 아닙니다. 이는 시각적 인식과 세계 지식 및 언어를 결합하는 대형 멀티모달 모델을 필요로 합니다. Apple의 Foundation Models(온디바이스 LLM, Foundation Models 온디바이스 LLM에서 다룸)는 이 중 일부를 온디바이스에서 처리하기 시작했지만, 복잡한 추론에 대해서는 여전히 GPT-4o, Claude Sonnet 또는 Gemini가 우위를 점합니다.
훈련 데이터가 없는 일회성 사용자 지정 작업. Vision의 분류 모델은 고정되어 있으며, 사용자 지정 Core ML 모델은 훈련 데이터를 필요로 합니다. 멀티모달 LLM는 라벨이 지정된 훈련 예제를 하나도 보지 않고도 “이것은 나비넥타이를 한 고양이의 사진인가요?”에 답할 수 있습니다. 훈련 데이터를 수집하는 비용이 너무 비싼 프로토타이핑 또는 일회성 작업의 경우, 클라우드 LLM가 올바른 도구입니다.
OCR을 넘어선 문서 인텔리전스. Vision의 OCR은 텍스트를 반환합니다. 문서 인텔리전스 API(AWS Textract, Google Document AI, Azure Form Recognizer)는 송장 번호, 날짜, 항목, 합계 등의 구조화된 필드를 반환합니다. 부가 가치는 OCR이 아니라 구조화입니다. 가치가 높은 문서 워크플로우에서는 보통 클라우드 API가 옳고, “이 영수증을 읽고 텍스트를 덤프”하는 작업에는 Vision이 옳습니다.
패턴은 이렇습니다. 클라우드는 추론과 고도로 전문화된 수직 API에서 우위를 점하고, Vision은 인식 프리미티브에서 우위를 점합니다.
솔직한 지연 시간 및 비용 비교
iPhone 16 Pro(A18 Pro 칩)에서 실행되는 대표적인 추론 파이프라인입니다.
| 작업 | Vision (온디바이스) | OpenAI Vision API | AWS Rekognition |
|---|---|---|---|
| OCR (1페이지 영수증) | 150-300 ms | 1-3초 왕복 + 이미지당 비용 | 200-500 ms + 이미지당 비용 |
| 얼굴 감지 (1프레임) | 5-15 ms | 1-2초 + 비용 | 100-300 ms + 비용 |
| 신체 자세 (라이브 60fps) | <16 ms | 실시간 아님 | 실시간 아님 |
| 이미지 임베딩 | 20-40 ms | 200-500 ms + 비용 | 직접 제공되지 않음 |
| 사용자 지정 분류기 | 모델 크기에 따라 다름 | 호스팅된 모델 필요 | 호스팅된 모델 필요 |
위의 숫자는 공개된 Apple 벤치마크와 개발자가 보고한 측정값에서 도출되었습니다. 메시지는 정확한 수치가 아니라 자릿수입니다. Vision의 우위는 비용(호출당 0원), 꼬리 지연 시간(네트워크 지터 없음), 프라이버시(데이터가 디바이스를 떠나지 않음)에 있습니다.
비용은 앱이 비전 작업을 자주 호출할 때 누적됩니다. 세션당 100개의 이미지를 처리하는 사진 편집 앱은 클라우드 API를 통해 세션당 몇 달러가 들고 Vision을 통해서는 0원이 듭니다.
에이전트 워크플로우 연결
Vision은 이미 출시된 두 가지 클러스터 아이디어와 깔끔하게 짝을 이룹니다.
Apple Intelligence를 위한 App Intents 도구. 앱이 AppIntent를 통해 “내 사진에서 얼굴 찾기” 또는 “스크린샷에서 텍스트 읽기” 기능을 노출할 때, 의도의 perform 메서드는 Vision을 로컬에서 실행하고 구조화된 결과를 반환합니다. Apple Intelligence의 오케스트레이터는 사용자의 사진을 서버로 전송하지 않고 의도를 호출할 수 있습니다. App Intents에 대한 글이 표면 계약을 다룹니다.
Foundation Models 온디바이스 LLM. 인식과 추론이 모두 필요한 파이프라인은 Vision을 먼저 실행하고(텍스트 추출, 얼굴 찾기, 객체 위치 파악) Foundation Models를 두 번째로 실행합니다(찾은 것에 대해 추론하고, 요약 생성). 두 단계 모두 온디바이스에서 실행됩니다. 총 네트워크 호출 수는 0입니다. Foundation Models에 대한 글은 LLM를 호출하는 방법을 설명합니다. 이 글은 Vision이 클라우드 왕복 없이 그것에 입력을 제공하는 것이라고 주장합니다.
let textRequest = VNRecognizeTextRequest()
textRequest.recognitionLevel = .accurate
let handler = VNImageRequestHandler(cgImage: receiptImage, options: [:])
try handler.perform([textRequest])
let extractedText = (textRequest.results ?? [])
.compactMap { ($0 as? VNRecognizedTextObservation)?.topCandidates(1).first?.string }
.joined(separator: "\n")
let llmResponse = await foundationModel.generate(
"Summarize this receipt as JSON with merchant, total, and date fields:\n\(extractedText)"
)
전체 파이프라인이 디바이스에서 실행됩니다. API 키 없음. 네트워크 호출 없음. 제3자 데이터 노출 없음.
지난 두 릴리스에서 성숙한 것
Apple의 릴리스 노트에 대해 보수적으로 날짜를 매긴, 언급할 가치가 있는 세 가지 추가 사항입니다2.
공개 API로서의 미학 점수 (iOS 18). VNCalculateImageAestheticsScoresRequest는 유틸리티 분류와 미학 값을 포함한 점수를 반환하며, 이전에는 사진 큐레이션 앱이 사용자 지정 Core ML 모델로 근사해야 했던 것을 대체합니다.
개선된 다국어 OCR. VNRecognizeTextRequest는 최근 릴리스에 걸쳐 비라틴 문자 지원을 확장하여, 역사적으로 더 강한 다국어 커버리지를 가졌던 클라우드 OCR 서비스와의 격차를 좁혔습니다. Apple의 텍스트 인식 문서는 현재 언어 지원을 나열합니다3.
VisionKit 통합을 통한 문서 분할. VNDetectDocumentSegmentationRequest는 직사각형 문서를 찾아 모서리 점을 반환합니다. VisionKit의 DataScannerViewController는 라이브 문서 스캔을 위한 디자인된 UI로 요청을 래핑합니다.
이 프레임워크의 주요 기능(얼굴, 텍스트, 자세, 바코드, 임베딩)은 여러 iOS 릴리스에 걸쳐 성숙해 왔습니다. 패턴은 다음과 같습니다. 재발명이 아니라 확장.
대부분의 개발자가 Vision을 건너뛰는 이유
이 사례가 명확함에도 불구하고 프레임워크가 외면받는 세 가지 이유입니다.
클라우드 우선 습관. 대부분의 현대 AI 개발은 먼저 클라우드 API를 대상으로 이루어집니다. 개발자는 OpenAI를 호출하는 방법을 알고 있습니다. VNRecognizeTextRequest와 VNImageRequestHandler와 VNRecognizedTextObservation의 표면적은 실제로는 더 적은 코드 줄에 비해 배워야 할 API가 더 많은 것처럼 느껴집니다.
기능에 대한 오판. 최근에 프레임워크를 확인하지 않은 개발자는 OCR과 바코드만 다룬다고 가정합니다. 위의 카테고리 목록은 12개가 넘는 기능이며, 그중 여러 개는 클라우드 네이티브 등가물이 없으며, 여러 개는 비용 없이 상용 API와 일치합니다.
프로토타입 대 프로덕션의 분기. 클라우드 API는 초기 프로토타이핑에서 우위를 점하고(결과를 얻기 위한 하나의 curl 명령), 프로토타입은 재평가 없이 프로덕션 파이프라인으로 전환됩니다. 올바른 움직임은 가장 빠른 것으로 프로토타이핑하고 워크플로우가 실제가 되면 인식 계층을 재평가하는 것입니다.
해결책은 클라우드 API를 거부하는 것이 아닙니다. 해결책은 선택이 실제가 되도록 플랫폼이 무엇을 담고 있는지 아는 것입니다.
이 패턴이 iOS 26+ 앱에 의미하는 것
세 가지 시사점입니다.
-
인식 프리미티브에는 Vision을 기본으로 사용하세요. 얼굴 찾기, 텍스트 읽기, 바코드 감지, 자세 추정 실행, 이미지 임베딩 가져오기. 이 프레임워크는 Neural Engine에서 마이크로초 단위로 실행되고, 비용이 0원이며, 제3자 데이터 흔적을 남기지 않습니다. 픽셀 수준 CV 작업의 경우, 이 프레임워크가 올바른 출발점입니다.
-
인식이 아닌 추론에 클라우드 API를 사용하세요. 이미지 의미를 이해하는 멀티모달 LLM, 구조화된 필드를 추출하는 수직 문서 인텔리전스 API, 훈련 데이터가 없는 일회성 사용자 지정 작업. 이는 클라우드의 영역이며, 클라우드에 양보하는 것이 옳습니다.
-
완전한 온디바이스 파이프라인을 위해 Vision을 Foundation Models와 짝지으세요. 인식(Vision)이 추론(온디바이스 LLM)에 입력을 제공합니다. 파이프라인은 API 키, 네트워크 지터, 디바이스를 떠나는 텔레메트리 없이 처음부터 끝까지 로컬에서 실행됩니다. 클러스터의 Foundation Models 글은 LLM의 절반을 다룹니다. Vision은 입력의 절반입니다.
전체 Apple 생태계 클러스터: 타입이 지정된 App Intents; MCP 서버; 라우팅 질문; Foundation Models; 런타임과 도구 LLM의 구분; 세 가지 표면; 단일 진실 공급원 패턴; 두 개의 MCP 서버; Apple 개발을 위한 hooks; Live Activities; watchOS 런타임; SwiftUI 내부; RealityKit의 공간 멘탈 모델; SwiftData 스키마 규율; Liquid Glass 패턴; 멀티 플랫폼 출시; 플랫폼 매트릭스; 내가 쓰지 않을 것. 허브는 Apple 생태계 시리즈에 있습니다. 더 광범위한 iOS-with-AI-에이전트 컨텍스트는 iOS 에이전트 개발 가이드를 참조하세요.
FAQ
Apple Vision과 visionOS의 차이점은 무엇인가요?
Vision 프레임워크는 iOS, macOS, visionOS용 온디바이스 컴퓨터 비전 API입니다. visionOS는 Apple Vision Pro의 운영 체제입니다. 이름의 중복은 불행한 일입니다. Vision(프레임워크)은 모든 최신 Apple 디바이스에서 실행됩니다. visionOS(OS)는 특히 Vision Pro 하드웨어에서 실행됩니다.
OpenAI Vision API나 Google Cloud Vision 대신 Vision을 언제 사용해야 하나요?
픽셀 수준 인식 작업(얼굴 찾기, 텍스트 읽기, 객체 감지, 항목 세기, 자세 추정, 이미지 임베딩 생성)에는 거의 항상 Vision이 올바른 선택입니다. 밀리초 단위로 실행되고, 추론당 비용이 없으며, 사용자 데이터를 디바이스에 보관합니다. 클라우드 API는 작업이 이미지의 의미에 대한 복잡한 의미론적 추론을 필요로 하거나, 수직 문서 인텔리전스 API가 텍스트 추출을 넘어선 구조화된 필드를 제공할 때 옳습니다.
Vision을 통해 내 자신의 Core ML 모델을 실행할 수 있나요?
네. VNCoreMLRequest는 모든 Core ML 모델을 래핑하고 전처리를 자동으로 처리합니다. .mlpackage 파일을 앱 번들에 넣고, 모델을 인스턴스화하고, VNCoreMLModel로 래핑한 다음, 요청 핸들러를 통해 실행하세요. 동일한 핸들러는 내장 Vision 요청과 사용자 지정 Core ML 모델을 포함하여 여러 요청을 병렬로 실행할 수 있습니다.
Apple Silicon에서 Vision 디스패치는 어떻게 작동하나요?
Vision(그리고 그것이 실행하는 Core ML 모델)은 사용 가능할 때 자동으로 Neural Engine에 디스패치하고, 그렇지 않을 때는 GPU로, 최후의 수단으로 CPU로 폴백합니다. 프레임워크는 디바이스와 작업에 가장 빠른 경로를 선택합니다. 대부분의 최신 iPhone(A12 Bionic 이상)의 경우, Neural Engine이 추론의 대부분을 처리합니다. 개발자는 디스패치를 수동으로 구성하지 않습니다.
최근에 무엇이 추가되었나요?
Apple의 릴리스 노트에 대해 날짜를 매긴 보수적인 요약: VNCalculateImageAestheticsScoresRequest는 iOS 18에서 공개 API로 추가되었습니다. VNRecognizeTextRequest는 최근 릴리스에 걸쳐 다국어 지원을 확장했습니다. VisionKit의 DataScannerViewController는 디자인된 UI로 문서 스캔을 래핑합니다. 주요 기능(텍스트, 얼굴, 자세, 바코드, 임베딩)은 여러 iOS 릴리스에 걸쳐 성숙해 왔습니다.
참고 문헌
-
Apple Developer Documentation:
VNCalculateImageAestheticsScoresRequest, iOS 18.0+에서 도입됨. ↩ -
Apple Developer Documentation: Vision framework, 사용 가능한 요청 및 플랫폼 가용성에 대한 참조. ↩
-
Apple Developer Documentation: Recognizing Text in Images, API 호출별 지원되는 인식 언어. ↩
-
Apple Developer Documentation:
VNHumanBodyPoseObservation.JointName, 2D 신체 자세 요청에서 반환되는 열거된 관절 이름. ↩