Pull to refresh
65
0
Vadim Frolov @fralik

Data Scientist

Send message

CLIP from OpenAI: what is it and how you can try it out yourself

Reading time7 min
Views12K

Neural networks (NN) and computer vision models in particular are known to perform well in specific tasks, but often fail to generalize to tasks they have not been trained on. A model that performs well on a food data may perform poorly on satellite images. 

A new model from OpenAI named CLIP claims to close this gap by a large margin. The paper Open AI wrote presenting CLIP demonstrates how the model may be used on a various classification datasets in a zero-shot manner. 

In this article, I will explain the key ideas of the model they proposed and show you the code to use it. 

Read more
Total votes 3: ↑3 and ↓0+3
Comments4

Machine learning in browser: ways to cook up a model

Reading time12 min
Views2K

With ML projects still on the rise we are yet to see integrated solutions in almost every device around us. The need for processing power, memory and experimentation has led to machine learning and DL frameworks targeting desktop computers first. However once trained, a model may be executed in a more constrained environment on a smartphone or on an IoT device. A particularly interesting environment to run the model on is browser. Browser-based solutions may be used on a wide range of devices, desktop and mobile, online and offline. The topic of this post is how to prepare a model for the in-browser usage.

This post presents an end-to-end implementations of a model creation in Python and Node.js. The end goal is to create a model and to use it in a browser. I'll use TensorFlow and TensorFlow.js as main frameworks. One could train a model in Python and convert it to JS. Alternative is to train a model directly in javascript, hence omitting the conversion step.

I have more experience in Python and use it in my everyday work. I occasionally use javascript, but have very little experience in the contemporary front-end development. My hope from this post that python developers with little JS experience could use it to kick start their JS usage.

Read more
Total votes 3: ↑3 and ↓0+3
Comments0

Build tools in machine learning projects, an overview

Reading time12 min
Views3.2K
I was wondering about machine learning/data science project structure/workflow and was reading different opinions on the subject. And when people start to talk about workflow they want their workflows to be reproducible. There are a lot of posts out there that suggest to use make for keeping workflow reproducible. Although make is very stable and widely-used I personally like cross-platform solutions. It is 2019 after all, not 1977. One can argue that make itself is cross-platform, but in reality you will have troubles and will spend time on fixing your tool rather than on doing the actual work. So I decided to have a look around and to check out what other tools are available. Yes, I decided to spend some time on tools.

image

This post is more an invitation for a dialogue rather than a tutorial. Perhaps your solution is perfect. If it is then it will be interesting to hear about it.

In this post I will use a small Python project and will do the same automation tasks with different systems:


There will be a comparison table in the end of the post.
Read more →
Total votes 9: ↑7 and ↓2+5
Comments0

Написание расширения для Оперы и Хрома: взгляд на процесс

Reading time7 min
Views8.4K

Как многие из вас помнят какое–то время назад Гугл во второй раз спрятал ссылку на Ридер, заменив ее ссылкой на Фотографии. В первый раз это вызвало волну недовольства пользователей и Гугл вернул все назад, сославшись на ошибку. Тогда, сразу же, появилось расширение для Хрома, возвращающее ссылку на Ридер. Я портировал это расширение для Оперы.

Когда второй раз Гугл перенес ссылку, волна возмущения уже была не такой сильной. Сначала мне даже показалось, что никто не обратил внимания. Сообщество было занято более важными новостями. Но появилось обсуждение на форуме поддержки Гугла и даже официальный ответ о том, что Гугл всегда стремится улучшить свои продукты и такое улучшение может приводить к действиям подобным случившемуся с ссылкой на Ридер. Я вспомнил про свое расширение, расчехлил запылившийся код и решил сделать расширение более приятным и более осмысленным. А именно — дать пользователю возможность задавать структуру ссылок самому. Расширение должно динамически выдергивать все ссылки со страницы, показывать их пользователю в виде двух колонок и позволить перетаскивать их мышкой. Оказалось, что для Хрома такого расширения тоже не было и дополнительно я задался идеей написать два расширения с общим кодом.
Под катом мои впечатления от работы и подходов Оперы и Гугла к расширениям
Total votes 31: ↑27 and ↓4+23
Comments13

Заметки о кросс–компиляции приложений под DD-WRT

Reading time8 min
Views19K
Недавно у меня перестал работать вайфай-рутер и после некоторых раздумий я заказал Asus RT-N16. Хотелось наконец–то познакомиться с альтернативными прошивками. Характеристики этого рутера уже описывались на Хабре. Итак, DD-WRT установлена (v2.24), самба заведена, в первый юсб порт воткнута системная флешка, а во второй — внешний жесткий диск. А дальше я заинтересовался: а смогу ли я запустить свои программы на этом рутере? Я не нашел в сети руководства по сборке программ под рутер и надеюсь этой статьей восполнить пробел. Приведу пошаговое руководство с описанием небольших проблем, встреченных на пути.

В качестве подопытной программы мне хотелось запустить Easysync, о которой я недавно писал. Повторюсь, что это открытая программа для синхронизации файлов в стиле дропбокса. Программа написана с использованием Qt 4, а в качестве движка синхронизации используется Unison. Так что, эта статья описывает как откомпилировать Qt, Unison, Easysync для архитектуры MIPS и рассказывает о запуске Easysync на вашем домашнем рутере.
Поехали!
Total votes 58: ↑55 and ↓3+52
Comments42

Синхронизация в стиле Dropbox на вашем собственном сервере

Reading time3 min
Views4.8K
Этим топиком я хотел бы начать диалог о синхронизации файлов. На Хабре были уже топики и про Дропбокс и про альтернативные сервисы (раз, два). Сервисы отличные, но меня интересовал вопрос: а как же я могу организовать синхронизацию файлов на своем собственном железе? Я начал искать уже готовую программу, но нашел немногое. Похоже, что большинство людей просто вызывают rsync/unison из cron'а. Написание клиент–серверной программы, которая бы отслеживала изменения файлов в папке, казалось делом несложным, и я решил попробовать.
Под катом то, что из этого получилось.
Total votes 17: ↑17 and ↓0+17
Comments18

Робо–операционная система теперь и на Андроиде

Reading time1 min
Views1.1K
image

Два года назад было объявлено о намерениях создать специальную операционную систему для роботов. Она была создана и уже успешно применяется, пополняясь все новыми и новыми «вкусностями».

Вчера группа ученных из Мюнхенского технического университета анонсировала портирование этой ОС на Андроид.
Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments6

Обнаружение пешеходов

Reading time5 min
Views9.6K
Обнаружение пешеходов используется главным образом в исследованиях, посвященных беспилотным автомобилям. Общая цель обнаружения пешеходов — предотвращение столкновения автомобиля с человеком. На Хабре недавно был топик про «умные машины». Создание подобных систем очень популярное направление исследований (Darpa challenge). Я занимаюсь распознаванием пешеходов для подобного проекта интеллектуальных автомобилей. Очевидно, что проблема обнаружения пешеходов — программная, а предотвращение столкновения — аппаратная. В данной статье я упомяну лишь о программной части, кратко расскажу об одном способе обнаружения людей на изображении и алгоритме классификации.
Заинтересовавшихся прошу под кат.
Total votes 128: ↑125 and ↓3+122
Comments90

Выбор изображений просто и эффективно

Reading time8 min
Views5.7K
Добрый день. Рассмотрим следующую функциональность приложения: добавление изображения к тексту. Изображения не встраиваются в сам текст (как, например, в википедии), а существуют отдельно. Текст может иметь одно или несколько изображений. Процедуру привязки хотелось сделать максимально дружелюбной по отношению к пользователю.
Выбор пал на представление данных с помощью двух областей: слева находятся все картинки, доступные для выбора, в правой — выбранные. Пользователь может выбирать изображения как с помощью мышки, так и с помощью дополнительных кнопок.
Пример работы плагина

Под катом немного о реализации
Total votes 10: ↑4 and ↓6-2
Comments0

Изменение библиотеки libdc1394 для поддержки нужной камеры

Reading time3 min
Views2K
Когда разговор заходит о свободном программном обеспечении, то одним из аргументов «за» является возможность самому вносить изменения в код. Мне лично кажется, что конечного пользователя такая возможность волнует мало. И дело может быть не только в отсутсвии навыков программирования, но и просто в непонимании, что это возможно.

В этой статье я кратко опишу свой опыт «допиливания» библиотеки libdc1394 под себя, а вернее под ту камеру, с которой я работаю. Предполагаю, что статья может быть интересна тем людям, которые еще сами никогда ничего не подправляли в сторонних библиотеках и тем, кому приходится иметь дело с firewire камерами в линуксе.
Поехали
Total votes 54: ↑48 and ↓6+42
Comments15

GitHub, вебсайт и автоматическое создание тестового сайта из последней версии исходных кодов

Reading time11 min
Views3.7K
Речь в данной статье пойдет о том, как автоматически получать свежую версию исходников из основной ветки вашего репозитория и разворачивать из нее проект на виртуальном хостинге. Сразу хочу отметить, что с GitHub'ом и Git'ом я познакомился только вчера. Поэтому матерым веб–программистам эта статья может показаться тривиальной. А тем, кто еще только начинает свой путь веб–программиста, надеюсь, поможет.

Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments5

Information

Rating
Does not participate
Registered
Activity