Pull to refresh

Comments 48

UFO landed and left these words here
Не знаю почему, но мне теория графов нравится :)
Сочувствую. У меня в 9 утра экзамен по электротехнике…
Ну, а у меня — по основам теории управления...)
а у меня только консультация, по «Параллельному программированию»
эм… с 23:51 по 6:40 (по времени комментатора 5:40) мало кто сдает/принимает экзамен =)
UFO landed and left these words here
Спасибо, просветился) мне кажется еще бы описание алгоритма на каком-либо языке программирования не помешало.
Извинюсь… еле запостил статью в таком объеме. Чуть больше и Хабр «ни в какую». Потому и сократил статью. Пришлось урезать: практическое применение (кому интересно — сами найдут) и код.
Зато авторский source code прилагается: тут. Он очень сильно коррелирует с тем, что изложено в статье. Разобраться с ним — пару часов удовольствия. =)
можно как вариант написать вторую часть статьи, практическую так сказать. Хотя бы самые интересные моменты.
Варианты, которые первыми «пришли в голову»:
1. В статье уже 2009 (августа) года «An Efficient Parallel Algorithm for Graph-Based Image Segmentation» (статья) Karlsruhe University (Germany), дан вариант распараллеливания этого алгоритма, для более эффективного выполнения вычислений. Кому-то делать эффективный Computer Vision? Why not?
2. Благодаря тому, что алгоритм позиционируется как очень эффективный, почему бы не реализовать его на какой-нибудь мобильной платформе (КПК): тыцкнул в фото-фокусе на памятник, и камера сама навелась на памятник на весь экран или (если будет выполняться шустро на КПК) на какой-нибудь двигающийся объект – и он, оставаясь «выделенным» в квадратик, продолжает быть «отфотканным», пока не исчезнет за горизонт. Why not?
3. Так как сегментация (во всех алгоритмах) зависит от параметров, почему бы не научить алгоритм подстраиваться под загруженное изображение – допустим нейронной сетью. Загружена фотография автомобиля днем – выставляем для метода одни параметры, загружен ландшафт – другие, апартаменты – третьи. Это тоже сложная задача. И это сейчас стараются делать «за бугром». Наши студенты не хуже!!! Why not?
4. Wanna be a «bad guy»? Цифро-буквенные каптчи все еще достаточно распространенны. Можно взять цветную «зашумленную» каптчу, пройтись по ней размытием Гаусса, чтобы убрать мелкие пиксели, полосочки, потом сегментацией выделить все буквы. Применить на «толстых» буквах скелетонизацию (skeletonization: построение topological skeleton), убрать фильтрами артефакты и получить что-то примерно похожее на рукописный ввод. Далее – либо своей обученной нейронной сетью распознать буковки, или воспользоваться чем-то похожим на FineReader. Нам кажется, что так «можно грабить корованы…» (мем). Why not?
Это бы заняло еще столько же места) Все и так отлично. Автору респект — достигнут баланс визуальной и текстовой информации + ссылки.
Большущее СПАСИБО!!! =)) Очень приятно! =))
Судя по результатам сегментирования, метод может помочь создавать объёмные модели из изображений объекта, так?
так же можно заметить, что можно из растра сделать вектор!!!
Можно ли это использовать в распознавании стерео/3D-изображений?
Автор, расскажите, а Вы действительно считаете разницу между цветами как расстояние между векторами в пространстве RGB, или всё-таки привели этот пример для упрощения понимания ситуации? Ведь для цветового различия такая формула совершенно неприменима (я сам примерно тем же, что Вы, занимался когда-то, но недолго :)), и используется, как минимум, пространство XYZ.

Большое спасибо!

Признаться честно, я не знал о таких подходах вычисления «разницы цвета». Обязательно ознакомлюсь. А в данной реализации (статье) авторы сделали упор на эффективность вычислений, потому и воспользовались формулами попроще.
В оригинальной статье для цветных изображений авторы рекомендуют сперва проводить сегментацию по каждой RGB-компоненте (и получать таким образом три варианта «одноцветной» сегментации), а затем строить результат, объединяя два пикселя в один сегмент, если они были в одном сегменте более чем в двух «одноцветных» вариантах.
Они утверждают, что такая реализации показала лучшие результаты, чем однократное применение алгоритма к исходному изображению с вычислением расстояний в каком-либо цветовом пространстве.
В таком случае не возникает проблем с выбором цветового пространства.
Интересно, хотя ИМХО можно попробовать использовать другие цветовые пространства, вместо RGB.
Уже начал читать оригинал. Надо на каникулах хоть что-нибудь содержательное написать. Если удастся, можно будет попробовать Lab. Быть может авторы дальше RGB решили не углубляться. Они часто напоминают в статье, что «возможны варианты».
утреннее чтиво, ночью не могу. Обещает быть интересным
1) пирамидальные алгоритмы — это что то очень близкое к дискретному вейвлет-преобразованию в простейшей своей форме, а там ведь еще можно и шумы отсекать очень эффективно

2) с точки зрения взлома каптч сегментация изображения выглядит весьма интересной
> P.S. Прошу сильно не пинать, это мой девятый пост на Хабре.

Да ты писатель-рецидивист!!! :)
Хм. Вот если с нуля думать над задачей — решение с графами кажется очевидным, первого выбора. «Как-то так бы и делал» ведь правильно? А пирамидальный — это уже ммм… глубже копать. Почему же распространение и внимание авторов популярной библиотеки досталось именно пирамидальному методу?
«В общем, пирамидальные – качество, описанные в статье графы – скорость.»

Вероятно создатели openCV предпочли качество. Ведь если не хватает мощности для выполнения алгоритма (в данном случае пирамидального), то можно попытаться улучшить вычислительную технику. А вот если не хватает качества самого алгоритма, то несмотря на его скорость и ваши вычислительные возможности, ничего уже не сделаешь (в глобальных масштабах).
Ахаха, год назад защищал дипломную вот точно по этой теме, прога даже работала, могу поискать исходники.
Автор где вы были два года назад! Я бы меньше парился над запиской для дипломной =) У меня дежавю прям.
Осталось придумать еще один алгоритм, который сам подбирает идеальные настройки для описанного алгоритма :)
Пошел искать мануалы по написанию плагинов к фотошопу.
«segmentation(k, sigma, min)»
Похоже, что на изображениях параметры идут в другом порядке: sigma, k, min. Поправьте, если не затруднит. Пришлось немало времени потратить, думая, как же может сказаться на результатах величина k=0.7. Слишком уж мала она была, чтоб хоть как-то значительно изменить результаты сравнения сегментов. А оказалось, что 0.7 — это параметр для размытия по Гауссу.
Я думаю данная статья даже спустя 5 лет остается актуальной. Особенно для тех, кто только начинает работать с алгоритмами автоматической сегментации. В связи с этим было бы очень не плохо вернуть часть «пропавших» изображений на их прежние места.
Only those users with full accounts are able to leave comments. Log in, please.