림버스 컴퍼니 자동화 도우미: 이미지 인식 및 지능형 결정 시스템 아키텍처

PC 게임 《림버스 컴퍼니》를 위한 자동화 도우미는 고급 이미지 인식 기술, OCR 문자 인식, 그리고 지능형 결정 알고리즘을 활용하여 플레이어가 일일 임무, 거울 던전 도전, 자원 관리 등을 자동화할 수 있도록 지원합니다. 본 문서는 시스템의 아키텍처 설계, 핵심 알고리즘 원리, 그리고 실제 적용 시나리오를 기술적인 관점에서 분석합니다.

기술 아키텍처 및 핵심 원리

화면 인식 및 상태 판단 시스템

본 시스템은 템플릿 매칭과 특징점 검출 기반의 이미지 인식 기술을 사용하며, PaddleOCR 엔진을 통합하여 게임 화면을 정밀하게 식별합니다. 게임 창의 실시간 스크린샷을 촬영하고, 사전 설정된 템플릿 이미지와 유사도를 계산하여 현재 게임 상태를 판별합니다.

핵심 인식 알고리즘은 OpenCV를 기반으로 다중 스케일 템플릿 매칭 전략을 활용하여 구현됩니다:


# 모듈화된 화면 인식 구현
class GameScreenScanner:
    def __init__(self, target_window_id):
        self.screen_capture = ScreenshotProvider()
        self.input_executor = AbstractInputController()
        self.image_cache = {}
        self.recognition_mode = "feature_match"

이 시스템은 1920×1080 및 2560×1440을 포함한 다양한 해상도를 지원하며, 적응형 스케일링 알고리즘을 통해 다른 화면 구성에서도 정확한 인식률을 보장합니다. 이미지 전처리 과정에는 그레이스케일 변환, 히스토그램 평활화, 엣지 검출 등이 포함되어 인식 견고성을 향상시킵니다.

OCR 엔진 통합 및 텍스트 인식

RapidOCR은 문자 인식 엔진으로 통합되어 한국어 및 영어 인식을 지원하며, 95% 이상의 정확도를 자랑합니다. OCR 모듈은 PP-OCRv4 모델을 활용하며, 게임 UI 내의 특수 글꼴 및 예술 글자에 최적화된 학습을 거쳤습니다.


# OCR 엔진 구성
class TextRecognitionEngine(metaclass=SingletonMeta):
    def __init__(self, log_manager):
        self.ocr_engine = RapidOCR(
            params={
                "Det.engine_type": EngineType.ONNXRUNTIME,
                "Det.lang_type": LangDet.KR, # 한국어 감지
                "Rec.lang_type": LangRec.KR, # 한국어 인식
                "Rec.ocr_version": OCRVersion.PPOCRV4,
            },
            config_path=r"resources\config\default_rapidocr_settings.yaml",
        )

OCR 인식 결과는 팀 이름 식별, 테마 팩 가중치 평가, 게임 상태 확인 등에 사용되며, 자동화된 결정의 중요한 근거가 됩니다.

지능형 결정 및 경로 계획 알고리즘

거울 던전 도전에서 본 시스템은 가중치 기반 경로 계획 알고리즘을 적용합니다. 다양한 테마 팩의 수익 가중치를 분석하여 최적의 경로를 자동으로 선택합니다:

결정 요소 가중치 계수 설명
이벤트 노드 0.8 추가 보상 획득을 위해 이벤트 노드 우선 선택
전투 노드 0.6 두 번째로 고려되는 전투 노드
상점 노드 0.4 자원 상황에 따라 선택적으로 방문
휴식 노드 0.3 필요시 회복을 위해 선택

알고리즘은 탐욕적 전략과 백트래킹 메커니즘을 결합하여 복잡한 결정 시나리오에서 최적해를 보장합니다.

모듈식 아키텍처 설계

핵심 모듈 계층화

본 시스템은 명확한 계층형 아키텍처를 채택하며, 각 모듈은 명확한 책임을 가집니다:


modules/
├── automation_core/     # 자동화 핵심
│   ├── input_handlers/  # 입력 제어
│   ├── screen_capture.py # 화면 캡처
│   └── main_automation.py # 자동화 로직
├── settings/            # 설정 관리
├── text_recognition/    # 문자 인식
├── game_interface/      # 게임 인터페이스 상호작용
└── task_executors/      # 작업 실행
    ├── battle_tasks/    # 전투 작업
    ├── daily_routines/  # 일일 작업
    └── mirror_dungeon/  # 거울 던전 작업

설정 관리 시스템

시스템은 YAML 형식의 설정 파일을 사용하며, 런타임 중 동적 업데이트를 지원합니다:


# resources/config/app_settings.yaml
game_window:
  display_resolution: "1920x1080"
  game_language: "ko_kr" # 한국어 설정

mirror_challenge:
  team_rotation_enabled: true
  theme_pack_priority:
    "불타는 안개": 0.9
    "심연의 기어감": 0.8
    "천둥 번개": 0.7

테마 팩 가중치 설정 파일 (`theme_pack_priorities.yaml`)은 사용자가 우선순위를 사용자 정의할 수 있도록 하며, 시스템은 가중치 값에 따라 지능적으로 선택합니다.

주요 기술적 과제 및 해결책

과제 1: 다중 해상도 적응

문제: 사용자의 모니터 해상도가 다양하여 이미지 인식이 실패할 수 있습니다.

해결책:

  1. 적응형 스케일링 알고리즘을 구현하여 템플릿 이미지를 목표 해상도에 비례하여 조정합니다.
  2. 상대 좌표 시스템을 채택하여 모든 작업을 절대 픽셀이 아닌 화면 백분율을 기반으로 수행합니다.
  3. 1920×1080 및 2560×1440 두 가지 사전 설정된 구성 템플릿을 제공합니다.

과제 2: 게임 상태 오판

문제: 게임 인터페이스 요소의 유사도가 높아 상태 판단 오류가 발생하기 쉽습니다.

해결책:

  1. 다중 특징점 매칭: 여러 핵심 영역을 동시에 감지합니다.
  2. 시퀀스 검증: 이전 프레임과 현재 프레임의 상태를 결합하여 검증합니다.
  3. 오류 허용 재시도 메커니즘: 인식 실패 시 자동으로 재시도하고 인식 매개변수를 조정합니다.

과제 3: 성능 최적화

문제: 실시간 이미지 처리는 높은 시스템 자원을 요구합니다.

해결책:

  1. 이미지 캐싱 메커니즘: 인식 결과를 캐시하여 중복 처리를 방지합니다.
  2. 비동기 처리: OCR 인식과 이미지 매칭을 다른 스레드로 분리합니다.
  3. 지능형 휴면: 대기 화면에서 감지 빈도를 낮춥니다.

실전 적용 사례 분석

사례 1: 거울 던전 완전 자동화 시스템

기술적 과제: 거울 던전 지도가 무작위로 생성되므로 동적 경로 계획이 필요합니다.

해결책:

  1. 지도 노드 유형(전투, 이벤트, 상점, 휴식) 실시간 OCR 인식.
  2. 가중치 기반 알고리즘을 통한 최적 경로 선택.
  3. 적응형 팀 전환 전략.

실시 효과:

  • 던전 클리어 시간 70% 단축.
  • 자원 획득 효율 3배 향상.
  • 오류율 2% 미만.

사례 2: 지능형 자원 관리 시스템

기술적 과제: 광기 환체 타이밍 판단 및 자원 최적 분배.

해결책:

  1. 체력 회복 진행 상황 실시간 모니터링.
  2. 짠돌이 모드: 다음 체력 생성 시간이 5분 20초를 초과할 때만 전환.
  3. 다중 전략 전환: 0, 26, 26+52, 26+52+78 등 다양한 전환 방식 지원.

실시 효과:

  • 자원 낭비율 35%에서 5% 미만으로 감소.
  • 조작 시간 15분에서 3분으로 단축.
  • 체력 회복 상태를 자동 인식하여 자원 초과 방지.

사례 3: 다중 팀 로테이션 시스템

기술적 과제: 다양한 전투 시나리오에 맞는 다른 팀 구성 필요.

해결책:

  1. 최대 12개 전투 팀의 출전 순서 설정 지원.
  2. OCR 기반 팀 이름 인식.
  3. 지능형 팀 전환 로직.

기술 매개변수:

매개변수 설명
팀 인식 정확도 98% OCR 기반 인식 정확도
전환 응답 시간 <500ms 팀 전환 소요 시간
최대 팀 수 12 설정 가능한 팀 개수
시스템 지원 화상, 출혈, 진동 등 다양한 전투 메커니즘

고급 설정 및 성능 튜닝

설정 파일 심층 맞춤화

사용자는 설정 파일 수정을 통해 심층적인 맞춤화를 구현할 수 있습니다:

  1. 테마 팩 가중치 설정: theme_pack_priorities.yaml을 편집하여 우선순위 사용자 정의.
  2. 팀 전략 설정: app_settings.yaml에서 상점 전략 및 포기 메커니즘 설정.
  3. 성능 매개변수 조정: 인식 임계값 및 재시도 횟수 수정.

성능 최적화 권장 사항

최적화 항목 권장 설정 효과
게임 렌더링 배율 높음 인식 정확도 향상
게임 FPS 60 성능과 유동성 균형
후처리 효과 끄기 인터페이스 방해 감소
재질 품질 높음 UI 요소 선명도 보장

확장 개발 가이드

개발자는 다음 방법을 통해 시스템 기능을 확장할 수 있습니다:

  1. 새로운 작업 모듈 추가: task_executors/ 디렉토리에 새로운 작업 클래스 생성.
  2. 사용자 정의 인식 템플릿: resources/images/에 새로운 템플릿 이미지 추가.
  3. 새로운 OCR 엔진 통합: modules/text_recognition/ocr_engine.py에서 엔진 설정 수정.

기술 아키텍처의 장점 분석

비침습적 설계

본 시스템은 순수 이미지 인식 방식을 채택하여 게임 메모리나 파일을 수정하지 않으므로 사용 안전성을 보장합니다:

  • 화면 픽셀 분석 기반.
  • 사용자 입력 조작 시뮬레이션.
  • 게임 파일 수정 없음.

모듈식 확장성

시스템은 느슨하게 결합된 아키텍처를 채택하여 각 모듈이 독립적으로 개발 및 테스트될 수 있습니다:

  • 자동화 로직과 UI 인터페이스 분리.
  • 인식 엔진 플러그인 교체 가능.
  • 작업 시스템 핫 업데이트 지원.

크로스 플랫폼 호환성

현재 주로 Windows 플랫폼을 지원하지만, 아키텍처 설계는 크로스 플랫폼 요구 사항을 고려했습니다:

  • 입력 추상화 계층이 다양한 제어 방식 지원.
  • 이미지 처리는 표준 OpenCV 기반.
  • 설정 시스템은 플랫폼 독립적인 형식 사용.

안전 및 안정성 보장

오류 처리 메커니즘

시스템은 다단계 오류 처리를 구현합니다:

  1. 인식 실패 재시도: 최대 3회 재시도, 매회 인식 매개변수 조정.
  2. 상태 이상 복구: 비정상 상태 감지 시 자동으로 메인 메뉴로 복귀.
  3. 타임아웃 보호: 작업 타임아웃 시 자동 종료 및 로그 기록.

사용자 데이터 보안

  • 모든 설정은 로컬에 저장되며 클라우드에 업로드되지 않습니다.
  • 사용자 게임 데이터를 수집하지 않습니다.
  • 오픈 소스 코드는 감사 가능합니다.

향후 기술 개발 방향

머신러닝 강화

인식 정확도 향상을 위해 머신러닝 알고리즘 통합 계획:

  • 컨볼루션 신경망(CNN)을 이용한 이미지 분류.
  • 강화 학습을 통한 경로 계획 최적화.
  • 전이 학습을 통한 게임 업데이트 적응.

클라우드 설정 동기화

클라우드 기반 설정 관리 기능 개발:

  • 사용자 설정 클라우드 백업.
  • 테마 팩 가중치 커뮤니티 공유.
  • 인식 템플릿 자동 업데이트.

다중 게임 지원

다른 게임 자동화를 지원하도록 아키텍처 확장:

  • 범용 이미지 인식 프레임워크.
  • 설정 가능한 작업 시스템.
  • 플러그인 방식 인식 모듈.

태그: LimbusCompany GameAutomation ImageRecognition OCR OpenCV

7월 23일 08:05에 게시됨