Pull to refresh
159
-1.8
Сергей @iiiytn1k

Инженер

Семантическая сегментация на основе архитектуры U-Net и определение расстояния между объектами

Level of difficulty Medium
Reading time 7 min
Views 4.9K

Всем привет!

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

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

Модель на базе U-Net архитектуры сегментирует различные объекты (кот, стул, стол, тарелка с котлетами итд) и при сближении двух объектов сегментации (кот - тарелка) модель сигнализирует об этом с помощью телеграмм бота.

Отлично, задача поставлена, теперь реализация!

Читать далее
Total votes 28: ↑28 and ↓0 +28
Comments 10

Как создатели мемных спин-оффов «Зельды» изменили российскую индустрию игр и анимации

Level of difficulty Easy
Reading time 37 min
Views 5.9K
Retrospective
image

Что общего между мемами про Моршу, квестом по Warcraft, «Масяней», «Смешариками» и Jedi Outcast.

Animation Magic Inc. (ООО «АМИ») — одна из первых крупных российских игровых студий. Она была открыта в 1992 году в Санкт-Петербурге и в основном занималась аутсорсом для западных издателей. Ещё это первая отечественная студия, которая на момент открытия имела американское подразделение и команду разработчиков из 50 человек. И это в те годы, когда из известных российских игр был разве что Tetris Алексея Пажитнова, Perestroika Никиты Скрипкина и Color Lines от студии Gamos.

Сегодня об Animation Magic вспоминают только в контексте отменённого квеста по вселенной Warcraft да неканоничных частей The Legend of Zelda, анимационные ролики из которых ещё в нулевые стали популярными интернет-мемами. Обе части Zelda рьяно критикуют и высмеивают уже два десятилетия, но в отрыве от критики — о студии почти ничего неизвестно.

И очень печально, ведь выходцы из Animation Magic серьёзно повлияли на формирование игровой и анимационной индустрии в России. Этим материалом мы хотели бы восстановить историческую справедливость: разобрать полный творческий путь студии, развеять мифы и опубликовать ранее неизвестные факты.
Читать дальше →
Total votes 51: ↑48 and ↓3 +45
Comments 4

Реализация контроллера SDRAM

Level of difficulty Medium
Reading time 10 min
Views 4.9K

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

Читать далее
Total votes 39: ↑39 and ↓0 +39
Comments 10

Разводка регулярных структур в KiCAD: путь лентяя

Reading time 11 min
Views 4.3K
image

Я в одной из предыдущих статей писал — я, фактически, безработный. Юридически — нет, во-первых я пенсионер, но вполне мог бы и работать. Во-вторых, вроде как и работаю в одной маленькой фирме из двух человек, но последний год у нас с контрактами напряженка. С голоду не умираем, пенсии вполне достаточно на жизнь, но ведь развлекаться как-то надо?
Время от времени от скуки публикую статьи-обзоры на сайте шопоголиков, администрация сайта даже денег довольно-таки регулярно за это дает. Очень хорошая отмазка для супруги — нет, я не шопоголик, это я, вроде как, при деле. И вот здесь взялся публиковать статейки — если на том сайте такие публиковать, только минусов нахватаешь — типа ты что, слишком умный, что ли? — а вот на тебе минус и не балуй. И в следующий раз пиши про какую-нибудь мыльницу.
Читать дальше →
Total votes 42: ↑41 and ↓1 +40
Comments 13

Восстановить удаленную фотографию с флешки? Искусственный интеллект в помощь

Level of difficulty Medium
Reading time 9 min
Views 5.6K
Case

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

Читать далее
Total votes 41: ↑41 and ↓0 +41
Comments 5

Алгоритмы программы для дозиметра на счетчике Гейгера

Level of difficulty Easy
Reading time 17 min
Views 4.5K
Tutorial

Эта статья написана на основе собственного опыта разработки и программирования бытовых дозиметров на счетчиках Гейгера для коммерческих заказчиков.

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

Будет полезна радиолюбителям, разработчикам и программистам для аналогичных задач.

Читать далее
Total votes 22: ↑22 and ↓0 +22
Comments 28

Земля круглая, вода мокрая, JPEG шакалит, небо голубое… Или нет?

Reading time 11 min
Views 15K

Вы можете сказать, что один факт выбивается из этого ряда в заголовке, потому что он не так очевиден, как остальные. Еще лет 10-15 назад я бы никогда не подумал, что тут могут быть возражения, а сейчас уже и не удивляюсь, что приходится объяснять простые истины: дело в том, что планеты обладают очень большой массой, поэтому гравитация стремится придать им форму шара. Вот и все! Хотел бы на этом закончить статью и поблагодарить за внимание.

Читать далее
Total votes 139: ↑139 and ↓0 +139
Comments 46

Небанальные правила чистого Python. Часть 1

Reading time 6 min
Views 17K

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

Читать далее
Total votes 49: ↑47 and ↓2 +45
Comments 49

Автоэнкодеры в Keras, Часть 3: Вариационные автоэнкодеры (VAE)

Reading time 10 min
Views 44K
Tutorial

Содержание



В прошлой части мы уже обсуждали, что такое скрытые переменные, взглянули на их распределение, а также поняли, что из распределения скрытых переменных в обычных автоэнкодерах сложно генерировать новые объекты. Для того чтобы можно было генерировать новые объекты, пространство скрытых переменных (latent variables) должно быть предсказуемым.

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


Читать дальше →
Total votes 48: ↑47 and ↓1 +46
Comments 15

Термостабилизация телескопа

Reading time 30 min
Views 9.7K

На Хабре уже много статей о любительской астрономии, но мне пока ещё не встречались статьи о вентиляции (охлаждении, терм стабилизации) телескопа. Про то, зачем это нужно, написано, например, тут и тут. Вкратце, проблема в том, что если ГЗ (главное зеркало) телескопа теплее, чем окружающий его воздух, над ним возникает конвективный поток, который заметно портит изображение. Звёзды обзаводятся асимметричными "лучами", а протяженные объекты (планеты) теряют чёткость и контрастность. Маленькие телескопы довольно быстро остывают сами, а большие, особенно закрытой конструкции (такие, как Шмидт-Кассегрен), Требуется охлаждать принудительно. Самый простой и естественный способ - продувка ГЗ и трубы компьютерными кулерами. Редкие модели крупных ШК оборудованы кулерами, поэтому приходится сверлить дырки. Считаю тему достойной Хабра: тут и разработка электроники, и Ардуино, и 3D печать. Эта статья - адаптация того, что я писал на Астрофоруме год назад, всё никак руки не доходили до Хабра.

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

Читать далее
Total votes 81: ↑81 and ↓0 +81
Comments 41

Вычисляем π на первом процессоре от Intel — 4004

Reading time 10 min
Views 15K
Translation

Как-то мне пришла в голову мысль о том, насколько же быстрее современные процессоры по сравнению с ранними экземплярами. Да, можно размышлять об этом эмпирически - зная тактовую частоту и особенности микроархитектуры (как устроен конвейер, сколько есть ALU, и т.д.), можно прикинуть производительность Intel 4004. Пусть и не в FLOPS'ах, ибо нативная поддержка чисел с плавающей запятой появилась позже. Но это будет весьма грубая прикидка, так как у этого процессора есть несколько интересных черт: разрядность только 4 бита (а не 64, как у большинства современных машин), очень скудный набор инструкций (нет даже AND'a и XOR'a!) и ограничения переферии (в частности памяти не так уж и много).

Поэтому я решил исследовать вопрос на практике. В качестве бенчмарка выбор пал на вычисления числа π. В конце-то концов, даже ENIAC в дремучем 1949 году справился с этой задачей! [2]

Читать далее
Total votes 109: ↑108 and ↓1 +107
Comments 25

Трёхмерная графика с нуля. Часть 1: трассировка лучей

Reading time 42 min
Views 125K
Translation
image


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

В этой работе мы сосредоточимся не на скорости, а на чётком объяснении концепций. Код примеров написан наиболее понятным образом, который не обязательно является самым эффективным для реализации алгоритмов. Есть множество способов реализации, я выбрал тот, который проще всего понять.

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


Читать дальше →
Total votes 90: ↑90 and ↓0 +90
Comments 53

Трёхмерная графика с нуля. Часть 2: растеризация

Reading time 47 min
Views 50K
Translation
image


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

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

Тогда как это удаётся играм?

Ответ заключается в использовании совершенно иного семейства алгоритмов, которое мы исследуем во второй части статьи. В отличие от трассировки лучей, которая получалась из простых геометрических моделей формирования изображений в человеческом глазе или в камере, сейчас мы будем начинать с другого конца — зададимся вопросом, что мы можем отрисовать на экране, и как отрисовать это как можно быстрее. В результате мы получим совершенно другие алгоритмы, которые создают примерно похожие результаты.
Читать дальше →
Total votes 38: ↑37 and ↓1 +36
Comments 3

Information

Rating
Does not participate
Location
Челябинск, Челябинская обл., Россия
Registered
Activity