Pull to refresh
12
0
Илья Сафонов @IliaSafonov

Principal Research Scientist

Send message
Компьютерное зрение (сомнительно)

Я бы здесь разделил стадии исследований для создания алгоритма-прототипа и разработки непосредственно продукта. Для прототипирования (в качестве бесплатной альтернативы Matlab) есть масса неплохих библиотек для Python (skimage, mahotas, etc) и обертка над OpenCV, так что Python очень не плох. Но для продукта прототип, как правило, лучше переписать, например, на С++, иначе проблемы с производительностью.
Компьютерное зрение… вакансий практически нет.

Мне кажется, что сейчас в представлении работодателя «компьютерное зрение» тождественно равно «машинное обучение». Поэтому в вакансиях пишут TensorFlow, PyTorch, etc.
Нет ли планов добавить в OpenCV возможность обрабатывать 3D (volumetric) изображения? Работаю с томографическими изображениями размера порядка 4000х4000х4000. Существующие open-source библиотеки для 3D, мягко говоря, бедноваты и медленноваты по сравнению с OpenCV.
Спасибо за энтузиазм и оптимизм!
против патентных троллей и недобросовестных конкурентов
Против патентных троллей ваши заявки, может быть, помогут, но сомневаюсь, что помогут в борьбе с конкурентами. Насколько я понимаю, заявляются способ (реализуемый с помощью компьютерной системы) и/или система. Как ваша компания собирается обнаружить infringement? Что мешает конкурентам описать функциональный аналог, который с юридической точки зрения будет отличаться?

И самый важный вопрос: почему для защиты, по большому счёту, софтверных продуктов выбран дорогой путь патентования, а не, например, публикация в открытом доступе статьи, что, в идеале, приведет к невозможности патентования конкурентами точно такого же решения?
Можно сказать, что в общем. Нейронным сетям там посвящено только две главы из 13. Ссылка
Несколько лет назад игрался с записью данных с инерциальных датчиков на Android. Частота прихода данных была очень нестабильной. Экспериментировал с несколькими смартфонами. На каких-то лучше, на каких-то хуже, но при запросе данных на 100 Гц реальная частота иногда проваливалась до 5 Гц. Так что при разработке алгоритма советую смотреть на timestamp, а не верить в стабильность частоты.
некорректную обработку EPS-файлов в Microsoft Office (CVE-2017-0262)
Вот здесь подробный анализ этой уязвимости. Если я правильно понимаю, то тут эксплуатируется не какая-то ошибка в epsimp32.dll, а особенность самого языка программирования PostScript в соответствии с PostScript Language Reference Manual, а точнее механизм сохранения и восстановления памяти используемых объектов.
Логично предположить, что такая проблема затрагивает не только указанные версии MS Office, но и более ранние версии, а также любые программы по работе с PostScript и Encapsulated PostScript (EPS) на всех платформах и даже принтерах. Замечу, что PostScript много где продолжает использоваться, например, он может быть внутри PDF и TEX.
Добавлю несколько ссылок на метрики, которые были полезны при решении практических задач.
1. При многоклассовой классификации важно помнить, что бывают micro- и macro-метрики. Например, здесь можно найти объяснение и, конечно, в документации scikit-learn.
2. Для регрессии есть некий аналог ROC: Regression Error Characteristic Curve. Статья. Простой пример.
Спасибо за перевод! Есть несколько замечаний по терминам и по смыслу. Помимо «псевдотонирования» используют термин «псевдосмешение (цветов)». Мне он представляется более адекватным, так как ощущение бОльшего количества цветов (или оттенков серого) создается за счет группировки определённых цветов в локальной окрестности, как, например в пуантилизме.
В ordered dithering нет никакого размытия. Там просто сравниваются значения из изображения со значениями из матрицы. Поэтому перевод «с упорядоченным размытием» может запутать. Исторически ordered dithering возник из random dithering, в котором к изображению добавлялся случайный шум, а потом делалось квантование (в простейшем случае бинаризация). Этот шум на русский язык переводили как «возбуждение»: random dithering == псевдосмешение со случайным возбуждением. Соответственно, order dithering == псевдосмешение с матрицей возбуждения или с упорядоченным возбуждением. Хотя, конечно, на русском языке этой теме посвящено мало книг и статей, так что с терминологией не всё однозначно.
На самом деле псевдотонирование по-прежнему остаётся уникальным методом не только по практическим соображениям (например, подготовка полноцветного изображения для печати на чёрно-белом принтере)
Для печати используют «halftoning» — полутонирование, а не псевдотонирование. Это другие алгоритмы.

Следует отметить, что у всех перечисленных в статье алгоритмов есть существенная особенность, которая ограничивает их область применения. При масштабировании (особенно в не кратное двум раз) изображений, обработанных dithering, возникают визуальные артефакты (например, муар может возникать). Для интереса, я советую вырезать любое (кроме исходного) изображение из примеров в статье и посмотреть его, например при масштабе в 70%.
Полностью поддерживаю комментарии rotor. Даже если вы делаете код не для production, думаете, что пишете только для себя, не считаете себя software developer, то, пожалуйста, следуйте общеизвестным правилам. Это просто элемент культуры, как например, обозначения по осям графика писать и выводить только значащие цифры.
В частности, следуйте пяти правилам, которые перечислил выше rotor, и ещё:
6) Пишите тесты.
Буквально несколько дней назад с коллегой сидели перед Jupyter тетрадкой, обсуждали графики и выдвигали гипотезы. Оказалось, что теряли время, так как в обработке была ошибка. Для реальных данных этой ошибки не видно, а на модельных/искусственных видно. Если бы заранее написали тест, то не потеряли бы время. А могли ошибку и не заметить. Так бы и отдали неправильные результаты.
Почему магические константы (как в данном случае 64) — это плохо?

Как правило, без констант в программах не обойтись. Плохо, когда эти константы не объяснены/ не обоснованы, когда они превращаются в "(black) magic numbers". Как понять, из каких соображений взято это число? Это результат экспериментов над какими-то данными, оно основано на априорной информации, на интуиции или, просто, случайное? Если данные/задача изменятся, из каких соображений надо менять это число? И так далее.
Кстати, у рецензентов научных статей словосочетание «magic numbers» является одним из самых «ругательных».
За последние 5 лет я раз 10 писал рекомендации знакомым в европейские и американские университеты и IT-компании. Каждый раз меня предупреждали, что мне могут позвонить и ни разу не позвонили. За доверие я очень благодарен, т.к. не люблю отвлекаться на незапланированные разговоры. У моих коллег, которые писали рекомендательные письма, аналогичный опыт. Бывает что звонят, но очень редко.
Какой же кошмар наступит, когда «инициативные» HR начнут названивать занятым людям по телефону!!! Вы бы хоть что-то помягче предложили, например письма по e-mail писать. А вообще, людям надо верить, тогда и они к HR лучше относиться будут.
Спасибо за подробное изложение!
Вопрос: почему на заключительном этапе не объединяетесь с кем-нибудь из соседей по leader-board в команду? Говорят, что ансамбль и стекинг разных моделей часто помогает получить результат выше. По этой причине люди стремятся составить команды, пишут друг другу приглашения.
Спасибо за выложенные материалы! С большим интересом посмотрел видео выступления Евгения Григоренко.
К сожалению, качество изображения и звука, мягко говоря, очень плохое. Понятно, что условия для съёмки очень сложные, но можно хотя бы при монтаже «не моргать» презентацией с такой частотой. Просто смерть для глаз! (слово «смерть», видимо, навеяна презентацией)
лучше всего я об этом в своей книге изложил, ссылку на которую дал вам в личке.

Про книгу многим может быть интересно. «Прогнозное моделирование в IBM SPSS Statistics и R. Метод деревьев решений» имеется в виду?
Рассмотрим финансовый вопрос. Да, при смене работы я существенно потеряю в деньгах
Интересно, что по этому поводу думает семья?
Совершенно согласен, что для прогресса во многих областях не хватает размеченных данных, в частности изображений. Не понял, что вы предлагаете сделать для улучшения ситуации?
Мы несколько лет назад размеченную базу изображений, которая использовалась в одной более-менее удачной научно-исследовательской работе, выложили в UCI Machine Learning Repository. Призываю поступать аналогичным образом тех, у кого в результате дипломов и диссертаций появляются оригинальные размеченные изображения, видео, аудио и т.п.
А в чём суть предлагаемого алгоритма? Что нового? Почему называется broo?
Netflix пишет, что быстро восстановился за счет устойчивой к сбоям архитектуре.
или код снимает косвенность (dereferences) nullptr
pointer dereference = разыменование указателя. Если бы не было слова «dereference», то не понял бы о чем речь.
В оригинале: «некий код обращается по nullptr (нулевому указателю)».

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity