调度器使用示例、OCR调用改进

This commit is contained in:
zhbaor 2024-11-03 15:32:35 +08:00
parent f19b7a4968
commit 1bcc311a93
15 changed files with 154 additions and 45 deletions

View file

@ -7,11 +7,12 @@ import numpy as np
from mower import __rootdir__
from mower.solvers.infra.filter import RIIC_Filter
from mower.utils import config, rapidocr
from mower.utils import config
from mower.utils.character_recognize import operator_room_select
from mower.utils.csleep import MowerExit
from mower.utils.image import cropimg, loadres, thres2
from mower.utils.log import logger
from mower.utils.rapidocr import engine
with lzma.open(f"{__rootdir__}/models/operator_room.model", "rb") as f:
OP_ROOM = pickle.loads(f.read())
@ -145,7 +146,7 @@ class BaseMixin:
img = cropimg(img, ((169, 22), (513, 80)))
return self.read_operator_in_room(img)
try:
ret = rapidocr.engine(img, use_det=False, use_cls=False, use_rec=True)[0]
ret = engine(img, use_det=False, use_cls=False, use_rec=True)[0]
logger.debug(ret)
if not ret or not ret[0][0]:
raise Exception("识别失败")

View file

@ -9,7 +9,9 @@ from .place import PlaceSolver
from .receive import ReceiveSolver
class ClueSolver:
class ClueManager:
solver_name = "线索交流"
def run(self):
logger.info("基建:线索")
DailySolver().run()
@ -17,6 +19,6 @@ class ClueSolver:
PlaceSolver().run()
clue_count = GetClueCountSolver().run()
GiveAwaySolver().run(clue_count)
party_time = PartyTimeSolver().run()
self.party_time = PartyTimeSolver().run()
CreditShop().run()
return party_time
return True

View file

@ -1,8 +1,9 @@
from mower.solvers.infra.enter_room import EnterRoomSolver
from mower.utils import config, rapidocr
from mower.utils import config
from mower.utils.graph import SceneGraphSolver
from mower.utils.image import cropimg
from mower.utils.log import logger
from mower.utils.rapidocr import engine
from mower.utils.recognize import Scene
from mower.utils.vector import va
@ -40,7 +41,7 @@ class GiveAwaySolver(SceneGraphSolver):
break
name_top_left = (870, 127 + 222 * i)
name_scope = (name_top_left, va(name_top_left, (383, 62)))
name = rapidocr.engine(
name = engine(
cropimg(config.recog.gray, name_scope),
use_det=True,
use_cls=False,

View file

@ -1,10 +1,11 @@
import cv2
from mower.solvers.infra.enter_room import EnterRoomSolver
from mower.utils import config, rapidocr
from mower.utils import config
from mower.utils.graph import SceneGraphSolver
from mower.utils.image import cropimg, loadres, thres2
from mower.utils.log import logger
from mower.utils.rapidocr import engine
from mower.utils.recognize import Scene
from mower.utils.vector import va
@ -102,7 +103,7 @@ class PlaceSolver(SceneGraphSolver):
name_img = cv2.copyMakeBorder(
name_img, 48, 48, 48, 48, cv2.BORDER_REPLICATE
)
name = rapidocr.engine(
name = engine(
name_img,
use_det=True,
use_cls=False,
@ -117,7 +118,7 @@ class PlaceSolver(SceneGraphSolver):
time_img = cv2.copyMakeBorder(
time_img, 48, 48, 48, 48, cv2.BORDER_REPLICATE
)
time = rapidocr.engine(
time = engine(
time_img,
use_det=True,
use_cls=False,

View file

@ -1,10 +1,11 @@
import cv2
from mower.solvers.infra.enter_room import EnterRoomSolver
from mower.utils import config, rapidocr
from mower.utils import config
from mower.utils.graph import SceneGraphSolver
from mower.utils.image import cropimg
from mower.utils.log import logger
from mower.utils.rapidocr import engine
from mower.utils.recognize import Scene
from .utils import clue_cls, exit_pos
@ -32,7 +33,7 @@ class ReceiveSolver(SceneGraphSolver):
name_img = cv2.copyMakeBorder(
name_img, 48, 48, 48, 48, cv2.BORDER_REPLICATE
)
name = rapidocr.engine(
name = engine(
name_img,
use_det=True,
use_cls=False,

View file

@ -62,12 +62,7 @@ class ReportSolver(SceneGraphSolver):
logger.info("今天的基报看过了")
return True
logger.info("康康大基报捏~")
try:
super().run()
return True
except Exception as e:
logger.exception(e)
return False
return super().run()
def transition(self) -> bool:
if self.scene() == Scene.RIIC_REPORT: