문제

저의 목표는 태양 지점에 장착 된 가속도계에서 간단한 제스처를 인식하는 것입니다. 제스처는 장치를 회전 시키거나 장치를 여러 다른 동작으로 이동하는 것만 큼 간단 할 수 있습니다. 이 장치는 현재 가속도계 만 가지고 있지만 더 쉽게/더 정확한 경우 자이로 스코프를 추가하는 것을 고려하고 있습니다.

이 작업을 수행하는 방법에 대한 권장 사항이 있습니까? Java에서 사용 가능한 라이브러리가 있습니까? 샘플 프로젝트를 추천합니다. 체크 아웃 하시겠습니까? 당신이 추천하는 서류?

Sun Spot은 시스템의 빠른 프로토 타입을 만드는 데 도움이되는 Java 플랫폼입니다. Java를 사용하여 프로그래밍되며 명령을 컴퓨터에 연결된베이스 스테이션으로 다시 전달할 수 있습니다. 하드웨어가 어떻게 작동하는지 설명 해야하는 경우 더 많은 의견을 남겨주세요.

도움이 되었습니까?

해결책

가속도계는 중력으로 인해 일정한 가속도를 등록 할 것입니다. 그리고 장치가 사용자가 + 소음에 겪는 가속도.

가능한 한 많은 관련이없는 소음을 제거하려면 샘플을 낮은 통과 필터링해야합니다. 최악의 노이즈는 일반적으로 가능한 인간에 의한 가속도보다 높은 빈도입니다.

장치가 사용자에 의해 가속되지 않을 때 유일한 힘은 중력 때문이므로 태도를 추론합니다 우주에서. 또한, 총 가속이 1G와 크게 변하면 사용자가 장치를 가속화하기 때문입니다. 마지막으로 알려진 중력 추정치를 빼면 사용자가 장치를 얼마나 가속화하는지에 따라 대략적으로 추정 할 수 있으며, 데이터를 얻으므로 알려진 제스처 목록과 일치 할 수 있습니다.

단일 3 축 가속도계를 사용하면 현재 피치와 롤을 감지하고 장치의 가속도를 직선으로 감지 할 수 있습니다. 가속도를 뺀 중력을 통합하면 현재 속도의 추정치가 있지만 추정치는 소음으로 인해 현실에서 빠르게 표류됩니다. 장치가 가속되지 않는 지점을 제공하고 추정치를 재설정하고 중력 방향을 안정적으로 추정 할 수 있도록 UI를 통해 사용자의 행동을 가정하고 UI를 통해 안내해야합니다. 위치를 찾기 위해 다시 통합하는 것은 유용한 시간 동안 사용 가능한 결과를 전혀 제공하지 않을 것입니다.

어느 정도 떨어진 3 축 가속도계 또는 1 개 및 일부 자이로가있는 경우 장치의 회전 (가속 벡터를 비교하거나 이랑에서 직접 비교하여)을 감지 할 수도 있습니다. 몇 초에 걸쳐 각 운동량을 통합하면 통합을 시작할 때와 비교하여 현재 YAW를 추정 할 수 있지만, 다시 진실하게 표류됩니다.

다른 팁

OP가 요청한 바와 같이 아무도 기존 라이브러리를 언급 한 것 같지 않기 때문에 다음과 같습니다.

http://www.wiigee.org/

Wiimote와 함께 사용하기위한 것입니다. Wiigee 가속도계 판독 값을 기반으로 한 패턴 매칭을위한 오픈 소스 Java 기반 구현입니다. 이를 사용하여 달성합니다 숨겨진 마르코프 모델[1].

그것은 회사 인 Thorn Technologies에 의해 큰 영향을 미쳤으며 여기에서 그들의 경험을 언급 한 것 같습니다. http://www.thorntech.com/2013/07/mobile-device-3d-accelerometer 기반 gesture-recognition/

또는 고려할 수 있습니다 FASTDTW (https://code.google.com/p/fastdtw/). 일반보다 정확하지 않습니다 DTW2], 그러나 계산적으로 저렴한 비용도 내장 시스템이나 모바일 장치와 관련하여 큰 문제입니다.

[1] https://en.wikipedia.org/wiki/hidden_markov_model
[2] https://en.wikipedia.org/wiki/dynamic_time_warping

편집 : OP는 자신의 프로젝트를 완료했다고 언급했으며, 분야에서 90% 정확도와 수석 이하의 컴퓨팅 시간을 사용하여 변형을 사용하여 언급했습니다. $ 1 인식 자. 그는 또한 회전이 그의 프로젝트에서 기준이 아니라고 언급했다.

아직 언급되지 않은 것은 실제 제스처 인식입니다. 이것은 어려운 부분입니다. 데이터를 정리 한 후에 (저 패스 필터링, 정규화 등) 대부분의 작업이 여전히 남아 있습니다.

숨겨진 Markov 모델을 살펴보십시오. 이것은 가장 인기있는 접근법 인 것처럼 보이지만 그것들을 사용하는 것은 사소한 일이 아닙니다. 일반적으로 전처리 단계가 있습니다. 먼저 stft를 수행하고 결과 벡터를 사전으로 클러스터링 한 다음 HMM으로 공급합니다. Java Lib의 Google 코드에서 Jahmm을 살펴보십시오.

중력 및 회전에 대한 기준선을 재설정 해야하는 Moonshadow의 요점에 추가 ...

장치가 안정적인 휴식의 순간을 가질 것으로 예상되지 않는 한 (그 일에 작용하는 유일한 힘이 중력 인 경우) 측정 기준선을 재설정하기 위해 시스템은 결국 Vertigo와 동등한 것을 개발할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top