OpenNIのライセンスが気になったので聞いてみた

LINEで送る
Pocket

KinectやXtionを使ってアプリ開発するときには、Kinect for WindowsのSDKであれば
Kinect for Windowsのデバイスを買い、Windowsアプリを作るのであればライセンスの心配をする事はありません。
一方のOpenNIはLGPLやらGPLやらと書いていて、GPLの解釈については動的リンクでもソースコードの公開義務があるとする解釈もあり商用案件で使うにはやはり躊躇してしまいます。

とはいえOpenNIになじんでいたのでOpenNIの開発元の一つである、primesenseにメールで直接問い合わせました。

返答がこれ。

The LGPL constraint that you are mentioning only applies if you are modifying OpenNI using it source code. If you are using OpenNI as-is, then you do not need to uncover anything about your own code! OpenNI is FREE for commercial use, but softwares using OpenNI do not need to inherit the LGPL license. For examples, NiTE is not LGPL nor open source, it’s a Primesense proprietary software.

要するに、「OpenNIをそのまま使うのであればソースコードを公開する必要は無いよ、実際NiTEはオープンじゃないし」
って事で公認がもらえたと思ってるので商用案件でもOpenNIを導入して良さそうですね!

その後も少しやりとりしていると、Apache ライセンスに変えるか検討しているようでした。

[修正]スケルトン認識ポーズいらずのOpenNI1.4.0.2がリリースされました!

LINEで送る
Pocket

OpenNIの新しいバージョンがunstableながら出たようです。(バージョンは1.4.0.2)
http://75.98.78.94/
※ググった結果の一番上なんですけどなんでIPアドレスなんだろう。。。

今回からなんとOpenNIでスケルトン認識する時の例のポーズがいらなくなった、という大きすぎるアップグレードがあります。
「かおるんダイアリー」様が早速デモ動画をアップされています。
http://d.hatena.ne.jp/kaorun55/20111121

MSのSDKでは画面から外れた時の暴れっぷりや全身が映っていないときの反応がちょっと荒かった印象がありましたが、OpenNIの方は比較的ましな感じがしています。

今はSensorKinectの人にも問い合わせしているので進展があれば追記します。

早速試したかったのですが、僕の環境では実行しようとしても
Segmentation fault: 11
が出てしまい実行できませんでした。

あまりにもわからなかったのでOpenNIのGoogleGroupで質問してみたところ、
Kinectの時に使っているドライバ、SensorKinectが新しいバージョンに対応していないからだそうです。

これはOpenNI使う時はKinectじゃなくてXtion使えよ、っていうことなんでしょうかね。。。

追記:
動作することを確認しました。
すみません。僕が使っていたSensorKinectが古かったようです。

ここにあるバージョン(5.0.5.1で確認しました)を使うと無事動作しました。
OpenNI, SensorKinect、NITE、入れていればOpenNIのサイトにあるSensorをアンインストールし、KinectをUSBから抜いて再度インストールすると問題なく動作するようになりました。
(NITEは先ほどリリースされた1.5.0.2をインストールしました。)
https://github.com/avin2/SensorKinect

さあ、これで試せるよ!

備考:
動作確認バージョン:
OpenNI: 1.4.0.2
NITE: 1.5.0.2
SensorKinect 5.0.5.1
Mac OS X 10.7 Lion
デバイス: Kinect

撮影するための環境が無くて僕とKinectの距離が近かったのでスケルトンが暴れていますが、実際はもう少しましだと思います。

これになったことでスケルトンを使ったアプリを作りやすくなりましたが、暴れることが以前より多くなった(当然)ので、こういったノイズデータをハンドリングする必要がありそうですね。