공식 Kinect SDK vs. 오픈 소스 대안
어디에서 다릅니 까?
예를 들어, 공식 SDK보다 libfreenect 또는 OpenNI + SensorKinect를 선택하면 어떤 이점이 있습니까?
단점은 무엇입니까?
아래 답변은 날짜별로 작성되었으며 일부 사실은 가까운 장래에 구식이 될 수 있습니다. 공식 Kinect SDK의 현재 상태는 베타 1.00.12입니다.
첫 번째 명백한 차이점은 공식 SDK는 Microsoft Research 팀에서 유지 관리하는 반면 OpenKinect는 오픈 소스 커뮤니티에서 유지 관리하는 오픈 소스 SDK라는 것입니다. 둘 다 장단점이 있습니다.
- 공식 SDK는 따라서 하드웨어를 개발하고 마이크로 소프트에 의해 개발 해야한다 오픈 소스 사회는 리버스 엔지니어링해야하는 장치에 대한 내부 정보를 알고있다. 분명히 이것은 Microsoft의 이점입니다.
- Microsoft는이 장치에 많은 돈을 쏟아 붓고 있으며 SDK를 동등한 수준으로 유지하는 데 필요한 작업을 수행 할 것이라고 확신합니다. 그 뒤에 경제가 있다는 것은 많은 이점을 제공합니다.
- 다른 한편으로는 오픈 소스 사회의 힘을 과소 평가하지 마십시오. "OpenKinect 커뮤니티는 프로젝트에 시간과 코드를 기여하는 2000 명 이상의 회원으로 구성되어 있습니다. 저희 회원들은 최상의 애플리케이션 제품군을 만드는 사명으로이 프로젝트에 참여했습니다. OpenKinect는 진정한 "오픈 소스"커뮤니티입니다! " -http : //openkinect.org/wiki/Main_Page .
- OpenKinect는 공식 SDK가 출시 된 지 1 일 또는 2 일에 해킹 당해 공식 SDK가 출시되기 훨씬 전에 출시되었습니다. OpenKinect에 대한 명성!
지원되는 프로그래밍 언어 :
- 공식 SDK : Microsoft Visual Studio 2010을 사용하는 C ++, C # 또는 Visual Basic.
- OpenKinect : Python, C, C ++, C #, Java, Lisp 등! 분명히 Visual Studio가 필요하지 않습니다.
운영 체제 지원 :
- 공식 SDK : Windows 7에만 설치됩니다.
- OpenKinect : Linux, OS X 및 Windows에서 실행
OpenKinect를 확실히 활용하십시오.
특허:
- 공식 SDK는 테스트 용으로 만 현재 베타 상태입니다. SDK는 학술, 연구 및 애호가 커뮤니티의 광범위한 탐색과 실험을 장려하기 위해 특별히 개발되었습니다. 상업적 응용은 허용되지 않습니다. 그러나 이는 SDK의 향후 릴리스에서 변경 될 수 있습니다. 자세한 내용 은 FAQ 를 참조하십시오.
- OpenKinect는 상업적 사용을 위해 개방되어 있지만 온라인 소스에 따르면 그렇게 간단하지 않을 수 있습니다. 상용 앱을 출시하기 전에 약관을 잘 살펴 보겠습니다. 자세한 내용은 Kinect – 오픈 하드웨어 프로젝트의 라이선스 영향을 읽어보십시오 .
문서 및 지원 :
- 공식 SDK : 잘 문서화되어 있으며 지원 포럼을 제공합니다.
- OpenKinect : 메일 링리스트, twitter 및 irc가있는 것으로 보입니다. 하지만 공식 포럼 / QA는 없나요? 웹 사이트의 문서는 내가 원하는만큼 풍부하지 않습니다.
장치 보정 :
Kinect 장치는 생산 된 배치에 따라 약간 씩 다를 수 있습니다. 따라서 장치 보정이 필요한 경우가 있습니다. 그러나:
- 공식 SDK는 보정 설정을 제공하지 않지만 지금까지 작업중인 장치를 보정 할 필요가 없습니다. 내가 온라인에서 읽은 내용 (링크 손실)에 따르면 보정 매개 변수가 kinect 장치에 기록되므로 공식 SDK 보정이 필요하지 않습니다.
- OpenKinect는 장치 보정 기능을 제공합니다 : http://openkinect.org/wiki/Calibration . 따라서 OpenKinect를 사용하는 경우 장치를 보정해야한다고 생각합니다.
보정이 OpenKinect에만 필요하다는 사실이 사실이라면 그러한 필요없이 응용 프로그램을 배포하고 설치하는 것이 더 쉽기 때문에 공식 SDK에 큰 이점입니다.
개인적으로 OpenKinect SDK로 실패한 후 공식 SDK를 사용했습니다.
- 즉시 설치되는 드라이버와 함께 제공
- 쉽게 비즈니스에 들어갈 수 있도록 예제와 코드가 함께 제공됩니다.
- 올인 올 : 15 분 내로 자체 개발을 시작할 수 있습니다.
- 이제 몇 달 동안 Kinect로 작업 한 후 제공되는 API에 상당히 만족한다고 말해야합니다. 그러나 실제로 작동하지 않았기 때문에 OpenKinect SDK와 비교할 수는 없습니다 (하지만 공정한 시도를하지 않았을 수도 있습니다).
업데이트 : 2012 년 2 월 1 일 현재 공식 SDK에 대한 상용 라이센스가 있습니다. "이 릴리스의 상용 라이센스는 상용 응용 프로그램의 개발 및 배포를 승인합니다. 이전 SDK는 베타 버전이었으며 결과적으로 연구, 테스트에만 적합했습니다. 최종 상용 제품과 함께 사용하기에 적합하지 않았습니다. 새 라이선스를 통해 개발자는 Windows 플랫폼에서 Windows 용 Kinect 하드웨어를 사용하는 최종 사용자 고객에게 Kinect for Windows 응용 프로그램을 만들고 판매 할 수 있습니다. " 개발자 자주 묻는 질문
Avada Kedavra 의 답변 에서 설명했듯이 다음은 몇 가지 흥미로운 차이점입니다.
- 지원되는 운영 체제 : Windows에서만 Microsoft SDK를 사용할 수 있지만 오픈 소스 솔루션은 일반적으로 다른 운영 체제에서 작동 할 수 있습니다.
- 프로그래밍 언어 : 오픈 소스 솔루션으로 더 넓은 선택이 가능하지만 Microsoft는 C ++ 및 C # 만 지원합니다 (Visual Basic은 더 이상 SDK 2.0에서 지원되지 않습니다).
- 문서화 및 지원 : Microsoft는 좋은 포럼과 잘 작성된 문서 (많은 샘플 포함)를 제공합니다. 그러나 잘 문서화 된 몇 가지 오픈 소스 솔루션이 있습니다.
- 라이센스 : Microsoft는 다소 독점적이며 오픈 소스는 다소 무료입니다. 오픈 소스 아이디어가 때때로 대기업에 의해 구입되어 더 이상 공개되지 않은 것으로 변형되었다는 점도 고려하십시오. 아마도 당신의 것이 아닐 것입니다. 그러나이 추가적인 우발성을 염두에 두십시오.
개인적으로 오픈 소스 솔루션과 Microsoft SDK의 가장 큰 차이점은 골격 추적 알고리즘 과 밀접한 관련이 있습니다.
심도 및 RGB 데이터는 개방형 / 무료 API와 Microsoft SDK 모두에서 효과적으로 제공 할 수 있지만 골격 추적 기능을 구현하는 것은 리버스 엔지니어링의 문제가 아닙니다.
이러한 알고리즘을 구현하려면 개발자가 패턴 인식 및 머신 러닝 분야에서 강력한 역량을 보유해야하며, 이러한 지식이 오픈 소스 커뮤니티에서 사용 가능하다고 확신합니다. 그러나 골격 추적의 구현은 매우 많은 양의 데이터를 수집하기 위해 많은 실험이 필요한 "훈련 된"알고리즘을 기반으로합니다. 이러한 데이터는 골격 관절을 인식 할 수있는 알고리즘을 "훈련"하는 데 사용됩니다.
충분한 데이터를 얻는 동시에이를 조정하고 적절하게 사용하려면 많은 시간과 비용이 필요합니다. Microsoft 연구원과 개발자는 이러한 종류의 작업을 수행하기에 가장 좋은 조건에 있습니다.
In my previous experiences, I noticed that open source solutions provide good skeletal tracking capabilities, but they are not at the same level of what Microsoft offers with its SDK.
Remember also that Microsoft SDK provide a lot of additional capabilities, like facial recognition or joint orientation, and several widgets very useful if you want to fastly build a gestural GUI.
So what I suggest is: if you are working on a project in which you simply need depth and/or RGB data, or if you have the necessity to use a programming language that is not supported by Microsoft SDK, then you should opt for open source solution. Otherwise, Microsoft SDK would be my best choice.
I would strongly recommend the Cinder framework. (libcinder.org)
It supports both OpenNI and Kinect develoment, if you're using C++. It now supports Kinect SDK 1.7 and OpenNI 2, via these Cinderblocks:
MS Kinect SDK 1.7 (stable) https://github.com/BanTheRewind/Cinder-MsKinect
OpenNI 2 / NITE 2.2 (alpha) https://github.com/wieden-kennedy/Cinder-OpenNI
Both can do skeletal tracking out of the boz, OpenNI being capable of tracking up to six skeletons simultaneously. OpenNI 2 is gaining rapidly on the Kinect, although the new Kinect will probably change that when it comes out next month. However the basic underlying principles are unlikely to change.
The main drawback with the initial release of OpenNI was that it required a full body activation pose to recognise a user, which was a deal breaker for a lot of applications - however this seems to have been solved in the newer versions and OpenNI 2 also supports robust hand tracking at close range, although it still requires a focus gesture initially. If you work on Mac or Linux, it's pretty much your only choice.
참고URL : https://stackoverflow.com/questions/7706448/official-kinect-sdk-vs-open-source-alternatives
'Programing' 카테고리의 다른 글
AndroidStudio Gradle 프록시 (0) | 2020.12.14 |
---|---|
개발 목적으로 iOS 7의 NSURLSession 및 위임 메서드 제품군을 사용하여 자체 서명 된 SSL 인증서를 수락하려면 어떻게해야합니까? (0) | 2020.12.14 |
* args, ** kwargs 및 선택적 / 기본 인수를 사용하여 Python 함수 호출 (0) | 2020.12.13 |
* args, ** kwargs 및 선택적 / 기본 인수를 사용하여 Python 함수 호출 (0) | 2020.12.13 |
Node.js 및 Mongoose 용 관리자 패널 (0) | 2020.12.13 |