kinectdtw-19515

所属分类:其他
开发工具:C#
文件大小:410KB
下载次数:17
上传日期:2017-12-26 16:35:31
上 传 者开哈哈哈
说明:  kinect动作识别 ,基于dtw算法,实时录制和识别
(Kinect action recognition, real-time recording and recognition based on DTW algorithm)

文件列表:
trunk\_ReSharper.DTWGestureRecognition (0, 2017-07-31)
branches (0, 2017-07-31)
trunk (0, 2017-07-31)
tags (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\BuildScriptCache (0, 2017-07-31)
BuildProcessTemplates (0, 2017-07-31)
BuildProcessTemplates\LabDefaultTemplate.11.xaml (22647, 2017-07-31)
BuildProcessTemplates\DefaultTemplate.11.1.xaml (59198, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\BuildScriptCache\1 (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\BuildScriptCache\6 (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\BuildScriptCache\0 (0, 2017-07-31)
BuildProcessTemplates\UpgradeTemplate.xaml (7014, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\BuildScriptCache\9 (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\DecompilerCache (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\BuildScriptCache\7 (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\BuildScriptCache\6\67b97fe2.dat (92, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\NamedArguments (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\NamedArguments\.crc (4, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\NamedArguments\4 (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\NamedArguments\.version (4, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\PdbInfo (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\BuildScriptCache\.crc (4, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\PdbInfo\70d4d5524509a11a701f3488c140794c9b3c590c (1116, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\ProjectModel (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\BuildScriptCache\.version (4, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\NamedArguments\4\6ecdc642.dat (1496, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\Resources\2 (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\Resources (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\ProjectModel\ProjectModel.dat (124, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\Resources\.crc (4, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\Resources\2\6e7357a3.dat (91, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\ModuleIds.xml (120, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\TodoCache (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\Resources\.version (4, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\TodoCache\.crc (4, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\TagPrefixes (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\TagPrefixes\.crc (4, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\TodoCache\1 (0, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\TodoCache\1\2642ddc7.dat (1539, 2017-07-31)
trunk\_ReSharper.DTWGestureRecognition\WebsiteFileReferences (0, 2017-07-31)
... ...

--------------------------------------------------------------------- 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.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 *** 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, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

近期下载者

相关文件


收藏者