티스토리 뷰

 

 

대항해시대3 라는 1997년에 출시된 게임을 대상으로 AI모델을 만들어 보는 과정을 기록 해보겠습니다.

 

게임에서 이동을 하면 아래 빨간줄 친 위도 경도가 바뀌는데요 이것을 인식 해서 자동으로 이동하도록 하는 기능을 구현 해볼 것입니다.

 

 

먼저 이미지에서 위도 경도를 인식하는 모델을 만들려고 합니다.

 

목표

이 게임에서 자동플레이에 꼭 필요한 것은 위도 경도를 보고 배나 말을 이동 시키는 것 입니다. 이동은 마우스 또는 키보드로 8개 방향 중 하나를 정해주면 알아서 이동 합니다.

 

학습 시키기

이 부분을 학습 시켜야 하는데요 학습시켜서 뭘 만들거냐면 위도가 북위인지 남위인지, 경도가 서경인지 동경인지 각각 값이 얼마인지를 인식하는 모델을 만들 것입니다.

 

이미지에서 문자와 숫자를 인식 해주는 모델을 써서 1초에 한번씩 게임화면을 찍어서 만든 스샷을 라벨링 한 후에 학습을 시키면 될 것 같다는 생각이 들었습니다.

 

AI 플랜

위 내용을 입력하니 AI가 플랜을 짜줍니다.

기존 OCR 모델로 자동 라벨링 → TorchSharp CNN 학습


  전체 파이프라인

  [1단계] 데이터 수집
    - 항해 중 1초마다 상단바 좌표 영역만 크롭하여 저장

  [2단계] 자동 라벨링 (기존 OCR 모델 활용)
    - Windows.Media.Ocr (한국어 지원, 별도 설치 불필요)
      또는
    - Tesseract.NET (NuGet: Tesseract)
    → 크롭 이미지에서 "북위 38 서경 10" 텍스트 추출
    → CSV로 저장: image_path, lat_dir(N/S), lat_val, lon_dir(E/W), lon_val

  [3단계] TorchSharp CNN 모델 학습
    - 입력: 크롭된 좌표 영역 이미지 (약 150x20 픽셀)
    - 출력: [lat_dir(2), lat_val(91), lon_dir(2), lon_val(181)]
    - 분류 문제로 풀기 (방향 2클래스 + 숫자 0~90/0~180 클래스)

  [4단계] 추론
    - AutoPlayService에서 TorchSharp 모델 로드 → 실시간 좌표 인식

 

 

 

ROI(Region of Interest 관심 영역)

북위 또는 남위를 기준으로 좌표를 찾아서 인식을 하기 위해서는 저 글자가 화면상에 어디에 위치 하는지를 먼저 찾아야 합니다.

 

 

상단바 이미지 수집

 

 

 

라벨링

ai가 추천 해준 대로 윈도 ocr로 했습니다.

 

 

 

학습

위에서 수집하고 라벨링 한 데이터로 학습 시켰습니다.

 

 

결과

결과가 너무 안좋아서 모델 안쓰고 라벨링 할때 썼던 OCR로 했습니다. 인식이 잘 되고 있습니다.

 

 

다음으로는 자동으로 방향을 정하는 모델을 만들어 봐야겠네요.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함