OCR-Operationen¶
Dieses Kapitel beschreibt, wie Sie OCR zur Unterstützung von UI-Operationen verwenden können. In Situationen wie bei Spieleanwendungen sind herkömmliche UI-Selektoren möglicherweise nicht verwendbar. In solchen Fällen können Sie OCR-Methoden für Operationen wählen. Die OCR-Erkennungsmethode unterstützt nur Operationen wie die Überprüfung der Existenz eines Elements, Klicks, Screenshots usw. Die OCR-Backend-Bibliothek unterstützt die Verwendung von paddleocr, easyocr sowie benutzerdefinierten HTTP-Backend-Schnittstellen.
OCR-Backend einrichten¶
Bevor Sie die OCR-Erkennungsmethode verwenden, müssen Sie zuerst das OCR-Backend einrichten. Sie müssen die Abhängigkeitsbibliotheken im Voraus selbst installieren.
Achtung
Verwenden Sie paddleocr als Backend, mit einer Screenshot-Qualität von 80 für die Erkennung und GPU-Beschleunigung.
d.setup_ocr_backend("paddleocr", quality=80, use_gpu=True, drop_score=0.85, use_space_char=True)
Verwenden Sie easyocr als Backend, mit einer Screenshot-Qualität von 80 für die Erkennung von vereinfachtem Chinesisch und Englisch.
d.setup_ocr_backend("easyocr", ["ch_sim", "en"], quality=80)
Die zusätzlichen Parameter in setup_ocr_backend sollten die Parameter zur Initialisierung der Instanz sein. Wenn Sie nicht verstehen, wie die obigen Parameter geschrieben werden, sehen Sie sich bitte die folgenden offiziellen Instanziierungsparameter an und vergleichen Sie sie mit den obigen.
paddleocr.PaddleOCR(use_gpu=True, drop_score=0.85, use_space_char=True)
easyocr.Reader(["ch_sim", "en"])
Ein benutzerdefiniertes OCR-Backend wird hauptsächlich für die Steuerung einer großen Anzahl von Geräten oder in Situationen ohne GPU-Beschleunigung auf dem lokalen Rechner verwendet. Sie können die geschriebene Erkennung als HTTP-Dienst bereitstellen und innerhalb des benutzerdefinierten Backends eine Fern-Erkennung anfordern. Sie müssen MyCustomOcrBackend selbst erben und schreiben und die Erkennungsergebnisse gemäß dem erforderlichen Format formatieren. Die Definition des Antwortformats finden Sie auch in der von uns bereitgestellten Datei paddle_ocr_http_backend.py. Sie können diesen Dienst auch mit geringfügigen Änderungen direkt bereitstellen.
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()
Anschließend setzen Sie den OCR-Erkennungs-Backend-Dienst einfach auf die benutzerdefinierte Dienstklasse.
d.setup_ocr_backend(HttpOcrBackend, "http://server/ocr", "Secret")
OCR-Selektoren¶
Derzeit unterstützt der OCR-Erkennungs-Selektor nur die folgenden Typen.
text¶
Stimmt mit dem vollständigen Text überein.
element = d.ocr(text="我的")
textContains¶
Übereinstimmung, wenn der Text den Wert enthält.
element = d.ocr(textContains="我的")
textMatches¶
Übereinstimmung mit regulärem Ausdruck im Text.
element = d.ocr(textMatches=".*?我的")
OCR-Operationen¶
Derzeit unterstützt der OCR-Erkennungs-Selektor nur die folgenden zugehörigen Operationen.
click¶
Klickt auf das ausgewählte Element.
element.click()
click_exists¶
Klickt auf das ausgewählte Element, falls es existiert.
element.click_exists()
exists¶
Prüft, ob das Element existiert.
element = d.ocr(textMatches=".*?我的")
screenshot¶
Erstellt einen Screenshot des übereinstimmenden Elements.
element.screenshot(100, ).save("element.png")
info¶
Ruft die Informationen der übereinstimmenden OCR-Erkennung ab.
element.info()
Tipp