OpenCV4.5 で改良されたテキスト検出について調査中


OpenCV4.5 のリリースノートには、文字認識が改良されたことが書いてある。

さらに、リリースノートをたどると、この改変のPRにたどり着ける。
https://github.com/opencv/opencv/pull/17675

最近は、このPRの説明が詳しくて、どのように追加・改変の機能がよくなったのかをわかりやすくまとめている。

英数字についても文字認識は、これまでにもだいぶ進んできていたが、手書き文字についても性能が向上してきている。

文字認識は、次の2段階からなる。
- 文字が写っている領域を検出する。(text detection)
- その領域に写っている文字の1字1字を特定する。(text recognition)
- (さらには、単独の文字認識で区別しにくい文字を、辞書を使って特定する。)

このOpenCVの実装は、上記のPRを読めばわかるように、文字を確定するまでのものになっている。

$ cd opencv/samples/dnn
$ opencv/samples/dnn$ python text_detection.py -h
usage: text_detection.py [-h] [--input INPUT] --model MODEL [--ocr OCR]
                         [--width WIDTH] [--height HEIGHT] [--thr THR]
                         [--nms NMS]

Use this script to run TensorFlow implementation
(https://github.com/argman/EAST) of EAST: An Efficient and Accurate Scene Text
Detector (https://arxiv.org/abs/1704.03155v2)The OCR model can be obtained
from converting the pretrained CRNN model to .onnx format from the github
repository https://github.com/meijieru/crnn.pytorchOr you can download trained
OCR model directly from https://drive.google.com/drive/folders/1cTbQ3nuZG-
EKWak6emD_s8_hHXWz7lAr?usp=sharing

optional arguments:
  -h, --help            show this help message and exit
  --input INPUT         Path to input image or video file. Skip this argument
                        to capture frames from a camera.
  --model MODEL, -m MODEL
                        Path to a binary .pb file contains trained detector
                        network.
  --ocr OCR             Path to a binary .pb or .onnx file contains trained
                        recognition network
  --width WIDTH         Preprocess input image by resizing to a specific
                        width. It should be multiple by 32.
  --height HEIGHT       Preprocess input image by resizing to a specific
                        height. It should be multiple by 32.
  --thr THR             Confidence threshold.
  --nms NMS             Non-maximum suppression threshold.

英文でよければ、次の解説記事がある。

OpenCV Text Detection (EAST text detector)

qiita OpenCVをPythonで文字の場所をレシートから取得する


OpenVinoの場合

手書きの日本語を認識している!