Line 1: |
Line 1: |
− | = Kinect V2 =
| + | [[File:kinect.jpg|thumb|300px|Microsoft Kinect V2]] |
− | {|
| |
− | |-
| |
− | | [[File:kinect.jpg|300px|Image: 300 pixels]]
| |
− | |}
| |
| | | |
− | == Introduction == | + | The Kinect is a motion sensing input device. Based around a webcam-style add-on peripheral, it enables users to control and interact with their computer by retrieving joint information. Microsoft enables a non-commercial Kinect SDK for gestures and spoken commands. |
| + | |
| + | |
| + | == Kinect V2 == |
| | | |
− | The Kinect is a motion sensing input device. Based around a webcam-style add-on peripheral, it enables users to control and interact with their computer by retrieving joint information. Microsoft enables a non-commercial Kinect SDK for gestures and spoken commands. | + | The device features an RGB camera, depth sensor and multi-array microphone running proprietary software, which provide full-body 3D motion capture, facial recognition, voice recognition and acoustic source localization capabilities. |
| | | |
− | == Description ==
| + | The depth sensor consists of an infrared laser projector combined with a monochrome CMOS sensor, which captures video data in 3D. Kinect is capable of simultaneously tracking up to six people. sensors output video at a frame rate of 15 Hz(low light) to 30 Hz. The default RGB video stream uses 8-bit VGA resolution (512 x 424 pixels) with a Bayer color filter, but the hardware is capable of resolutions up to 1920x1080 @30fps colour image. The Kinect sensor has a practical ranging limit of 1.2–4.5 m distance. The Kinect can process 2 gigabytes of data per second, so it uses USB 3. The SDK runs only on Windows 8. |
| | | |
− | The device features an "RGB camera, depth sensor and multi-array microphone running proprietary software, which provide full-body 3D motion capture, facial recognition, voice recognition and acoustic source localization capabilities.
| + | Look at the color depth :) |
| | | |
− | The depth sensor consists of an infrared laser projector combined with a monochrome CMOS sensor, which captures video data in 3D. Kinect is capable of simultaneously tracking up to six people. sensors output video at a frame rate of 15 Hz(low light) to 30 Hz. The default RGB video stream uses 8-bit VGA resolution (512 x 424 pixels) with a Bayer color filter, but the hardware is capable of resolutions up to 1920x1080 @30fps colour image. The Kinect sensor has a practical ranging limit of 1.2–4.5 m distance. The Kinect can process 2 gigabytes of data per second, so it uses USB 3. The SDK runs only on windows 8.
| + | [[File:KinectColor.jpg|frame|left|300px|Color Depth Image]]<br clear=all> |
| | | |
− | Look at the color depth:)
| + | You can retrieve this joint information as well as finger information. |
| | | |
− | {|
| + | [[File:informationJoints.png|frame|left|300px|Joint Information Screen]]<br clear=all> |
− | |-
| |
− | | [[File:KinectColor.jpg|300px|Image: 300 pixels]]
| |
− | |}
| |
− | You can retrieve this joint information as well as finger information
| |
| | | |
− | {|
| |
− | |-
| |
− | | [[File:informationJoints.png|300px|Image: 300 pixels]]
| |
− | |}
| |
| == Presentation software == | | == Presentation software == |
| + | <syntaxhighlight lang="text" line> |
| + | begin; |
| + | |
| + | array{ |
| + | ellipse_graphic { |
| + | ellipse_width = 1; |
| + | ellipse_height = 1; |
| + | color = 255, 0, 0; |
| + | }; |
| + | ellipse_graphic { |
| + | ellipse_width = 1; |
| + | ellipse_height = 1; |
| + | color = 0, 255, 0; |
| + | }; |
| + | }arrayJoints; |
| + | |
| + | picture { |
| + | text { font = "Arial"; font_size = 20; caption = "move a bit:)"; } cap; |
| + | x = 0; y = -400; |
| + | } pic; |
| + | |
| + | begin_pcl; |
| + | |
| + | array<vector> data[0]; # in centimeters |
| + | array<int> body_ids[0]; |
| + | int counter = 0, dataBody; |
| + | string toScreen; |
| + | |
| + | sub change_caption( string caption ) begin |
| + | cap.set_caption( caption, true ); |
| + | pic.present() |
| + | end; |
| + | |
| + | sub showJoint( int joint , int partNr) begin |
| + | pic.set_part_x(partNr+1,data[joint].x() * 10); |
| + | pic.set_part_y(partNr+1,data[joint].y() * 10); |
| + | if partNr <= 3 then |
| + | arrayJoints[partNr].set_dimensions(data[joint].z(),data[joint].z()); |
| + | arrayJoints[partNr].redraw(); |
| + | end; |
| + | end; |
| + | |
| + | kinect k = new kinect(); |
| + | depth_data dd = k.depth(); |
| + | dd.RES_512x424; |
| + | |
| + | body_tracker tracker = k.body(); |
| + | tracker.set_seated( true ); |
| + | tracker.start(); |
| + | |
| + | pic.present(); |
| + | body_data bd; |
| + | loop until !is_null( bd ) begin |
| + | bd = tracker.get_new_body(); |
| + | end; |
| + | |
| + | #add the joints to picture |
| + | loop |
| + | int count = 1; |
| + | until count > 6 begin |
| + | pic.add_part(arrayJoints[count],0,0); |
| + | count = count + 1; |
| + | end; |
| + | |
| + | dd.start(); |
| + | loop until false begin |
| + | if (dd.new_data()) then |
| + | counter = counter + 1; |
| + | bd.get_positions( data, body_ids); |
| + | if data.count() > 0 then |
| + | showJoint(bd.HAND_RIGHT,1); |
| + | showJoint(bd.HAND_LEFT,2); |
| + | showJoint(bd.HEAD,3); |
| + | showJoint(bd.WRIST_RIGHT,4); |
| + | showJoint(bd.HAND_TIP_RIGHT ,5); |
| + | showJoint(bd.THUMB_RIGHT,6); |
| + | toScreen = "dataCount: " + string(counter) + "\n"; |
| + | toScreen.append("data X: " + string(data[bd.HAND_RIGHT].x()) + "\n"); |
| + | toScreen.append("data Y: " + string(data[bd.HAND_RIGHT].y()) + "\n"); |
| + | toScreen.append("dataZ: " + string(data[bd.HAND_RIGHT].z()) + "\n"); |
| + | change_caption( toScreen ); |
| + | end; |
| + | end; |
| + | end; |
| + | </syntaxhighlight> |