2012-05-26 3 views
2

OSX 플랫폼의 Python API를 통해 궁극적으로 kinect에서 골격 정보를 얻기 위해 적절한 (또는 적어도 간단한 스택)을 연구 중입니다. 내가 찾는 정보의 대부분은 꽤 퍼져 나갔다.OSX에서 PyOpenNI 빌드

windows 기반 스택은 kinect SDK 위에 Microsoft 자체의 pykinect가 될 것입니다. OSX 환경에서 잘 작동하는지 파악할 수 없습니다.

  • libfreenect는 낮은 수준의 드라이버에 대한 명백한 소스입니다 (이 부분은 잘 작동하고)
  • OpenNI가 프레임 워크 + NITE 미들웨어를 제공합니다 : 여기

    은 지금까지 집계 한 정보입니다 인정을 제공하십시오. (파이썬이 아님)
  • PyOpenNI - OpenNI 용 파이썬 바인딩 (skeleton 및 기타 고급 기능 지원).

나는 이것이 지금까지 추천 된 스택이라고 결론을 내렸다. 내가 얻고 자하는 것은 윈도우 SDK 파이썬 래퍼가 여러분에게 제공하는 간단한 뼈대 데이터와 비슷합니다. 궁극적으로 저는 이것을 PyQt 기반 앱에서 디스플레이를 그리기 위해 사용하고 Maya로 데이터를 적용 할 것입니다.

지금까지

PyOpenNI에 대한 문제를 빌드 ...

내 질문은 두 부분이며, 가장 적절한 있다면 내가 어느 방향으로 답변을 받아 들일 것이다, 나는 수 없었습니다 OSX Snow Leopard (10.6.8) 또는 Lion (10.7.4)에서 PyOpenNI를 성공적으로 빌드하십시오. 두 시스템 모두 xcode를 업데이트했습니다. 나는 소스 파일이 python2.7을 기대하기 위해 하드 코딩되어 있다는 것을 알아 냈다. 그래서 나는 스노우 레오파드에서 설치되어 있고 기본 버전 (또한 virtualenv 시도)을 설치해야했다.

스노우 레오파드에서 저는 cmake 프로세스가 파이썬을위한 다른 libs, 헤더, bin을 찾았습니다. 궁극적으로 make는 '불일치 통역사'로 추락 한 .so를 생성했습니다.

라이온의 경우 불일치 통역사 충돌이 발생했습니다.

ImportError: dlopen(./openni.so, 2): Symbol not found: _environ 
    Referenced from: /usr/local/lib/libpython2.7.dylib 
    Expected in: dynamic lookup 

내가 올바른 python2에서의 포인팅을 보장하기 위해 같은 환경 변수로, 실종 OSX에서이 건물에 특정 단계가 있습니다 : 나는 사제를 통해 python2.7를 설치 한 후, 그것은 새로운 오류 발생 .7 libs? 누구든지이 플랫폼을위한 성공적인 빌드 프로세스를 가지고 있습니까?

다른 질문

이 여전히 OSX를위한 가장 권장 스택인가?

후속 나는 임시 작업 솔루션으로 내 자신의 대답을 수락했습니다. 누군가가 더 나은 것을 제공 할 수 있다면 기꺼이 받아 들일 것입니다!이 과정의

답변

3

업데이트

부분은 내가 제출 한 패치 (information here) 후 필요는 없습니다. 그 이후로 나는 또한 OSX에 전체 스택을 설치하는 방법에 대한 자세한 블로그 게시물을 작성했습니다 : Getting Started With Xbox360 Kinect On OSX


을이 조금 주위에 해킹 한 후, 나는 그것이 해결되지 않습니다하지만 (작업 수정을 발견했다 빌드 레벨에서 발행). cmake에는 시스템 프레임 워크 이외의 다른 파이썬 프레임 워크 (파이썬 바이너리와 libs가 일치하지 않음)를 제대로 감지하지 못하는 문제가 있습니다.

I 첫째, 나는 여전히 내 시스템 파이썬에 연결하고, 사자의 시스템 파이썬 것을 otool을 통해 발견 내 python2.7 모듈을 구축 한 후 --framework 플래그

를 추가, 사제를 통해 설치를 다시 설치 i386 및 x86_64가 뚱뚱합니다. 나는 또한 openni.so에 링크 된 libboost (homebrew를 통해 설치된 boost)가 homebrew 대신 system python에 연결되어 있다는 것을 알아 차렸다. 그래서 다시 연결하기 위해 다음과 같이 사용했습니다 :

install_name_tool -change \ 
    /System/Library/Frameworks/Python.framework/Versions/2.7/Python \ 
    /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Python \ 
    openni.so 

install_name_tool -change \ 
    /System/Library/Frameworks/Python.framework/Versions/2.7/Python \ 
    /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Python \ 
    /usr/local/Cellar/boost/1.49.0/lib/libboost_python-mt.dylib 

이 작업을 수행 한 후에 오류없이 openni를 가져올 수있었습니다. 프레임 워크로

  1. python2.7, x86_64에 (지방되지 않음)
  2. export CPPFLAGS="-arch x86_64"
  3. cmake 및 단계을 적절한 64 비트 파이썬에 연결
  4. libboost : 여기

    은 해결 방법의 요약 보통처럼
  5. 64 비트 파이썬에 openni.so를 다시 연결하십시오.

이상적으로, 환경 변수를 사용하여 빌드 단계에서이를 수정하는 방법을 보여주는 이상적인 답변을 게시하고 마지막에 다시 링크 수정을 할 필요가 없습니다.

+0

반환 된 스켈레톤 데이터가 맞습니까? 나는 이것을 많이 테스트하지 않았다. –

+0

@jmendeth : 정직하게 말하자면, 이것은 컴파일 된 것일뿐입니다. 나는 이번 주에 일하기 위해 일하기 시작했다. 새로 발견 된 정보와 나의 kinect를 사용하여 이제는 녹색으로 깜박이고 NUI 모터가 감지되었다. 카메라 또는 오디오가 없습니다. 내 눈 표범 상자에서 2 일 동안이 문제를 해결하려고했습니다. 커뮤니티에서 직접 지원하는 부분을 어디에서 찾을 수 있는지 알아볼 수 있기를 바랍니다. 나는 심지어 도서관을 사용하기 시작할 수 없었다. glview (freenect)는 장치가 발견되지 않는다고 말합니다. – jdi

+0

이 코드는 저에게 효과적입니다. – Daryl