Canvasを使ってWebページにサインをするデモ、発表時はひたすら書きづらい出来でしたが、改良すればなんとか使えるかもしれない。あと質問であった手話の認識ですが、手を閉じた状態では手の位置しかデータが取れないので難しそう。発表後調べ直しましたが、深度画像が取得できないのでSDKにRow DataアクセスのAPIが追加されるのを待たないと独自認識処理は無理かなと。
せっかくなのでLeap Motionを使って書いた奴貼っておきます。
import numpy as np
x = linspace(-1, 1, num=100)
for i in xrange(1,12):
plot(x, x**i)
ret = title('Basis function')
x = linspace(-1, 1, num=100)
y = np.zeros(100)
x_prime = -0.4
for i in xrange(1,12):
v = (x ** i)
y += reduce(lambda x,y :x+y, [v * (x_prime ** i)])
plot(x, y)
ret = title(u'Karnel function')
def gaussian(x, mean, sigma):
return 0.5/np.sqrt(2.0*np.pi)/sigma * np.exp(-((x-mean)/sigma)**2/2)
x = linspace(-1, 1, num=100)
SIGMA = 0.2
for i in xrange(0, 11):
mean = -1 + (float(i) / 5)
plot(x, map(lambda x:gaussian(x, mean, SIGMA), x))
ret = title('Basis function')
SIGMA = 0.2
x = linspace(-1, 1, num=100)
y = np.zeros(100)
x_prime = 0.0
for i in xrange(0,11):
mean = -1 + (float(i) / 5)
v = np.array(map(lambda x:gaussian(x, mean, SIGMA), x))
y += reduce(lambda x,y :x+y, [v * gaussian(x_prime, mean, SIGMA)])
plot(x, y)
ret = title(u'Karnel function')
def logistic_sigmoid(x):
return 1 / (1 + np.exp(-1 * x * 10))
x = linspace(-1, 1, num=100)
for i in linspace(-1, 1, num=11):
plot(x, map(lambda x:logistic_sigmoid(x - i), x))
ret = title('Basis function')
x = linspace(-1, 1, num=100)
x_prime = 0.0;
y = np.zeros(100)
for i in linspace(-1, 1, num=11):
v = np.array(map(lambda x:logicstic_sigmoid(x - i), x))
y += reduce(lambda x, y: x + y, [v * logistic_sigmoid(x_prime - i)])
plot(x, y)
ret = title('Karnel function')