SharpSenses

6 1
  • 0 Collaborators

An easier way to use Intel 3d Cameras. Custom poses, gestures and much more. ...learn more

RealSense™

Overview / Usage

An easier way to use the RealSense SDK! Custom poses, gestures and much more.

Warning: Make sure you have the RealSense SDK version 10 installed before using SharpSenses

How to use:

Nuget: Install-Package SharpSenses.RealSense

Sample:

var cam = Camera.Create(Capability.HandTracking);
cam.LeftHand.Visible += (s,a) => Console.WriteLine("Hi left hand!");
cam.RightHand.Closed += (s,a) => Console.WriteLine("Hand Closed");
cam.RightHand.Moved += (s,a) => {
    Console.WriteLine("-> x:{0} y:{1}", a.Position.Image.X, a.Position.Image.Y);
}
cam.Start();

Enabling Capabilities

For performance reasons, you have to tell the camera which modules will be loaded for use. The available modules are:

- HandTracking,
- FingersTracking,
- GestureTracking,
- FaceTracking,
- FaceRecognition,
- FacialExpressionTracking,
- ImageStreamTracking,
- SegmentationStreamTracking

You can enable the modules when creating the Camera object or calling the method "AddCapability", always before calling "Start".

var cam = Camera.Create(Capability.HandTracking, Capability.FingersTracking);
or
cam.AddCapability(Capability.FaceTracking);

Examples:

Gestures:

cam.Gestures.SlideLeft += (s, a) => Console.WriteLine("Swipe Left");
cam.Gestures.SlideRight += (s, a) => Console.WriteLine("Swipe Right");
cam.Gestures.SlideUp += (s, a) => Console.WriteLine("Swipe Up");
cam.Gestures.SlideDown += (s, a) => Console.WriteLine("Swipe Down");

Poses:

cam.Poses.PeaceBegin += (s, a) => Console.WriteLine("Make love, not war");
cam.Poses.PeaceEnd += (s, a) => Console.WriteLine("Bye!");

Eyes:

cam.Face.LeftEye.Blink += (sender, eventArgs) => {
    Console.WriteLine("Blink");
};
cam.Face.LeftEye.DoubleBlink += (sender, eventArgs) => {
    Console.WriteLine("Double Blink");
};
cam.Face.WinkedLeft += (sender, eventArgs) => {
    Console.WriteLine("WinkedLeft");
};
cam.Face.WinkedRight += (sender, eventArgs) => {
    Console.WriteLine("WinkedRight");
};

Mouth:

cam.Face.Mouth.Opened += (s, a) => {
    Console.WriteLine("-> Mouth opened");
};

cam.Face.Mouth.Closed += (s, a) => {
    Console.WriteLine("-> Mouth closed");
};

cam.Face.Mouth.Smiled += (s, a) => {
    Console.WriteLine("-> Mouth smiled");
};

Custom Poses:

var pose = PoseBuilder.Create().ShouldBeNear(_cam.LeftHand, _cam.RightHand, 100).Build();
    pose.Begin += (s, a) => {
    Console.WriteLine("Super pose!");
};
pose.Begin += (s, a) => DoSomething();

Facial Expressions:

- Anger
- Contempt
- Disgust
- Fear
- Joy
- Sadness
- Surprise

OBS: Unfortunately this feature was deprecated by Intel

Face Recognition:

Anytime you want to recognite a new face, call:

cam.Face.RecognizeFace();

You can always get a notification when a new or pre-recognized face is recognized:

_cam.Face.PersonRecognized += (s, a) => {
    Console.WriteLine("Hello " + a.UserId); 
};

Voice/Speech Synthesis:

Oh yeah, we speak!

cam.Speech.Say("Isn't that cool?");

Voice/Speech Recognition:

I can hear you, man!

cam.Speech.SpeechRecognized += (s, a) => {
    Console.WriteLine("-> " + a.Sentence);
};
cam.Speech.EnableRecognition();

Don't forget that you have to have the Intel RealSense SDK v10 (and the 3d camera, of course) for this library to work!

Comments (1)