Chúng khác nhau ở đâu?Kinect SDK chính thức so với các giải pháp thay thế nguồn mở
Ưu điểm của việc chọn libfreenect hoặc OpenNI + SensorKinect, ví dụ, trên SDK chính thức và ngược lại là gì?
Nhược điểm là gì?
Chúng khác nhau ở đâu?Kinect SDK chính thức so với các giải pháp thay thế nguồn mở
Ưu điểm của việc chọn libfreenect hoặc OpenNI + SensorKinect, ví dụ, trên SDK chính thức và ngược lại là gì?
Nhược điểm là gì?
Xin lưu ý rằng câu trả lời dưới đây là theo ngày và một số dữ kiện có thể rất lạc hậu trong tương lai gần. Trạng thái hiện tại của Kinect SDK chính thức là beta 1.00.12.
Sự khác biệt rõ ràng đầu tiên là SDK chính thức được nhóm nghiên cứu của Microsoft duy trì trong khi OpenKinect là một SDK nguồn mở được duy trì bởi cộng đồng nguồn mở. Cả hai đều có khuyết điểm và ưu điểm của nó.
ngôn ngữ lập trình được hỗ trợ:
điều hành hỗ trợ:
lợi thế rõ ràng OpenKinect.
Giấy phép:
Tài liệu và hỗ trợ:
Device hiệu chuẩn:.
thiết bị Kinect khác nhau có thể khác nhau đôi chút tùy thuộc vào hàng loạt mà họ được sản xuất tại Như vậy thiết bị cân chỉnh đôi khi được yêu cầu. Nhưng:
Nếu đúng là hiệu chuẩn chỉ cần thiết cho OpenKinect, đây là một lợi thế lớn cho SDK chính thức vì việc phân phối và cài đặt các ứng dụng mà không cần phải dễ dàng hơn.
Cá nhân, sau một thử thất bại với các OpenKinect SDK tôi đã đi với SDK chính thức, mà
UPDATE: Tính đến ngày 01 tháng hai 2012 có một giấy phép thương mại cho SDK chính thức: "Các giấy phép thương mại cho phiên bản này cho phép phát triển và phân phối các ứng dụng thương mại SDK trước là một phiên bản beta. và kết quả là chỉ thích hợp cho nghiên cứu, thử nghiệm và thử nghiệm, và không phù hợp để sử dụng với một sản phẩm thương mại cuối cùng, giấy phép mới sẽ cho phép các nhà phát triển tạo và bán ứng dụng Kinect cho Windows để kết thúc khách hàng sử dụng Kinect Phần cứng Windows trên nền tảng Windows." Developer Frequently Asked Questions
Bạn cũng có thể nêu bật một số khó khăn mà bạn gặp phải khi thử OpenKinect SDK? Dựa trên chức năng, thiết kế, tính dễ sử dụng và tính ổn định, bạn có nói OpenKinect kém hơn so với SDK chính thức không? – greatwolf
@VictorT .: Tôi đã thử trước mùa hè, tôi không nhớ chi tiết về sự thất bại. Tôi nghĩ rằng đó là các trình điều khiển mà tôi đã không cài đặt được. Với sdk chính thức, tuy nhiên, đây chỉ là một nhấp đúp chuột (sau khi cài đặt Windows 7, tất nhiên :)). –
tôi sẽ khuyên khuôn khổ Cinder. (Libcinder.org)
Nó hỗ trợ cả OpenNI và Kinect develoment, nếu bạn đang sử dụng C++. Nó bây giờ hỗ trợ Kinect SDK 1.7 và OpenNI 2, thông qua những Cinderblocks:
MS Kinect SDK 1.7 (ổn định) https://github.com/BanTheRewind/Cinder-MsKinect
OpenNI 2/NITE 2.2 (alpha) https://github.com/wieden-kennedy/Cinder-OpenNI
Cả hai đều có thể theo dõi xương ngoài boz, OpenNI có khả năng theo dõi tối đa sáu bộ xương cùng một lúc. OpenNI 2 đang tăng nhanh trên Kinect, mặc dù Kinect mới có thể sẽ thay đổi khi nó ra mắt vào tháng tới. Tuy nhiên các nguyên tắc cơ bản cơ bản không có khả năng thay đổi. Hạn chế chính với bản phát hành ban đầu của OpenNI là nó yêu cầu kích hoạt toàn bộ cơ thể để nhận ra người dùng, là bộ ngắt giao dịch cho nhiều ứng dụng - tuy nhiên điều này dường như đã được giải quyết trong các phiên bản mới hơn và OpenNI 2 cũng hỗ trợ theo dõi tay mạnh mẽ ở cự ly gần, mặc dù nó vẫn đòi hỏi một cử chỉ tập trung ban đầu. Nếu bạn làm việc trên Mac hoặc Linux, nó là lựa chọn duy nhất của bạn.
Tôi đang sử dụng repo wieden-kennedy nhưng tôi vẫn không thể làm cho nó nhận ra kinect. Tuy nhiên nó sẽ làm việc với một xtion. – Kat
Theo giải thích của Avada Kedavra trong anh/cô answer, đây là một số khác biệt thú vị:
Theo ý kiến cá nhân của tôi, sự khác biệt quan trọng nhất giữa giải pháp mã nguồn mở và Microsoft SDK là có liên quan chặt chẽ với các thuật toán xương theo dõi.
Trong khi dữ liệu độ sâu và RGB có thể được cung cấp hiệu quả bởi cả API mở/API miễn phí và Microsoft SDK, việc triển khai khả năng theo dõi xương không chỉ là vấn đề kỹ thuật đảo ngược.
Để thực hiện thuật toán như vậy, nhà phát triển phải có năng lực mạnh mẽ trong lĩnh vực nhận dạng mẫu và học máy, và tôi khá chắc chắn rằng loại kiến thức đó có sẵn trong cộng đồng nguồn mở. Nhưng việc thực hiện theo dõi xương dựa trên thuật toán "được đào tạo", đòi hỏi nhiều thử nghiệm để thu thập số lượng dữ liệu rất lớn. Những dữ liệu này sau đó được sử dụng để "đào tạo" thuật toán, có thể nhận ra các khớp xương.
Nhận đủ dữ liệu, nhưng cũng điều chỉnh và sử dụng đúng cách, đòi hỏi nhiều thời gian và tiền bạc. Các nhà nghiên cứu và nhà phát triển của Microsoft đang trong các điều kiện tốt nhất để làm việc trên loại công cụ này, đơn giản chỉ vì đó là công việc của họ.
Trong những kinh nghiệm trước đây của mình, tôi nhận thấy rằng các giải pháp nguồn mở cung cấp khả năng theo dõi xương tốt, nhưng chúng không ở cùng mức độ mà Microsoft cung cấp với SDK của nó. Hãy nhớ rằng Microsoft SDK cung cấp rất nhiều khả năng bổ sung, như nhận diện khuôn mặt hoặc định hướng chung, và một số tiện ích rất hữu ích nếu bạn muốn xây dựng một giao diện đồ họa nhanh chóng. Vì vậy, những gì tôi đề nghị là: nếu bạn đang làm việc trên một dự án mà bạn chỉ cần độ sâu và/hoặc dữ liệu RGB, hoặc nếu bạn có nhu cầu sử dụng một ngôn ngữ lập trình không được hỗ trợ bởi Microsoft SDK, thì bạn nên chọn giải pháp nguồn mở. Nếu không, Microsoft SDK sẽ là lựa chọn tốt nhất của tôi.
Tôi đang biên soạn danh sách bên dưới. Có bất kỳ lĩnh vực cụ thể quan tâm cho sự khác biệt? –
Không thực sự. Một nhóm bạn bè và tôi đã nghĩ đến việc phát triển một ứng dụng nhỏ của kinect, có thể sẽ sử dụng các kỹ thuật thực tế tăng cường. –
Vấn đề là, một số người trong chúng ta sử dụng Linux/Mac và tôi có một vấn đề với việc viết mã mà sẽ bắt buộc phải khóa cửa sổ. –