티스토리 뷰

반응형

 

 

 


VisionRequest

iOS에서는 Vision 요청을 통해 다양한 결과값을 얻어낼 수 있습니다. 예를 들면 객체탐지, 바코드, 이미지 내 얼굴, 텍스트 인식 등이 있습니다. 이러한 Vision 요청을 위해 Vision 프레임워크를 먼저 import 합니다.

import Vision


이후 다양한 종류의 VisionRequest 중에 선택해서 사용할 수 있습니다. 그 예로는 직사각형으로 객체를 탐지하는 VNDetectRectanglesRequest 등의 객체가 있습니다. 

Vision과 관련된 객체를 이름 앞에 VN이라는 접두어가 붙습니다.

 

 

 


VisionRequest Handler

VisionRequest에 대한 응답을 받기 위해 사용하는 것이 VisionRequest Handler입니다.
VisionRequest 핸들러는 Vision 요청에 대한 성공/실패 여부를 판단하고 그에 따른 대응을 할 수 있도록 해줍니다. 

// Detect Request인 VNDetectRectanglesRequest는 핸들러를 통해 결과 흭득 여부를 판단하고, 그에 따라 결과 값을 처리할 수 있습니다.
// 만약 결과 값, Observation이 없다면 detectError를 출력합니다. 
// 만약 Observation값이 존재했다면 그 결과값을 원하는대로 활용할 수 있습니다. 
// 이런 Vision Request는 다양한 기능을 지원합니다. 직사각형의 객체탐지 뿐만아니라, 텍스트, 바코드, 이미지 내 얼굴 인식 등 다양한 기능들이 있으며, 이런 각각의 Vision Request들 또한 각각의 Observation 값과 대응됩니다. 
// ex) VNRectangleObservation, VNBarcodeObservation ...

// VNDetectRectanglesRequest 활용 예시 
var detectionRequest: VNDetectRectanglesRequest {
        let request = VNDetectRectanglesRequest { (request, error) in
            if let detectError = error as NSError? {
                print(detectError)
                return
            } else {
                guard let observations = request.results as? [VNDetectedObjectObservation] else {
                    return
                }
                
                print("\(observations)")
            }
        }
        return request
    }

 

 


Observation

앞서 언급했던 Vision Request Handler에서는 요청 결과가 없을 경우, 결과값이 존재할 경우에 따른 분기를 두고 처리하는데 사용 수 있습니다. 이때 얻은 결과값이 존재했다면 Handler를 통해 결과값을 활용할 수 있습니다.
이때 VisionRequest의 결과값을 Observation이라고도 부릅니다. 

요약하자면 VisionRequest 간 VisionRequest Handler를 통해 Observation 값을 확인하고 흭득 및 활용할 수 있습니다. 

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함