Pull to refresh
0
0

Программист

Send message

Температура цвета

Reading time10 min
Views376K
image
По нашим психологическим ощущениям цвета бывают тёплыми и горячими, бывают холодными и очень холодными. На самом деле все цвета горячие, очень горячие, ведь у каждого цвета есть своя температура и она очень высокая.
Читать дальше →
Total votes 192: ↑174 and ↓18+156
Comments65

Как не надо проверять размер массива в С++

Level of difficultyMedium
Reading time7 min
Views25K

Как часто вам приходится сталкиваться с конструкцией sizeof(array)/sizeof(array[0]) для определения размера массива? Очень надеюсь, что не часто, ведь на дворе уже 2024 год. В заметке поговорим о недостатках конструкции, откуда она берётся в современном коде и как от неё наконец избавиться.

Читать далее
Total votes 66: ↑63 and ↓3+83
Comments103

Как я склеил картон и продал на маркетплейсах на 50 млн в год

Level of difficultyEasy
Reading time8 min
Views292K

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

Читать далее
Total votes 240: ↑217 and ↓23+243
Comments295

14 февраля — день компьютерщика

Reading time1 min
Views67K
image

14 февраля — неофициальный, но широко отмечаемый в профессиональном мире День компьютерщика. 14 февраля 1946 года научному миру и всем заинтересованным был продемонстрирован первый реально работающий электронный компьютер ENIAC I (Electrical Numerical Integrator And Calculator).

Поздравляю всех и желаю успехов на компьютерном поприще!
Да пребудет с нами Ctrl, Alt и святой Delete!
Total votes 75: ↑48 and ↓27+21
Comments8

Тестируем многоядерный процессор методом Кнута и Python’а

Reading time11 min
Views7.3K

В 1978 году вышел третий том монографии Дональда Кнута «Искусство программирования», где автор рассматривает алгоритмы сортировки и поиска. Помимо самих алгоритмов описаны аппаратные характеристики компьютера и их влияние на производительность при работе с алгоритмами.

В 2024 году мы с вами возьмём классические алгоритмы сортировки и посмотрим, как работает современный многоядерный процессор при сортировке нескольких массивов на одном и нескольких логических ядрах. Мы напишем приложение с графическим интерфейсом (GUI) на фреймворке Qt, обойдем глобальную блокировку интерпретатора (GIL), воспользуемся несколькими потоками, на один из которых переложим выполнение асинхронного цикла событий, и распараллелим этот поток для реализации параллельных вычислений.

Читать далее
Total votes 15: ↑13 and ↓2+16
Comments13

Восстановление расфокусированных и смазанных изображений

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

Почему же для устранения смаза и расфокусировки практически ничего нету (unsharp mask не в счет) – может быть это в принципе невозможно? На самом деле возможно – соответствующий математический аппарат начал разрабатываться примерно 70 лет назад, но, как и для многих других алгоритмов обработки изображений, все это нашло широкое применение только в недавнее время. Вот, в качестве демонстрации вау-эффекта, пара картинок:



Я не стал использовать замученную Лену, а нашел свою фотку Венеции. Правое изображение честно получено из левого, причем без использования ухищрений типа 48-битного формата (в этом случае будет 100% восстановление исходного изображения) – слева самый обычный PNG, размытый искусственно. Результат впечатляет… но на практике не все так просто. Под катом подробный обзор теории и практические результаты.
Осторожно, много картинок в формате PNG!
Читать дальше →
Total votes 291: ↑289 and ↓2+287
Comments93

Восстановление расфокусированных и смазанных изображений. Повышаем качество

Reading time5 min
Views210K
Представляю вашему вниманию заключительную статью из трилогии «Восстановление расфокусированных и смазанных изображений». Первые две вызвали заметный интерес — область, действительно, интересная. В этой части я рассмотрю семейство методов, которые дают лучшее качество, по сравнении со стандартным Винеровским фильтром — это методы, основанные на Total Variaton prior.
Также по традиции я выложил новую версию SmartDeblur (вместе с исходниками в open-source) в которой реализовал этот метод. Итоговое качество получилось на уровне коммерческих аналогов типа Topaz InFocus. Вот пример обработки реального изображения с очень большим размытием:


Читать дальше →
Total votes 355: ↑352 and ↓3+349
Comments86

SmartDeblur 2.1 — восстановление смазанных и расфокусированных изображений

Reading time2 min
Views32K
Многие из вас уже читали серию моих постов про восстановление расфокусированных и смазанных изображений, а также пробовали бесплатные версии программы SmartDeblur, к одной из которых доступны исходники на GitHub
Программа и статьи вызвали большой интерес как в рунете, так и в других странах, поэтому мы рады представить коммерческую версию SmartDeblur.

Основные изменения:
— Поддержка больших изображений (до 36MP на 64-битной ОС и до 15MP на 32-битной)
— Возможность редактирования полученного kernel (траектории смаза)
— Увеличение скорости за счет оптимизаций и использования Intel IPP в качестве FFT
— Улучшение интерфейса

image

Адрес проекта: smartdeblur.net
Под катом много картинок!

Читать дальше →
Total votes 107: ↑102 and ↓5+97
Comments70

Blind Deconvolution — автоматическое восстановление смазанных изображений

Reading time6 min
Views147K
Смазанные изображения — один из самых неприятных дефектов в фотографии, наравне с расфокусированными изображениями. Ранее я писал про алгоритмы деконволюции для восстановления смазанных и расфокусированных изображений. Эти, относительно простые, подходы позволяют восстановить исходное изображение, если известна точная траектория смаза (или форма пятна размытия).
В большинстве случаев траектория смаза предполагается прямой линией, параметры которой должен задавать сам пользователь — для этого требуется достаточно кропотливая работа по подбору ядра, кроме того, в реальных фотографиях траектория смаза далека от линии и представляет собой замысловатую кривую переменной плотности/яркости, форму которой крайне сложно подобрать вручную.


В последние несколько лет интенсивно развивается новое направлении в теории восстановления изображений — слепая обратная свертка (Blind Deconvolution). Появилось достаточно много работ по этой теме, и начинается активное коммерческое использование результатов.
Многие из вас помнят конференцию Adobe MAX 2011, на которой они как раз показали работу одного из алгоритмов Blind Deconvolution: Исправление смазанных фотографий в новой версии Photoshop
В этой статье я хочу подробнее рассказать — как же работает эта удивительная технология, а также показать практическую реализацию SmartDeblur, который теперь тоже имеет в своем распоряжении этот алгоритм.
Внимание, под катом много картинок!
Читать дальше →
Total votes 243: ↑239 and ↓4+235
Comments150

Восстановление расфокусированных и смазанных изображений. Практика

Reading time10 min
Views350K
Не так давно я опубликовал на хабре первую часть статьи по восстановлению расфокусированных и смазанных изображений, где описывалась теоретическая часть. Эта тема, судя по комментариям, вызвала немало интереса и я решил продолжить это направление и показать вам какие же проблемы появляются при практической реализации казалось бы простых формул.

В дополнение к этому я написал демонстрационную программу, в которой реализованы основные алгоритмы по устранению расфокусировки и смаза. Программа выложена на GitHub вместе с исходниками и дистрибутивами.

Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.



И вот результат обработки:



Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.

Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
Читать дальше →
Total votes 459: ↑456 and ↓3+453
Comments141

Нейронная сеть против DDoS'а

Reading time7 min
Views40K

Предисловие


Некоторые из вас наверняка недавно проходили Stanford'ские курсы, в частности ai-class и ml-class. Однако, одно дело просмотреть несколько видео-лекций, поотвечать на вопросики quiz'ов и написать десяток программ в Matlab/Octave, другое дело начать применять полученные знания на практике. Дабы знания полученые от Andrew Ng не угодили в тот же тёмный угол моего мозга, где заблудились dft, Специальная теория относительности и Уравнение Эйлера Лагранжа, я решил не повторять институтских ошибок и, пока знания ещё свежи в памяти, практиковаться как можно больше.

И тут как раз на наш сайтик приехал DDoS. Отбиваться от которого можно было админско-программерскими (grep / awk / etc) способами или же прибегнуть к использованию технологий машинного обучения.

Далее пойдёт рассказ о создании нейронной сети на Python 2.7 / PyBrain и её применении для защиты от DDoS'а.

Читать дальше →
Total votes 177: ↑174 and ↓3+171
Comments46

«Что? Где? Когда?» в названии багов

Level of difficultyEasy
Reading time3 min
Views12K

Хорошее название бага понятно любому:

- менеджеру, плохо знающему техническую часть проекта;

- джуниору, который только пришел в проект;

- разработчику (зачем мне это чинить?)

Для этого оно должно отвечать на 3 главные вопроса: Что? Где? Когда?

И в этой статье я хочу разобрать каждый из них подробнее

Читать далее
Total votes 21: ↑20 and ↓1+23
Comments14

[Личный опыт] Лондон: Взаимодействие с банками в 2023 году

Level of difficultyEasy
Reading time6 min
Views5.6K

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

Читать далее
Total votes 15: ↑13 and ↓2+15
Comments12

Новости с книжных полок: нужно ли программистам читать книги

Level of difficultyEasy
Reading time7 min
Views10K

Опрос показал, что около 60% россиян регулярно читают книги (минимум одну за последние три месяца). Миф о том, что Россия — одна из самых читающих стран, не совсем миф. 

Но так ли привержены чтению программисты, особенно, когда ситуация в IT меняется чуть ли не каждый день? О том, какая литература сегодня востребована у разработчиков, подробнее расскажем в этой статье.

Читать далее
Total votes 15: ↑11 and ↓4+14
Comments11

Как мы научили заводчан строить красивые инженерные отчеты из Jupyter Notebook на Python

Reading time14 min
Views30K

Была у нас тут история, когда легкий перфекционизм помог привести в порядок конструкторскую документацию и регулярно экономить инженерам кучу дней на прохождение бюрократических процедур. В ее основе – создание системы управления расчетными данными и переход от трудночитаемых и трудноинтегрируемых отчетов Mathcad к гибкой связке Jupyter Notebook с Python и Teamcenter. Но основной рассказ будет про то, как преобразовывать и экспортировать математические формулы, таблицы и другие элементы из Jupyter в красивый и удобный вид.

Читать далее
Total votes 96: ↑96 and ↓0+96
Comments18

Почему я больше не буду работать наставником на IT-курсах

Level of difficultyEasy
Reading time4 min
Views108K

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

Читать далее
Total votes 284: ↑270 and ↓14+311
Comments724

Размышления о 18 годах работы в Google

Level of difficultyEasy
Reading time6 min
Views59K

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

Читать далее
Total votes 100: ↑98 and ↓2+126
Comments126

Fooocus v2 — бесплатный Midjourney у вас на компьютере. Подробная инструкция по установке и использованию нейросети

Level of difficultyEasy
Reading time10 min
Views240K

Друзья, всем привет! Сегодня я хочу рассказать вам про самую простую и доступную для понимания нейросеть, которая создает изображения по вашему текстовому описанию. Она называется Fooocus и основана на знаменитой Stable Diffusion XL. Это идеальное решение в качестве вашей первой нейросети, и необходимый инструмент для любого дизайнера или контент мейкера.

Внутри много тяжелых изображений.

Читать далее
Total votes 90: ↑87 and ↓3+114
Comments216

Законопослушный гражданин. Инструкция по отказу от VPN

Level of difficultyEasy
Reading time2 min
Views118K

Не так давно государственные структуры озаботились проблемой VPN. Сегодня VPN-протоколы блокируются на уровне провайдеров, но пользоваться ими нам как потребителям пока что можно. Однако ситуация меняется стремительно, и в новостях уже проскакивают слухи о блокировке доступа к статьям по настройке VPN. Дабы вы не попали под уголовное преследование, мы подготовили заметку об удалении VPN, в которой будет пошагово описано, как отказаться от VPN-протокола Wireguard и полностью отключить его, если вы его используете. С другими протоколами инструкция будет плюс-минус совпадать, поэтому расписывать отключение каждого протокола не имеет смысла, вы и сами справитесь.

Читать далее
Total votes 163: ↑139 and ↓24+151
Comments238

ИИ выходит на новый уровень: LLM обретают пространственно-временную картину мира

Level of difficultyMedium
Reading time5 min
Views36K

Исследователи из MIT под руководством Макса Тегмарка сделали важное открытие в области искусственного интеллекта. Им удалось доказать, что современные языковые модели (LLM), обученные на огромных массивах текстов, формируют внутри себя целостные модели мира, включающие представления о таких фундаментальных понятиях, как пространство и время.

Это открытие имеет принципиальное значение. Считалось, что для искусственного интеллекта недоступны базовые человеческие возможности, такие как самосознание, наличие картины мира и способность к человекоподобному мышлению, в принципе. Но это открытие стало gamechanger’ом в плане понимания того, как у ИИ происходит мыслительный процесс.

Предлагаем и Вам углубиться в это исследование и узнать, что конкретно было сделано и как!

Читать далее
Total votes 12: ↑9 and ↓3+11
Comments49
1
23 ...

Information

Rating
Does not participate
Registered
Activity