Человек без половины головы. Жизнь без мозга
В этой статье мы покажем, как работают технологии распознавания образов на Эльбрус-4С и на новом Эльбрус-8С: рассмотрим несколько задач машинного зрения, немного расскажем об алгоритмах их решения, приведем результаты бенчмаркинга и наконец покажем видео.
Эльбрус-8С - новый 8-ядерный процессор МЦСТ с VLIW-архитектурой. Мы тестировали инженерный образец с частотой 1.3 ГГц. Возможно, в серийном выпуске она еще возрастет.
Приведем сравнение характеристик Эльбрус-4С и Эльбрус-8С.
Эльбрус-4С | Эльбрус-8С | |
---|---|---|
Тактовая частота, МГц | 800 | 1300 |
Число ядер | 4 | 8 |
Число операций за такт (на ядро) | до 23 | до 25 |
L1 кэш, на ядро | 64 Кб | 64 Кб |
L2 кэш, на ядро | 2 Мб | 512 Кб |
L3 кэш, общая | - | 16 Мб |
Организация оперативной памяти | До 3 каналов DDR3-1600 ECC | До 4 каналов DDR3-1600 ECC |
Технологический процесс | 65 нм | 28 нм |
Количество транзисторов | 986 млн. | 2730 млн. |
Ширина SIMD инструкции | 64 бита | 64 бита |
Поддержка многопроцессорных систем | до 4 процессоров | до 4 процессоров |
Год начала производства | 2014 | 2016 |
Операционная система | ОС “Эльбрус” 3.0-rc27 | ОС “Эльбрус” 3.0-rc26 |
Версия компилятора lcc | 1.21.18 | 1.21.14 |
В Эльбрус-8С более чем в полтора раза повысились тактовая частота, вдвое увеличилось число ядер, а также произошло усовершенствование самой архитектуры.
Так, например, Эльбрус-8С может исполнять до 25 инструкций за 1 такт без учета SIMD (против 23 у Эльбрус-4С).
Важно : нами не проводилось никакой специальной оптимизации под Эльбрус-8С. Была задействована библиотека EML, однако объем оптимизаций под Эльбрус в наших проектах сейчас явно меньше, чем под другие архитектуры: там он постепенно наращивался в течение нескольких лет, а платформой Эльбрус мы занимаемся не так давно и не столь активно. Основные времязатратные функции, конечно же, были оптимизированы, но вот до остальных пока не дошли руки.
Распознавание паспорта РФ
Разумеется, начать освоение новой для нас платформы мы решили с запуска нашего продукта Smart IDReader 1.6 , предоставляющего возможности по распознавания паспортов, водительский прав, банковских карт и других документов. Необходимо отметить, что стандартная версия этого приложения может эффективно задействовать не более 4 потоков при распознавании одного документа. Для мобильных устройств этого более чем достаточно, а вот при бенчмаркинге десктоп-процессоров это может приводить к занижению оценок производительности многоядерных систем.
Предоставленная нам версия ОС Эльбрус и компилятора lcc не потребовали никаких специальных изменений в исходном коде и мы без каких-либо трудностей собрали наш проект. Отметим, что в новой версии появилась полная поддержка С++11 (она также появилась и в свежих версиях lcc для Эльбрус-4С), что не может не радовать.
Для начала мы решили проверить, как работает распознавание паспорта РФ, о котором мы уже писали , на Эльбрус-8С. Мы провели тестирование в двух режимах: поиск и распознавание паспорта на отдельном кадре (anywhere-режим) и на видеоролике, снятом с веб-камеры (webcam-режим). В anywhere режиме распознавание разворота паспорта выполняется на одном кадре, причем паспорт может находиться в любой части кадра и быть произвольным образом ориентированным. В режиме webcam выполняется распознавание только страницы паспорта с фото, причем обрабатывается серия кадров. При этом предполагается, что строки паспорта горизонтальны и паспорт слабо смещается между кадрами. Полученная с разных кадров информация интегрируется для повышения качества распознавания.
Для тестирования мы взяли по 1000 изображений для каждого из режимов и замеряли среднее время работы распознавания (т.е. время без учета загрузки картинки) при запуске в 1 поток и запуске с распараллеливанием. Полученное время работы приведено ниже в таблице.
Результаты для однопоточного режима вполне соответствуют ожидаемым: помимо ускорения за счет повышения частоты (а кратность частот 4С и 8С равна 1300 / 800 = 1.625), заметно небольшое ускорение за счет усовершенствования архитектуры.
В случае запуска на максимальном числе потоков ускорение для обоих режимов составило 1.7. Казалось бы, число ядер в Эльбрус-8С вдвое больше, чем в 4С. Так где же ускорение за счет дополнительных 4 ядер? Дело в том, что наш алгоритм распознавания активно задействует только 4 потока и слабо масштабируется дальше, поэтому прирост производительности совсем незначительный.
Далее мы решили добиться полной загрузки всех ядер обоих процессоров и запустили несколько процессов распознавания паспорта. Каждый вызов распознавания был распараллелен так же, как и в предыдущем эксперименте, однако здесь время обработки паспорта включало загрузку изображения из файла. Замеры времени выполнялись на все той же тысяче паспортов. Результаты при полной загрузке Эльбрусов приведены ниже:
Для anywhere-режима полученное ускорение приблизилось к ожидаемому ускорению в ~3.6 раза, не дотянув до него из-за того, что мы учитывали время загрузки картинки из файла. В случае с webcam-режимом влияние времени загрузки еще больше и поэтому ускорение получилось более скромным - 2.5 раза.
Детекция автомобилей
Детекция объектов заданного типа - одна из классических задач технического зрения. Это может быть детекция лиц, людей, оставленных предметов или любого другого типа объектов, обладающих явными отличительными признаками.
Для нашего примера мы решили взять задачу детекции автомобилей, движущихся в попутном направлении. Подобный детектор может использоваться в системах автоматического управления транспортными средствами, в системах распознавания автомобильных номеров и т.д. Не долго думая, мы отсняли видео для обучения и тестирования с помощью авторегистратора неподалеку от нашего офиса. В качестве детектора мы использовали каскадный классификатор Виолы-Джонса . Дополнительно мы применили экспоненциальное сглаживание положений найденных автомобилей для тех из них, которые мы наблюдаем несколько кадров подряд. Стоит отметить, что детектирование выполняется только в прямоугольнике ROI (region of interest), который занимает не весь кадр, поскольку малоосмысленно пытаться детектировать внутренности нашего автомобиля, а также машины, не полностью попадающие в кадр.
Таким образом, наш алгоритм состоял из следующих шагов:
- Вырезание прямоугольника ROI по центру кадра.
- Преобразование цветного изображения ROI в серое.
- Предпосчет признаков Виолы-Джонса.
На этом этапе изображение подвергается масштабированию, строятся карты вспомогательных признаков (например, направленных границ), а также вычисляются кумулятивные суммы по всем признакам для быстрого подсчета хааровских вэйвлетов. - Запуск классификатора Виолы-Джонса на множестве окон.
Здесь с некоторым шагом перебираются прямоугольные окна, на которых запускается классификатор. Если классификатор выдал положительный ответ, то произошла детекция объекта, т.е. изображение внутри окна соответствует автомобилю. В этом случае выполняется уточнение области изображения, в которой находится объект: в окрестности первичной детекции выделяются окна того же размера, но с меньшим шагом и также подаются на вход классификатора. Все найденные объекты сохраняются для дальнейшей обработки. Данная процедура повторяется для нескольких масштабов входного изображения.
Этот этап собственно и составляет основную вычислительную сложность задачи и распараллеливание было произведено именно для него. Мы использовали библиотеку tbb для автоматического выбора эффективного числа потоков. - Обработка массива детекций, полученного после применения детектора. Поскольку ряд полученных детекций могут быть очень близкими и отвечать одному и тому же объекту, мы объединяем детекции, имеющие достаточно большую площадь пересечения. В результате получаем массив прямоугольников, которые указывают положение обнаруженных автомобилей.
- Сопоставление детекций на предыдущем и текущем кадрах. Мы считаем, что был задетектирован один и тот же объект, если площадь пересечения прямоугольников составляет больше половины от площади текущего прямоугольника. Выполняем сглаживание положения объекта по формулам:
x i = x i + (1-α)x i -1
y i = y i + (1-α)y i -1
w i = w i + (1-α)w i -1
h i = h i + (1-α)h i -1
где (x , y )--- координаты верхнего левого угла прямоугольника, w и h - его ширина и высота соответственно, а α - постоянный коэффициент, подобранный экспериментально.
Здесь и далее для оценки fps (frame per second) использовалось среднее время работы по 10 запускам программы. При этом учитывалось только время обработки изображений, поскольку сейчас мы работали с записанным роликом, и изображения просто загружались из файла, а в реальной системе они могут, например, поступать с камеры. Оказалось, что детекция работает с весьма приличной скоростью, выдавая 15.5 fps на Эльбрус-4С и 35.6 fps на Эльбрус-8С. На Эльбрус-8С загрузка процессора оказывается далеко не полной, хотя в пике задействованы все ядра. Очевидно, это связано с тем, что не все вычисления в этой задаче были распараллелены. Например, перед применения детектора Виолы-Джонса мы выполняем достаточно тяжеловесные вспомогательные преобразования каждого кадра, а эта часть системы работает последовательно.
Теперь пришло время демонстрации. Интерфейс приложения и отрисовка выполнены с помощью стандартных средств Qt5. Никакой дополнительной оптимизации не проводилось.
Эльбрус-4С
Эльбрус-8С
Визуальная локализация
В этом приложении мы решили продемонстрировать визуальную локализацию на основе особых точек. Использовав панорамы Google Street View с GPS-привязкой, мы научили нашу систему узнавать местонахождение камеры без использования данных о её GPS-координатах или другой внешней информации. Такая система может использоваться для беспилотников и роботов в качестве резервной системы навигации, для уточнения текущего местоположения или для работы в системах без GPS.
Сначала мы обработали базу панорам с GPS-координатами. Мы взяли 660 изображений, покрывающих приблизительно 0.4 км^2 московских улиц:
Затем мы создали описание изображений с помощью особых точек. Для каждого изображения мы:
- Нашли особые точки для 3 масштабов кадра (сам кадр, уменьшенный в 4/3 раза кадр и уменьшенный вдвое кадр) алгоритмом YAPE (Yet Another Point Detector) и посчитали для них RFD-дескрипторы .
- Сохранили его координаты, набор особых точек, их дескрипторы. Поскольку затем мы будем сравнивать дескрипторы особых точек текущего кадра со значениями дескрипторов из нашей базы, удобно хранить дескрипторы в дереве, используя расстояние Хэмминга в качестве метрики. Общий размер сохраненных данных оказался чуть больше 15 Мб.
На этом приготовления закончены, теперь перейдем к тому, что происходит непосредственно во время работы программы:
- Преобразование цветного изображения в серое.
- Выполнение автоконтраста.
- Поиск особых точек для трех масштабов кадра (также с коэффициентами 1, 0.75 и 0.5) с помощью алгоритма YAPE и подсчет для них RFD-дескрипторов. Эти алгоритмы частично распараллелены, однако довольно большая часть вычислений осталась последовательной. Кроме того, они пока не оптимизировались под платформу Эльбрус.
- Для полученного набора дескрипторов выполняется поиск похожих дескрипторов среди сохраненных в дереве, и происходит определение несколько наиболее похожих кадров. Для различных дескрипторов поиск в дереве распараллелен с помощью tbb. При этом для первых 5 кадров видео мы выбираем 10 ближайших кадров, а затем берем только 5 кадров.
- Выбранные кадры проходят дополнительную фильтрацию, чтобы убрать “выбросы”, ведь траектория транспортного средства обычно непрерывна.
Входные данные: последовательность цветных кадров размера 800х600 пикселей.
Такая система выдает 3.0 fps на Эльбрус-4С и 7.2 fps на Эльбрус-8С.
Покажем, как же оно работает:
Эльбрус-4С
Эльбрус-8С
Заключение
Для удобства основные характеристики Эльбрусов и полученные результаты по нашим программам собраны в таблице:
Результаты для распознавания паспорта получились довольно скромные, поскольку наше приложение в своем текущем виде не может эффективно задействовать более 4 потоков. Похожая ситуация с детекцией автомобилей и визуальной локацией: алгоритмы имеют нераспараллеленные участки, поэтому не приходится ожидать линейного масштабирования при росте числа ядер. Однако там, где нет ограничений на загрузку приложениями всех ядер процессора, мы наблюдаем рост в 3.2 раза, это близко к теоретическому пределу в 3.6 раз. В среднем разница производительности между поколениями процессоров МЦСТ на нашем наборе задач составляет порядка 2-3 раз, и это очень радует. Только за счёт увеличения частоты и совершенствования архитектуры мы наблюдаем выигрыш более чем в 1.7 раза. МЦСТ быстро нагоняет Intel с ее стратегией в добавлении 5% в год.
В процессе тестов под полной нагрузкой мы не испытывали проблем с зависаниями и падениями, что говорит о зрелости процессорной архитектуры. Подход VLIW, развиваемый в Эльбрусах-8С, позволяет добиваться работы в реальном времени различных алгоритмов компьютерного зрения, а библиотека EML содержит весьма солидный набор математических функций, которые позволяют экономить время тем, кто не собирается оптимизировать код сам. В заключение мы провели еще один эксперимент, запустив сразу 3 демонстрации (локализацию, поиск машин и поиск лиц) на одном процессоре Эльбрус-8С и получив среднюю загрузку процессора около 80%. Тут уж без комментариев.
Хотим сказать большое спасибо компании и сотрудникам МЦСТ и ИНЭУМ Брука за возможность попробовать Эльбрус-8С и поздравить их - восьмерка более чем достойный процессор и пожелать им успехов!
Какой орган самый важный у человека? Практически каждый, не задумываясь, ответит, что речь идет о мозге. Все мы знаем, что нервная система контролирует все процессы в организме. Как вы отреагируете на сообщение о том, что живущий в наши дни американец Карлос Родригес - человек без мозга в самом прямом физиологическом смысле?
Необычное задержание
В 2010 году американские полицейские задержали не совсем обычного человека. Подозреваемому были выдвинуты обвинения в ограблении, хранении наркотиков и занятии проституцией. Задержанный Карлос Родригес вел себя в полицейском участке адекватно, он послушно сфотографировался, оставил отпечатки пальцев и начал заполнять стандартную анкету. Проблемы возникли, когда пустой осталась строчка «особые приметы». Все дело в том, Карлос Родригес - «человек без мозга», именно так его окрестили средства массовой информации. У этого парня отсутствует лоб, а соответственно, и лобные доли, а вместе с ними - значительный фрагмент черепа.
Карлос Родригес - человек без мозга. Что с ним случилось, как он стал таким?
От рождения этот парень был совершенно нормальным и ничем по физическим показателям кардинально не отличался от сверстников. В подростковом возрасте Карлос связался с плохой компанией и начал употреблять алкоголь и наркотики. Трагедия, изменившая его жизнь, произошла, когда ему было 14 лет. Находясь в состоянии алкогольного и наркотического опьянения, Карлос угнал автомобиль и попал в аварию. Во время столкновения подросток вылетел через лобовое стекло и ударился головой об асфальт. Врачам удалось спасти ему жизнь, но значительный фрагмент черепа и головного мозга пришлось удалить.
Травмы мозга не всегда смертельны
Примечательный факт - после всех операций и периода реабилитации пациент, лишившийся значительно части головного мозга, ничуть не изменился. Он сохранил все воспоминания и умственные способности. Несмотря на то что Карлос Родригес - «человек без мозга» (фото в статье это четко демонстрирует), он продолжает улыбаться, способен поддержать разговор на различные темы, быстро и уместно отвечает на поставленные вопросы. У ученых на сегодняшний день нет точного объяснения тому, как можно прожить без головного мозга и сохранить большую часть умственных функций. Популярна в научных кругах гипотеза о том, что частично заменяют традиционный орган мышления нервные окончания, находящиеся в брюшном отделе.
Можно ли прожить без мозга?
Стоит отметить, что Карлос Родригес прославился непосредственно после своего ареста в 2010 году, именно тогда его фотографии появились в Интернете. Долгое время общественность спорила: реальное это фото или монтаж. Но на самом деле с такой патологией живет не только Карлос Родригес. «Человек без мозга» есть также в Китае. Это мальчик Хо Гочжу, родившийся в 2000 году. В 6 лет ему поставили страшный диагноз, означающий воспалительное заболевание головного мозга. Для того чтобы спасти ребенка, врачам пришлось удалить всю правую часть мозга, а также фрагмент черепа. Некоторое время Хо Гочжу был похож на Карлоса Родригеса, но было принято решение сделать пластическую операцию и вернуть мальчику нормальную внешность. Для решения этой задачи изготовили пластину из титана. Операция по ее установке прошла успешно, и сегодня Хо Гочжу ничем внешне не отличается от своих сверстников.
Чем же занимается Карлос Родригес - человек без мозга, известный на весь мир? Сегодня он записывает видеообращения, основная цель которых - подтвердить реальность его личности и имеющихся физиологических особенностей. В своих роликах он призывает молодежь к отказу от вредных привычек и осторожности. Карлос утверждает, что произошедшая в его жизни трагедия многому его научила. Однако, несмотря на этот факт, разнообразные источники утверждают, что курить марихуану человек без половины мозга не прекратил.
Американский преступник Карлос Родригес, который прославился на весь мир тем, что потерял половину черепа и мозга, впервые рассказал о своей ужасающей травме и призвал не употреблять наркотики.
26-летний Карлос Родригес, который после трагического случая получил кличку «Половинный» (Halfy), признался, что лишился половины головы в результате ДТП, так как вел машину в состоянии алкогольного и наркотического опьянения.
Видео под катом …
Еще в 2010 полиция арестовала такого необычного человека по подозрению в занятии проституцией, хранении марихуаной и ограблении.
Причем 25-летний Карлос Родригес оказался типичным по поведению закононарушителем, и с ним не возникло у полицейских никаких проблем ни при аресте, ни при заполнении документов и проведении формальностей в участке — он назвал свое имя, послушно сфотографировался и оставил отпечатки пальцев, но все же трудности появились тогда, когда следователю надо было заполнить графу «особые приметы».
У подозреваемого не оказалось лба, и очевидно большей части мозга, но как же об этом написать?!
На фото, особенно в профиль, вы увидите, о чем идет речь, и поймете, в какое затруднительное положение был поставлен полицейский, который в итоге написал «половина головы», хотя конечно же это далеко не медицинский термин, но точнее описать заключенного он не смог.
Фото задержанного Карлоса Родригеса сразу же попали в интернет, когда были выложены на сайте СИЗО Miami-Dade County, на многих сайтах разгорелась дискуссия и появился шквал гипотез по поводу их аутентичности.
Однако о том, что они не поддельные говорит тот факт, что они первый раз появились именно на сайте Miami-Dade County. При этом пресс-секретарь из СИЗО Майами-Дейд сказала, что видела лично подозреваемого, когда его привезли в полицейский участок.
При этом американец, которого также называют просто Соса, подчеркнул, что вынес из своей трагедии урок, что нельзя садиться за руль после того, как выпил или употребил наркотики. В тоже время, как видно на видео, Родригес, получив несколько лет заключения условно, продолжает курить марихуану, в то время, как ему запрещено употреблять любые наркотики.
Тогда Карлосу было всего 14 лет, как пишет немецкий таблоид Bild, и врачам удалось спасти сорванца, который украл машину, на которой и угодил в столь судьбоносную для него аварию.
Карлос Родригес попал в автомобильную аварию, в результате чего вылетел из машины через переднее стекло и приземлился головой об асфальт. Срочная медицинская помощь спасла Карлосу Родригесу жизнь, но он теперь вынужден жить без лобных долей головного мозга.
Карлос Родригес нисколько об этом и не жалеет, продолжает веселиться и радоваться жизни. По правде сказать, мозги Карлосу и до аварии не очень были нужны: он увлекался марихуаной, вёл преступную жизнь и автомобилем на высокой скорости рулил в состоянии наркотического опьянения.
Удивительно и то, что Карлос Родригес — вовсе не единственный человек, которому удалось выжить с половиной головы, нескольким британцам по разными причинам также пришлось пройти через подобный ужас, получив сильнейшую травму головы, и выжить.
Увидеть столь необычного Карлоса можно и на видео:
Вот еще необычный пример половины головы:
Хо Гочжу (Hou Guozhu) родился в китайской провинции Шаньдун в 2000 году и рос вполне здоровым мальчиком как и его брат-близнец. Однако, к 3 годам у него начались периодические судороги левых конечностей. Родители Хо объездили с ним все местные больницы, но нигде не смогли им помочь. В 2006 году отец отвёз мальчика в Пекинский Институт Мозга Санбо (Sanbo Brain Institute), где ему поставили диагноз - энцефалит Расмуссена - редкое воспалительное заболевание мозга.
Хо перенёс 4 операции, в ходе которых было полностью удалено правое полушарие головного мозга, а впоследствии - и правая часть черепа. Лечение стоило колоссальных для обычной китайской семьи денег и семье пришлось распродать практически всё своё имущество включая дом, однако денег всё равно не хватило. Тогда отец обратился к СМИ, в которых история про «мальчика с половиной мозга» (как его сразу же окрестили люди) и его бедном отце моментально облетела Китай и остальной мир. Посильную помощь оказал даже Ю Джэнхуань - самый волосатый человек в Китае . На собранные пожертвования Хо смог продолжить лечиться ещё в течение трёх лет.
В 2011 году Хо была сделана косметическая операция, в ходе которой ему была имплантирована пластина из титанового сплава, закрывающая правую сторону черепа и придающая голове обычный вид. По-видимому, у семьи Гочжу самое страшное позади - в медицинской истории есть примеры, когда дети только с одним полушарием мозга нормально росли и развивались с минимальными отклонениями в умственной и физической деятельности.