Pull to refresh
Александр @Almetread⁠-⁠only

Пользователь

Send message

Делаем детектор движения, или OpenCV — это просто

Reading time11 min
Views114K
Надо оправдывать название компании — заняться хоть чем-то, что связано с видео. По предыдущему топику можно понять, что мы не только чайник делаем, но и пилим «умное освещение» для умного дома. На этой недели я был занят тем, что ковырял OpenCV — это набор алгоритмов и библиотек для работы с компьютерным зрением. Поиск обьектов на изображениях, распознание символов и все такое прочее.

На самом деле что-то в ней сделать — не такая сложная задача, даже для не-программиста. Вот я и расскажу, как.
Читать дальше →
Total votes 45: ↑42 and ↓3+39
Comments7

Знакомство с Arduino

Reading time4 min
Views78K

Введение


Торжественно открываю новый блог на Хабре, посвящённый Arduino! Блог об универсальном opensource-микроконтроллере Arduino, который будет интересен всем любителям микроэлектроники, самодельных гаджетов и всем, кто не боится взять в руки паяльник.

Внешний вид платы Arduino Diecimila Arduino представляет собой линейку электронных блоков-плат, которые можно подключать к компьютеру по USB, а в качестве периферии — любые устройства от светодиодов до механизмов радиуоправляемых моделей и роботов. Программы для него пишутся на простом и интуитивно понятном си-подобном языке Wiring (c возможностью подключения сторонних библиотек на C/C++, например, для управления LCD-дисплеями или двигателями), компилируются и загружаются в устройство одной кнопкой, после чего вы тут же получаете работающий автономный гаджет. Никакого ассемблера, никаких лишних проводов и дорогущих деталей и программаторов — чистое творчество, включай и работай!
Читать дальше →
Total votes 110: ↑107 and ↓3+104
Comments128

Как устроена видеоаналитика

Reading time6 min
Views31K

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

В этой статье я расскажу про архитектуру видеоаналитики.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments5

Способы передачи финансовых данных #4: Протокол ASTS Bridge

Reading time10 min
Views12K


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

Ранее в России существовали две крупные биржи — ММВБ и РТС. Впоследствии они объединились в единую «Московскую биржу», но каждая из двух торговых площадок за годы независимости успела разработать собственный нативный протокол. О протоколе Plaza II, который был создан специалистами РТС, мы рассказывали в одном из прошлых материалов, а сегодня речь пойдет о проекте ASTS Bridge, который начали развивать их коллеги из ММВБ.
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments2

Голосовое управление мультимедиа центром

Reading time8 min
Views11K
В этой статье хотелось бы описать свой опыт по применению web speech api в браузере Google Chrome для реализации голосового поиска и автоматического воспроизведения видеороликов с канала Youtube. Для демонстрации данного функционала нам понадобиться сделать следующие шаги:

  1. Установить набор: Apache2, PHP5(пакет curl обязательно).
  2. Иметь в наличии мультимедиа центр Dune HD или установить XBMC и настроить его для работы в сети INTERNET.
  3. Получить Youtube API Key для выполнения поисковых запросов.

Как сделать все вышеперечисленное, здесь описывать не буду, так как на эти темы полно статей. Принцип реализации такой:

  1. Распознаем фразу с помощью скрипта, написанного на JavaScript — работать будет только в Google Chrome.
  2. Ищем ролики, соответствующие поисковому запросу.
  3. Получаем прямые ссылки на ролики.
  4. Создаем плейлист из ссылок и названий роликов.
  5. Отправляем плейлист для воспроизведения на устройство.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments5

Алгоритм поиска смещения объекта на изображении

Reading time5 min
Views18K
В прошлой статье я описал простой алгоритм распознавания движущихся объектов на динамической картинке. А сейчас я опишу несколько другую ситуацию. Допустим, у нас уже есть координаты объекта и нам надо определить, в какую сторону он сместился. Под координатами я подразумеваю координаты какой-либо условной точки на объекте, для простоты принимая допущения, что объект не меняет ориентацию в пространстве. То, что сам объект сместился, можно определить путем вычитания определенной области кадра из области другого кадра. В прошлой статье я как раз это и делал, только для целого кадра.
Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments6

Pivoting Everywhere — техники продвижения внутрь локальной сети

Reading time2 min
Views19K


При проведении тестирования на проникновение после компрометации внешнего устройства или сервиса возникает необходимость дальнейших действий для получения доступа внутрь сети. После обнаружения и эксплуатации уязвимости сетевого периметра встает вопрос о развитии атаки во внутреннюю сеть, используя в качестве «точки опоры» атакованную систему, доступную извне.
Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments8

Пол Грэм: «Проектирование и исследование»

Reading time11 min
Views18K


Пол Грэм, Design and Research, January 2003

«Хакеры и Художники», глава 15
Проектирование и Исследование
За перевод спасибо knagaev

(Эта статья в своей основе содержит программный доклад на NEPLS осенью 2002 года)

Приезжающих в Америку часто застаёт врасплох манера американцев начинать разговор с вопроса «Чем вы занимаетесь?» Я никогда не любил этот вопрос. Я очень редко слышал достойный ответ на него. Но сейчас думаю, что решил эту проблему. Теперь, если кто-нибудь спрашивает чем я занимаюсь, я смотрю ему прямо в глаза и говорю «Я проектирую новый диалект Lisp.» Этот ответ я рекомендую всем, кто не любит когда интересуются что они делают. Разговор тут же свернёт на другие темы.

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

Различия между проектированием и исследованием похожи на противопоставление нового и хорошего. Архитектурное решение не должно быть новым, но должно быть качественным. Результаты исследования не обязательно должны быть правильными, но обязаны обладать новизной. Думаю, что эти два пути сходятся на вершине: лучший дизайн превосходит своих предшественников на основе использования новых идей, а лучшее исследование решает задачи, которые не столько новые, сколько на самом деле заслуживающие решения. Так что, в конечном счёте, мы стремимся к одному, просто двигаемся с разных сторон.

image
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments11

Поиск и чтение унаследованного кода

Reading time20 min
Views26K
Вася — молодой программист. Получив задачу и засучив рукава, он берется за написание кода. Уже через день решение задачи готово, Вася запускает его… И сталкивается с неожиданной досадной ошибкой. Вася старательно исправляет ее и повторно запускает решение. В результате — снова неприятная ошибка. Так Вася долго наступает на грабли, пару раз значительно переписывает программу, пока, наконец, через неделю задача окончательно не решена.

Петя — опытный программист. Получив постановку, он ищет, нет ли исходного кода, решавшего аналогичную задачу. Пару дней Петя проводит, читая материалы и разбираясь в чужих модулях, а на третий — запускает свое решение, основанное на уже существующем коде. В нем есть пара незначительных ошибок, которые удается быстро исправить. Ура! Все работает так, как нужно, уже на третий день.

Как найти нужный вам кусок исходного кода? Как его понять? А главное — зачем все это делать? В поиске ответов на эти вопросы добро пожаловать под кат.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments6

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

Reading time12 min
Views35K

Предшествующая статья про исключения в С++ оставила кучу тёмных мест,
главное, что осталось непонятным — так как же всё-таки осуществляется
передача управления при возбуждении исключения?
С SJLJ всё понятно, но, утверждается, что эта технология практически
вытеснена некоторым без-затратным (при отсутствии исключений) табличным механизмом.
А вот что это за механизм такой и как он устроен, будем разбираться под катом.
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments7

О пользе железа, или знакомство с GPS/ГЛОНАСС трекерами

Reading time8 min
Views38K
Основное направление деятельности нашей компании – разработка ПО для спутникового мониторинга. В связи с чем мы вплотную сотрудничаем с производителями GPS/ГЛОНАСС оборудования. Поэтому мы решили поделиться опытом и выпустить цикл тематических статей, посвященных GPS/ГЛОНАСС трекерам, в которых расскажем, как классифицируем навигационное оборудование, и подробно рассмотрим технические особенности устройств, наиболее популярных среди пользователей нашего продукта.

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

image

Что такое GPS трекер?


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

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

Софт трекер – программное обеспечение, позволяющее использовать смартфоны, планшеты и другие приборы в качестве аппаратной платформы GPS трекера. Приложение получает доступ к штатному GPS приемнику, а обмен сообщениями с навигационным сервером осуществляется посредством GSM и Wi-Fi модуля портативного устройства. Примером софт трекера может служить мобильное приложение для контроля выездных сотрудников WiaTag.

За счет отсутствия аппаратной части программные трекеры выигрывают по стоимости у своих электронных собратьев. Однако функциональные возможности трекера-программы значительно уступают специально разработанным электронным устройствам и ограничиваются в основном определением и передачей местоположения. Поэтому мы подробно остановимся именно на аппаратных устройствах.
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments12

Защита переговоров. Антижучки и индикаторы поля

Reading time15 min
Views100K

Примеры найденных жучков (источник фото: Интернет)

Дело было еще во Владивостоке.
Знакомые, владельцы турфирмы, рассказали, что однажды уборщица их спросила: «А почему вечером, когда все уходят, у вас сверху, на шкафу что-то мигает?». Полезли на шкаф, а там — чуть ли не автомобильный аккумулятор и рация, прикрученная синей изолентой. Вот такой суровой бывала дальневосточная прослушка.

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

Под катом немного исторических примеров прослушки и доступные способы самостоятельной проверки своих помещений.
(Если ваши далекие знакомые сталкивались с обнаружением и, не дай бог, с установкой жучков, поделитесь в комментах)
Читать дальше →
Total votes 59: ↑58 and ↓1+57
Comments35

GPS: глушилки, спуфинг и уязвимости

Reading time7 min
Views89K

Династия GPS-спуферов за работой

Я писал, как угоняли дронов, «взламывая» их GPS, и наткнулся на замечательного персонажа — Тодда Хампфриса — который не только воспроизвел «угон беспилотника», но и побудил студентов «угнать» яхту.

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

Атака спуфинга GPS начинается, широковещательно передавая немного более мощный сигнал, который указывает корректную позицию, и затем медленно отклоняется далеко к позиции, заданной атакующим, потому что перемещение слишком быстро повлечет за собой потерю сигнальной блокировки, и в этой точке spoofer станет работать только как передатчик помех. Одна из версий захвата американского беспилотника Lockheed RQ 170 в северо-восточном Иране в декабре 2011, это результат такой атаки.

Spoofing GPS был предсказан и обсужден в сообществе GPS ранее, но никакой известный пример такой вредоносной атаки спуфинга ещё не был подтвержден.

Под катом несколько полезных видео со сценариями атак на GPS, анализ криптографических решений, используемых в навигации, обнаружители глушилок, спуферов, ну и обзор нескольких портативных GPS-глушилок, которые я поразбирал в Хакспейсе.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments22

Data Science: путь к профессионализму

Reading time8 min
Views21K
Здравствуйте все!

На волне непрекращающихся дискуссий о Hadoop и прочих больших данных мы не могли пройти мимо замечательной публикации Джерри Овертона, рассказывающей о профессиональном подходе к анализу больших данных в компаниях любого размера. Понятные картинки, предоставленные автором, а также краткий парад технологий, без которых современному Data scientist'у не обойтись. Поэтому пусть статья и начинается с (ошибочной!) посылки: «Не читайте книги по Data Science», она заслуживает публикации в блоге нашего издательства.

Если среди уважаемых читателей найдутся те, кто захочет обсудить Hadoop и прочие технологии из его экосистемы, а также литературу по специфическим алгоритмам, затронутым автором — давайте побеседуем об этом в комментариях.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments5

Операция Potao: анализ вредоносного ПО для кибершпионажа, часть 1

Reading time9 min
Views14K
Аналитики нашей антивирусной лаборатории провели расследование серии кибератак и вредоносных кампаний с использованием вредоносного ПО Win32/Potao. Несмотря на то, что антивирусные продукты нашей компании, а также некоторые другие антивирусные вендоры, уже обнаруживали это вредоносное ПО, оно оставалось вне публичного поля. Первые образцы Win32/Potao датируются 2011 г.



Кибератаки с использованием Potao относятся к типу направленных атак, некоторые примеры которых мы уже рассматривали ранее. Речь идет о вредоносном ПО BlackEnergy (a.k.a. Sandworm, Quedagh), которое преобладает на Украине, в России, а также в некоторых странах СНГ, включая, Грузию и Беларусь.

Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments4

Удобная сериализация данных с Variadic Templates

Reading time9 min
Views10K

Предисловие


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

Поддерживаются следующие типы данных:
— Все фундаментальные типы С++
— std::string
— std::vector где T — все что угодно из этого же списка
— Любой перечислимый тип
Читать дальше →
Total votes 18: ↑13 and ↓5+8
Comments13

7 правил создания красивых интерфейсов. Часть 2

Reading time9 min
Views104K


Недавно мы в «Я люблю ИП» закончили курсы по дизайну от trydesignlab.com. И это одна из самых важных статей, которую нам посоветовал ментор в процессе обучения. Сегодня мы публикуем вторую часть перевода. Посмотреть все наши работы с курсов можно в ВКонтакте по тэгу #design101@iloveip.

Мы говорили о правилах создания чистых и красивых интерфейсов.

Вот эти правила:
  1. Свет падает сверху (Часть 1)
  2. Сначала черное и белое (Часть 1)
  3. Увеличьте белое пространство (Часть 1)
  4. Научитесь накладывать текст на изображения
  5. Научитесь выделять и утапливать текст
  6. Используйте только хорошие шрифты
  7. Крадите как художник

Читать дальше →
Total votes 46: ↑44 and ↓2+42
Comments15

Asterisk: Автоинформирование вызываемого абонента перед соединением с оператором

Reading time4 min
Views22K
Всем привет!
Решил поделиться собственным опытом в некоторых особенностях работы Dialplan'а.

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

Исходные данные:
Сервер с Asterisk 1.8, без Web-интерфейса, настроенный как телефонный шлюз-маршрутизатор.
Конфигурация задаётся редактированием конфигурационных файлов в каталоге /etc/asterisk/
Необходимо воспроизвести сообщение вызываемому абоненту, а затем уведомить вызывающего о готовности его слушать.
Кому интересно, добро пожаловать под кат.
Подробности
Total votes 16: ↑14 and ↓2+12
Comments8

Поиск почти-дубликатов и геометрия

Reading time3 min
Views7.4K
Недавно мне попалась задачка на поиск почти-дублей среди большого количества коротких текстов. Поиск готового решения не привел к успеху, а полученное решение оказалось довольно интересным, и я не смог отказать себе в удовольствии поделиться им.

Формулировка


Есть большая база текстов (сотни тысяч текстов). Длины текстов примерно одинаковые, около 250 символов, язык — английский. Некоторые из текстов отредактированы (исправлены опечатки, расставлены запятые и т.п.); таким образом в базе оказывается как оригинальный текст, так и его исправленная копия. Таких пар не очень много, скажем не более 1%. Задача: найти все такие пары.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments17

Распознавание номеров: от А до 9

Reading time9 min
Views170K
Уже пару раз на Хабре возникали дискуссии на тему того, как сейчас работает распознавание номеров. Но статьи, где были бы показаны разные подходы к распознаванию номеров, на Хабре пока не было. Так что здесь попробуем разобраться, как все это работает. А потом, если статья вызовет интерес, продолжим и выложим работающую модель, которую можно будет поисследовать.

image
Читать дальше →
Total votes 140: ↑137 and ↓3+134
Comments268

Information

Rating
Does not participate
Location
Сызрань, Самарская обл., Россия
Date of birth
Registered
Activity