석사 학위 논문 리뷰
·
Project/golf_AI_Serivce
석사 학위 논문: 골프 스윙에서의 모션기반 정밀한 시퀀스 감지에 관한 연구 : A study on Motion-based Precise Seqeunce Detection in Golf SwingGolf Sequence란?왜 Sequence 감지가 중요한가1. 기존의 분석 방식은 영상을 직접 frame 마다 넘겨가며 sequence를 감지하고 분석-> 이는 번거로움 동반, 분석자가 바뀜에 따라 frame단위로 다른 자세를 Seqeunce라고 감지 가능성-> 번거로움 해결 및 시쿤스의 객관성 확보2. 분석을 왜하는가? -> 골프를 잘하기 위해 -> 잘하는 것은 무엇인가? -> 내가 원하는 곳으로 공의 방향과 거리를 안정적으로 보내는 것. -> 이것은 일관된 스윙을 유지하는 것이 중요-> 시퀀스 감지를 통해 ..
[golf_AI_Service] library 정리
·
Project/golf_AI_Serivce
log 출력, 관리 관련 함수def printf(text: str) -> None: """ 문자열을 강조된 형식으로 출력. Args: text (str): 출력할 메시지. Returns: None """def error_print(text: str) -> dict[str, Union[int, bool, str]]: """ 오류 메시지를 강조된 형식으로 출력, 이를 JSON 형식의 딕셔너리로 반환. Args: text (str): 오류 메시지. Returns: dict[str, Union[int, bool, str]]: 오류 메시지가 포함된 JSON 형식의 딕셔너리. """type convert 관련 함..
[golf_AI_Service] 1차 마무리 성능 평가
·
Project/golf_AI_Serivce
1차 마무리 파일 구조는 다음과 같습니다. accuracy/*은 성능테스트 관련 데이터 및 코드이며,config/*는 github에 올리지 못하는 중요정보 (s3 private key 등등), request_test/*는 locust를 활용한 다중동시접속 request test, routers/*는 각각 하나의 router들로써 api, routers/utils.py는 모든 router들에서 공통으로 사용하는 라이브러리 목록,test_js/*는 js와 python mediapipe lib 성능비교실험 환경OS : WindowsCPU : i7-8750H @ 2.20GHz (12 CPUs)GPU : NVIDIA GeForce GTX 1060RAM : 16GB1차. mediapipe model complexi..
[golf_AI_Service] 1차 마무리
·
Project/golf_AI_Serivce
지금껏 준비한 것으로 1차 마무리가 되었고 수정하고 싶은 부분들이 있어, 한 번 정리 후 2차 수정을 하고 있습니다. 기본적으로 1. 골프영상을 web에 user가 upload한다면 2. 이는 nest.js쪽 backend단으로 가게 되고, 3. 이를 다시 backend단에서 flask 분석 server의 해당 api로 전송하게 됩니다. 1. web에서 user_videoname.mp4를 업로드하면 2. s3에 우리가 지정한 bucketname/username/videoname.mp4로 영상을 1차적으로 저장합니다. 즉, username이라는 폴더로 각각의 user를 구분, 관리합니다. 3. 이는 backend로 영상이 저장된 url을 전송하게 되고 backend에서 분석 api server로 url을 ..
[golf_AI_Service] 기능
·
Project/golf_AI_Serivce
1. 관절 추출 mediapipe pose landmark model을 이용하여 사람의 33개 관절 point 중 원하는 16개의 관절 데이터를 사용 2. 좌/우타 판별 엉덩이와 손의 x좌표를 기준으로 좌타와 우타를 판별 좌타일 경우 이미지를 flip하여 사용하고 마지막에 x좌표를 다시 1-x로 json에 저장하여 우타기준으로 설계한 기능들을 모두 동일하게 수행하며 json에는 좌타 원본 영상기준으로 데이터가 저장됨 3. 척추각 추출 골프에서 척추각을 spine angle이라고 부르며 중요한 요소이다. 따라서 16개의 관절데이터중 어깨 12-11번 관절과 엉덩이 23-24번 관절을 통해 척추를 추정하여 x축과의 각도를 구함 arctan을 통해 각도를 구한다. tan( θ) = y'/x', arctan(t..
[golf_AI_Service][lambda] 조금 더 자세한 내용
·
Project/golf_AI_Serivce
현재 lambda에 올리기전, python flask를 통해 lambda와 같은 환경을 만들어서 test중. router는 1. metaData 2. compareRouter로 구성됨 (이전과 router에서 수행하는 일이 조금 변경됨) API 로는 1. metaData input : { url : string } output : lambda는 dropbox API를 통해 dropbox와 연결되어있고, dropbox는 하나의 영상을 저장해놓는 데이터베이스 역할을 한다. API Server(nest.js)에서 input으로 dropbox video url or path를 받아와서, 라우터의 역할을 모두 수행했다면, https status 200과 함께 그 영상에대한 info, mediapipe결과, 나의 ..
[golf_AI_Service][lambda] 전체적인 흐름
·
Project/golf_AI_Serivce
현재 router는 2개로 구성되어있고, post형식으로 data를 취한다. 첫 라우터의 경우 video url을 post로 가져와서 mediapipe를 수행 후 결과 data를 기반으로 smoothing으로 outlier를 잡고, 골프 7step을 검출한다. (어드레스, 테이크어웨이, 하프, 탑, 임팩트, 팔로우스루, 피니쉬) 검출 후 각 구간 별로 스무딩을 다시 수행하고 json을 return한다. 이는 api server에서 return json을 db로 저장한다. 두 번째 라우터의 경우, json data를 두 개 받아온다. 나의 영상과 프로 영상에 대해 비교를 하고 싶다면 각 각 해당하는 json data가 될 것이다. 데이터를 비교하고 각 step별로 무엇이 다른지 등등을 수행하고, 나와 프로..
[golf_AI_Service] Architecture, FlowChart
·
Project/golf_AI_Serivce
스크린 골프장에서 유저가 골프를 치면 그 영상을 기반으로 골프자세를 바로잡아주는, (어느 step이 잘못됐는지 등등) service를 만드려고한다. db로는 postgreSQL api server로는 nest.js 분석 및 mediapipe로는 lambda front쪽 web view는 react.js를 사용하고있다. 타석기준 flowchart 강사기준 flowchart 강사기준 flowchart2 ERD
황공진
'Project/golf_AI_Serivce' 카테고리의 글 목록