[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
DTW란? Dynamic Time Warping하며 학습 + 내가 생각한 알고리즘
·
Project/DTW
우선 목표는 여러 영상에 대해 DTW를 수행하고 N개의 video, 각 video의 frame을 N(M)이라고 하였을 때,Mediapipe로 관절을 추출 ( N*N(M)*33개 ) --> 33개는 Mediapipe에서 한 frame당 사람을 33개의 관절 data로 추출이 data를 기반으로 dtw를 수행 --> 이는, 서로 다른 영상에 대해 비슷한 동작끼리 time sequence를 최대한 맞춘다는 의미여기서 그럼 문제는 무엇이 있는가 ?우선 dtw는 기본적인 algorithm에서 2개의 time  serise에 대해 수행을 하며, data 또한 1d, 1d에 대해  처리를 한다.이 말은 A=[1,2,3,4] B=[0,0,0,1,2,3,4]라는 data가 있을 경우 A의 0:3번 index B의 3:6..
using dynamic time warping in 3d data
·
Project/DTW
1. mediapipe를 통해 영상에서 data 추출 2. 추출된 관절 데이터를 관절사이의 vector로 변환후 각변환 3. 여러 영상에서 이를 반복하여 여러 영상에 대한 각변환 data 저장 4. 이를 dtw algorithm을 기반으로 차원을 추가하여 3d data에서도 적용가능하게 변형 5. output으로 path를 받고, path 기반으로 영상에서 비슷한 동작의 sequence(frame)를 재생 output : 서로 다른 타이밍에서 동작을 수행하였는데, 같은 동작의 타이밍을 잘 맞추고 있음.
여러 비디오를 dtw를 통해 타임시퀀스 맞추기
·
Project/DTW
우선 미디어파이프를 통해 여러 영상을 돌리면서 각 관절 데이터를 저장 저장은 x[video][frame][joint], y[video][frame][joint]의 형태로 저장했으며 x[1][30][2]는 두번째 영상의 31번째 프레임의 2번관절에 대한 x축 좌표가 저장되어있다. def angle_of_vectors(vec1,vec2): a,b,c,d=vec1[0],vec1[1],vec2[0],vec2[1] dotProduct = a*c + b*d modOfVector1 = math.sqrt( a*a + b*b)*math.sqrt(c*c + d*d) angle = dotProduct/modOfVector1 angleInDegree = math.degrees(math.acos(angle)) return an..
TDA Web Service summary
·
Project/TDA_Web_Service
기술개요 AI기반 실시간 자가 운동기능진단 소프트웨어 골프 스윙 퍼포먼스와 스킬 향상을 위한 기본 운동기능 AI 진단 및 트레이닝 총 5종류의 핵심 운동 기능에 대한 AI 진단 90-90 상체 검사, 발끝닿기 검사, 상체 회전 검사, 오버헤드 딥스쿼트, 한쪽다리 균형검사 기술의 경쟁력 -모션 트래킹 위주의 골프 스윙 모션분석 시스템과 차별화 -실제 스윙 스킬에 필요한 운동기능에 대한 AI 분석 및 진단 실행 -앱이 아닌 웹기반 어플리케이션 -별도의 앱을 설치해야하는 번거로움이 없음. -모바일앱은 PC에서 실행되지 않음. -어떠한 기기(스마트폰, 패드, PC 등)에서도 웹브라우저만 실행하여 접속 -시스템 사양에 상관없이 일관적인 성능보장 -클라이언트가 아닌 서버사이드에서 AI 분석이 실행 -다양한 OS 업..
Dynamic Time Warping(DTW) study
·
Project/DTW
[TDA Web Service using mediapipe]
·
Project/TDA_Web_Service
socketio를 사용하기 위해 web server를 nodejs express로 고치고, mediapipe를 수행하는 server를 따로 둘 예정이다. 추후에 mediapipe가 multi user(client)에 대해서도 모션인식을 처리해주기 위해 room을 나누었다. Contents Peerjs Peer js ( https://peerjs.com/ ) : WebRTC를 활용하여 쉽게 P2P data나 media stream connection하는 Library Support browser : Chrome, Safari, Firefox 1. peer-login : peer 생성시 호출되는 이벤트 2. 서버에서 peer-login 수신시 ‘peer-connected’ 소켓 이벤트를 broadcast한다..
황공진
'Project' 카테고리의 글 목록 (2 Page)