Samsung Tizen Application 부문 Smartphone Remote Controller Using only Gestures
Contents Project Concept Training Real-time Gesture 검출 Remote Application Control Project UI 구성 Main UI SAP Connect & Disconnect Training Page Control Page Project 개발배경및목적 Project Map 새로운 UX & VR 기기에응용 상용화가능성 System Architecture Algorithm Algorithm Test Result Github Page
Project Concept
Project Concept 1. Training : Gesture 에의해수집된가속센서데이터를가공하여 File Out & Storage 에저장 동일한동작을동일한 Duration 동안반복수행하여가속센서데이터수집 Data 가공 Array 형태로 Storage 에저장
Project Concept 2. Real-time Gesture Recognition & Remote Application Control 실시간으로 사용자의 Gesture를 인식 하여 Mobile로 제어 메시지 전송 Message GLtron 원격 게임 컨트롤 Open Source Game 제10회 공개SW 개발자 대회
Project 개발배경및목적
Project Map Project 개발 배경 및 목적 IoT & Device 간의 연결 Pattern Recognition Smartphone 연동 Accelerometer Wearable Touch Interface (Head Mount Display) Device 시장 확대 Smart Watch Application 새로운 사용자 경험(UX) HMD Distance Gesture Controller Remote Game Control VR (Virtual Reality) 응용 현재 상용화된 App 없음 초기 시장 환경 조성 AMD VR Council Conference 제10회 공개SW 개발자 대회
새로운 UX & VR 기기에 응용 Project 개발 배경 및 목적 Gesture를 사용한 새로운 User Experience VR(Virtual Reality) Application Treasure Hunt VR : Touch Interface Google이 공개한 Open Source VR Application Gyro 센서를 활용하여 사용자의 시선 방 향을 예측하고 Application 내 물체의 방 향과 일치 할 경우, 물체 색상 변경 Gear의 Gesture 인식과 연동하여 사용 사용자가 실제 동작을 통해 VR App을 Control 하는 새로운 사용자 경험 창출 가 능 Gesture Interface VR에 등장에 따른 새로운 방식의 Interface 필요성 증가 제10회 공개SW 개발자 대회 Head Mounted Display (ex. Gear VR) 실제 Graphic이 적용된 Treasure Hunt Game
상용화가능성 Project 개발배경및목적 Tizen Store 등에공개된유사 App 없음 Gesture Controller 사용방법예시 Install Gesture Controller on a Tizen wearable device Install a Android App that will communicate with Gesture Controller Select an App that User wants to connect Training the Gestures Start Real time Gesture Recognition & Control No result found on the Tizen app store for gesture controller! 연동가능한다양한 Application 개발필요!
System Architecture Android Tizen Provider Service (SAP) onreceive() onserviceconnectionresponse() Message Main UI connect() fetch(any) disconnect() onerror(any) onreceive(any, any) onsuccess(any) Sensor Data Training training(any, any) Equation Control predict(any) Sensor Data GLTronGame Data Modification Data Split inputdirection computedft(any) datasplit(any) Players datamodi(any) TimeCurrent doturn() tizen.time tizen.preference getcorrelation(object) getenergy(any, any) getentropy(any, any) getmean(any) getstd(any) sumofabs(any) sumofsquares(any) File I/O filein(any) fileinit() fileintrained() fileout(any, any, any) fileouttrained(any, any, any)
Project UI 구성
Main UI 구성 SAP 통신을 위해 Mobile Device와 연결 실제 UI Gesture를 Training 하기 위한 Page로 이동 사용자의 Gesture를 실시간으로 인식하기 위 한 Page로 이동 Main Page List 제10회 공개SW 개발자 대회 SAP 통신을 위한 Mobile Device와의 연결을 해제
SAP Connect / Disconnect SAP (Samsung Accessory Protocol) : Bluetooth로 연결된 Smartphone과 Gear S2 두 Device 간에 통신을 위한 Protocol Touch Connect Button Connection Established 제10회 공개SW 개발자 대회 Show Connection Establish Message Touch Disconnect Button Show Connection Close Message Close Connection
Training 사용자가 설정한 Label과 Duration으로 Gesture의 가속도 센서 값을 검출하여 Array 형태로 저장 Training을 하게 되면 축적된 Sample들의 Array 값을 사용해 판별식을 생성 Set up Options 1. Label of Gesture 2. Duration of Gesture 제10회 공개SW 개발자 대회 Touch Start Button Touch Train Button Show Training Completion Message & Save an Array of Data to the file system
Control (Real-time Gesture Recognition) Start를 누르게 되면, 50ms의 interval로 기기의 가속도 센서 값을 Array 형태로 가공하여, 판별식을 사용해 Gesture 일치 여부를 판단하게 됨 Set up an Option Duration of Gesture 제10회 공개SW 개발자 대회 Touch Start Button Make Gesture Show Gesture Recognized Message & Send control message to Remote Mobile phone
Algorithm Gesture Recognition 에적용된원리
Algorithm Gesture Recognition 에적용된원리 Sensing Interval 50ms, 1초에약 20개의표본추출 약 2초동안행해진 Gesture의가속도 Data를 Array 형태로저장 각 Axis 별로 40개의 Sample Data 추출 3개의 Axis * 40개의가속도 Data = Array 당 120개의값 X 축에서특정동작의 시간에따른가속도 값 Samples Accelerometer : A device that measures acceleration excluding gravity effect
Algorithm Gesture Recognition 에적용된원리 Raw Data Matching Extracting Features Min-Max Values Avg + Sigma Features Frequency Domain Mean Energy Entropy The DC component of the frequency domain ov er the frame The sum of all the squared DFT component ma gnitudes except the DC component of the sign al The normalized information entropy of the DFT component magnitudes, where the DC compon ent is also excluded 모든 Data 를포함하기 평균값과비교하기 Time Domain Std The amplitude variability of a gesture The strength of a linear relationship between th Correlation e two axis 다양한동작에대한 Immunity 가거의없음 정확도매우낮음 Training 반복횟수에따라정확도가증가하지않음 동작시행에따른 Variation 이크기때문에정확도떨어짐 Sigma 값을키울경우 0 근처에데이터를포함하기때문에정지동작에서 Noise Immunity 떨어 단순한 Raw Data 의비교대신가속도 Data 가가지고있는 Time Domain 과 Frequency Domain 에서의특징을비교 Frequency Domain 에서의비교를위해가속도 Data 에 Discrete Fourier Transform (DFT) 을적용 전체 Data 의특징은시간길이에따라 Variability 가증가하므로짧은구간으로나눠특징을추출
Algorithm Gesture Recognition 에적용된원리 Framing Extracting Features 예시 ) Feature 2, X axis 가속센서 Wave 의 Frame 별 Energy Gesture Recognition with a 3-D Accelerometer, Jiahui Wu et tal, Zhejiang University, Hangzhou 하나의 Frame 은 2 개의 Segment 로구성 이웃하는 2 개의 Frame 은하나의 Segment 를공유 즉 Frame1 = Seg1 + Seg2, Frame2 = Seg2 + Seg3 # of Frames = 4 Frame 별 Feature 추출 Gesture 1 Frame 1 Frame 2 Frame 3 Frame 4 Feature 2-8.17-1.79-2.77-5.12 Gesture 2 Frame 1 Frame 2 Frame 3 Frame 4 Feature 2 4.27 4.59-12.59 0.69 각 Frame 의값 = 4 차원공간의각 Axis 의값 Training Sample 들이갖는각 Feature 의값은공간에위치한점으로표현할수있음 유사한 Gesture 는 Sample 의점들이유사한분포를보일것이라는것을알수있음 각점들의분포한거리를이용하여가상의공간을만들수있음 X Y Z K 새로입력된가속센서데이터의 Feature 값이공간안에위치하는지판별 * 실제값은소수점둘째자리까지만표현 (X Dx) 2 + (Y - Dy) 2 + (Z - Dz) 2 + (K Dk) 2 < R
Algorithm Gesture Recognition 에적용된원리 Frequency Domain Time Domain Mean Energy Entropy Std Correlation 5 Features x 3 Axis (x, y, z) = 15 Characteristics of a Gesture In Real time.. Calculate below equation for every 15 characteristics (X Dx) 2 + (Y - Dy) 2 + (Z - Dz) 2 + (K Dk) 2 < R If the result is true, it gets a Score And If the total score you get is higher than a certain number, it is recognized as a trained gesture Score++ D is a center point of the figure (Average of all points) R is a radius of the figure (twice the Avg dist of all points from D)
Test Result Gesture Recognition 에적용된원리 True Sample 과 False Sample 차이불명확 Low Noise Immunity 공간의반지름에곱해지는 Weight 공간의형태 Training Samples Test Samples(Gesture) Test Samples(Noise) Circle 형태의공간을판별식으로사용 공간반경에 1.2 의 Weight 값을줌 ( 새로들어오는 Data 에 Margin) True Sample 과 False Sample 차이명확 High Noise Immunity Score 가 8 이상인값에대해검출을했을때 75% 의검출성공및 Noise 에대해 100% Immunity 보임 Weight 값을 2 까지증가시킬경우대부분의경우에서 15 의 Score 를보임 (Noise Immunity 는저하 )
Github Page Current Github Open Source Libraries Tizen, Android 기기에서실행할수있는 Project Code Project Code 내영문주석을통한설명 주요함수및기능에대한 README.md Text 설명 Project 실행을위한동영상설명 Future improvement as an Open Source Program Algorithm 개선을통한 Noise Immunity 향상 다양한 User independent Gesture Library 확보 Short-Term Gesture에대한정확성높이기 VR Application Control Example 개발