2011-10-09 2 views
56

그들은 어떻게 다른가요?공식 Kinect SDK 대 오픈 소스 대안

예를 들어 공식 SDK를 통해 libfreenect 또는 OpenNI + SensorKinect를 선택하면 어떤 이점이 있습니까?

단점은 무엇입니까?

+4

아래 목록을 작성 중입니다. 차이점에 대한 특정 관심 분야가 있습니까? –

+0

아닙니다. 친구 그룹과 저는 작은 증류기 응용 프로그램을 개발하려고 생각 했었습니다. 아마도 증강 현실 기술에 의지 할 것입니다. –

+0

문제는 우리 중 일부가 Linux/Mac을 사용하며 코드 작성에 문제가있어 의무적으로 Windows에 잠겨 있습니다. –

답변

55

아래 답변은 날짜별로 제공되며 일부 사실은 가까운 시일 내에 오래 될 수 있습니다. 공식 Kinect SDK의 현재 상태는 베타 1.00.12입니다.

첫 번째 명백한 차이점은 OpenKinect는 오픈 소스 커뮤니티에서 유지 관리하는 반면 공식적인 SDK는 Microsoft Research 팀에서 유지 관리한다는 것입니다. 둘 다 장단점이있다.

  • 공식 SDK는 또한 하드웨어를 개발하고 마이크로 소프트에 의해 개발되고, 따라서 는 오픈 소스 사회는 리버스 엔지니어링해야하는 장치에 대한 내부 정보를 알고 있어야합니다. 분명히 이것은 Microsoft의 장점입니다.
  • Microsoft는이 장치에 많은 돈을 쏟아 부었고 SDK를 동등하게 유지하는 데 필 요하다고 느끼는 것을 할 것이라고 확신합니다. 배후에 경제를 갖는 것은 많은 이점을 제공합니다.
  • 오픈 소스 사회의 힘을 결코 과소 평가하지 마십시오. "OpenKinect 커뮤니티는 2000 명이 넘는 회원으로 구성되어 프로젝트에 시간과 코드를 제공합니다. 우리 회원은 최상의 프로젝트를 만들기 위해이 프로젝트에 동참했습니다. OpenKinect는 진정한 "오픈 소스"커뮤니티입니다! " - http://openkinect.org/wiki/Main_Page.
  • OpenKinect는 kinect 장치가 릴리스 된 첫 번째 또는 두 번째 날에 해킹 된 직후 공식 SDK가 발표되기 전에 출시되었습니다. OpenKinect에 대한 명성!

프로그래밍 언어 지원 :

  • 공식 SDK : C++, C#, 또는 마이크로 소프트 비주얼 스튜디오를 사용하여 Visual Basic을 2010 년
  • OpenKinect : 파이썬, C, C++, C#을, 자바, Lisp 등! 분명히 Visual Studio가 필요하지 않습니다.

운영 체제 지원 :

  • 공식 SDK : Windows에서만 설치 7
  • OpenKinect : 리눅스, OS X 및

윈도우에서 실행이 분명 OpenKinect을 이점.

라이센스 :

  • 공식 SDK는 테스트 용으로 만 현재 베타 상태입니다. SDK는 학계, 연구 및 열광적 인 지역 사회의 폭 넓은 탐험과 실험을 장려하기 위해 특별히 개발되었습니다. 상용 응용 프로그램은 허용되지 않습니다. 그러나 이것은 SDK의 향후 릴리스에서 변경 될 것입니다.자세한 내용은 FAQ을 방문하십시오.
  • OpenKinect appers는 상업적 용도로 공개되지만 온라인 소스에서는 그렇게 간단하지 않을 수도 있다고 말합니다. 나는 상용 애플 리케이션을 출시하기 전에 용어를 잘 살펴볼 것이다. 자세한 내용은 Kinect – Licensing implications of open hardware projects을 참조하십시오.

문서 및 지원 :

  • 공식 SDK : 잘 문서화하고 support forum
  • OpenKinect을 제공 : 메일 링리스트, 트위터 및 IRC가 나타납니다. 공식 포럼/품질 보증은 없습니까? 웹 사이트의 설명서는 내가 원하는만큼 풍부하지 않습니다.

교정 장치 :.

넥트 다른 장치가 제조되었다는 배치에 따라 다소 달라질 수는 이와 같이 보정 장치는 때때로 요구된다. 그러나 :

  • 은 공식 SDK는 교정 설정을 제공하지 않습니다하지만 난 지금까지 내가 일하고 장치를 보정 할 수 없었어요. 프로덕션 시간에 온라인에서 링크를 잃어 버렸을 때, 교정 매개 변수가 kinect 장치에 기록되므로 공식 SDK 교정이 필요하지 않습니다.
  • OpenKinect는 장치 보정 기능을 가지고 있습니다 : http://openkinect.org/wiki/Calibration. 따라서 OpenKinect를 사용한다면 장치를 조정해야한다고 생각합니다.

진정한 그 교정 만이 그러한 필요없이 애플리케이션을 배포 및 설치하는 것이 더 쉽습니다으로 공식 SDK에 대한 큰 장점이다 OpenKinect에 필요합니다.


개인적으로,

  1. 가 상자 밖으로 설치된 드라이버와 함께 제공된 나는 공식 SDK와 함께 갔다 OpenKinect SDK와 실패한 시도, 후
  2. 쉽게위한 예제 코드와 함께 사업 시작하기
  3. 올인 올 (all-in-all) : 15 분 정도 내 자신의 발달을 시작할 수 있습니다.
  4. 이제 몇 달 동안 Kinect와 협력 한 후에 제공된 API에 상당히 만족하고 있습니다. OpenKinect SDK와 비교할 수는 없지만 실제로는 작동하지 않습니다.하지만 아마도 정당한 시도는 아닙니다.

UPDATE : "이 릴리스의 상용 라이센스는 상용 애플리케이션의 개발 및 배포 권한을 부여 선행 SDK 베타이었다. 공식 SDK를위한 상용 라이센스가 2 월 1 일 2012 년 결과적으로 연구, 테스트 및 실험에만 적합하고 최종 상용 제품과의 사용에는 적합하지 않았습니다.이 새로운 라이선스는 개발자가 Kinect for Windows 응용 프로그램을 작성하여 Kinect를 사용하여 최종 사용자 고객에게 판매 할 수있게합니다. Windows 플랫폼의 Windows 하드웨어." Developer Frequently Asked Questions

+3

Can can also OpenKinect SDK를 시험해 보면서 어려움을 겪었던 점을 강조해주십시오. 기능, 디자인, 사용 용이성 및 안정성을 고려할 때 OpenKinect는 공식 SDK에 비해 열등하다고 할 수 있습니까? – greatwolf

+3

@ 빅터 : 여름 전에 시험해 보았습니다. 실패에 대한 자세한 내용은 기억이 안납니다. 나는 그것이 내가 실패한 드라이버라고 생각한다. 그러나 공식 sdk를 사용하면 두 번 클릭하면됩니다 (물론 Windows 7을 설치 한 후 :)). –

3

나는 강하게 쇠 찌끼 프레임 워크를 추천 할 것입니다. (libcinder.org)

당신은 C++을 사용하는 경우 그것은. 그것은 지금 키 넥트 SDK 1.7 OpenNI 2 OpenNI와 키 넥트 모두 develoment 지원 지원을 통해 이러한 Cinderblocks :

MS 넥트 SDK 1.7 (안정) https://github.com/BanTheRewind/Cinder-MsKinect

OpenNI 2/NITE 2.2 (알파) https://github.com/wieden-kennedy/Cinder-OpenNI

,

둘 다 보츠에서 골격 추적을 할 수 있으며 OpenNI는 최대 6 개의 해골을 동시에 추적 할 수 있습니다. Kinect는 새로운 Kinect가 다음 달에 나올 때마다 변경 될지라도 OpenNI 2는 Kinect에서 빠르게 증가하고 있습니다. 그러나 기본적인 기본 원칙은 변하지 않을 것입니다.

OpenNI의 초기 릴리스의 주된 단점은 많은 응용 프로그램에서 거래 차단기였던 사용자를 인식하기 위해 전신 활성화 포즈가 필요하다는 것이 었습니다. 그러나 이것은 최신 버전에서 해결 된 것으로 보입니다. OpenNI 2는 또한 가까운 거리에서 견고한 손 추적을 지원합니다.하지만 여전히 초점 제스처가 필요합니다. Mac 또는 Linux에서 작업하는 경우, 유일한 선택입니다.

+0

나는 wieden-kennedy repo를 사용하고 있지만 여전히 kinect를 인식 할 수는 없습니다. 그러나 그것은 xtion과 함께 작동합니다. – Kat

5

그/그녀의 answerAvada Kedavra에 의해 설명 된 바와 같이, 이러한 몇 가지 흥미로운 차이점은 다음과 같습니다

  • 지원되는 운영 체제 : 오픈 소스 솔루션은 일반적으로 일을 할 수있는 동안은, 윈도우에서 Microsoft SDK를 사용할 수 있습니다 다른 운영 체제에서;
  • 프로그래밍 언어 : Microsoft는 C++ 및 C# 만 지원하지만 (Visual Basic은 SDK 2.0에서 더 이상 지원되지 않음) 오픈 소스 솔루션으로 더 넓은 선택권을 갖습니다.
  • 설명서 및 지원 : Microsoft는 좋은 포럼과 잘 작성된 문서 (많은 샘플 포함)를 제공합니다. 하지만 몇 가지 오픈 소스 솔루션이 잘 문서화되어 있습니다;
  • 라이센스 : Microsoft는 더 적거나 독점적이며, 오픈 소스는 더 적거나 많지 않습니다. 또한 오픈 소스 아이디어가 대기업에 의해 구매되어 더 이상 공개되지 않는 것으로 변모했음을 고려하십시오. 아마 너의 경우는 아니지만,이 추가적인 우연을 염두에 두라. 내 개인적인 의견으로는

는 오픈 소스 솔루션과 마이크로 소프트의 SDK 사이의 가장 큰 차이는 골격 추적 알고리즘에 엄격하게 관련이있다.

깊이 및 RGB 데이터는 개방형/무료 API와 Microsoft SDK에서 효과적으로 제공 할 수 있지만 골격 추적 기능을 구현하는 것은 리버스 엔지니어링의 문제 일뿐만 아닙니다.

이러한 알고리즘을 구현하려면 개발자가 패턴 인식 및 기계 학습 영역에서 강력한 역량을 갖추고 있어야하며 오픈 소스 커뮤니티에서 이러한 지식을 사용할 수 있다고 확신합니다. 그러나 골격 추적의 구현은 매우 많은 양의 데이터를 수집하기 위해 많은 실험을 필요로하는 "훈련 된"알고리즘을 기반으로합니다. 이 데이터는 골격 조인트를 인식 할 수있는 알고리즘을 "훈련"하는 데 사용됩니다.

데이터를 충분히 얻고 조정하고 올바르게 사용하려면 많은 시간과 비용이 필요합니다. Microsoft 연구자와 개발자는 자신의 업무이기 때문에 이러한 종류의 작업을 수행하는 최상의 조건에 있습니다.

이전의 경험에서 볼 때 오픈 소스 솔루션은 우수한 골격 추적 기능을 제공하지만 Microsoft가 SDK와 함께 제공하는 것과 동일한 수준에 있지는 않습니다.

또한 Microsoft SDK는 얼굴 인식이나 공동 오리엔테이션과 같은 추가 기능을 많이 제공하며 제스처 GUI를 신속하게 구축하려는 경우 여러 위젯이 매우 유용하다는 점도 기억하십시오.

그래서 내가 제안하는 것은 : 깊이 및/또는 RGB 데이터가 필요한 프로젝트에서 작업하는 경우 또는 Microsoft SDK에서 지원하지 않는 프로그래밍 언어를 사용해야 할 필요가있는 경우 오픈 소스 솔루션을 선택해야합니다. 그렇지 않으면 Microsoft SDK가 최선의 선택입니다.