Helios耳机使用Intel RealSense技术帮助视力障碍人士

HELIOS — . , , , 285 : 39 246 . , , .

, Intel RealSense, , . , .



HELIOS


HELIOS , .

▍HELIOS Touch


HELIOS Touch . HTI . .


HELIOS Touch

▍HELIOS Light


HELIOS Light . . , Intel RealSense, , .


HELIOS Light

HELIOS — , .

— . HELIOS , , .

, HELIOS .


▍ Intel RealSense


Intel RealSense . HELIOS . , HELIOS.


Intel RealSense R200. .


Razer Stargazer — Intel RealSense SR300

▍ HTI*


HTI — HELIOS Touch, . , , .


HTI


Razer OSVR Hacker Development Kit — . HELIOS Light , .


Razer OSVR HDK

▍Intel NUC


Intel — HELIOS , .


Intel NUC

. Intel RealSense SDK


Intel RealSense SDK — HELIOS. , , , , , . SDK , .

RealSense UWP ( Windows):

public async void StartRealSenseStreaming()

{

    Status streamingStatus;



    // Set RealSense sample reader and bind SetOcrFrame event

    SampleReader sampleReader = SampleReader.Activate(senseManager);

    sampleReader.SampleArrived += SetOcrFrame;



    // Set RGB stream profile and device info filter

    Dictionary<StreamType, PerceptionVideoProfile> profiles = new Dictionary<StreamType, PerceptionVideoProfile>();

    profiles[StreamType.STREAM_TYPE_COLOR] = ColorProfile;

    sampleReader.EnableStreams(profiles);

    readers.Add(sampleReader);

    if (currentRealSenseDevice != null)

        senseManager.CaptureManager.FilterByDeviceInfo(currentRealSenseDevice.DeviceInfo);



    // Set streaming status message

    if ((streamingStatus = await senseManager.InitAsync()) == Intel.RealSense.Status.STATUS_NO_ERROR)

    {

        if ((streamingStatus = senseManager.StreamFrames()) == Intel.RealSense.Status.STATUS_NO_ERROR)

        {

            StatusMessage = "Streaming started";

        }

        else

        {

            StatusMessage = "Failed to stream: " + streamingStatus.ToString();

        }

    }

    else

    {

        StatusMessage = "Initialization failed: " + streamingStatus.ToString();

    }



    IsStreaming = true;

}



private void SetOcrFrame(Object module, SampleArrivedEventArgs args)

{

    // Setting current frame for OCR processing

    Sample sample = args.Sample;

    if (sample == null) return;



    var localOcrFrame = sample.Color;

    if (localOcrFrame == null) return;



    lock (sample)

    {

        ocrFrame = localOcrFrame.SoftwareBitmap;

    }

}
private async void TextToSpeech()

{

    // setup OCR engine for English

    OcrEngine ocrEngine = OcrEngine.TryCreateFromLanguage(new Language("en"));



    // recognize text from the RealSense OcrFrame

    var ocrResult = await ocrEngine.RecognizeAsync(RealSense.OcrFrame);



    if (!String.IsNullOrEmpty(ocrResult.Text))

    {

        // setup speech synthesizer

        var voice = SpeechSynthesizer.AllVoices;

        using (SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer())

        {

            speechSynthesizer.Voice = voice.First(v => v.Gender == 0);

            var voiceStream = await speechSynthesizer.SynthesizeTextToStreamAsync(ocrResult.Text);



            // setup playback of voice synthesis

            PlaybackVoice(voiceStream);

        }

    }

}



(Mihai Leoveanu) , .

. , — — . .
.


HELIOS


HELIOS

HELIOS. .


. , . HELIOS .

Source: https://habr.com/ru/post/zh-CN399019/


All Articles