---------------------------------------------------------------------
KinectDTW - Kinect SDK Dynamic Time Warping (DTW) Gesture Recognition
---------------------------------------------------------------------
By Rhemyst
Implementation by Rymix
Copyright (c) 2011, Rymix
http://kinectdtw.codeplex.com/
Notices
-------
This source code is distributed freely as open source. We'd rather you kept
this message in tact and included our copyright headers in your project.
Microsoft's SDK is not for commercial use, so by extension neither is this
library. Always adhere to Microsoft's terms of Kinect SDK use:
http://research.microsoft.com/en-us/um/legal/kinectsdk-tou_noncommercial.htm
No warranty or support given. No guarantees this will work or meet your needs.
Some elements of this project have been tailored to the authors' needs and
therefore don't necessarily follow best practice. Subsequent releases of this
project will (probably) not be compatible with different versions, so whatever
you do, don't overwrite your implementation with any new releases of this
project!
Release information
-------------------
Release version 0.1
Full of bugs, bad practice and not flexible enough yet, but a good starting
place for the community to build upon.
Introduction
------------
The Kinect SDK is rocking a whole bag of awesome, of that there's little doubt,
but until the open source community make some of its most tasty stuff
compatible with the SDK, Microsoft's offering will remain a little
under-featured and under-developed.
Amongst the missing features is a gesture recognition system. Lots of people
are building their own, bespoke implementations but no package (that I've
seen, at any rate) providesfast, accurate and programmable gesture libraries.
That's where this project could help. Using a relatively novel approach,
KinectDTW uses a vector-based nearest neighbour algorithm to track and classify
your gestures. The Dynamic Time Warping element means that this can recognise
gestures performed at different speeds.
Instructions
------------
1. Open up the Solution and check that you have all the prerequisite
software/dlls. Put Visual Studio into Debug mode and build and run the project.
You should see the MainWindow XAML window appear. If anything goes wrong at
this point, check your references, any paths that might be wrong or any other
dependencies that I might have forgotten.
2. Step into view of the Kinect sensor. Your skeleton should be tracked almost
immediately. It's probably best is you do this with only you in Kinect's sight
as this release only deals with one player.
3. Load the sample gestures by clicking Load gesture file and navigating to
the supplied RecordedGestures<date>.txt file
4. Start performing some gestures. You can see the names of the gestures from
the select box, and hopefully most of them are obvious to perform. You will
see matches appear in the results text panel at the top of the screen.
5. Nuke the app and start again.
6. Try recording your own gestures. Make sure your skeleton is being tracked,
select the gesture name you want to record, then click the Capture button.
You have three seconds to get into place and start recording your gesture. The
gesture is currently hard-coded to look at 32 frames (which is actually every
other frame over 64 expended frames). You may want to tweak this setting.
When recording gestures it is important that you start your gesture as soon
as the recording starts and that you finish on the 32nd frame. This might
mean that you have to perform your gestures for the recording slower (or
perhaps more quickly) than you would do in real life. Stick with it. The
DTW algorithm doesn't care about how quickly the gesture is performed.
7. When recording of each gesture is finished it automatically switches back
into Read mode, so test your new gesture a few times to see if you're happy
with it. If not, re-record it and try again.
8. When you're happy with your results, save your gestures to file. I'd
really love it if you shared your gestures with the community so that we can
build up a library of reliable gestures.
9. Make your own gestures - simply amend or add to the selectbox items with a
unique name and record your gesture. Note that a gesture name must start with
an @
That's it for this demo. Of course, it's not production specification yet, nor
would you want to release the gesture recorder in your project (only the
recogniser), but hopefully this gives you a good start in producing your own
gestures. DTW is probably not the perfect solution for all gestures, either, so
you'll need to experiment to find out what works and what doesn't. However, it
is a powerful tool for general gesture recognition.
Contribution and community
--------------------------
(Almost) anyone is free to contribute to this project. Just get in contact via
Codeplex.
This framework's strength could well be in a community-built libray of tried
and tested gestures. Please contribute your gestures!
Features
--------
* 2D gesture recognition using all the joints of the upper torso (Skeleton
Frame)
* Fast and customisible gesture recogniser
* Gesture recorder, so you can create your own gestures
* Save gestures to file for future use (and load from file)
* Sample WPF project with skeletal viewer and optional depth and RGB viewers
Future developments
-------------------
* 3D gesture recording and recognition
* More customisible parameters for finer control
* Dynamic gesture length
* Voice control for starting, stopping and switching gestures in the recorder
(so that you don't have to keep returning to the keyboard/mouse and messing up
your gesture recording)
* Customisible 'active joints' for gesture recognition (i.e. track just the
right arm and hand rather than the whole upper body)
* Ability to deal with more than one player
* Smooth out the recognition of similar gestures so that only one is selected
Requirements
------------
Windows 7
Kinect SDK
Visual Studio 2010
Coding4Fun toolkit http://c4fkinect.codeplex.com/
Probably the latest .NET and maybe some other stuff too. You'll soon find out.
Look at the project References if you're stuck.
Tested on
---------
Windows 7 Professional 32-bit SP1
Visual Studio 2010 Ultimate
Intel Pentium Dual CPU E2180 @ 2.00 GHz
4.00 GB RAM (3.25 GB usable)
ATI Radeon X1950 Pro 512MB
The SDK runs pretty slowly on my PC (which is actually beneath Microsoft's
recommended specification for the SDK). It was unusably slow when I turned on
the depth and RGB streams. Hopefully if you have a faster PC you'll have a
better experience. However, the gestures are recognised very quickly.
Links
-----
KinectDTW project on Codeplex:
http://kinectdtw.codeplex.com/
Microsot's Kinect SDK terms of use:
http://research.microsoft.com/en-us/um/legal/kinectsdk-tou_noncommercial.htm
Wikipedia's ovbiously 100% reliable explanation of dynamic time warping:
http://en.wikipedia.org/wiki/Dynamic_time_warping
Kinect SDK fora on MSDN:
http://social.msdn.microsoft.com/Forums/en-US/category/kinectsdk
Microsoft Coding4Fun Toolkit
http://c4fkinect.codeplex.com/
Disclaimer
----------
Stock disclaimer statement, but I mean it: I'm releasing this to you as a
learning tool, nothing more. Don't expect anything from me or expect to hold
me liable for anything whatsoever, because I herein expunge myself of all
responsibility for this code. This software is provided by the Rymix and its
licensors “as is” and any express or implied warranties, including, but not
limited to, the implied warranties of merchantability and fitness for a
particular purpose are disclaimed. In no event will Rymix or its licensors
be liable for any direct,
没有合适的资源?快使用搜索试试~ 我知道了~
KINECT dtw
共84个文件
cs:15个
cache:10个
version:7个
4星 · 超过85%的资源 需积分: 10 92 下载量 163 浏览量
2013-11-20
17:15:13
上传
评论 3
收藏 379KB ZIP 举报
温馨提示
基于kinect的采用动态事件规整方法实现手势识别的一个程序,有需要的可以来下载。
资源推荐
资源详情
资源评论
收起资源包目录
kinectdtw-1.0.zip (84个子文件)
tags
branches
trunk
_ReSharper.DTWGestureRecognition
SymbolCache.bin 3KB
NamedArguments
.crc 4B
.version 4B
4
6ecdc642.dat 1KB
ProjectModel
ProjectModel.dat 124B
ModuleIds.xml 120B
Resources
.crc 4B
.version 4B
2
6e7357a3.dat 91B
PdbInfo
70d4d5524509a11a701f3488c140794c9b3c590c 1KB
WordIndex
.crc 4B
.version 4B
4
6ecdc642.dat 10KB
DecompilerCache
TodoCache
.crc 4B
.version 4B
1
2642ddc7.dat 2KB
BuildScriptCache
.crc 4B
.version 4B
0
1
7
9
6
67b97fe2.dat 92B
TagPrefixes
.crc 4B
.version 4B
WebsiteFileReferences
.crc 4B
.version 4B
DTWGestureRecognition.suo 47KB
DTWGestureRecognition
README.txt 8KB
bin
Release
Debug
Microsoft.Expression.Drawing.dll 120KB
DTWGestureRecognition.pdb 56KB
DTWGestureRecognition.vshost.exe 11KB
Coding4Fun.Kinect.Wpf.pdb 38KB
Coding4Fun.Kinect.Wpf.dll 20KB
DTWGestureRecognition.vshost.exe.manifest 490B
DTWGestureRecognition.exe 52KB
StyleCop.Cache 812B
DTWGestureRecognition.csproj 5KB
Skeleton2DdataCoordEventArgs.cs 2KB
objbak
x86
Debug
DTWGestureRecognition.csproj.FileListAbsolute.txt 2KB
App.g.i.cs 2KB
DesignTimeResolveAssemblyReferencesInput.cache 6KB
DesignTimeResolveAssemblyReferences.cache 35KB
TempPE
Properties.Resources.Designer.cs.dll 5KB
DTWGestureRecognition_MarkupCompile.i.cache 377B
DWTGestureRecognition_MarkupCompile.i.cache 377B
DWTGestureRecognition.csproj.FileListAbsolute.txt 2KB
MainWindow.g.i.cs 10KB
App.xaml 332B
obj
x86
Debug
DTWGestureRecognition.csproj.FileListAbsolute.txt 2KB
App.g.i.cs 2KB
DTWGestureRecognition.g.resources 27KB
DTWGestureRecognition_Content.g.i.cs 505B
GenerateResource.write.1.tlog 562B
App.g.cs 2KB
DTWGestureRecognition.pdb 56KB
DesignTimeResolveAssemblyReferencesInput.cache 7KB
MainWindow.g.cs 11KB
ResolveAssemblyReference.cache 27KB
DesignTimeResolveAssemblyReferences.cache 20KB
GenerateResource.read.1.tlog 242B
DTWGestureRecognition_MarkupCompile.cache 378B
TempPE
Properties.Resources.Designer.cs.dll 5KB
DTWGestureRecognition_MarkupCompile.i.cache 379B
DTWGestureRecognition.Properties.Resources.resources 180B
DTWGestureRecognition.exe 52KB
MainWindow.g.i.cs 11KB
MainWindow.baml 6KB
HeaderBG.png 13KB
App.xaml.cs 1KB
Copied.txt 4KB
Settings.StyleCop 2KB
binbak
Release
Debug
DWTGestureRecognition.vshost.exe.manifest 490B
DTWGestureRecognition.vshost.exe 11KB
DTWGestureRecognition.vshost.exe.manifest 490B
DtwGestureRecognizer.cs 12KB
2011-07-04_22-09.txt 2KB
RecordedGestures2011-07-06_22-34.txt 114KB
Skeleton2DDataExtract.cs 4KB
MainWindow.xaml 6KB
Properties
Resources.resx 5KB
Settings.settings 201B
AssemblyInfo.cs 2KB
Settings.Designer.cs 1KB
Resources.Designer.cs 3KB
MainWindow.xaml.cs 30KB
DTWGestureRecognition.5.1.ReSharper.user 12KB
DTWGestureRecognition.sln 905B
共 84 条
- 1
资源评论
- wucaifang1hao2015-01-20是一个使用kinect录制动作、应用DTW算法计算动作之间的距离,进行手势识别的小程序
- qq_323624052016-03-15我不懂怎么用GG
- fooleve2017-12-29能进行完整身体动作的识别吗?
- a0601042014-11-24非常有用的文件
zsc816
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功