Спонсор: Intel
Северный (Арктический) федеральный университет им. М.В. Ломоносова
Опубликован: 23.10.2013 | Доступ: свободный | Студентов: 1451 / 463 | Длительность: 09:26:00
Специальности: Программист
Самостоятельная работа 6:

Настройка Intel Perceptual Computing SDK для использования с openFrameworks приложениями

< Лекция 7 || Самостоятельная работа 6: 1234

Работа со средой Processing

Запуск существующего Processing проекта

Это задание покажет как связать работу Intel* Perceptual Computing SDK с проектом созданным для выполнения в среде Processing*. Для выполнения необходим Processing версии 1.5.1 и выше.

Функции SDK предоставляются конвейерным интерфейсом, реализованным классом intel.pcsdk.PXCUPipeline. Конвейер позволяет выполнять RGB захват изображения камеры, отслеживание движения рук и пальцев, распознавание жестов, определение ориентиров и распознавание речи.

Детали описаны в документе sdkmanual-framework.pdf.

Скопируйте проект $(PCSDK_DIR)\framework\Processing из каталога, где установлен Intel* Perceptual Computing SDK в рабочий каталог.

(Переменная окружения $(PCSDK_DIR) определяет каталог, в который была проведена установка SDK).

Для запуска примера необходимо:

  1. Определить местонахождение сцен среды Processing, для чего можно посмотреть запись Sketchbook location в меню File->Preference
  2. Скопировать библиотеку PXCUPipeline (находится в каталоге libraries проекта) в директорию libraries каталога на который указывает Sketchbook location
  3. Открыть helloProcessing.pde с помощью приложения Processing
  4. Запустить пример, нажав кнопку run, выбрав меню Sketch->Run или нажав (Ctrl-R)

Программирование в среде Processing

Разработаем программу, которая:

  1. отображает фигуру (например, круг) в окне Processing;
  2. позволяет с помощью голосовых команд: "upstairs", "down", "right", "left" создавать копию фигуры в соответствующем направлении.

Перед тем, как начать программировать в среде Processing с использованием возможностей Intel* Perceptual Computing SDK необходимо убедиться, что в папке на которую указывает Sketchbook location есть директория libraries, а в ней есть библиотека PXCUPipeline. Если библиотеки там нет, необходимо ее скопировать из каталога: $(PCSDK_DIR)\framework\Processing\libraries.

Для реализации возможности взаимодействия с Intel* Perceptual Computing SDK подключим библиотеку PXCUPipeline:

import intel.pcsdk.*;

Объявим необходимые переменные:

PXCUPipeline session;
String[] commands={"upstairs","down","left","right"};
int centerX, centerY, radius;

Функция setup() вызывается в самом начале жизненного цикла приложения, до появления окна программы, в этой функции обычно задаются все необходимые начальные значения и запускается функция Init() для инициализации конвейера.

void setup() {
  size(640, 480); //размер окна
  centerX=150;    // координата х центра окружности
  centerY= 25;    // координата y центра окружности
  radius = 25;    // радиус окружности
  session = new PXCUPipeline(this); // создание сессии

  // запуск метода Init, инициализация конвейра распознавания речи
  if (!session.Init(PXCUPipeline.VOICE_RECOGNITION)) {
    print("Failed to initialize PXCUPipeline\n");
    exit();
  }
  session.SetVoiceCommands(commands); // задание списка команд 
}

В функции setup() заданы первоначальные размеры окна, положение и размер окружности. Создана сессия и инициализирован конвейер распознавания речи, в случае ошибки выдается сообщение и работа приложения останавливается. Так как в приложении реализован режим голосового управления, необходимо задать список команд, что и сделано в конце функции setup().

В функции draw() происходит распознавание голосовых команд и выполнение соответствующих действий

void draw()
{
   ellipse(centerX, centerY, radius, radius);
    if(session.AcquireFrame(true))
  {
    PXCMVoiceRecognition.Recognition recoData = 
                                    new PXCMVoiceRecognition.Recognition();
    if(session.QueryVoiceRecognized(recoData))
      {
        if (recoData.label == 0) {centerY-=50; print(recoData.dictation); } 
        if (recoData.label == 1) {centerY+=50; print(recoData.dictation); } 
        if (recoData.label == 2) {centerX-=50; print(recoData.dictation); } 
        if (recoData.label == 3) {centerX+=50; print(recoData.dictation); } 
      }   
    session.ReleaseFrame();
  }
}

После объединения всех частей кода, представленных выше, получим Processing* приложение. Необходимо сохранить это приложение и запустить на исполнение. Окно среды разработки Processing и код программы представлены на рис. 13.10.

Среда разработки Processing и программа голосового управления движением окружности  по окну приложения

увеличить изображение
Рис. 13.10. Среда разработки Processing и программа голосового управления движением окружности по окну приложения

Сразу после запуска разработанной программы появится окно, представленное на рис. 13.11.

Окно приложения голосового управления движением окружности сразу после запуска

увеличить изображение
Рис. 13.11. Окно приложения голосового управления движением окружности сразу после запуска
Окно приложения голосового управления движением окружности после выполнения нескольких команд

увеличить изображение
Рис. 13.12. Окно приложения голосового управления движением окружности после выполнения нескольких команд

Для ознакомления с основами работы в Processing с нуля хорошо подходит tutorial, размещенный по ссылке: http://processing.org/tutorials/

Набор простых примеров, демонстрирующих возможности Intel Perceptual Computing SDK и взаимодействие с игровыми процессорами и наборами базовых средств разработки: https://github.com/IntelPerceptual/

< Лекция 7 || Самостоятельная работа 6: 1234
Гульзия Калымова
Гульзия Калымова
Александр Радченко
Александр Радченко