Как стать автором
Обновить
0
0

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

Отправить сообщение

Nuklear+ — миниатюрный кроссплатформенный GUI

Время на прочтение6 мин
Количество просмотров19K

Nuklear+ (читается как "Nuklear cross", значит "кроссплатформенный Nuklear") — это надстройка над GUI библиотекой Nuklear, которая позволяет абстрагироваться от драйвера вывода и взаимодействия с операционной системой. Нужно написать один простой код, а он потом уже сможет скомпилироваться под все поддерживаемые платформы.


Я уже писал на хабре статью "Nuklear — идеальный GUI для микро-проектов?". Тогда задача была простой — сделать маленькую кроссплатформенную утилиту с GUI, которая будет примерно одинаково выглядеть в Windows и Linux. Но с тех самых пор меня не отпускал вопрос, а можно ли на Nuklear сделать что-то более-менее сложное? Можно ли целиком на нём сделать какой-нибудь реальный проект, которым будут пользоваться?

Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии7

Сегментация лица на селфи без нейросетей

Время на прочтение11 мин
Количество просмотров22K

Приветствую вас, коллеги. Оказывается, не все компьютерное зрение сегодня делается с использованием нейронных сетей. Хотя многие стартапы и заявляют, что у них дип лернинг везде, спешу вас разочаровать, они просто хотят хайпануть немножечко. Рассмотрим, например, задачу сегментации. В нашем слаке развернулась целая драма. Одна богатая и высокотехнологичная селфи-компания собрала датасет для сегментации селфи с помощью нейросетей (а это непростое и недешевое занятие). А другая, более бедная и не очень развитая решила, что можно подкупить людей, размечающих фотки, и спполучить базу. В общем, страсти в этих ваших Интернетах еще те. Недавно я наткнулся на статью, где без всяких нейросетей на устройстве делают очень даже хорошую сегментацию. Для сегментации от пользователя требуется дать алгоритму несколько подсказок, но с помощью dlib и opencv такие подсказки легко автоматизируются. В качестве бонуса мы так же сгладим вырезанное лицо и перенесем на какого-нибудь рандомного человека, тем самым поймем, как работают маски во всех этих снапчятах и маскарадах. В общем, классика еще жива, и если вы хотите немного окунуться в классическое компьютерное зрение на питоне, то добро пожаловать под кат.

Читать дальше →
Всего голосов 60: ↑59 и ↓1+58
Комментарии22

Нейросетевая игра в имитацию

Время на прочтение25 мин
Количество просмотров43K

Здравствуйте, коллеги. В конце 1960-ых годов прошлого века Ричард Фейнман прочитал в Калтехе курс лекций по общей физике. Фейнман согласился прочитать свой курс ровно один раз. Университет понимал, что лекции станут историческим событием, взялся записывать все лекции и фотографировать все рисунки, которые Фейнман делал на доске. Может быть, именно после этого у университета осталась привычка фотографировать все доски, к которым прикасалась его рука. Фотография справа сделана в год смерти Фейнмана. В верхнем левом углу написано: "What I cannot create, I do not understand". Это говорили себе не только физики, но и биологи. В 2011 году, Крейгом Вентером был создан первый в мире синтетический живой организм, т.е. ДНК этого организма создана человеком. Организм не очень большой, всего из одной клетки. Помимо всего того, что необходимо для воспроизводства программы жизнедеятельности, в ДНК были закодированы имена создателей, их электропочты, и цитата Ричарда Фейнмана (пусть и с ошибкой, ее кстати позже исправили). Хотите узнать, к чему эта прохладная тут? Приглашаю под кат, коллеги.

Читать дальше →
Всего голосов 75: ↑75 и ↓0+75
Комментарии32

Делаем сервис по распознаванию изображений с помощью TensorFlow Serving

Время на прочтение12 мин
Количество просмотров33K

image

Всегда наступает то самое время, когда обученную модель нужно выпускать в production. Для этого часто приходится писать велосипеды в виде оберток библиотек машинного обучения. Но если Ваша модель реализована на Tensorflow, то у меня для Вас хорошая новость — велосипед писать не придется, т.к. можно использовать Tensorflow Serving.


В данной статье мы рассмотрим как использовать Tensorflow Serving для быстрого создания производительного сервиса по распознаванию изображений.

Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии3

Отжиг и вымораживание: две свежие идеи, как ускорить обучение глубоких сетей

Время на прочтение4 мин
Количество просмотров15K


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


Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии21

Автоэнкодеры в Keras, Часть 4: Conditional VAE

Время на прочтение11 мин
Количество просмотров22K

Содержание



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

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

    Что тут писать, вот так выглядели сгенерированные цифры:

    Картинка


  2. Сложно было генерировать картинку какой-то заданной цифры. Для этого надо было смотреть, в какую область латентного пространства попадали изображения конкретной цифры, и сэмплить уже откуда-то оттуда, а тем более было сложно генерировать цифру в каком-то заданном стиле.

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


Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии12

Как нам помогают нейронные сети в технической поддержке

Время на прочтение7 мин
Количество просмотров14K
Несмотря на всеобщий хайп вокруг машинного обучения и нейронных сетей, несомненно, сейчас на них действительно стоит обратить особое внимание. Почему? Вот ключевые причины:

  1. Железо стало гораздо быстрее и можно легко обсчитывать модели на GPU
  2. Появилась куча неплохих бесплатных фреймворков для нейросетей
  3. Одурманенные предыдущим хайпом, компании стали собирать бигдату — теперь есть на чем тренироваться!
  4. Нейронки в некоторых областях приблизились к человеку, а в некоторых — уже превзошли в решении ряда задач (где тут лопаты продают, надо срочно бункер рыть)

Но управлять этим, по прежнему, сложно: много математики, высшей и беспощадной. И либо ты из физмата, либо сиди и решай 2-3 тысячи задачек в течении двух-трех лет, чтобы понимать, о чем идет речь. Разобраться по дороге на собеседование в электричке, полистав книжку «Программирование на PHP/JavaScript за 3 дня» — не получится, ну никак, и списать никто не даст (даже за ящик водки).


Вам не дадут «списать» модель нейросети даже за ящик водки. Часто именно на Ваших данных публично доступная модель работает внезапно плохо и придется разбираться в тервере и матане

Но зато, ууУУ, овладев основами, можно строить разные предсказательные модели, реализующие интересные и мощные алгоритмы. И вот тут язык начинает заворачиваться и выпадать изо рта, цепляя левый глаз…
Читать дальше →
Всего голосов 30: ↑22 и ↓8+14
Комментарии33

Ищем знакомые лица

Время на прочтение15 мин
Количество просмотров64K
Привет

В статье я хочу познакомить читателя с задачей идентификации: пройтись от основных определений до реализации одной из недавних статей в данной области. Итогом должно стать приложение, способное искать одинаковых людей на фотографиях и, что самое главное, понимание того, как оно работает.
Wake up, Neo
Всего голосов 69: ↑69 и ↓0+69
Комментарии17

Как работает лазерная рулетка: реверс-инжиниринг

Время на прочтение22 мин
Количество просмотров101K
image Ранее в своей статье я рассказывал о том, как устроены фазовые лазерные дальномеры. Теперь пришло время разобраться с тем, как работают бытовые лазерные рулетки. Разобраться — это не просто заглянуть, что же там внутри, а полностью восстановить всю схему и написать собственную программу для микроконтроллера.
Читать дальше →
Всего голосов 112: ↑112 и ↓0+112
Комментарии37

Восстановление данных с внешнего жесткого диска Seagate FreeAgent Go

Время на прочтение6 мин
Количество просмотров41K
Внешний жесткий диск Seagate FreeAgent Go 500Gb верой и правдой служил своей владелице, но в один из не самых лучших для него дней стал жертвой человеческих эмоций, когда владелица в пылу семейной драмы швырнула устройство в объект, вызывающий у нее сильное раздражение – в своего мужа. Муж серьезно не пострадал, а вот с накопителем дела обстояли хуже. При подключении в USB порт компьютера накопитель издавал тихие жужжащие звуки и не начинал вращение вала.


рис. 1
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии51

Intel открывает доступ к clDNN [высокопроизводительной библиотеке для глубокого обучения]

Время на прочтение2 мин
Количество просмотров8.4K
Официальный репозиторий проекта был запущен буквально пару дней назад. Расскажем немного подробнее об этой новости и приведем полезные источники по теме.


Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии4

Открытый курс машинного обучения. Тема 10. Градиентный бустинг

Время на прочтение18 мин
Количество просмотров292K

Всем привет! Настало время пополнить наш с вами алгоритмический арсенал.


Сегодня мы основательно разберем один из наиболее популярных и применяемых на практике алгоритмов машинного обучения — градиентный бустинг. О том, откуда у бустинга растут корни и что на самом деле творится под капотом алгоритма — в нашем красочном путешествии в мир бустинга под катом.


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


Видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).

Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Комментарии17

Теория конусных антенн BowTie

Время на прочтение29 мин
Количество просмотров30K

Предисловие


Вопрос конусных антенн (бабочка, BowTie) очень слабо освещен в литературе, хотя это самый популярный тип ТВ антенн в мире, наряду с Uda-Yagi.

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

Кроме того, представим читателю 7 хорошо оптимизированных с помощью САПР практических дизайнов телевизионных антенн на основе вибратора «бабочка» от простейших (в т.ч. безрефлекторные) до очень высокопроизводительной антенны с средним усилением 16.3 dBi для дальнего приёма.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии16

Роскомнадзор пытается добить Rutracker. Блокировки серверов-анонсеров и методы обхода

Время на прочтение5 мин
Количество просмотров119K
image

Rutracker толком не потерявший свою аудиторию вполне закономерно вызывает недовольство Роскомнадзора и других ведомств. Они все-таки старались, деньги тратили, выступали с заявлениями, а оно все работает и помирать не собирается. Под блокировкой был основной сайт rutracker.org, который, по сути, был просто каталогом magnet-ссылок и torrent-файлов. Новый виток борьбы привел в добавлению в списки блокировок серверов-анонсеров. Именно они поддерживают инфраструктуру ресурса и позволяют отдельным пирам найти друг друга.

Update
2 мая СМИ запестрели заголовками о начале массовой блокировки всех анонсеров и зеркал Rutracker: lenta.ru, Вести, Известия, Ведомости. Однако в интервью Газете.Ру представитель Роскомнадзора сообщил, что блокировки проводятся в плановом режиме и ничего глобального в плане тотальных блокировок они не производили за последние дни.
«Мы не проводим никакие массированные атаки. Мы ведем целенаправленную работу по повышению эффективности блокировки пиратского контента», — подчеркнул пресс-секретарь Роскомнадзора в беседе с корреспондентом «Газеты.Ru».

Он уточнил, что ни о каком замедлении трафика для пользователей трекера речи не идет, а блокировка RuTracker проводится в плановом режиме.

Тем не менее проблема реальна, сервера блокируются, а в посте есть полезные ссылки на открытые трекеры. Поэтому решил не удалять материал.
Читать дальше →
Всего голосов 101: ↑100 и ↓1+99
Комментарии173

LIFT: Learned Invariant Feature Transform

Время на прочтение7 мин
Количество просмотров12K

image


Введение


В последние годы вездесущие нейронные сети находят все больше и больше применений в различных областях знаний, вытесняя классические алгоритмы, использовавшиеся многие годы. Не стала исключением и область компьютерного зрения, где год за годом все больше и больше задач решаются при помощи современных нейронных сетей. Настало время написать об еще одном павшем бойце в войне "Традиционное зрение vs. Глубокое Обучение". Долгие годы на задаче поиска локальных особенностей изображений (так называемых ключевых точек) безраздельно властвовал алгоритм SIFT(Scale-invariant Feature Transform), предложеный в далеком 1999 году, многие сложили головы в попытках превзойти его, но удалось это лишь Deep Learning'у. Итак, встречайте, новый алгоритм поиска локальных особенностей — LIFT (Learned Invariant Feature Transform).

Всего голосов 40: ↑38 и ↓2+36
Комментарии12

Открытый курс машинного обучения. Тема 3. Классификация, деревья решений и метод ближайших соседей

Время на прочтение33 мин
Количество просмотров494K

Привет всем, кто проходит курс машинного обучения на Хабре!


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


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.

Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии50

L-Systems — математическая красота растений

Время на прочтение7 мин
Количество просмотров40K
Красота растений привлекала внимание математиков веками. Активнее всего изучались интересные геометрические свойства растений, такие как симметрия листьев относительно центральной оси, радиальная симметрия цветов, и спиральное расположение семечек в шишках. «Красота связана с симметрией» (H. Weyl. Symmetry). Во время роста живых организмов, особенно растений, можно четко видеть регулярно повторяющиеся многоклеточные структуры. В случае составных листьев, например, маленькие листочки, которые являются частью большого взрослого листа, имеют ту же форму, что весь лист имел на раннем этапе формирования.

В 1968г. Венгерский биолог и ботаник Аристид Линденмайер (Aristid Lindenmayer) предложил математическую модель для изучения развития простых многоклеточных организмов, которая позже была расширена и используется для моделирования сложных ветвящихся структур — разнообразных деревьев и цветов. Эта модель получила название Lindenmayer System, или просто L-System.

Для тех, кто в теме и не хочет все читать целиком, проскрольте вниз, есть вопрос.
Дальше интереснее
Всего голосов 87: ↑85 и ↓2+83
Комментарии33

Бесплатное программное обеспечение для IP-камер

Время на прочтение5 мин
Количество просмотров698K
За 11 лет работы на рынке видеонаблюдения, нам пришлось столкнутся с множеством программ для управления системами видеонаблюдения, с какими-то мы работали, какие то тестировали, какие хотели потестировать, но так и не успели этого сделать, про какое-то просто читали в обзорах подобных тому, что читаете вы.

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

Все программное обеспечение разбито на три группы:

  • Программное с открытым исходным кодом
  • Бесплатное программное обеспечение с ограниченным функционалом
  • Программное обеспечение бесплатное в течении пробного периода

image
Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии31

Как подружить Tensorflow и C++

Время на прочтение6 мин
Количество просмотров44K

Google TensorFlow — набирающая популярность библиотека машинного обучения с акцентом на нейросетях. У нее есть одна замечательная особенность, она умеет работать не только в программах на Python, а также и в программах на C++. Однако, как оказалось, в случае С++ нужно немного повозиться, чтобы правильно приготовить это блюдо. Конечно, основная часть разработчиков и исследователей, которые используют TensorFlow работают в Python. Однако, иногда бывает необходимо отказаться от этой схемы. Например вы натренировали вашу модель и хотите ее использовать в мобильном приложении или роботе. А может вы хотите интегрировать TensorFlow в существующий проект на С++. Если вам интересно как это сделать, добро пожаловать под кат.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии17

Создаём нейронную сеть InceptionV3 для распознавания изображений

Время на прочтение11 мин
Количество просмотров137K


Привет, Хабр! Под катом пойдёт речь о реализации свёрточной нейронной сети архитектуры InceptionV3 с использованием фреймворка Keras. Статью я решил написать после ознакомления с туториалом "Построение мощных моделей классификации с использованием небольшого количества данных". С одобрения автора туториала я немного изменил содержание своей статьи. В отличие от предложенной автором нейронной сети VGG16, мы будем обучать гугловскую глубокую нейронную сеть Inception V3, которая уже предустановлена в Keras.

Вы научитесь:

  1. Импортировать нейронную сеть Inception V3 из библиотеки Keras;
  2. Настраивать сеть: загружать веса, изменять верхнюю часть модели (fc-layers), таким образом, приспосабливая модель под бинарную классификацию;
  3. Проводить тонкую настройку нижнего свёрточного слоя нейронной сети;
  4. Применять аугментацию данных при помощи ImageDataGenerator;
  5. Обучать сеть по частям для экономии ресурсов и времени;
  6. Оценивать работу модели.

При написании статьи я ставил перед собой задачу представить максимально практичный материал, который раскроет некоторые интересные возможности фреймворка Keras.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии27

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность