Pull to refresh
55
0
Send message

Захват видео с сетевых камер, часть 2

Reading time19 min
Views257K

В первой своей статье «измерение расстояния до объекта и его скорости» я рассмотрел захват изображений с веб-камер через Video4Linux2 и через DirectX. В следующей статье «захват видео с сетевых камер, часть 1» я рассмотрел как работать с сетевыми Motion-JPEG камерами. Сейчас я поведаю Вам о захвате изображений с сетевых RTSP камер, в частности поток Motion-JPEG по RTSP.

Задача эта более сложная нежели Motion-JPEG по HTTP, так как необходимо больше действий, больше подключений, но взамен мы получаем большую гибкость, скорость, функциональность и даже некую универсальность. Честно говоря, RTSP для простых задач избыточен, но я не сомневаюсь, что найдутся ситуации, где он будет необходим.

Приступим
Total votes 64: ↑63 and ↓1+62
Comments39

Рисуем волну .wav-файла

Reading time5 min
Views83K

Некоторое время назад я решил посвятить себя решению экзотической задачи — нарисовать волну wave-файла, как это делают аудио- и видеоредакторы, используя для этого Питон. В результате у меня получился небольшой скрипт, который вполне с этим справляется. Так, картинка выше сгенерирована им из песни «Under Pressure» группы Queen. Для сравнения — вид волны в аудиоредакторе:

Для разбора звука я использовал библиотеку numpy, а для построения графика — matplotlib. Под катом я изложу основы работы с wav-файлами и алгоритм скрипта.
Читать дальше →
Total votes 73: ↑69 and ↓4+65
Comments39

Теория звука. Что нужно знать о звуке, чтобы с ним работать. Опыт Яндекс.Музыки

Reading time14 min
Views215K
Звук, как и цвет, люди воспринимают по-разному. Например, то, что кажется слишком громким или некачественным одним, может быть нормальным для других.

Для работы над Яндекс.Музыкой нам всегда важно помнить о разных тонкостях, которые таит в себе звук. Что такое громкость, как она меняется и от чего зависит? Как работают звуковые фильтры? Какие бывают шумы? Как меняется звук? Как люди его воспринимают.



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

Поводом для этого поста можете считать то, что мы добавили в приложения Яндекс.Музыки возможность слушать треки в высоком качестве (320kbps). А можете не считать. Итак.
Читать дальше →
Total votes 83: ↑78 and ↓5+73
Comments52

Типичные ошибки начинающих работать с изображениями

Reading time13 min
Views62K

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


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


Данная статья описывает наиболее частые ошибки, совершаемые студентами при выполнении практических заданий по обработке изображений. Изображения обычные, никакой экзотики типа 16-битной глубины цвета, панхроматичности и 3D-изображений нет.

Читать дальше →
Total votes 65: ↑62 and ↓3+59
Comments102

Как стать первым в спортивном программировании: Университет ИТМО делится опытом. Часть 2

Reading time8 min
Views13K
Мы продолжаем рассказывать о курсе «How to Win Coding Competitions: Secrets of Champions», который Университет ИТМО запустил на платформе edX в этом году (первую часть материала читайте здесь).

Во второй части нашей беседы с авторами и инструкторами курса — Максимом Буздаловым и Павлом Кротковым, чемпионами ACM ICPC, и Дарьей Яковлевой, призером Google Code Jam for Women, речь пойдет о том, важен ли победителям олимпиад правильный настрой, как развить навык поиска креативных решений и кому будет полезен курс от чемпионов Университета ИТМО.

Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments6

Как стать первым в спортивном программировании: Университет ИТМО делится опытом. Часть 1

Reading time8 min
Views21K
В этом материале мы расскажем о новом курсе, который был запущен Университетом ИТМО на платформе edX в этом году. Под катом – рассказ о проекте «How to Win Coding Competitions: Secrets of Champions» и большое интервью с авторами и инструкторами курса, в котором они рассуждают о том, что должен знать и уметь будущий победитель, и делятся своим опытом и воспоминаниями от участия в олимпиадах по программированию.

Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments12

Чему нас не научил профессор Ng

Reading time6 min
Views33K
Как видно по дискуссиям на хабре, несколько десятков хабровчан прослушали курс ml-class.org Стэнфордского университета, который провел обаятельнейший профессор Andrew Ng. Я тоже с удовольствием прослушал этот курс. К сожалению, из лекций выпала очень интересная тема, заявленная в плане: комбинирование обучения с учителем и обучения без учителя. Как оказалось, профессор Ng опубликовал отличный курс по этой теме — Unsupervised Feature Learning and Deep Learning (спонтанное выделение признаков и глубокое обучение). Предлагаю краткий конспект этого курса, без строгого изложения и обилия формул. В оригинале все это есть.
Читать дальше →
Total votes 61: ↑59 and ↓2+57
Comments36

Метод Виолы-Джонса (Viola-Jones) как основа для распознавания лиц

Reading time15 min
Views184K
Хотя метод был разработан и представлен в 2001 году Полом Виолой и Майклом Джонсом [1, 2], он до сих пор на момент написания моего поста является основополагающим для поиска объектов на изображении в реальном времени [2]. По следам топика хабраюзера Indalo о данном методе, я попытался сам написать программу, которая распознает эмоцию на моём лице, но, к сожалению, не увидел на Хабре недостающей теории и описания работы некоторых алгоритмов, кроме указания их названий. Я решил собрать всё воедино, в одном месте. Сразу скажу, что свою программу успешно написал по данным алгоритмам. Как получилось рассказать о них ниже, решать Вам, уважаемые Хабрачитатели!
Добро пожаловать под кат!
Total votes 123: ↑121 and ↓2+119
Comments17

Таблица виртуальных методов и техника безопасности

Reading time10 min
Views43K
Техника безопасностиВ качестве небольшой разминки перед статьёй хотелось бы, чтобы читатель задал себе следующий вопрос: нужно ли фотографу для получения качественных снимков знать, как работает фотоаппарат? Ну, по крайней мере, должен ли он знать понятие «диафрагма»? «Отношение сигнал-шум»? «Глубина резкости»? Практика подсказывает, что даже со знанием таких сложных слов снимки могут получиться у наиболее «рукастых» не особо лучше снятых на мобильник через 0.3-МПикс-дупло. И наоборот, по-настоящему хорошие снимки могут получаться благодаря исключительно опыту и наитию при полном незнании матчасти (хотя это, скорее, исключения из правил, но всё же). Однако вряд ли со мной кто-то будет спорить, что профессионалам, которые хотят выжать из своей техники всё (а не только количество мегапикселей на квадратный миллиметр матрицы), эти знания нужны в обязательном порядке, поскольку в противном случае ему и называться профессионалом-то нельзя. И верно это не только для отрасли цифровой фотографии, но и для практически любой другой.

Верно это и для программирования, а для программирования на языке С++ – вдвойне. В этой статье будет описано важное понятие языка, известное как «Виртуальный табличный указатель», что присутствует почти во всех сложных классах, и то, каким образом его можно случайно повредить. Это может, в свою очередь, вести к едва поддающимся отладке ошибкам. Сначала напомню, что это вообще такое, а затем и поделюсь своими соображениями по поводу того, как и что может там сломаться.
Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments33

OpenWorm: цифровая модель червя-нематоды в браузере

Reading time2 min
Views41K
Крошечная нематода, или круглый червь Caenorhabditis elegans длиной около миллиметра — один из самых изученных организмов на Земле. Это первый многоклеточный организм, геном которого был полностью секвенирован. У C. elegans два пола — самцы и гермафордиты. Взрослая гермафордитная особь состоит всего из 959 клеток, а её нервная система — из 302 нейронов. Все связи между нейронами C. elegans (коннектом) также полностью описаны. Обилие всесторонней научной информации об этом черве и относительная простота его устройства несколько лет назад вдохновили сотрудников лаборатории моделирования сложных систем института систем информатики имени А. П. Ершова СО РАН создать исчерпывающую компьютерную модель C. elegans.

Со временем проект привлёк несколько десятков участников по всему миру, однако продолжал оставаться малоизвестным и недоступным для широкой публики: не так-то просто разобраться в том обилии исходных данных, касающихся устройства червя, и множестве подсистем модели, написанных на разных языках программирования, не говоря уже о том, чтобы установить и запустить всё это у себя на компьютере. В то же время, C. elegans широко используется при изучении биологии, и возможность «погонять» модель червя, с подробностями и в динамике рассмотреть, как он устроен, трудно переоценить. Поэтому команда проекта решила сделать модель доступной онлайн — чтобы любой желающий смог просто зайти на сайт проекта и заглянуть в «матрицу» в которой обитает виртуальный организм. В этом и заключается суть проекта OpenWorm на Кикстартере.


Читать дальше →
Total votes 65: ↑60 and ↓5+55
Comments23

Строим роботанк с управлением по Wifi, камерой, пушкой, блекджеком и т.д

Reading time5 min
Views86K
image

Всем привет. У меня таки возникло непреодолимое желание поделиться с миром своим достижением. Достижением является танк, который рулится по WiFi с геймпада, транслирует на пульт видео в реальном времени, передает с пульта и на пульт звук, а также имеет пушку с лазерным прицелом, из которой можно в кого-нибудь пострелять.

Этот пост будет первым тестовым, дабы понять, интересно ли такое кому-нибудь, кроме меня. В нем опишу общее строение, используемые технологии и устройства.

UPD: добавлено видео.

Читать дальше →
Total votes 87: ↑82 and ↓5+77
Comments71

Обзор наиболее интересных материалов по анализу данных и машинному обучению №20 (27 октября — 2 ноября 2014)

Reading time4 min
Views13K

Представляю вашему вниманию очередной выпуск обзора наиболее интересных материалов, посвященных теме анализа данных и машинного обучения.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments3

Моделируем электрическую активность нейронов

Reading time9 min
Views78K

Вступление


Сразу сообщу, что данная заметка не имеет отношения к перцептронам, сетям Хопфилда или любым другим искусственным нейронным сетям. Мы будем моделировать работу «настоящей», «живой», биологической нейронной сети, в которой происходят процессы генерации и распространения нервных импульсов. В англоязычной литературе такие сети ввиду их отличия от искусственных нейронных сетей называются spiking neural networks, в русскоязычной же литературе – нет устоявшегося названия. Кто-то называет их просто нейронными сетям, кто-то – импульсными нейронными сетями, а кто-то – спайковыми.
Читать дальше →
Total votes 61: ↑61 and ↓0+61
Comments23

Вечная жизнь: замена мозга другим носителем с сохранением сознания и личности

Reading time6 min
Views131K

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

1. Управляемое бесконечное деление биологической клетки
2. Перенос сознания на другой более отказоустойчивый носитель.

Смысл статьи и последующей дискуссии — исследовать теорию именно по пункту 2, т.к. он подразумевает не копирование личности, когда ваш мозг скопирован в кого-то другого, но при этом вы остаётесь самим собой, а перенос именно вашего мозга на другой носитель, да так, чтобы вы не прекратили своего существования, мыслительного континуума, самоосознания.
Читать дальше →
Total votes 82: ↑60 and ↓22+38
Comments361

Обзор теорий сознания: теория функциональных систем П.К. Анохина

Reading time7 min
Views66K
Множество исследований в области искусственного интеллекта сталкиваются с проблемой отсутствия на сегодняшний момент какой-либо мощной теории сознания и мозговой активности. Фактически мы обладаем достаточно скудными знаниями о том каким образом мозг обучается и достигает адаптивного результата. Однако, на данный момент происходит заметное увеличение взаимовлияния области искусственного интеллекта и нейробиологии. По результатам математического моделирования мозговой активности ставятся новые цели для экспериментов в области нейробиологии и психофизиологии, а экспериментальные данные биологов в свою очередь во многом влияют на вектор развития ИИ.

Исходя из вышесказанного становится ясно, что для будущего успешного развития бионического ИИ необходимо плотное сотрудничество математиков и нейробиологов, которое в итоге будет плодотворным для обеих областей. Для этого в частности необходимо изучение современных успехов теоретической нейробиологии.

На данный момент существуют три наиболее проработанных и отчасти экспериментально проверенных теории строения сознания в области теоретической нейробиологии: теория функциональных систем П.К. Анохина, теория селекции нейрональных групп (нейродарвинизм) Джеральда Эдельмана и теория глобальных информационных пространств Жана-Пьера Шанже (изначально сформулирована Бернардом Баарсом). Остальные теории либо являются модификациями названных, либо не подтверждены никакими экспериментальными данными. В данной статье речь пойдет о первой из этих теорий — Теории функциональных систем П.К. Анохина.
Читать дальше →
Total votes 48: ↑41 and ↓7+34
Comments63

Ускоренное расширение Вселенной: несколько популярных слов

Reading time8 min
Views9K
Некоторая ирония природы состоит в том, что наиболее изобильная форма энергии во Вселенной есть и наиболее загадочная. После ошеломляющего открытия ускоренного расширения Вселенной довольно быстро возникла согласованная картина, указывающая на то, что 2/3 космоса «сделаны» из «темной энергии» — некоторого сорта гравитационно отталкивающего материала. Но достаточно ли убедительны доказательства, подтверждающие новые экзотические законы природы? Может имеются более простые астрофизические объяснения этих результатов?
Читать дальше →
Total votes 182: ↑175 and ↓7+168
Comments76

Пузырьковая сортировка и все-все-все

Reading time5 min
Views627K

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

Практический выхлоп от данных методов не ахти какой и многие хабрапользователи всё это проходили ещё в первом классе. Поэтому статья адресована тем, кто только-только заинтересовался теорией алгоритмов и делает в этом направлении первые шаги.

image: пузырьки

Сделать первый шаг в изучении сортировок
Total votes 116: ↑104 and ↓12+92
Comments35

The Human Brain Project: Вы спрашивали – мы отвечаем

Reading time25 min
Views62K

Источник: Nature

Некоторое время назад на Хабре была опубликована заметка о возможностях 3D SEM-микроскопии применительно к исследованию структуры человеческого мозга в рамках европейского мегапроекта «The Human Brain Project». Под катом мы постарались максимально подробно – а это значит будет много текста – ответить на заданные вопросы, но начнём по традиции с некоторого введения.
Attention! Впереди очень много текста
Добро пожаловать в мир мозга
Total votes 69: ↑65 and ↓4+61
Comments41

Фильтр Блума

Reading time3 min
Views62K
И снова здравствуйте! Сегодня я поведаю о фильтре Блума — структуре данных гениальной в своей простоте. По сути, этот фильтр реализует вероятностное множество всего с двумя операциями: добавление элемента к множеству и проверка принадлежности элемента множеству. Множество вероятностное потому, что последняя операция на вопрос «принадлежит ли этот элемент множеству?» даёт ответ не в форме «да/нет», а в форме «возможно/нет».

Как фильтр это делает?
Total votes 88: ↑85 and ↓3+82
Comments36

Trie, или нагруженное дерево

Reading time4 min
Views100K
Здравствуй, Хабрахабр. Сегодня я хочу рассказать о такой замечательной структуре данных как словарь на нагруженном дереве, известной также как префиксное дерево, или trie.

Что это ?


Нагруженное дерево — структура данных реализующая интерфейс ассоциативного массива, то есть позволяющая хранить пары «ключ-значение». Сразу следует оговорится, что в большинстве случаев ключами выступают строки, однако в качестве ключей можно использовать любые типы данных, представимые как последовательность байт (то есть вообще любые).
Читать дальше →
Total votes 78: ↑73 and ↓5+68
Comments29
1

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Registered
Activity