저번에 조사한 내용들을 팀원들에게 소개를 했다
그 과정에서 팀원분들에게 질문을 받으면서 조사에 대해서 부족한 을 찾아서
그에 대한 답변 겸 추가 조사를 글로 작성하려고 한다.
let revision3 = VNRecognizeTextRequestRevision3
request.revision = revision3
request.recognitionLevel = .accurate
request.recognitionLanguages = ["ko-KR"]
request.usesLanguageCorrection = true
위의 코드에선 recognitionLanguages
의 값을 ko-KR
로 설정하여
한국어를 인식하고 있다.
질문을 주신 의도는 영어를 인식하려면 어떻게 설정을 해야한다는 것이었다
실제로 어플을 실행해봤을 때는 추가 설정을 하지 않아도 영어도 인식하긴 했다.
let revision3 = VNRecognizeTextRequestRevision3
request.revision = revision3
request.recognitionLevel = .accurate
// request.recognitionLanguages = ["ko-KR"]
request.usesLanguageCorrection = true
기본적으로 관련 구문을 없는 상태에서도 언어들을 자동으로 인식하지만
특정 언어를 지정해주는게 아무래도 정확도가 높은듯 하다
한 언어에 특화된 언어 인식이 필요할 때는 더더욱
request.recognitionLanguages = ["ko-KR", "en-US"]
명시적으로 지정해주려면 위처럼 배열에 원하는 언어를 추가해주면 된다.
설명을 위한 예제 코드에서 아래와 같은 부분에 대해서 질문이 있었다
// UIImage를 cgImage로 변경
guard let cgImage = UIImage(named: "snapshot")?.cgImage else { return }
// handler 인스턴스 생성
let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])
cgImage
가 뭔지를 질문 하셨습니다.
그래서 검색 + gpt 한테 물어보니 아래와 같은 답을 받았습니다
CGImage의 정의
cgImage는 Core Graphics 이미지(CGI)를 나타내는 CGImage 객체입니다. CGImage는 픽셀 데이터에 직접 접근할 수 있는 이미지 객체로, 다양한 이미지 처리 작업에 사용됩니다. UIImage 객체는 일반적으로 UIKit에서 사용되는 이미지 객체이고, 이를 통해 CGImage를 얻을 수 있습니다.
do {
let possibleLanguages = try request.supportedRecognitionLanguages()
print(possibleLanguages)
} catch {
print("Error getting the supported languages.")
}
위 구문에서 supportedRecognitionLanguages()
를 통해 사용가능한
언어를 출력해주는 부분인데
그 기능이 사실 코드 상 필수적인 부분은 아니여서 없어도 되는 부분인지 질문하셨다
그래서 주석처리하고 실행을 해보니 정상 작동했다!
생각해보니 에러처리를 하거나 로직이 있는 부분이 아니고
단순히 사용가능한 언어만 알려주는 부분이니 없어도 될거같다.
관련 영상 공부 중
관련영상
근데 주로 SwiftUi 영상이 많다.
공식 튜토리얼 영상
UIKit
을 사용하는 공식 영상
이것은 현재 살펴보는중입니다
관련 애플 문서 읽어 보는 중입니다