2012-07-20 5 views
10

저는 현재 컴퓨터 비전 과정에 있으며 최종 프로젝트를 위해 Kinect와 상호 작용하는 작은 게임을 만들 계획입니다.Java를 사용하여 Kinect에 액세스하려면 어떻게해야합니까?

이제 게임을 만들지 않으므로 Java로 게임을 만들고 싶습니다. 언어에 매우 만족합니다. 하지만 Depth 데이터에 접근하는 방법을 찾지 못했습니다 (단지 Java 데이터 구조로 압축해야 함) 및 RGB 데이터 (동일한 아이디어)를 찾을 수 없습니다.

지금 당장은 Kinect와 '대화하는'방법이 있습니다. 나는 this 자습서를 따라 갔고 터미널에 glview 명령을 사용하여 kinect를 감지 할 수 있습니다.

나는 Kinect를 사용할 수 있도록 자바 라이브러리로 약속 한 것을 가지고 있지만 자바를 사용하여 '빌드'된 자체 언어를 사용하므로 실제로 Java가 아니므로 모든 것을 사용할 수 없다는 것을 의미합니다 GUI 및 일반적인 Java 기능.

내가 원하는 것은 어쨌든을 자바 프로그램의 최상위에서 호출하여 getDepth() 또는 getRGB()와 같은 가장 기본적인 Kinect 기능을 사용하고 Java의 다른 모든 작업을 수행 할 수있게합니다.

내가 할 수있는 방법을 아는 사람이 있습니까? (내가 MAC OSX Lion을 실행 중입니다.)

+0

Java를 사용하여 인터페이스하는 것과 비슷합니까? –

+0

OpenKinect가 있다면, [JavaCVpro] (http://www.mon-club-elec.fr/pmwiki_reference_lib_javacvPro/pmwiki.php)가 작동해야합니다 ... –

답변

7

당신은 내가 사용할 수있는 래퍼 중 하나를 사용하는 것이 좋습니다 가공 사용하는 경우 :

모두를 잘 문서화되어 있으며 많은 도움이되는 예제가 포함되어 있습니다.

simpleOpenNI sample

+0

글쎄, 그게 문제 야, 내가 처리하지만 자바의 이상한 형태 야, 자바 언어의 전체 스펙트럼을 이상하게 다른 구문/단축키에 사용할 수 있는지 여부를 알 수 있니? – Alex

+0

나는이 라이브러리를 Processing IDE와 eclipse에서 osx 10.6에서도 사용했다. 당신의 설정은 무엇입니까? Java에서 자체 처리 기능을 사용하거나 Java 프로젝트의 라이브러리로 사용하는 것이 좋을 것입니다. eclipse의 경우 [Proclipsing] (http://code.google.com/p/proclipsing)을 보거나 자바 프로젝트를 만들고 '수동으로'처리하려는 경우 Processing의 core.jar를 사용하면됩니다. –

+0

난 그냥 간단한 텍스트 편집기와 명령 줄을 사용하여 프로그래밍하고 싶습니다. openkinect (libfreenect) java wrapper를 활용하는 방법을 발견했습니다. 근본적으로 그들의 항아리 중의 2 개를 포함하여 어떻게 든 컴파일하는 것으로 이루어져 있었다. <- 당신이 볼 수 있듯이, 나는 이러한 프로그래밍 개념의 대부분을 상당히 새로 익혔습니다. 제가 방금 기술 한 것과 비슷한 방식으로 말했던 것처럼 Processing의 'core.jar'에 어떻게 든 접근 할 수 있습니까? 내 자바 프로그램에서 그들의 방법 중 몇 가지? 그렇다면 나를 도우려고 어떻게 할 수 있겠습니까? 지금까지 도움을 주셔서 감사합니다! – Alex

1

몇 가지 아이디어를 제공 하겠지만, 나는 Kinect로 시도하지 않았습니다.
질문은 "Java를 통해 일부 하드웨어에 액세스하는 방법"의 질문에 따라 분류 할 수 있습니다. 자습서에서는 Kinect에 액세스하기위한 라이브러리를 제공하고 파이썬 용 래퍼도 제공합니다.
파이썬 코드가 어떻게 래퍼를 구현하는지보고, JNI/JNA를 사용하여 래퍼를 직접 만들 수 있습니다.
또한 @npinti가 올린 또 다른 대답으로 여기에 언급 된 JNect 프로젝트를 살펴 보았습니다.
이클립스 플러그인에는 그 부분이 두 개 있습니다. 즉,
은 JNI 코드이고, 리니어 SDK 코드를 래핑하고, Ecipse RCP 코드는 이클립스 플러그인 자체입니다.
이클립스 RCP 부분을 무시하고 자신의 JNI wrapper를 개발하는 데 필요한 참고 자료로 JNI 구현에 집중할 것을 권장합니다.
Windows 기반 구현 (예 : Kinect SDK가 Windows에서 작동하며 Mac에서 코드를 실행해야하는 경우) - 코드 + 일부 JNI 자습서 + Python 래퍼를 읽으면 제공 한 링크는 제공 한 링크에 제공된 라이브러리에 JNI 랩퍼를 작성하는 f}을 이해합니다.
또한 하드웨어와 통신하는 방법으로을 사용하고 JNI를 사용하지 않는 것이 좋습니다.
마지막 옵션은 Java Script Engine을 사용하고 Java VOD에서 Python 코드 (Python 래퍼)를 호출하는 것입니다. 얼마나 도움이되는지 확신 할 수는 없지만 한 번만 제공 할 수는 있습니다.

+0

불행히도 전체 Windows 7 Only * deal을 놓친 것처럼 보입니다. ...이 문제를 해결하기 위해 OP는 Windows 기반 가상 컴퓨터 사용을 고려할 수 있습니다. – npinti

2

나는 정확히 같은 문제가 있었다. 저는 Computer Vision 연구를 위해 Java에서 Kinect를 사용하고 싶었고 당신과 같은 Mac OSX Lion을 가지고있었습니다. 내가 찾은 솔루션은 Mac에서 (VMWare 또는 Parallels 또는 Microsoft HyperV를 사용하여) Mac에서 Windows 7의 가상 복사본을 실행 한 다음 Java 기본 인터페이스 (JNI)를 사용하여 Kinect SDK에 대한 Java 바인딩 인 open source J4K Java for Kinect library을 사용하는 것입니다. 물론 Windows를 실행하는 컴퓨터에서이 오픈 소스 라이브러리를 직접 사용할 수도 있습니다.

Kinect 용 J4K Java 라이브러리에는 10 줄의 Java 코드로 kinect 기반 응용 프로그램을 작성하는 방법에 대한 자습서도 있습니다.

Kinect에서 깊이, 비디오 및 스켈레톤 데이터를 읽고 Java 클래스에서 사용하는 방법을 보여주는 몇 가지 소스 코드 예제가 있습니다. 여러 Kinect, 애니메이션 아바타 및 기타 예제를 사용할 수도 있습니다. 소스 코드 예제에 대한 링크는 here입니다.

당신처럼 컴퓨터 비전의 응용 프로그램에 유용 오픈 소스 넥트 뷰어의 스크린 샷은 다음과 같습니다 : enter image description here

는이 정보가 도움이되기를 바랍니다.

+0

이미지 처리가 느려지지 않습니까? 가상 머신을 통해 들어오는 데이터를 지연 시키면 성능이 저하 될 것이라고 생각합니다. – jorrebor

+0

Java 7에서 Intel i5와 함께 J4K 라이브러리를 사용했으며 매우 집중적 인 이미지 처리가 실시간으로 이루어졌습니다 (30fps). @ jorrebor 당신은 실제 예제 [Demo1] (https : // www.youtube.com/watch?v=DMRlhWSZSe8), [Demo2] (https://www.youtube.com/watch?v=RSLd-lSk9ts) 및 [Demo3] (https://www.youtube.com/watch ? v = zBSiOIiPI). –

관련 문제