Обновить
1
@tron_lineread⁠-⁠only

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

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

Классификация изображений в облачной системе Google Colab

Уровень сложностиСложный
Время на прочтение43 мин
Количество просмотров8.8K

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

Эта статья про сверточные нейронные сети, классификацию изображений с помощью моделей глубокого обучения, а также применение Google Colab для написания кода на Python.

Читать далее

Как работает автоматическое выделение документа на изображении в программе ABBYY FineScanner?

Время на прочтение5 мин
Количество просмотров16K
image
Что такое ABBYY FineScanner
ABBYY FineScanner – программа для iOS-устройств, которая может фотографировать документы и обрабатывать снимки так, чтобы получившиеся электронные копии (по сути – сканы) были удобны для работы – чтения, печати или хранения/пересылки в удобочитаемом виде. О выходе первой версии мы писали здесь.

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

Весь процесс можно разделить на несколько основных этапов:

1) Уменьшение исходного изображения
2) Выбор наиболее информативного канала
3) Предобработка изображения, выделение контуров
4) Детектирование границ и определение углов документа
5) Проверка полученных гипотез
6) Уточнение координат углов документа

Рассмотрим каждый из этапов подробнее.
Читать дальше →

Как научить компьютер различать цвета?

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.6K

Привет, Хабр!

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

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

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

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

Читать далее

Обработка изображений и видео на смартфонах: handcrafted-алгоритмы против глубокого обучения

Уровень сложностиПростой
Время на прочтение22 мин
Количество просмотров5K

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

Именно софт смартфона помогает снять фото в HDR или сделать видео менее смазанным. Он состоит из «классических» вычислительных алгоритмов и нейросетей. Вычислительные алгоритмы требуют много ручной работы и глубокого понимания решаемой задачи, зато хорошо работают при ограниченных вычислительных ресурсах. Нейросети прожорливы, но сильно упрощают жизнь разработчику и потенциально позволяют достичь большего. Объединение двух этих подходов даёт замечательные результаты!

Читать далее

#3 Нейронные сети для начинающих. Работа с изображениями в OpenCV. Алгоритм Canny Edge Detector

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


Здесь должна быть шутка
image

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

  1. Преобразование изображения в оттенки серого.
  2. Уменьшение размерности изображения (в пикселях) в 4 раза.
  3. Нахождение и выделение (рамкой) самого тёмного объекта на изображении.
Читать дальше →

Как я заработал первый миллион за год с нуля в геймдеве, продавая ассеты на UE Marketplace

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров71K

Привет! Меня зовут Хамзат. Я хочу поделиться своей историей, успехами и планами на будущее касаемо разработки игровых ассетов и самих игр в целом.

Читать далее

Game++. Building arcs

Уровень сложностиПростой
Время на прочтение24 мин
Количество просмотров6.7K

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

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

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

Читать далее

Пишем обертку для сборки OpenSSL на CMake

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.1K

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

Главной проблемой сборки OpenSSL выступает система сборки - Autotools, ее сложно интегрировать в CMake. В данной статье рассмотрим как приложив минимальное количество усилий перенести сборку OpenSSL на CMake.

Читать далее

Четыре кружки пива в день – минус 10 лет для мозга

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров52K

Дисклеймер: идея о «безопасных дозах алкоголя» смешна, но еще смешнее и ужаснее выглядит пропаганда «ждановщины», которая лишена конструктива в своей основе. Наиболее адекватное объяснение общего вреда алкоголя изложено в этой лекции профессора нейробиологии Стэнфордского университета доктора Эндрю Губермана. В частности, если 1-2 бокала вина или 2-4 кружки пива в день, или еженедельный загул по пятницам стали для человека нормой – он априори вредит своему мозгу и организму в целом. Новое исследование показывает наглядные изменения в мозге при ежедневном «умеренном потреблении».

Читать далее

CGI в домашних условиях при помощи Unreal Engine и iPhone

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

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

Год назад я наткнулся на следующее видео:

Смотреть видео


Что мы здесь видим? Парень нацепил на себя костюм захвата движения тела (пока ничего необычного), повесил перед собой iPhone (а вот это уже интересно) и таким образом транслирует анимацию лица и тела персонажа напрямую в режиме реального времени в Unreal Engine, и выглядит результат для столь незамысловатой реализации довольно качественно.

Классная идея, подумал я. Затем закрыл видео. И продолжил дальше работать.

Спустя полгода в открытом доступе оказался обучающий материал о том, как произвести захват анимации лица в Unreal Engine при помощи приложения на iPhone. В то же время я узнал, что в наш арт-отдел приобрели костюм для захвата движения. Посмотрел его совместимость с UE: всё подошло. Оставалось только найти iPhone для дальнейшей работы, но в наше время с этим проблем еще меньше.

Смотреть видео


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

Начался долгий процесс изучения различной документации.

Что в результате получилось и как мы этого добились, читайте дальше.
Читать дальше →

Unreal Engine: Unreal header tool и Рефлексия в деталях

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

Привет Хабр!

В этой статье будет разобрана работа Unreal Header tool, рефлексии, и немного затронем VM.

Читать далее

Быстрый переход на UNIGINE с Unreal Engine 4: первые шаги

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

Если вы планируете переходить с иностранного софта на отечественный и ищете полноценный аналог Unreal Engine 4, то одним из вариантов может стать 3D движок UNIGINE.

Сравниваем основные термины, управление проектами, интерфейс редактора, работу со сценой, настройки проекта и многое другое под катом.

Читать далее

Ремейк инди платформера: single-player в multiplayer с Unity на Unreal Engine 5. Опыт разработчика

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров1.9K

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

Именно эти преимущества вместе с общим трендом побудили меня сделать ремейк ранее созданный игры, когда появилась задача углубиться в Unreal Engine 5 и язык программирования С++. О том, что получилось в итоге, что пришлось изменить и доработать, хочу рассказать в этой статье.

Читать далее

TCP против UDP или будущее сетевых протоколов

Время на прочтение27 мин
Количество просмотров180K
Перед каждым сервисом, генерирующим хотя бы 1 Мбит/сек трафика в интернете возникает вопрос: «Как? по TCP или по UDP?» В прикладных областях, в том числе и платформах доставки уже сложились предпочтения и традиции принятия подобных решений.

По идее, если бы, к примеру, однажды один ленивый разработчик не попробовал развернуть свой ML на Python (потому что только его и знал), мир скорее всего никогда не проникся бы такой любовью к презренному «супер-джава-кодерами» языку. А сегодня слабости этого языка в прошлом контексте применения безоговорочно обеспечивают ему первенство в развертывании и запуске многочисленных майнерских А/Б.

Сравнивать можно многое: ARM с Intel, iOS и Android, а Mortal Kombat с Injustice. И нарваться на космический холивар, поэтому вернемся к теме доставки огромных объемов разноформатного контента.

Десять лет назад все были абсолютно уверены, UDP — это что-то про негарантированную доставку. Если нужен надежный протокол — это TCP. И вопреки традициям в этой статье мы будем сравнивать такие, кажущиеся несравнимыми вещи, как TCP и UDP.


Осторожно, под катом 99 иллюстраций и схем и все важные.

Когда TCP быстрее UDP

Время на прочтение6 мин
Количество просмотров51K
Я знаю отличную шутку про UDP, но не факт, что она до вас дойдёт.

Все, кто хоть раз в жизни, по работе открывал файл /etc/services знают, что одни сетевые службы используют транспортный протокол TCP, другие же — UDP. Каждый из них имеет свою область применения. Если надёжность соединения имеет приоритет над скоростью передачи данных, то TCP предпочтительнее. Например, для SMTP, или IMAP больше подходит TCP. Обратное тоже верно там, где важна скорость передачи данных, а потеря дейтаграмм или их порядок не критичны — используют UDP. К их числу относятся SNMP, DNS, VoIP и другие службы.
Читать дальше →

Протоколы семейства TCP/IP. Теория и практика

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров246K
image

В сети можно найти огромное количество материала о том, как функционируют сети на базе стека протоколов TCP/IP, а также как писать компьютерные программы с сетевыми возможностями. При рассмотрении компьютерных сетей часто углубляются в описание физических основ и структур данных, передаваемых по сети, а при рассмотрении сетевого программирования основное внимание уделяют интернет-сокетам.

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

В ходе работы над статьёй я написал небольшое приложение, которое послужит отправной точкой для понимания компьютерных сетей и семейства протоколов TCP/IP. С приложением можно экспериментировать, получая дополнительные знания.

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

В статье изложены наиболее важные с моей точки зрения понятия, которые должен знать любой программист, хоть как-то сталкивающийся с компьютерными сетями. Так что без теоретических сведений не обошлось.
Читать дальше →

Транспортный уровень: TCP И UDP

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

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

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

Читать далее

Нюансы кастования в C#

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров7.4K

Всем привет. Не так давно добавлял поддержку кастования через 'as' к себе в компилятор и задался вопросом — в каких случаях я получу Compile Time ошибку? Если заинтересовал — прошу под кат.

Читать далее

Несколько полезных советов как практиковаться в Python

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

Привет, Хабр! Сегодня я предлагаю Вам перевод статьи Duomly, посвящённой изучению и практике программирования на языке Python.


Введение


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


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

Читать дальше →

Декораторы Python. Введение

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров13K

Всем привет, меня зовут Аббакумов Валерий.

Я Python разработчик, в основном занимаюсь бэкэндом веб приложений. Хочу написать серию статей для начинающих разработчиков. Посты будут трех уровнях сложности (от меньшей к большей) на разные аспекты языка, с которыми сложно справиться обывателю.

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

Я прикреплю ссылки на смежные статьи (тоже хороший материал, но ИМХО в них либо странная подача либо некоторая неполнота), мне кажется, что мой материал в разрезе 3 статей на каждую тему будет лаконичней и полней, но тут уже решать только вам, дорогие читатели

Читать далее

Информация

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

Специализация

Десктоп разработчик, Разработчик игр
Python
ООП
C++
Unreal Engine
Шейдеры
Разработка игр
Разработка под AR и VR