0

Выделение объектов на изображении

Объекты (например, лица) выделяются, если признаки в сканирующем окне совпадают с признаками на выделенной окном части изображения:

Этот подход к детектированию объектов на изображении комбинирует четыре ключевые концепции:

Результаты обучения каскадов складываются в виде классификаторов Хаара в файле XML-формата.

Особенности, которые использовали Виола и Джонс, базируются на вейвлетах Хаара. Вейвлеты Хаара представляют собой прямоугольные волны одинаковой длины (один высокий интервал и один низкий интервал). В двух измерениях, прямоугольная волна представляет собой пару соседних прямоугольников – один светлый и один темный.

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

Наличие функции Хаара определяется посредством вычитания среднего значения области светлых пикселей из среднего значения области темных пикселей

Fhaar = Rwhite – Rblack

Если разница превышает порог (определяется в процессе обучения), тогда говорят, что функция существует.

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

Интегральное значение для каждого пикселя есть сумма значений всех пикселей над ним и слева от него

Рассмотрим пример использования технологии Интегрального изображения

Здесь значения Интегрального изображения в областях, которые имеют угол в левой верхней части изображения есть:

  • A+B+C+D – в положении 4;
  • A+B – в положении 2;
  • A+C – в положении 3;
  • А – в положении 1.

А что если вас интересует суммированные значения для некоторых других прямоугольников, которые не имеют ни одного угла в левой верхней части изображения? Предположим, вам нужно узнать сумму пиксельных значений в области D. В области D сумма пиксельных значений также определяется просто — всего тремя целочисленными операциями:

(x4,y4) — (x2,y2) — (x3,y3) + (x1,y1).

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

Для каждого признака, слабый классификатор определяет оптимальную пороговую функцию классификации, обеспечивающую минимальное число неправильно классифицированных примеров. Слабый классификатор h таким образом, состоит из значений признака объекта f, порога и паритета p, с указанием направления знака неравенства.

В результате работы алгоритма бустинга на каждой итерации формируется простой классификатор вида:

pj показывает направление знака неравенства;

pj – значение порога;

z – окно изображения размером 20×20 пикселей.

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

Фрагмент кода, который отражает алгоритм создания сильного классификатора из набора слабых классификаторов, приводится ниже:

Рассмотрим работу этого алгоритма на примере классификации знаков (см. рисунки). Предположим, что наши слабые классификаторы — это вертикальные или горизонтальные линии.

Суммарный классификатор

Виола и Джонс объединили серии классификаторов AdaBoost как последовательность фильтров. Каждый фильтр является отдельным классификатором AdaBoost с достаточно небольшим числом слабых классификаторов.

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

Порог на каждом уровне устанавливается достаточно низким, чтобы пройти все (или почти все) образцы лицами в тренировочном наборе. Фильтры на каждом уровне обученные классифицировать тренировочные изображения, прошли все предыдущие этапы (обучающая выборка представляет собой большую базу лиц, может быть, около тысячи или близко к этому). Во время работы, если какой-то любой из этих фильтров не пропускает область изображения, то тогда область сразу же классифицируется как «не лицо». Когда фильтр пропускает область изображения, она переходит к следующему фильтра в последовательности. Область изображения, прошли через все фильтры, классифицируются как «лицо». Виола и Джонс называли это фильтрацией цепи каскада.

Читайте также:  Измерить температуру и влажность в комнате

Порядок фильтров в каскаде основывается на весовом значении, которые присваивает AdaBoost. Более тяжелые взвешенные фильтры идут в первую очередь, с целью как можно более быстрого устранения «не лицевых» областей изображения. Рисунок ниже показывает первые две функции из искомого каскада Виолы-Джонса, наложенные на лицо. Первый настраивает дальнюю область щек более «светлой», чем область глаз. Второй использует факт того, что носовая перегородка более светлая, чем глаза.

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

Результаты обучения каскадов складываются в виде классификаторов Хаара в файле XML-формата. Структура XML-файла представлена рисунке.

В каскаде существует множество уровней (stages), каждый из которых содержит множество деревьев (trees).

Рассмотрим, как описываются признаки в XML-файле.

Каскад Хаара состоит из детекторов признаков (feature), которые представляют 2 или 3 прямоугольные области изображения, каждая из которых описывается 5 параметрами. Для рассматриваемого примера 3 7 – координаты 1-го прямоугольника, начиная с верхнего левого угла, 14 – его ширина, 4 – высота, -1 – вес прямоугольника. Второй прямоугольник начинается в точке (3,9), имеет ширину 14 пикселов и высоту 2 пиксела, вес у него 2. Прямоугольники расположены в пределах размеров (size) детектора (20,20). Как видно из рис., прямоугольники перекрываются и образуют детектор горизонтальной границы, как показано ниже

Цвет прямоугольников выбирается в соответствии с весами прямоугольников (5-й параметр для тегов rects). Там, где прямоугольники перекрываются, вес (множитель) пикселов определяется суммированием весов прямоугольников

Признаки группируются в этапы (Stages). Для каждого этапа в каскаде хранится пороговое значение (threshold). Для каждого признака хранятся два критических значения left и right.

Для каждого признака из каскада считается нормированное значение sum_feature*win_norm и сравнивается с нормированным критическим значением, записанным в каскаде feature− > tℎresℎold * stddev. В случае, если значение меньше критического, к значению стадии прибавляется значение из левого поддерева признака, в противном — из правого. Значение sum_feature считается как сумма яркостей пикселей, которые попадают в прямоугольную область внутри признака, умноженная на вес области. Координаты области умножаются на win_scale.

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

Самая частая операция в фотошопе – это выделение объектов для замены фона или переноса на другое фото. В Photoshop существует огромное количество способов выделения, которые можно совмещать друг с другом для достижения лучшего результата.

Из этого урока, вы научитесь подбирать способ для данной конкретной ситуации, максимально качественно и быстро выделять предметы в Photoshop.

Основные инструменты выделения

Хорошее выделение начинается с правильного выбора инструмента. Самая первая группа кнопок в панели инструментов посвящена выделению объектов.

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

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

Удержание клавиши SHIFT при рисовании позволяет получить чистый квадрат или круг.

Обычное "Лассо" (Lasso Tool) проводит линию по траектории движения мыши. Как правило, мышкой довольно сложно попасть в край предмета поэтому, этот инструмент подойдет для грубого выделения, когда точность не важна.

Прямолинейное лассо (Polygonal Lasso Tool) чертит выделение прямыми отрезками. Подойдет для выделения предметов с прямыми углами. Например, коробки, здания, карандаши.

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

Магнитное лассо (Magnetic Lasso Tool) работает в автоматическом режиме. Достаточно веси по краю предмета, компьютер распознает его форму и линия будет "примагничиваться" к краю объекта.

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

Волшебная палочка (Magic Wand Tool) автоматически распознает пятна одного цвета и выделяет их.

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

Чувствительность волшебной палочки (допуск) настраивается в панели параметров. Чем больше значение, тем больше палочка "видит". Слишком маленькая чувствительность, будет оставлять белый ореол, как на рисунке выше, а слишком большая, захватывать края предмета.

Быстрое выделение (Quick Selection Tool), работает похожим образом, но более эффективно выделяет разноцветные предметы. Инструмент соответствует названию и действительно, быстрее всех остальных выделяет объект.

Подберите оптимальный диаметр кисти и проведите внутри объекта. Кисть будет захватывать его по частям, пытаясь угадать границы предмета.

Читайте также:  Блокировка кнопок на ноутбуке

Даже если Quick Selection Tool схватил лишнего, удержание клавиши ALT позволяет обратно убрать куски выделения.

Выделение нескольких объектов

Абсолютно все вышеописанные инструменты , можно сочетать друг с другом. Именно этот приём и позволяет достичь высокого качества выделения.

  • Удержание SHIFT добавляет следующее выделение к существующему.
  • Удержание ALT вычитает новое выделение из старого.

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

Кроме того, у каждого нового выделения может быть своя растушевка. Это позволяет выделять предмет с размытыми краями, как на снимке выше.

Значение растушевки можно задать перед рисованием (в панели параметров, как на снимке выше), либо после рисования, нажав SHIFT+F6 (или правой кнопкой мыши – Растушевка).

Как быстро выделить объект в Фотошопе

К быстрым способам выделения можно отнести все вышеперечисленные автоматические инструменты, а в особенности инструмент "Быстрое выделение". Дополнительные функции, тоже помогут справится со сложной задачей.

Цветовой диапазон (Color Range)

Если на картинке присутствуют несколько предметов одного тона, воспользуйтесь – Выделение/Цветовой диапазон. Эта функция, в отличие от "волшебной палочки" позволяет захватить все элементы одновременно и видеть, как влияет на выделение настройка чувствительности.

Нажмите пипеткой на нужную область и отрегулируйте "Разброс" так, чтобы ваш предмет был максимально контрастным к фону.

Доработка автоматического выделения

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

А потом, доработайте вручную то, что инструмент не смог правильно распознать удерживая клавиши SHIFT или ALT для добавления или вычитания кусочков.

Быстрая маска

К скоростным способам выделения можно отнести быструю маску. Возьмите черную кисть и перейдите в режим быстрой маски (клавиша Q). Закрасьте кистью необходимую область меняя размер и жесткость краев. Рисование серыми оттенками позволяет получать полупрозрачное выделение.

К режиме "Быстрой маски" можно пользоваться не только кистями, но и инструментами лассо заливая их черным цветом.

При повторном нажатии на значок быстрой маски у вас появится выделение, которое нужно будет инвертировать (CTRL+SHIFT+I).

Выделение маской слоя

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

Перетяните ваше изображение на другой фон не вырезая его так, чтобы он был вторым слоем. Нажмите на значок маски слоя.

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

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

Видео урок: 4 способа выделения в Photoshop

Как выделить сложный объект в Фотошопе

К сложным объектам выделения, часто относят волосы или предметы с большим количеством мелких деталей. Такие предметы очень сложно или даже невозможно выделить стандартными инструментами.

Если края предмета размыты, автоматические инструменты могут не справится, а в ручную линия получается не ровной. В таком случае, лучше использовать инструмент Pen Tool, о котором, речь пойдет ниже.

Два способа выделения волос

Уровни. Создайте новый слой и переведите его в черно-белый режим (CTRL+SHIFT+U). Нажмите – Изображение/Коррекция/Уровни. Отрегулируйте боковые ползунки так, чтобы волосы человека были максимально контрастны по отношению к фону, как показано на снимке ниже.

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

Теперь, выделите черный силуэт "Цветовым диапазоном" описанным выше, а второй слой можно удалить.

Уточнение края. Для примера возьмем фотографию гривы лошади. Выделите тело инструментом "Быстрое выделение" (Quick Selection Tool) или любым другим удобным инструментом. Для точного выделения гривы нажмите – Выделение/Уточнить край.

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

Если вы стерли слишком много или не ровно, проведите еще раз по гриве удерживая клавишу ALT на клавиатуре.

Модификация выделения

Если выделение захватывает по краю часть фона, например, белый ореол вокруг объекта. Нажмите – Выделение/Модификация/Сжать.

В открывшимся окне задайте количество пикселей на которое должно сократится ваше выделение. То же самое можно сделать и для расширения области выделения.

Граница создает выделение только по границе предмета на толщину указанную в настройках. Эту функцию удобно применять при рисовании фигур.

Сглаживание округляет острые углы выделения, делая его более округлым.

Растушевка размывает края выделения.

Читайте также:  Где в ворде макросы

Выделение инструментом Перо

Инструмент "Перо" (Pen Tool) позволяет делать точное выделение объекта с закругленными и острыми углами. Возьмите Перо и нажмите на край выделения, если нажать и удерживать левую кнопку мыши, то можно получить выгнутую линию.

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

  • Удержание CTRL позволяет перемещать опорные точки и менять угол искривления.
  • Удержание ALT добавляет опорные точки и позволяет делать острые углы
  • Удержание SHIFT делает искривление под углами кратными 45°.

Когда рисунок пером готов, замкните его, нажмите на него правой кнопкой мыши и выберите "Выделить область. "

Полученное выделение можно использовать в работе, а векторный контур удалить.

Видео урок: выделение сложного объекта

Как перенести выделенный объект

Как правило, выделяют объект для переноса на другое изображения или для редактирования отдельно от фона. Существует несколько способов переноса изображения на другой фон:

Самый простой способ переноса – это копирование (CTRL+C и CTRL+V). Или нажмите – Редактирование/Копировать. А на другом изображении – Вставить. Выделение импортируется в качестве нового слоя.

Есть другой способ. Инструментом "перемещение" просто перетянуть объект на другое изображение и отпустить.

И наконец, самый правильный способ, нажать – Слой/Новый/Скопировать на новый слой.

Изображение перенесется на новый слой. Далее его можно перемещать, масштабировать или переносить на другую фотографию.

Как изменить размер выделенного объекта в Фотошопе

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

Нажмите – Редактирование/Трансформирование/Масштабирование. (или CTRL+T). Вокруг объекта появится рамочка.

Потяните за угол обязательно удерживая SHIFT на клавиатуре, иначе пропорции слоя исказятся и чайка будет сплюснутой.

Также, есть возможность повернуть слой, исказить, деформировать, отразить по горизонтали и по вертикали.

Как сохранить выделенный объект в фотошопе

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

Теперь выделение сохранилось и его в любой момент можно снова загрузить или добавить к существующему.

Сохраненная область выделения сохранится только в формате Photoshop (PSD) если вы сохрание ваше изображение в JPEG, то вся информация о выделениях удалится.

Как удалить выделенный объект в фотошопе

Удалить выделенный объект с фотографии можно просто нажав на клавишу DELETE или закрасив выделенную область цветом фона.

Как видно на картинке выше, закрашивание изображения цветом фона не дает нужного результата, поэтому это решается только инструментами ретуширования. Такими, как "штамп" и "Восстанавливающая кисть".

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

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

Бордюр проходящий по ногам нужно рисовать отдельно, перенося похожие кусочки штампом.

Если фон однородный, выделите участок любым выше описанным инструментом выделения с растушевкой и переместите на место человека.

Видео урок: удаление объекта в Photoshop

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

Осталось применить на практике несколько способов для лучшего запоминания. Если информация была вам полезна пишите об этом в комментариях к статье.

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

Найдя маску для каждой пары каналов – их можно объединить и получить более точную маску.

А случае с машиной, в центре машины у вас большое черное пятно, потому что разница в зеленом канале – нивелировалось обратной разницей в красном и синем. В сумме – получилось что-то около 0.
Если суммировать модули разности для каждого канала – этой проблемы бы не было.

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

Хотя на самом деле на разнице уже много чего интересного можно сделать. Можно понизить порог, и удалить все маленькие компоненты связности. Это можно сделать через морфологические преобразования или просто BFS запустить в каждой компоненте.

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *