Pull to refresh
454
-5
Мальцев Антон @ZlodeiBaal

Computer Vision, Machine Learning

Send message
Вы мне самому предлагаете найти статью, в которой SVM бы назывался Deep Learning'ом?

Видно google ищет по разному в зависимости от истории запросов. У меня одно из первых было напмер такое. А дальше ещё пара похожих.
videolectures.net/roks2013_wiering_vector/
Просто потому что здесь не выполняется базовая гипотеза Deep Learning'а: нет иерархичности признаков.

Воот. А о чём я вам говорю. Процент эффективной информации на изображении 0.001. А если нарезать сегменты вдоль проводов, то будет 100%. И нейросети уже заработают.
У вас же есть только провод и ветки сами по себе; ни из чего они не состоят, поэтому и толку от глубоких сетей нет. С другой стороны, в Вашей задаче понятнее, как её решать (в отличие от мотоциклов): найти провода и проследить их по всей картинке на предмет пересечения с ветками. Понятно, что дьявол в деталях и как найти провода, так и ветки задача нетривиальная, но тут уж нужно думать (например, провода не висят в воздухе сами по себе, они цепляются к чему-нибудь. Вот это что-то можно и искать. Ветки обычно имеют либо сильно нерегулярную структуру, либо покрыты обильной зеленью).

И вот мы подошли к тому, с чего я начал:
Задачка с проводами и беспилотником немножко выбивается из стройного ряда. Не совсем понятно, каким образом Computer Vision задача стала задачей big data. Конечно, там можно применить ML алгоритмы. Но они там будут не первичны.

Что Вы понимаете под размерностью?

Размер входного вектора обучения.
А в какой задаче, решаемой машинным обучением, входных ситуаций 33 или 150 или, пусть даже, меньше 1 000 000?

MNIST и любая задача выделения цифр? 10 ситуаций + 1 ситуация на ложняки.

Это почему? Вот, на MNIST'е эти алгоритмы уже обходят человека по точности.

А наилучшую точность на MNIST даёт SVM. Ага. Но только MNIST не имеет с реальными задачами ну вот вооооообще ничего общего. Это идеальная база, написанная парой людей (если ещё раскидать нейронным газом или DBN, то там получается несколько групп на каждый символ), идеально сегментированная.
Вот вам реальный пример: habrahabr.ru/company/recognitor/blog/243919/
Мы выложили базу на 5000 нарезанных символов. Глазом опознаются все. Получите 99.9% точность алгоритмом ML. Тут вообще нет особенностей написания. Только небольшие искажения камеры.
И уж тем более SVM не имеет к нему отношения (хотя где-то проскакивала статья о «глубоких» ядрах, но я её не читал).

www.google.ru/#newwindow=1&q=Deep+learning+SVM
Deep Learning до сих пор не имеет строгого определения. Все определения, даже в той же Википедии более чем расплывчаты. SVM высокой размерности вполне себе часто определяют как DL.
Ключевой характеристикой DL являются глубокие (в смысле количества слоёв) нейросети (а в случае с convnet'ами, даже не нейронные, а свёрточные), а фишкой является то, что такая сеть сама выучит все эти SIFT'ы и HoG'и.

Свёрточные выучат безусловно. А вот Deep Belife чистый уже нет. Вопрос размерности и времени обучения. Но то, что выучит свёрточная сеть в задачке определения близости ветки к проводу для меня уже некоторая загадка. Я видел кадры аэрофотосъёмок, там даже глазу сложно с ходу что-то понять.

То, о чём Вы говорите — классический подход к задаче компьютерного зрения. Однако, state-of-the-art давно перешёл от hand-engineered признаков к свёрточным сетям.

Приведите пример задачи плана «определить ветки, расположенные близко к проводам» решённые через свёрточные сети.
Я не спорю, что это мощный инструмент. Я не спорю, что Гугл ими смог решить задачу определения номеров на домах. Но это очень простая задача с очень низкой размерностью. Имея вычислительную мощность и огромную входную базу решить её можно разными способами.
Имея задачу где входных ситуаций не 33 и не 150, а много тысяч и где обобщения нужно делать не на уровне примитивов, а на уровне уже обработанных данных высокого порядка (после выделенных проводов, веток, фона) применять свёрточные сети, пусть даже глубиной в 100 уровней бессмысленно. Они просто не смогут обобщить 0.001% полезной информации, которая имеется на изображении.

Подумайте сами. Я даю вам 500 картинок аэрофотосъёмки разложенных по двум папкам. На всех картинках есть дома, животные, цветы, провода, дороги, леса.
Как быстро вы сможете выделить закономерность, что в одной папке провода подходят близко к проводам, а во второй нет?
ML-алгоритмы не работают лучше, чем человек с визуальными данными. Они работают значительно хуже. И им тоже нужно сначала помочь и акцентировать их внимание на необходимых для детектирования особенностях.
Deep Learning это просто ML на большой размерности. Это может быть как Deep Belife Network, как Convolution Network, так и вообще SVM.
Чтобы иметь адекватный выход вы должны понимать, что вы даёте на вход системы.
Изображения размером 5000*4000? Это не съест ни одна сетка. Даже на кластере большого размера. Набор SURF|SIFT? Он будет нерепрезентативен, на вашу ситуацию «ветка около проводов» может не попасть ни один детектор. Набор детекторов углов Харриса? Он будет неустойчив к погоде.
Вам нужно подавать что-то, где информативные данные по которым вы будете обучаться будут являться не 0.001% от подаваемой информации, а хотя бы 20-30%.

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

Но для того, чтобы вам это сделать, нужно сначала сделать детектор провода (и такой детектор вам не сделает ни одна ML сетка без очень хитрой разметки, которую разрабатывать будет пару месяцев), а потом ещё и придумать рабочую метрику. И основное потребление времени будет именно на этих этапах.

В принципе я статью как-то на похожую тему писал тут.
Круто! Нужно будет при случае как-нибудь затестить:)
Да, и в догонку. Вы сами алгоритм пробовали? В реальности часто оказывается, что статья красиво написанная, с виду всё работает, а возьмёшься делать алгоритм, а там никакой стабильности работы и в помине нет. Моар камеры всё убивает.
Классный алгоритм. Конечно, любопытно было бы сравнить когда он даёт отказы и насколько они часты.
Особенно интересно с лицами. Поиск симметрии на лицах эта целая задачка большая. Мы когда-то с ней сталкивались. Но ни один из открытых алгоритмов или алгоритмов по которым есть статьи нам не показался действительно стабильным и рабочим.

Ещё любопытно про его скорость работы и сходимость. Вы как-то оценивали эти параметры? Например если пробовать довернуть 10mpx картинку, то сильно нужно её размерность уменьшать? Если ест несколько локальных минимумов, то он сойдётся в какой-то один, или будет прыгать туда-сюда?
Да, наш каскад, кстати, отработал не на всех, а где-то на 80% картинок.
В принципе каскад подключается в 2 строчки OpenCV, можете проверить.
Для этого нужно 10000 картинок прописать номера и верефицировать. У нас на это сил и времени не было. Если хотите, можете сделать, перевыложим архив.
У нас есть небольшая своя база, для которой есть написанные ручками номера. Мы упомянали её в тексте. Если кто захочет, мы можем по ней проверить любой алгоритм. Параметров выделения рамок в той базе нет, они на наш взгляд не нужны. Некоторые алгоритмы могут работать без явного выделения, со множественными гипотезами.

База, которую мы выложили достаточна чтобы люди, которые будут этим заниматься проверили работоспособность алгоритма в разных условиях, чтобы им не пришлось бегать по улице с фотоаппаратом.
AMR
Данные с потерями, предназначен для хранения речи.Используется в мобильной телефонии (2011).
(аналог в изображениях — png)

PNG — cжатие без потерь ru.wikipedia.org/wiki/PNG

Не совсем понятен смысл такого аппарата по генерации звука. Он же неустойчив к внешним условиям. Изменился свет и всё. Другой пиджак и всё. Терминвокс устойчивее)
Собираем многа-многа фоточек, потом оп, мааагия. И оно всё решит.
Задачка с проводами и беспилотником немножко выбивается из стройного ряда. Не совсем понятно, каким образом Computer Vision задача стала задачей big data. Конечно, там можно применить ML алгоритмы. Но они там будут не первичны. ML настроить это дня 2-3, а ещё месяц надо потратить на то, чтобы правильную и корректную видеоаналитику на вход этого ML подсовывать.
При этом, если для ML можно шаблонизировать входы и выходы, то большей шаблонизации чем в OpenCV для CV задач сложно сделать.
Зайдите в любой пафосный ювелирный/магазин одежды.
А что плохого чтобы кактусы решили раньше времени что весна пришла?
Я про доставку пиццы и её обеспечение только имел ввиду.
IT-частью и коптерами там эти ребята занимаются — www.copterexpress.ru/
По крайней мере один из руководителей там с физтеха был. Когда-то по слухам на гранты жили. Сейчас, судя по сайту мелкой халтурой в стиле съёмки свадеб с коптера. Дико много пиаряться на тему доставки всякой хрени по воздуху. На Хабре про них пяток статей был уже. Но опять же, по слухам, серьёзных наработок умеющих что-то чего не умеют другие у них нет.
Вы видите на этой ткани ИК датчики?
Вы видели хоть раз такое устройство живьем, работающее, в применении?
Может вы думаете, что всё что запатентовано существует и работает?
Не усугубляйте.
Материал выполняет одновременно роль сенсора и антенны.

Звучит как какой-то маразм. Подозреваю, что переводчик просто не удосужился разобраться в том, что писал. Фраза судя по-всему должна звучать что «материал может быть одновременно приёмником и передатчиком информации в wi-fi сетях».
The surface of the fiber can also be adjusted to monitor a range of information, such as glucose levels, heart rhythm, brain activity, movements, and spatial coordinates.

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

Тут говориться, что материал можно улучшить для того, чтобы он это мог. Тобишь по сути вставить сенсоры. Сам материал ничего этого не делает.
Любопытно как автор представляет бесконтактное измерение уровня глюкозы в крови… Хотя нет… Он не представляет…
Да, такое я тоже перед собой видел, когда Москва-Владивосток летел. А вот друг рассказывал, весь полёт на Кубу он наблюдал пересборку ядра Линукса…
Надо сказать, что при такой протяжённости рейсов весьма так себе развлечение...:)
Хорошая статья! Всегда приятно читать когда используются похожие алгоритмы с теми, что использую сам, но в совершенно других направлениях и тематиках.

Из логично возникших вопросов: а почему не учитываете операционку с которой сидит пользователь/тип устройства/провайдера и.т.д.? Ведь такие данные могут уже значить много сами по себе.
Это что, один я при заказе в Subway и аналогичных местах ещё размышляю на тему что можно, что нельзя, какая цена, что я давно не брал и какие компоненты у них насколько свежие?..

Information

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