77214

Cоздание дискретизирующего фильтра для обработки электроокулограмм. Обеспечение работы и настройки фильтра в режиме реального времени

Курсовая

Коммуникация, связь, радиоэлектроника и цифровые приборы

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

Русский

2015-02-02

512 KB

1 чел.

PAGE  9

Кафедра системного программирования

математико-механического факультета СПбГУ

Научный руководитель: Дмитрий Романович Белов,

доцент биолого-почвенного факультета СПбГУ, преподаватель.

Медведев Алексей Михайлович, 445 группа

Курсовая работа на тему:

«Cоздание дискретизирующего фильтра

для обработки электроокулограмм.

Обеспечение работы и настройки фильтра в режиме реального времени»

Санкт-Петербург

2009 г

1. Введение

В рамках научных исследований движений глаз человека сотрудниками биолого-почвенного факультета СПбГУ проводились эксперименты, в ходе которых на коже вокруг глаз человека закреплялось 4 электрода, с помощью которых снимались броски потенциала, возникающие на коже вокруг глаз при движениях глазного яблока (рис. 1).

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

Рис. 1. Расположение электродов на лице испытуемого

для снятия электроокулограмм

Расположение электродов было организованно таким образом, что отслеживание движений каждого из глаз осуществлялось двумя электродами.

Сигналы, снимаемые с кожи вокруг глаз каждым из электродов, фиксировались в виде графиков зависимости от времени изменения разности потенциалов на коже вокруг глаз по горизонтальным и вертикальным составляющим для каждого из глазных яблок (такие графики называются электроокулограммами или коротко ЭОГ). Участок одной из таких электроокулограмм показан на рис. 2.

Рис. 2. Примеры отражения саккадических движений на ЭОГ

Каждое из характерных движений глазного яблока, а именно, движения вправо, влево, движения глаза при самопроизвольном или сознательном моргании, отражается на графиках ЭОГ в виде особой комбинации скачков (на рис. 2 на графике отдельно отмечен участок, соответствующий самопроизвольному морганию). На этом основании был сделан вывод, что при должной обработке полученных сигналов возможно создание некоторого программного продукта, автоматически восстанавливающего и классифицирующего движения глаз человека по результатам показаний электродов на его лице. Однако задача создания такого продукта представлялась довольно сложной, ибо для осуществления вышеупомянутого выделения и классификации глазных движений требовались достаточно тонкие в настройке и эффективные фильтры сигналов.

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

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

2. Постановка задачи

Несмотря на перечисленные трудности, сотрудниками биолого-почвенного факультета СПбГУ было принято решение о разработке описанного выше проекта управления компьютером без участия мыши на основе указанной методики распознавания движений глаз человека. Для программирования фильтров обработки получаемых с электродов электроокулограмм были привлечены студенты кафедры системного программирования математико-механического факультета СПбГУ.

Центральной частью данной работы была выбрана разработка дискретизирующего фильтра на основе «детектора ступеней» для комплексной обработки четверки сигналов ЭОГ. На вход такого фильтра должны поступать четыре сигнала ЭОГ, подвергнутые мягкой цифровой фильтрации при помощи динамического сглаживающего экспоненциального фильтра, в виде четырех массивов значений функции, описывающей зависимости величин бросков разности потенциалов от времени. Обработанные экспоненциальным фильтром графики ЭОГ показаны на рис. 3.

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

Рис. 3. Результат работы экспоненциального фильтра Колодяжного

В качестве важнейшего требования к фильтру была предъявлена необходимость работы алгоритма фильтра в режиме реального времени, то есть по ходу формирования ЭОГ и фильтрации ее экспоненциальным фильтром (который также отрабатывает «на ходу»). Далее, отфильтрованные таким образом сигналы должны были анализироваться следующим узлом системы на предмет взаимного расположения ступеней в рамках каждого ненулевого участка графиков. После этого на основе полученных результатов в режиме реального времени оставалось устанавливать амплитуду и направление движения глазных яблок испытуемого, классифицировать эти данные и направлять в нужную сторону курсор или запускать обработку события моргания.


3. Описание работы алгоритма

В основе алгоритма фильтра лежит механизм последовательного анализа значений бросков разности потенциалов с разбиением всего графика ЭОГ на участки и их классификацией по нескольким группам для дальнейшей обработки. Основными группами являются: участок затухания сигнала (в этом случае осуществляется сведение значений функции к нулю), участок роста или убывания (рост и убывание характеризуют броски взгляда в ту или иную сторону в горизонтальной или вертикальной плоскости; в этом случае организуется приведение графика к монотонно-ступенчатому виду), участок появления нового импульса (такой участок символизирует о вероятном последующем участке роста или убывания, поэтому на этом этапе производится подготовительная работа). Классификация по группам осуществляется на основе анализа предыдущих и текущего значений. Приведение графика к монотонно-ступенчатому виду осуществляется с помощью циклического буфера, в котором агрегируются значения до обработки на предыдущих моментах времени, что позволяет в нужный момент (это происходит как раз на этапе появления нового импульса) засечь начало ступени (высота текущей ступени будет равна текущему значению) и определенному настройками числу следующих точек графика придавать это значение (именно эта настройка регулирует длину ступени). В том случае, если в рамках одного участка роста или убывания сведение значений функции к величине высоты текущей ступени должно быть завершено по причине достижения этой ступенью ограничения по длине, засекается начало новой ступени. Работа над этим алгоритмом велась совместно с Храмцовой Еленой (математико-механический факультет СПбГУ, 445 группа). При таком подходе скорость роста монотонно-ступенчатой функции действительно зависит от величины броска разности потенциалов, а экстремум на соответствующем участке – от амплитуды движения глазных яблок. (Сами параметры величины броска потенциалов и амплитуды движения глазных яблок, очевидно, определяют вид исходных графиков ЭОГ).

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

Отдельная работа была проведена по разработке механизма сохранения амплитуды возмущений исходных графиков после фильтрации. Эффект нежелательного уменьшения исходной амплитуды наблюдался в том случае, когда в момент сведения значений к высоте текущей ступени происходил переход к затуханию, который приводил к сбросу следующих значений на ноль, включая и то, что определяло экстремум на всем участке возмущения. Эта работа велась Храмцовой Еленой.

Кроме того, был разработан механизм для изменения параметров фильтра (прежде всего длины ступеней) в режиме онлайн, то есть по ходу работы фильтра.

4. Полученные результаты

В конечном итоге был разработан прототип на платформе Borland C++ Builder 6, удовлетворяющий поставленным требованиям, участок результата работы которого представлен на рис. 4.

 

Рис. 4. Результат работы дискретизирующего фильтра

В качестве недостатков работы описанного фильтра можно выделить не всегда точное срабатывание механизма классификации участков по группам, в результате чего иногда может происходить срабатывание режима затухания импульса в момент его реального нарастания. Этот эффект наблюдается в том случае, когда рост или убывание являются очень пологими, что в ряде случаев может привести к ложному решению алгоритма о начале момента затухания. На рис. 4 зафиксирован один из таких моментов на третьем сверху графике. Стоит отметить, что с описанным эффектом можно бороться как на уровне модернизации самого алгоритма фильтра, так и на уровне интеллектуального отрабатывания следующего узла системы, восстанавливающего движения глаз, который мог бы не фиксировать падения на ноль возмущения в таких случаях.

На данном этапе ведется разработка узлов системы, отвечающих за распознавание движений глаз человека на основе работы дискретизирующего фильтра, а также создание общего интерфейса программного проекта, позволившего бы в конечном итоге получить продукт, обеспечивающий комплексную работу всех компонентов и предоставляющий человеку возможность освободить свои руки от манипуляции мышью при управлении компьютером.


 

А также другие работы, которые могут Вас заинтересовать

69692. Локальні і глобальні змінні 53.5 KB
  Локальні змінні доступні тільки у функції а глобальні доступні у всій програмі. Локальні і глобальні змінні Змінні i і g глобальні вони доступні у всій програмі. Для передачі глобальних змінних у функцію використовується інструкція...
69693. Рекурсія 23 KB
  Механізм рекурсії одночасно дуже корисний, але і дуже небезпечний. При створенні рекурсивних функцій потрібно бути особливо уважним, щоб уникнути зациклення. Наступна функція викличе зациклення...
69694. Принцип роботи механізму Cookies 141.5 KB
  Чому небезпечно зберігати пароль в Cookies Отримавши від сервера Cookie-змінну браузер зберігає її на диску у відкритому вигляді тобто не кодуючи її. Крім того в деяких браузерах Cookies взагалі зберігаються в звичайному текстовому файлі а деякі навіть дозволяють проглянути їх.
69695. ТАБЛИЦІ 462.5 KB
  Мета: навчитись представляти інформацію у HTML-документі у вигляді таблиць. Табличні теги мови HTML дозволяють подавати дані у зручній для сприйняття формі. Основним структурним елементом таблиці є комірка, яка містить елемент даних таблиці або заголовок стовпчика даних.
69696. Отримання частини масиву 48.5 KB
  Дана функція повертає частину вказаного масиву, починаючи з вказаного зсуву від початку масиву. Вибірка елементів здійснюється підряд. Довжина результуючого масиву задається параметром Довжина, який є необов’язковим. Якщо цей параметр не вказаний, то вибірка елементів здійснюється до кінця початкового масиву.
69697. Змінні і масиви. Взаємні переходи 68 KB
  Упаковка змінних в масив. Функція compact() Функція compact() «упаковує» змінні і їх значення в масив. В результаті виходить асоціативний масив, ключами якого є імена, змінних, а значеннями елементів — значення змінних.
69699. СТИЛІ 127 KB
  Стиль HTML - це набір характеристик шрифту, символів і абзацу, застосовуваних до певної частини документа. Застосування стилів дозволяє уникнути необхідності додавання до HTML нових тегів форматування, оскільки нові команди форматування можуть включатись у стиль, а не у HTML-файл.
69700. Групування записів 25 KB
  Оператор SELECT дозволяє групувати значення, що повертаються. Наприклад, клієнт Іванов (C_NO=l) кілька разів замовляв у нас якийсь товар. Означає його номер зустрічається в таблиці ORDERS кілька разів. Інший клієнт також міг зробити декілька замовлень.