WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
iOS
Swift
システム開発
[Swift][iOS16]画像から日本語OCRをやってみた
こんにちは、株式会社MIXシステム開発担当のBloomです。
早速本題のiOS16で画像から文章を抽出するOCR処理について、
お仕事の中で
Vision.framework
Vision.frameworkとは顔認識や文字認識、特徴量検出といった画像処理をサポートするフレームワークです。
iOS16から文字認識機能が日本語に対応し、iPhoneではiOS16から写真アプリから直接写真の中の文字をコピーできる等標準機能として実装されるようになったため、その機能をアプリからも使ってみましょう。
実際に認識してみた
では、実際に日本語認識をしてみましょう。下記はCGImageを渡すことで認識した文字列を返すサンプル関数です。
topCandidatesには文字の認識結果の候補最大数を指定しています。
func recognize(cgImage: CGImage, handler: @escaping([String]) -> Void) {
var texts: [String] = []
let request = VNRecognizeTextRequest { (request, error) in
guard let observations = request.results as? [VNRecognizedTextObservation] else { return }
for observation in observations {
let candidates = observation.topCandidates(5)
for candidate in candidates {
print(candidate.string)
}
texts.append(candidates.first!.string)
}
handler(texts)
}
request.recognitionLanguages = ["ja-JP"]
let handler = VNImageRequestHandler(cgImage: cgImage)
try? handler.perform([request])
}
サンプル画像
認識結果
これだけで簡単に日本語OCRを実装できました。良かったですね。