시뮬레이션 플레이 영상(Steam 화면녹화 기준)을 기반으로
위치가 고정된 속력 UI(좌측 상단) 를 30fps 단위로 크롭해서
크롭한 이미지 속 속력, 7-segment 형태의 숫자를 인식하고
자동차의 속력과 통계 데이터를 .xlsx 파일로 저장하는 프로그램입니다.
For Mac : brew install ffmpeg
macOS 용 패키지 관리자 Homebrew 가 없다면?
- 터미널에서 다음의 명령어 실행 (Homebrew 설치)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"brew install ffmpeg으로ffmpeg설치ffmpeg를 입력했을 때 버전 등의 정보가 출력되면 설치 성공
For Windows : choco install ffmpeg
Windows 용 커맨드 라인 패키지 매니저 Chocolatey 가 없다면?
- 관리자 권한 으로 PowerShell 실행하기
- 다음의 명령어 실행하기
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))choco를 입력하여 버전이 나오면 설치 성공choco install ffmpeg으로ffmpeg설치
현재 프로젝트의 위치에서 다음의 명령어를 실행해요
Visual Studio Code 터미널 기능을 활용하면 편해요
For Mac
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
For Windows
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
source/[플레이어 이름]/[번호]/위치에 시뮬레이션 플레이 영상을 하나씩 추가해요
- 한 플레이어가 여러 번 주행했을 경우 다음 번호에 동영상을 추가해요
- 여러 플레이어를 추가할 수 있어요
- 프로젝트 최상단 디렉토리에서 다음의 명령어 중 하나를 실행해요 arguments
python run_all.py
python3 run_all.py- 기다려요. 완료 메시지가 뜰 때까지요!
5분 57초 영상 하나를 30fps 기준으로 완료하는데 3분 41초가 걸렸어요 (1만 장 이상의 이미지 처리 필요)
- 동영상의 좌측 상단 속력 UI 부분을 크롭해, 지정된 프레임 단위로 캡쳐해요 (기본
30fps) - 캡쳐한 이미지를
source/[플레이어 이름]/[번호]/[동영상 이름]/frames30_pts위치에 저장해요 frames30_pts폴더 속 이미지에서 7-segment 형태의 숫자를 추출해_cls_result.csv로 저장해요_cls_result.csv데이터를 바탕으로 통계를 계산해_speed_time.xlsx로 저장해요
오류 인식이 1건도 없는 완벽한 숫자 추출은 힘들어요
1초에 30 프레임 단위로 빠르게 영상을 캡쳐해
속력이 바뀌는 순간 캡쳐되는 경우가 있어요
_cls_result.csv내 오류 값을 수정 후 저장해요- 1번에 해당하는
_speed_time.xlsx이 존재한다면, 삭제해요 -x옵션을 추가해 정상적으로 완료된 단계를 스킵하고,_speed_time.xlsx를 다시 생성해요
python run_all.py -x
python3 run_all.py -x 초당 캡쳐하는 프레임 수를 줄이면 정확도를 올릴 수 있어요
-f 옵션을 추가해 변경할 수 있어요
python run_all.py -f 20
python3 run_all.py -f 20run_all.py 실행 시 다음과 같은 오류가 발생했나요?
error:'utf-8' codec can't decode byte 0xbf in position 57604: invalid start byte한글을 읽을 수 없대요!
_cls_result.csv 를 엑셀로 열어 직접 수정했나요?
사진과 같이, 숫자가 날짜 포맷으로 자동 저장된 셀이 있나요?
한글이 있으면 안되는 셀에 한글이 있진 않나요?
날짜 포맷 자동 저장을 막아야 해요
두 가지 중 한 가지 방법을 선택해 적용해요
- 입력할 셀(들)을 선택한 후 홈 탭에서 표시형식을
일반에서텍스트로 변경 _cls_result.csv를 메모장으로 열어 수정 후 저장
run_all.py로 _speed_time.xlsx 를 생성한 후에...
- 프로젝트 최상단 디렉토리에서 다음의 명령어 중 하나를 실행해요
python total_statistics.py
python3 total_statistics.pytotal_speed_statistics.xlsx파일이 생성되었어요






