文字認識操作¶
このセクションでは、OCRを使用してUI操作を補助する方法について説明します。ゲームアプリケーションなどの状況では、通常のUIセレクターが使用できない場合があります。このような場合、OCRを使用する方法を選択できます。OCR認識方式は、要素の存在確認、クリック、スクリーンショットなどの操作のみをサポートしています。OCRバックエンドライブラリは、paddleocr、easyocr、およびカスタムHTTPバックエンドインターフェースの使用をサポートしています。
OCRバックエンドの設定¶
OCR認識方式を使用する前に、まずOCRバックエンドを設定する必要があります。ご自身で事前に依存ライブラリをインストールする必要があります。
注目
paddleocrをバックエンドとして使用し、認識用のスクリーンショット品質を80に設定し、GPUアクセラレーションを使用します。
d.setup_ocr_backend("paddleocr", quality=80, use_gpu=True, drop_score=0.85, use_space_char=True)
easyocrをバックエンドとして使用し、認識用のスクリーンショット品質を80に設定し、簡体字中国語と英語を認識します。
d.setup_ocr_backend("easyocr", ["ch_sim", "en"], quality=80)
setup_ocr_backend の追加パラメータは、そのインスタンスを初期化するためのパラメータであるべきです。上記のパラメータのスペルがわからない場合は、以下の公式のインスタンス化パラメータを見て、上記のものと比較してください。
paddleocr.PaddleOCR(use_gpu=True, drop_score=0.85, use_space_char=True)
easyocr.Reader(["ch_sim", "en"])
カスタムOCRバックエンドは、主に大量のデバイス制御やローカルマシンにGPUアクセラレーションがない場合などに使用されます。作成した認識機能をHTTPサービスとしてデプロイし、カスタムバックエンド内でリクエストを送信してリモート認識を行うことができます。ご自身で MyCustomOcrBackend を継承して作成し、要求されたフォーマットに従って認識結果をフォーマットする必要があります。また、私たちが提供する paddle_ocr_http_backend.py の中でレスポンスフォーマットの定義を見つけることができ、少し修正して直接このサービスをデプロイすることも可能です。
class HttpOcrBackend(CustomOcrBackend):
def __init__(self, url, auth):
self.auth = auth
self.url = url
def ocr(self, image: bytes):
r = requests.post(url, headers={"X-Auth": self.auth},
data=image)
return r.json()
その後、OCR認識のバックエンドサービスをカスタムサービスクラスに設定するだけです。
d.setup_ocr_backend(HttpOcrBackend, "http://server/ocr", "Secret")
OCRセレクター¶
現在、OCR認識セレクターは以下の種類のみをサポートしています。
text¶
完全なtextにマッチします。
element = d.ocr(text="私の")
textContains¶
テキストの部分一致でマッチします。
element = d.ocr(textContains="私の")
textMatches¶
テキストの正規表現でマッチします。
element = d.ocr(textMatches=".*?私の")
OCR操作¶
現在、OCR認識セレクターは以下の関連操作のみをサポートしています。
click¶
選択した要素をクリックします。
element.click()
click_exists¶
選択した要素が存在する場合にクリックします。
element.click_exists()
exists¶
要素が存在するかどうかを確認します。
element = d.ocr(textMatches=".*?私の")
screenshot¶
マッチした要素のスクリーンショットを撮ります。
element.screenshot(100, ).save("element.png")
info¶
マッチしたOCR情報を取得します。
element.info()
豆知識