Operaciones de Reconocimiento de Texto¶
Este capítulo le presenta cómo usar OCR para asistir en las operaciones de la interfaz. En situaciones como aplicaciones de juegos, los selectores de interfaz de usuario convencionales pueden no ser utilizables. En tales casos, puede optar por utilizar métodos de OCR para realizar operaciones. El método de reconocimiento OCR solo admite operaciones como verificar si un elemento existe, hacer clic, tomar capturas de pantalla, etc. La biblioteca de backend de OCR admite el uso de paddleocr, easyocr y interfaces de backend http personalizadas.
Configurar el Backend de OCR¶
Antes de utilizar el método de reconocimiento OCR, primero debe configurar el backend de OCR. Deberá instalar las bibliotecas de dependencia con antelación por su cuenta.
Atención
Usando paddleocr como backend, la calidad de la captura de pantalla para el reconocimiento es de 80, utilizando aceleración por GPU.
d.setup_ocr_backend("paddleocr", quality=80, use_gpu=True, drop_score=0.85, use_space_char=True)
Usando easyocr como backend, la calidad de la captura de pantalla para el reconocimiento es de 80, reconociendo chino simplificado e inglés.
d.setup_ocr_backend("easyocr", ["ch_sim", "en"], quality=80)
Los parámetros adicionales en setup_ocr_backend deben ser los parámetros para inicializar esa instancia. Si no entiende cómo se escriben los parámetros anteriores, consulte los siguientes parámetros de instanciación oficiales y compárelos con los de arriba.
paddleocr.PaddleOCR(use_gpu=True, drop_score=0.85, use_space_char=True)
easyocr.Reader(["ch_sim", "en"])
Backend de OCR personalizado, utilizado principalmente para el control de una gran cantidad de dispositivos o en situaciones donde no hay aceleración por GPU en la máquina local. Puede desplegar el reconocimiento escrito como un servicio HTTP y solicitar el reconocimiento remoto dentro del backend personalizado. Deberá heredar y escribir MyCustomOcrBackend usted mismo y formatear los resultados del reconocimiento según el formato requerido. También puede encontrar la definición del formato de respuesta en el archivo paddle_ocr_http_backend.py que proporcionamos, y puede modificarlo ligeramente para desplegar este servicio directamente.
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()
Luego, simplemente configure el servicio de backend de reconocimiento OCR con la clase de servicio personalizada.
d.setup_ocr_backend(HttpOcrBackend, "http://server/ocr", "Secret")
Selectores OCR¶
Actualmente, el selector de reconocimiento OCR solo admite los siguientes tipos.
text¶
Coincide con el text completo.
element = d.ocr(text="我的")
textContains¶
Coincidencia por texto que contiene.
element = d.ocr(textContains="我的")
textMatches¶
Coincidencia por expresión regular de texto.
element = d.ocr(textMatches=".*?我的")
Operaciones OCR¶
Actualmente, el selector de reconocimiento OCR solo admite las siguientes operaciones relacionadas.
click¶
Hace clic en el elemento seleccionado.
element.click()
click_exists¶
Si existe, hace clic en el elemento seleccionado.
element.click_exists()
exists¶
Si el elemento existe.
element = d.ocr(textMatches=".*?我的")
screenshot¶
Toma una captura de pantalla del elemento coincidente.
element.screenshot(100, ).save("element.png")
info¶
Obtiene la información OCR coincidente.
element.info()
Consejo