Обновить
534.26

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Проверим тысячи пакетов PyPI на вредоносность

Время на прочтение8 мин
Охват и читатели7.6K
Примерно год назад Python Software Foundation открыл Request for Information (RFI), чтобы обсудить, как можно обнаруживать загружаемые на PyPI вредоносные пакеты. Очевидно, что это реальная проблема, влияющая почти на любой менеджер пакетов: случаются захваты имён заброшенных разработчиками пакетов, эксплуатация опечаток в названиях популярных библиотек или похищение пакетов при помощи упаковки учётных данных.

Реальность такова, что менеджеры пакетов наподобие PyPI являются критически важной инфраструктурой, которой пользуется почти любая компания. Я мог бы многое написать по этой теме, но сейчас достаточно будет этого выпуска xkcd.



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

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

Я хотел глубже исследовать этот вопрос, поэтому в посте расскажу о том, как установил и проанализировал каждый пакет PyPI в поисках вредоносной активности.

Кодируем и декодируем сообщение для внеземных цивилизаций

Время на прочтение6 мин
Охват и читатели10K
Привет Хабр.

Мотивом для этой статьи, на самом деле, послужил грустный повод. Всемирно известный радиотелескоп обсерватории Аресибо в Пуэрто-Рико разрушился и восстановлению не подлежит. Многие годы это был самый крупный радиотелескоп в мире с полной апертурой (диаметр 304 м, диапазон частот до 10 ГГц), с помощью которого было сделано немало открытий. Здесь на фото из Википедии он в еще рабочем состоянии:


Источник: en.wikipedia.org/wiki/Arecibo_Observatory

Но текст собственно о другом событии. В 1974 г с этого телескопа было отправлено в космос послание внеземным цивилизациям. Что и как было в нем закодировано, подробности под катом.
Читать дальше →

Делаем печатные ссылки кликабельными с помощью TensorFlow 2 Object Detection API

Время на прочтение43 мин
Охват и читатели6.5K

Links Detector Cover


TL;DR


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


С помощью TensorFlow 2 Object Detection API мы научим TensorFlow модель находить позиции и габариты строк https:// в изображениях (например в каждом кадре видео из камеры смартфона).


Текст каждой ссылки, расположенный по правую сторону от https://, будет распознан с помощью библиотеки Tesseract. Работа с библиотекой Tesseract не является предметом этой статьи, но вы можете найти полный исходный код приложения в репозитории links-detector repository на GitHub.


Запустить Links Detector со смартфона, чтобы увидеть конечный результат.

Открыть репозиторий links-detector на GitHub с полным исходным кодом приложения.

Вот так в итоге будет выглядеть процесс распознавания печатных ссылок:


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

Настройка GitHub Actions для автоматизированного тестирования средствами Python в конвейере CI/CD

Время на прочтение8 мин
Охват и читатели18K

В этой статье описываются операции по тестированию клиентской части приложения с помощью TestProject и pytest, а также способы выполнения тестов через GitHub Actions. Если у вас общедоступный репозиторий GitHub, все это будет совершенно бесплатно. Эта возможность хорошо подходит для изучения TestProject и выполнения интеграционного тестирования в ваших проектах. Если вы хотите выполнять эти операции из закрытого репозитория, то GitHub предлагает очень большое количество бесплатных минут, см. https://github.com/features/actions#pricing-details.

Читать далее

Введение в обработку изображений в Python при помощи Pillow

Время на прочтение5 мин
Охват и читатели81K

Бывает такой заходишь на почту и видишь очередную подборку статей, которые никогда не прочитаешь, но тут так сошлись звезды, что и открыл статью, и прочел, и придумал, где на практике пригодится. А теперь хочу поделиться статьей с Хабром, чтобы если кому-то нужен будет простой и понятный гайд по работе с изображениями на Python — пожалуйста.


Pillow — это свободно распространяемая библиотека для работы с изображениями (далее Imaging Library) на Python с открытым исходным кодом, которая добавляет вашему коду поддержку открытия, изменения и сохранения изображений в различных расширениях.

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

Как создать свою собственную библиотеку AutoML в Python с нуля

Время на прочтение8 мин
Охват и читатели6.8K
Библиотеки и сервисы AutoML вошли в мир машинного обучения. Для дата-сайентиста это очень полезные инструменты, но иногда они должны быть адаптированы к потребностям бизнес-контекста, в котором работает дата-сайентист. Вот почему вам нужно создать свою собственную библиотеку AutoML. В преддверии старта нового потока курса «Машинное обучение» мы делимся материалом, в котором описано, как это сделать на Python.


Давайте начнём

Участвуем в соревновании по Data Science. Первый опыт

Время на прочтение37 мин
Охват и читатели5.5K
Привет, Хабр!

Давно я не писал никаких статей и, вот думаю, пришло время написать о там, как мне пригодились знания по data science, полученные по ходу обучения небезывестной специализации от Яндекса и МФТИ «Машинное обучение и анализ данных». Правда, справедливости ради надо отметить, что знания до конца не получены — специализация не завершена :) Однако, решать простенькие реальные бизнесовые задачи уже можно. Или нужно? На этот вопрос будет ответ, буквально через пару абзацев.

Итак, сегодня в этой статье я расскажу уважаемому читателю о своем первом опыте участия в открытом соревновании. Хотелось бы сразу отметить, что моей целью соревнования было не получение каких-либо призовых мест. Единственное желание было попробовать свои силы в реальном мире :) Да, в добавок так вышло, что тематика соревнования практически никак не пересекалась с материалом из пройденных курсов. Это добавило некоторые сложности, но с этим соревнование стало еще интереснее и ценнее опыт вынесенный оттуда.

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

Как разработать ансамбль Light Gradient Boosted Machine (LightGBM)

Время на прочтение16 мин
Охват и читатели62K
В преддверии старта нового потока курса «Машинное обучение» представляем вашему вниманию материал о Light Gradient Boosted Machine (далее — LightGBM), библиотеке с открытым исходным кодом, которая предоставляет эффективную и действенную реализацию алгоритма градиентного бустинга.

LightGBM расширяет алгоритм градиентного бустинга, добавляя тип автоматического выбора объектов, а также фокусируясь на примерах бустинга с большими градиентами. Это может привести к резкому ускорению обучения и улучшению прогнозных показателей. Таким образом, LightGBM стала де-факто алгоритмом для соревнований по машинному обучению при работе с табличными данными для задач регрессионного и классификационного прогностического моделирования. В этом туториале вы узнаете, как разрабатывать ансамбли машин Light Gradient Boosted для классификации и регрессии. После завершения этого урока вы будете знать:

  • Light Gradient Boosted Machine (LightGBM) — эффективную реализацию ансамбля стохастического градиентного бустинга с открытым исходным кодом.
  • Как разрабатывать ансамбли LightGBM для классификации и регрессии с помощью API scikit-learn.
  • Как исследовать влияние гиперпараметров модели LightGBM на её производительность.


Давайте начнём

Deep Anomaly Detection

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

Детекция аномалий с помощью методов глубокого обучения


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

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

Рассмотреть алгортмы Deep Learning далее

Аудит чат-ботов

Время на прочтение6 мин
Охват и читатели3K


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

Лицевые анимации из двумерных видео

Время на прочтение5 мин
Охват и читатели3.2K

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

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

Почитать о провале

Hack The Box. Прохождение SneakyMailer. Фишинговая рассылка, LPE через PyPI и GTFOBins pip3

Время на прочтение3 мин
Охват и читатели4.5K

Продолжаю публикацию решений, отправленных на дорешивание машин с площадки HackTheBox.

В данной статье мы получим список адресов электронной почты, выполним рассылку фишинговых писем, разместим PHP шелл через FTP, выполним произвольный код благодаря PyPI и повысим привилегии через GTFOBins pip3.

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

Удобное логирование на бэкенде. Доклад Яндекса

Время на прочтение12 мин
Охват и читатели20K
Что-то всегда идет не по плану. Приходится отвечать на вопросы, «Что сломалось?», «Почему тормозит?» и «Почему мы не увидели этого раньше?». На примере простого приложения Даниил Галиев zefirior из Яндекс.Путешествий показал, как отвечать на эти вопросы и какие инструменты в этом помогут. Настроим логирование, прикрутим трассировку, разложим ошибки, и все это в удобном интерфейсе.

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

Ближайшие события

Как с помощью хакатона столкнуть математиков и ML–щиков, и кто тогда победит

Время на прочтение10 мин
Охват и читатели3.8K

Введение


Эта статья о том, как мы совместно с роснефтёвой «дочкой» «Самаранефтехимпроект» и Казанским Федеральным Университетом в сентябре 2020 года провели «Хакатон трёх городов», на котором предложили студентам решить классическую задачу сейсмической корреляции отражающих горизонтов. С такими задачами постоянно сталкиваются специалисты по сейсморазведке по всему миру. Для участников задачу решили преподнести как «задачу поиска оптимального пути», чтобы не отпугнуть студентов страшными словами. В статье расскажем подробнее про задачу и разберём интересные решения участников. Это будет увлекательно для специалистов как по прикладному математическому моделированию, так и машинному обучению и анализу данных.
Читать дальше →

Определяем пол и возраст по фото

Время на прочтение2 мин
Охват и читатели8.6K


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

К примеру, имеется следующая информация: пол, возраст и ссылка на фото. Для проверки соответствия воспользуемся библиотекой py-agender языка Python.

Работа библиотеки осуществляется в два этапа. На первом, opencv определяет расположение лица на фото. На втором, нейронная сеть архитектуры EfficientNetB3, которая обучена на наборе данных UTKFace DataSet, определяет пол и возраст обладателя лица на фото.

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

Управление многозвенными манипуляторами робототехнического комплекса с помощью нейронной сети

Время на прочтение6 мин
Охват и читатели13K

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

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

Рассмотрим трехзвенный манипулятор с параметрами, приведенными в таблице 1.

Читать далее

NaN все еще может немного удивить

Время на прочтение3 мин
Охват и читатели16K
image

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

Ваш pet-project будет доволен. Как вдохнуть жизнь в свои наработки

Время на прочтение4 мин
Охват и читатели10K

Pet project


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


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

Быстрый поиск по всем пользователям ВК

Время на прочтение8 мин
Охват и читатели21K

Задача:

Нужно пройтись по 650 000 000 пользователям ВК и вытащить только тех, кто живет в Москве. Затем отдельно обработать уже полученные айдишники.

Решение:

- генерация токенов для вк api

- асинхронные запросы

- код проекта в Google Colab (Python)

Читать далее

Как посмотреть плоские фильмы в 3D

Время на прочтение7 мин
Охват и читатели9K

Это сильно расширенная версия моей публикации на Medium

Недавно я сидел в баре с другом зашел разговор о том, в каких задачах в принципе может быть эффективен нейросетевой подход, а где они совершенно излишни. Один класс примеров, где нейросети часто наголову превосходят классические алгоритмы - обработка изображений. Точность решения задачи распознования объектов на изображении может даже превосходить человеческое восприятие. Кроме того, интересны и задачи переноса стиля, генерации реалистичных изображений, superresolution итд. Нейросети могут быть очень эффективны также в задачах типа pixtopix, когда происходит генерация одного изображения из другого. Тогда у меня и возникла идея попробовать применить данные алгоритмы для преобразования 2d фильмов в 3d.

Читать далее

Вклад авторов