Pull to refresh
1
0

Компьютерная и системная инженерия

Send message

Окрашивание изображений

Reading time2 min
Views57K

Здравствуй, Хабрахабр. Сегодня мы будем раскрашивать.
Что здесь будет? Будет поиск цветного изображения со схожими цветами по черно-белому и метод переноса цвета с первого на второе.
Читать дальше →
Total votes 120: ↑120 and ↓0+120
Comments60

Раскрашиваем чёрно-белую фотографию с помощью нейросети из 100 строк кода

Reading time22 min
Views77K

Перевод статьи Colorizing B&W Photos with Neural Networks.

Не так давно Амир Авни с помощью нейросетей затроллил на Reddit ветку /r/Colorization, где собираются люди, увлекающиеся раскрашиванием вручную в Photoshop исторических чёрно-белых изображений. Все были изумлены качеством работы нейросети. То, на что уходит до месяца работы вручную, можно сделать за несколько секунд.

Давайте воспроизведем и задокументируем процесс обработки изображений Амира. Для начала посмотрите на некоторые достижения и неудачи (в самом низу — последняя версия).
Total votes 62: ↑61 and ↓1+60
Comments35

Об F# для архитекторов

Reading time13 min
Views8.7K
Данная статья выросла из доклада, сделанного Крисом Смитом, одним из разработчиков F# на конференции DevLink. В целом она носит обзорный характер, однако несмотря на это, и на то, что усилиями shwars, mezastel и отчасти вашего покорного слуги F# уже не раз мелькал на Хабре, думаю что этот язык программирования не стал еще настолько очевиден всем, чтобы эта статья полностью потеряла смысл. Более того, здесь Крис пытается ответить на главный вопрос, который, думаю, мучает всех, кто хоть раз слышал о F#. Где же все-таки его применять? Получилось у него или нет – вам судить. Надеюсь после прочтения у вас хоть что-то относительно всего этого прояснится. Если так, я буду считать свою миссию перевыполненной :)
P.S. Первый перевод, поэтому не обессудьте за некоторые возможные баги.
image
Читать дальше
Total votes 66: ↑52 and ↓14+38
Comments33

Немного о строках в Си, или несколько вариантов оптимизировать неоптимизируемое

Reading time9 min
Views196K
Хабра, привет!

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

Разговор о программировании под Linux медленно перешел к тому, что этот человек стал утверждать, что сложность системного программирования на самом деле сильно преувеличена. Что язык Си прост как спичка, собственно как и ядро Linux (с его слов).

У меня был с собой ноутбук с Linux, на котором присутствовал джентльменский набор утилит для разработки на языке Си (gcc, vim, make, valgrind, gdb). Я уже не помню, какую цель мы тогда перед собой поставили, но через пару минут мой оппонент оказался за этим ноутбуком, полностью готовый решать задачу.

И буквально на первых же строках он допустил серьезную ошибку при аллоцировании памяти под… строку.

char *str = (char *)malloc(sizeof(char) * strlen(buffer));

buffer — стековая переменная, в которую заносились данные с клавиатуры.

Я думаю, определенно найдутся люди, которые спросят: «Разве что-то тут может быть не так?».
Поверьте, может.

А что именно — читайте по катом.
Читать дальше →
Total votes 68: ↑52 and ↓16+36
Comments122

Переписываем с java на C++ на платформе Android

Reading time4 min
Views22K
Хочу с вами поделиться опытом переписывания с java на C++ на платформе Android и тем, что в результате получилось.

Для своего маленького домашнего проекта был использован алгоритм поиска лиц Виола-Джонса, java-исходники с моделью были взяты отсюда code.google.com/p/jviolajones с небольшой модификацией — были добавлены два класса: Point и Rectangle. Уточню почему не стал использовать OpenCV под Android — для его работы необходимо поставить отдельно приложение-библиотеку, что в моем случае будет весьма неудобно, и опыты показали его падение без предупреждения, разбираться с этим долго не стал, также и с поиском других библиотек, и решил взять простейшую готовую реализацию.

Быстродействие алгоритма показало плачевные результаты, на фотографии размером 400 на 300 на моем стареньком разбитом GT-I9300I — 54 секунды, на avd (виртуальном устройстве) и то дольше — 250 секунд.
Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments15

Обзор особенностей ядра Андроида

Reading time7 min
Views107K
“А я… карбюратор промываю!”
Анекдот


Введение

В детском садике мы с единомышленниками препарировали кузнечиков в надежде разобраться в их строении. В школе распаивали радиоприёмник “Россия”. В институте дошла очередь до автомобилей, гайки которых были многократно переставлены. Интересы поменялись, но желание “разбирать” иногда просыпается, и сегодня оно направлено на Андроид.

Сколько раз вас выручало наличие исходников Андроида? Меня — уже не счесть. Андроид — открытый проект, но, к сожалению, у нас есть возможность только читать; править код Андроида, не будучи сотрудником Google, практически невозможно. Погрустим над этим моментом и загрузим репозиторий. Как это сделать, отлично описано на официальном сайте.


Читать дальше →
Total votes 169: ↑151 and ↓18+133
Comments17

Задачи на собеседованиях в Яндексе

Reading time15 min
Views359K
Открытые вакансии на должность разработчика в Яндексе есть всегда. Компания развивается, и хороших программистов не хватает постоянно. И претендентов на эти должности тоже хоть отбавляй. Главная сложность – отобрать действительно подходящих кандидатов. И в этом плане Яндекс мало чем отличается от большинства крупных IT-компаний. Так что базовые принципы, описываемые в этой статье, могут быть применимы не только к Яндексу.

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

image
Читать дальше →
Total votes 221: ↑178 and ↓43+135
Comments329

Рисуем картинки с помощью кривой Гильберта

Reading time5 min
Views45K
В субботу на прошлой неделе «дело было вечером, делать было нечего», и мы с хабраюзером sourcerer разговаривали не понятно о чём. И почему-то речь зашла речь о задаче обратной к задаче построения графика функции по её выражению. То есть, например, у нас есть выражение y(x) = (cos0,5x ⋅ cos 200x + |x|0,5 − 0,7)(4 − x2)0,01. График такой функции чем-то напоминает сердечко. Но нам был интересен обратный вопрос, как, имея, например, изображение сердечка, получить выражение для функции, графиком которой будет это самое сердечко.

Какие-нибудь ряды Фурье вспоминать не хотелось, а хотелось чего-то простого и красивого. Мы начали вспоминать известные нам результаты, связанные с этим вопросом. В результате получилась программка, которая по изображению генерирует ломаную линию, чем-то напоминающую исходное изображение. На примере котёнка по имени Гав это выглядит примерно так (смотреть лучше издалека):



Если интересно как такое сделать, а также узнать про формулу конопли, формулу, график которой является этой же формулой, то добро пожаловать под хабракат. (Будет много картинок.)

Читать дальше →
Total votes 230: ↑229 and ↓1+228
Comments43

MASM, TASM, FASM, NASM под Windows и Linux

Reading time5 min
Views169K
В данной статье я хочу рассмотреть вопросы, которые могут возникнуть у человека, приступившего к изучению ассемблера, связанные с установкой различных трансляторов и трансляцией программ под Windows и Linux, а также указать ссылки на ресурсы и книги, посвященные изучению данной темы.

MASM


Используется для создания драйверов под Windows.
Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments27

Git и Visual Studio: как правильно приготовить

Reading time3 min
Views159K
Некоторое время назад мы анонсировали поддержку Git в Visual Studio и TFS. Для того, чтобы научиться правильно готовить все это, я сам прошел весь путь и хочу рассказать вам о нем. Ниже — о том, как использовать Git в VS.
Читать дальше →
Total votes 34: ↑28 and ↓6+22
Comments50

7 расширенных возможностей Visual Studio 2015 Enterprise

Reading time4 min
Views31K


Не так давно компания Microsoft представила обновленные предложения продуктов семейства Visual Studio. Visual Studio 2015 Enterprise на текущий момент является топ-продуктом и предоставляет доступ ко всем возможностям, созданным компанией Microsoft для разработки программного обеспечения.
 
Не смотря на наличие бесплатной версии Visual Studio Сommunity, обладающей огромным функционалом, достаточным для комфортной разработки, возможности этих инструментов различаются. Посмотрим, некоторые дополнительные преимущества, которые предлагает Visual Studio 2015 Enterprise. 
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments10

Как мы делали XVM. Часть первая: начало и сбор команды

Reading time12 min
Views46K



Приветствуем, уважаемое хабрасообщество! По случаю старта конкурса от Wargaming мы решили, во-первых, в нем поучаствовать, а, во-вторых, написать серию статей о том, как мы докатились до создания одной из самых популярных модификаций World of Tanks и как хобби с парой строк говнокода за вечер переросло в то, что мы имеем. В статьях описаны все встреченные (и опробованные на себе) грабли. Еще одним поводом для написания статьи было зарытие топора войны между XVM и Wargaming и выходом наших отношений на новый уровень — мы рады, что эта статья опубликована именно в блоге WG. Надеемся, что само чтиво вышло интересным, а другие конкурсанты смогут почерпнуть для себя что-нибудь полезное.
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments45

Как мы делали XVM — популярный мод для World of Tanks. Часть вторая: развитие серверной части

Reading time13 min
Views31K


Приветствуем, уважаемое хабрасообщество! Сегодня мы продолжаем начатый в первой части рассказ о создании модификации XVM (eXtended Visualization Mod) для игры World of Tanks. Во второй части вас ждет описание истории развития серверной части мода.
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments38

Беспроводная зарядка

Reading time2 min
Views82K

Всем привет. Приобрел на китайском сайте комплект для беспроводной передачи энергии, также называется беспроводная зарядка. Конечно, данное устройство можно собрать своими руками самостоятельно, в интернете схем беспроводных зарядных устройств хватает. Но я захотел приобрести именно законченное устройство, предлагаемое нам как DIY устройство. Использовать в качестве беспроводной зарядки для мобильного телефона, я не собирался. А вот в робототехнике, я видел явные преимущества по сравнению с проводными зарядными устройствами.
Читать дальше →
Total votes 38: ↑32 and ↓6+26
Comments52

Ещё одна погоня за мечтой. RTS + eyetracker руками студента

Reading time18 min
Views20K
Привет.

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

Под катом вы увидите: подробную историю создания RTS своими руками (концепция, код, интерфейс, баланс, карта, модели) и эксперимент по привязыванию к ней айтрекера как средства ввода.


Total votes 52: ↑52 and ↓0+52
Comments32

Основная проблема искусственного интеллекта в том, что никто до конца не понимает, как он работает

Reading time7 min
Views19K


В прошлом году по дорогам округа Монмут, Нью-Джерси, стал колесить странный робомобиль. Это экспериментальное транспортное средство, разработанное специалистами компании Nvidia, по внешнему виду не слишком отличается от других автономных машин других производителей, таких как Google, Tesla или General Motors. Но специально для этого автомобиля разработана новая система управления. Она самообучается, и не зависит от настроек, заданных на производстве. Вместо этого робомобиль следит за действиями человека-водителя и учится у него.

Это немного необычный способ обучения робомобиля. С другой стороны, мало кто до конца представляет себе, как машина принимает решения. Информация с сенсоров, радаров и лидаров поступает в нейросеть, где эти данные обрабатываются с выделением четких правил управления рулевым колесом, тормозами и другими системами. В итоге получается, что действия робомобиля зачастую схожи с действиями водителя-человека, попавшего в ту же ситуацию на дороге. Возникает вопрос — может ли машина принять странное решение в одном из случаев — например, врезаться в дерево на полном ходу или постоять на светофоре, когда горит зеленый?
Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments12

Умножение Карацубы и C++ 11

Reading time6 min
Views47K
Хочу в очередной раз затронуть метод реализации умножения Карацубы с использованием возможностей стандарта C++11. Данный алгоритм неоднократно рассматривался здесь («Умножение длинных чисел методом Карацубы», «Алгоритм Карацубы для умножения двух чисел»), но видимо из-за того, что я не умею их готовить, первый вариант не работал с числами разной длины, а второй делает не совсем то, что было нужно.

Для тех, кто не устал от этой заезженной темы, а также всех, кто испытывает трудности с реализацией этого простого, но очень эффективного алгоритма, прошу читать дальше.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments12

Quantum Mechanics of Calculations in JS

Reading time15 min
Views9K

Здравствуйте, меня зовут Дмитрий Карловский и я… безработный. Поэтому у меня есть много свободного времени для занятия музыкой, спортом, творчеством, языками, JS-конференциями и компьютерной наукой. О последнем исследовании в области полуавтоматического разбиения долгих вычислений на небольшие кванты по несколько миллисекунд, в результате которого появилась миниатюрная библиотека $mol_fiber, я вам сегодня и расскажу. Но сперва, давайте обозначим проблемы, которые мы будем решать..


Кванты!


Это — текстовая версия одноимённого выступления на HolyJS 2018 Piter. Вы можете либо читать её как статью, либо открыть в интерфейсе проведения презентаций, либо посмотреть видеозапись.

Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments16

Реверс-инжиниринг для самых маленьких: взлом кейгена

Reading time8 min
Views111K
Этот пост будет интересно действительно тем, кто только начинает интересоваться этой темой. У людей с опытом он, возможно, вызовет только зевки. За исключением разве что, может быть, эпилога
Реверс-инжиниринг в той менее легальной части, где он не касается отладки и оптимизации собственного продукта, касается в том числе и такой задачи: «узнать, а как у них это работает». Иначе говоря, восстановление исходного алгоритма программы, имея на руках ее исполнимый файл.
Для того, чтобы держаться азов и избежать некоторых проблем — «взломаем» не что-нибудь, а… кейген. В 90% он не будет запакован, зашифрован или иным способом защищен — в том числе и нормами международного права…
Читать дальше →
Total votes 60: ↑55 and ↓5+50
Comments32

Information

Rating
Does not participate
Date of birth
Registered
Activity