AI

CNN project

천천히, 한 걸음씩 2025. 1. 21. 22:57

프로젝트 개요: 과녁판 점수 예측 시스템

목표

본 프로젝트의 목표는 과녁판에 생긴 구멍을 탐지하고, 이를 기반으로 점수를 예측하는 시스템을 구축하는 것이다. 이를 위해 YOLO 모델과 OCR 기술을 활용하여 이미지를 분석하고, 점수를 자동으로 계산하는 시스템을 구현했다.

 

주요 작업

1. 데이터 수집

과녁판에 생긴 구멍 데이터를 다양한 각도에서 촬영하기 위해 IP Camera를 활용하였다. 이 데이터를 바탕으로, YOLO(Ultralytics) 모델을 통해 구멍을 탐지하고, 해당 데이터를 학습시켜 구멍 탐지 모델(model.pt)을 구축했다.

2. 데이터 전처리

  • 좌표 추출: YOLO BBox를 활용하여 과녁판의 최상단 및 최하단의 x, y 좌표를 계산하고 이를 기반으로 전체 좌표 체계를 설정했다.
  • OCR 기반 숫자 학습: 과녁판의 점수 영역에 있는 숫자를 OCR 모델로 학습한 뒤, 각 숫자의 위치 좌표를 YOLO 결과 파일(yolo.txt)로 저장했다.
  • 이미지 원근 변환: 점수 좌표 데이터를 활용하여 원근 변환(perspective transformation)을 적용하여, 이미지의 각도와 거리와 상관없이 평평한 상태로 이미지를 정규화했다.

3. 윤곽선 검출 및 영역 분할

OpenCV의 Contour Detection 기능을 사용하여 과녁판의 각 점수 영역을 검출했다. 이후, 윤곽선 최소값 설정과 노이즈 제거 과정을 통해 점수 영역을 명확히 분할했다.

4. 점수 계산

사전 학습한 구멍 탐지 모델을 기반으로 OpenCV의 PolygonTest를 이용해 각 구멍이 특정 점수 영역에 포함되는지 여부를 판단하고, 이를 통해 과녁판 점수를 자동으로 계산하는 프로그램을 Python으로 구현했다.

 

결과

해당 프로젝트를 통해 이미지 데이터의 정확한 좌표 계산, 원근 변환 기술, 객체 탐지 및 점수 예측 과정을 성공적으로 통합하여 실질적인 예측 시스템을 완성했다. 이를 통해, 실제 환경에서 활용 가능한 점수 예측 시스템을 구축했다.