Изображение разбивается на пиксели, что делать

Обновлено: 21.11.2024

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

Точечные операции с использованием одного изображения

Арифметика

Подменю Процесс ▸ Математика содержит множество полезных действий со значениями пикселей. В верхней части списка находятся арифметические операции: сложение…​, вычитание…​, умножение…​ и деление…​. Их можно использовать для вычитания фона (чрезвычайно важно при количественной оценке интенсивности; см. Моделирование формирования изображения) или масштабирования пикселей разных изображений в одинаковые диапазоны (например, если время экспозиции для одного изображения вдвое больше, чем для другого, значения пикселей должны быть разделить на два, чтобы сделать их более сопоставимыми) — и в основном должны вести себя так, как вы ожидаете.

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

Инверсия изображения

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

(Обратите внимание, что методы, используемые для 16- и 32-битных изображений, даже не совпадают друг с другом.)

На момент написания, чтобы инвертировать 16-битное изображение, пиксели вычитаются из максимального значения исходного изображения. Это справедливо и для стеков: находится максимальное значение во всем стеке.

Для инверсии 32-битного изображения пиксели вычитаются из максимума отображения, т. е. любого максимума, установленного в диалоговом окне Яркость/Контрастность…​. Следовательно, инвертирование 32-битного изображения может давать разные результаты каждый раз, когда оно применяется, если настройки контрастности не остаются прежними!

Один из способов повысить предсказуемость при инвертировании 32-битного изображения — просто умножить каждый пиксель на -1 вместо использования команды «Инвертировать», хотя это не будет хорошей стратегией для 8- или 16-битных изображений.

Рис. 1. Влияние изображения и инверсии LUT на изображение двух молодых влюбленных, замеченных на Гайсбергштрассе, демонстрирующих достоинства изобретательности и терпимости.

Осторожно! Вы также можете инвертировать цвета, используемые для отображения, с помощью Image ▸ Lookup Tables ▸ Invert LUT, который выглядит так же, как если бы изображение было инвертировано, но не изменяет значения пикселей (рис. 1)!

Более того, информация об инвертированном LUT сохраняется в файлах TIFF, поэтому потенциально вы можете открыть изображение и обнаружить, что его LUT инвертирован еще до того, как начнете что-либо делать, и, таким образом, неправильно оценить, действительно ли структуры ярче или темнее всего. еще. См. Файл ▸ Открытые образцы ▸ Большие двоичные объекты для примера.

Нелинейное повышение контрастности

С помощью арифметических операций мы изменяем значения пикселей, полезно или нет, но (при условии, что мы не попали в ловушку, упомянутую в предыдущем вопросе) мы сделали это линейным способом. В лучшем случае потребуется еще одно умножение и/или сложение, чтобы вернуть нас туда, где мы были. Поскольку существует аналогичная взаимосвязь между значениями пикселей, мы также можем настроить Яркость/Контрастность…​, чтобы не выглядело так, будто мы вообще что-то сделали.

Всем привет, я нашел изображение, на котором Илон Маск показывает свой автомобиль Tesla, и мы собираемся узнать, как разделить изображение на четыре части с помощью OpenCV. Хотите узнать, как это сделать? Следите за новостями.

Рисунок 1. Разделение изображения Илона Маска на четыре части.

Структура проекта

Каталог содержит:

  • Наш файл сценария Python opencv_manipulate_pixels.py .
  • Наше экспериментальное изображение, elon_musk_tesla.jpg.

Теперь давайте реализуем наш opencv_manipulate_pixels.py скрипт Python с использованием OpenCV!

Реализация скрипта OpenCV Manipulate Pixel

Сначала создайте новый скрипт, назовите его opencv_manipulate_pixels.py и вставьте следующий код:

В строках 2–3 мы импортировали OpenCV для работы с нашим примером изображения и библиотеку argparse для выполнения нашей программы через командную строку. После предоставления импорта мы анализируем один аргумент командной строки:

  • --image , это путь к тому месту, где находится наше изображение на диске.

Оттуда мы укажем OpenCV найти изображение "elon_musk_tesla.jpg", прочитать его, а затем сохранить в этой переменной "image".

Затем мы можем вычислить координату центра изображения, выполнив целочисленное деление с помощью операции двойной косой черты «//», которую предоставляет Python.

Рис. 2. Результат разделения изображения Илона Маска на четыре части.

Чтобы обрезать изображение на четыре части:

  • Вверху слева
  • Вверху справа
  • Внизу слева и
  • В правом нижнем углу

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

Затем мы визуализируем каждую часть изображения с помощью команды cv2.imshow и cv2.waitKey , что предотвращает немедленное закрытие окон, пока не будет нажата клавиша на клавиатуре.

Как переопределить пиксели изображения

Рис. 3. Изменение значений пикселей в правом верхнем и левом нижнем углу изображения.

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

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

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

"Пиксели" и "Точки"

Чтобы представить изображение, рядом ставится множество точек, представляющих как высоту, так и ширину. Затем мы измеряем, сколько из них покрывают площадь, которую мы обычно измеряем на дюйм. Возможно, вы слышали о «количествах точек на дюйм (dpi)» и «пикселях на дюйм (ppi)». Возможно, вы даже слышали термины «линий на дюйм (lpi)» и «выборок на дюйм (spi)». Все они относятся к разным областям индустрии обработки изображений или издательского дела, и все они относятся к различным способам использования множества точек одного цвета для представления изображения. Давайте рассмотрим некоторые из них:

Точки принтера

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

Точки струйного принтера

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

На струйных принтерах пиксели должны преобразовываться в точки, состоящие из четырех основных цветов печати: голубого, пурпурного, желтого и ключевого (черного). Как следствие, люди, работающие в полиграфической промышленности, обычно ссылаются на изображения, состоящие из «точек», а не «пикселей». Смешение этих точек создает впечатление непрерывных цветовых тонов при просмотре с предполагаемого расстояния просмотра. Точки обычно имеют одинаковый размер, поэтому более светлые цвета создаются путем перемещения точек дальше друг от друга, чтобы было видно больше белой бумаги, а более темные цвета создаются путем печати точек ближе друг к другу, до такой степени, что белая бумага не видна. Некоторые струйные принтеры более высокого качества теперь используют больше, чем четыре базовых цвета принтера, чтобы обеспечить более богатый диапазон тонов.

Точки для коммерческой печати

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

Коммерческая печать, такая как Litho или Web, также превращает пиксели в точки. Однако, в отличие от струйных принтеров, эти точки равномерно распределены, а каждый основной цвет печати печатается под другим углом. Меньшие точки позволяют показать больше белой бумаги, поэтому делая тона светлее, а более крупные точки, которые могут увеличиваться в размерах до такой степени, что они перекрываются, делают цвета более темными. Однако люди, работающие в печатной индустрии, обычно называют их «линиями» по историческим причинам, поскольку изначально точки создавались путем проецирования фотографий через стеклянные пластины с тонкими линиями, выгравированными на стекле, которые образовывали точечные узоры.

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

Цифровые точки

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

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

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

Рис. 4. В этом преувеличенном примере мы действительно можем видеть пиксели.

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

Необработанные цифровые точки камеры

Рис. 5. Файл Camera Raw также фиксирует пиксели, хотя и не так, как обычное цифровое изображение.

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

Обычные цифровые точки

Рис. 6. В обычном цифровом файле меняется цвет и тон каждого пикселя.

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

Цифровые точки экрана

Рис. 7. Монитор представляет каждый пиксель в виде трех полос и изменяет интенсивность каждой полосы, чтобы отобразить то, что выглядит как определенный цвет.

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

Как мы будем называть количество пикселей по площади?

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

Что содержат пиксели

Когда речь идет о цифровых точках или пикселях, на самом деле в них нет ничего, кроме набора чисел или цифр, отсюда и термин «цифровой».

Рис. 8. Пиксель – это не что иное, как три набора чисел, которые вместе представляют определенный цвет.

Эти числа определяют отображаемые значения цвета. В пикселе нет ничего, что говорило бы о его размере, расстоянии друг от друга или разрешении изображения. Вы не видите эти цифры, только цвет, который они обозначают, хотя Photoshop может показать вам, какие цифры есть на некоторых его панелях. Именно умение манипулировать этими цифрами лежит в основе работы с изображениями. Поэтому важно, чтобы основы для этих чисел были объяснены, поскольку будут случаи, когда числовые значения необходимо будет проверить, чтобы убедиться, что цвета реалистичны и что они не вызовут проблемы позже в производственной линии.< /p>

Рис. 9. В простейшей форме пиксель может быть черным, представленным цифрой "0", и белым, представленным цифрой "1"

Чтобы объяснить, как работают числа в пикселях, полезно начать с изображения в его простейшей форме. Это черно-белое изображение, где каждый пиксель имеет значение «0» для черного или «1» для белого. Это известно как «растровое» изображение, поскольку для описания цвета требуется только один бит информации, 0 или 1. Однако проблема заключается в том, что может быть только два тона: черный и белый, что с фотографической точки зрения не очень полезно, как видно из примера.

Рис. 10. Изображение, состоящее только из черно-белых тонов

ПРИМЕЧАНИЕ. В компьютерной терминологии "черно-белый" буквально означает только черно-белые тона без серого. Однако фотограф представляет черно-белое изображение как непрерывный тон черного, переходя от всех оттенков серого к белому. В цифровых терминах это называется оттенками серого. Нет проблем с тем, что фотограф продолжает использовать термин «черно-белое» в его традиционном смысле, но имейте в виду, что Photoshop использует этот термин по-другому. Если вы предоставляете изображения кому-то другому, например дизайнеру или графическому редактору, то безопаснее вместо этого называть черно-белые изображения оттенками серого. Они должны знать терминологию фотографа, но лучше перестраховаться, чтобы избежать недоразумений.

Рис. 11. Изображение в оттенках серого состоит из гораздо большего количества тонов, чем простое черно-белое изображение.

Чтобы получить фотографию с полным диапазоном оттенков серого, как видно из следующего примера, требуется намного больше двух тонов, представленных номерами 0 и 1. Используется система из 256 оттенков со значениями 0–255. Снова «0» представляет черный цвет, но на этот раз «255» представляет белый цвет. Цифры между ними относятся ко всем промежуточным оттенкам серого между черным и белым.

Рис. 12. Изображения с 256 оттенками серого достаточно, чтобы передать ощущение непрерывного тона.

Сначала может показаться запутанным говорить о том, что существует 256 тонов, когда числа доходят только до 255. Объяснение состоит в том, что диапазон также включает «0», что соответствует дополнительному тону, в результате чего общее количество составляет 256. Тональное значение 0 по-прежнему является тоном.

Как работают числа

Хотя мы думаем о числах в десятичной форме (единицы, десятки, сотни и т. д.), компьютер этого не делает. Он использует «двоичную» форму чисел (единицы, двойки, четверки, восьмерки и т. д.), полностью состоящую из цифр «0» и «1». С десятичными цифрами для записи максимального значения «255» требуется всего три цифры, но с использованием двоичных цифр, состоящих только из «0» и «1», требуется всего восемь цифр. Это означает, что каждый пиксель в оттенках серого имеет номер от "00000000" для черного до "11111111" для белого, поскольку двоичное значение "11111111" равно десятичному значению "255".

Рис. 13. Как компьютер видит числа от 0 до 255.

Не обязательно знать, как работают двоичные числа. Несмотря на то, что все компьютерные операции выполняются с использованием двоичной системы, каждый раз, когда Photoshop или любая другая компьютерная программа отображает числа для чтения, они всегда будут в десятичном формате, поэтому перевод не потребуется. Полезно знать, что поскольку компьютеру требуется один «бит» информации для хранения каждой двоичной цифры, в результате компьютеру приходится использовать 8 битов информации для хранения 256 возможных тонов от 0 до 255.Отсюда термин «8-битное изображение». В компьютерных терминах «8 бит» равны «1 байту», поэтому каждый пиксель в изображении в оттенках серого равен 1 байту в размере файла.

Рис. 14. Изображение в оттенках серого имеет только 1 набор чисел на пиксель, изображение RGB имеет три набора чисел на пиксель, а изображение CMYK имеет четыре набора чисел на пиксель.

До сих пор мы рассматривали только изображения в оттенках серого. Photoshop может использовать несколько методов для представления цвета, но два из них, которые вы, скорее всего, будете использовать, — это стандартный набор красного, зеленого, синего (обычно называемый «RGB») и набор цветов принтера: голубой, пурпурный, Желтый, черный (обычно называемый «CMYK»). Почему должны существовать разные способы представления цвета, на данном этапе объясняться не будет, так как это будет рассмотрено в разделах, посвященных цвету. Короче говоря, все ваши изображения, с которыми вы будете работать и отправлять клиентам, будут либо в оттенках серого, либо в RGB, либо в CMYK.

ПРИМЕЧАНИЕ. В Photoshop отдельные основные цвета, будь то серый, RGB или CMYK, называются «каналами». Следовательно, оттенки серого имеют 1 канал, RGB — 3 канала, а CMYK — 4 канала. Иногда может возникнуть путаница в описании размеров изображения. Изображение RGB часто называют «8-битным» или «24-битным», не говоря о том, что означают «8» и «24». Оба описания верны в том смысле, что изображение RGB содержит 8 бит информации на канал или всего 24 бита (три канала). То же самое относится и к CMYK, за исключением того, что он называется «8 бит» на канал или «32 бита» в целом (четыре канала).

Разрядность изображения

Сканирующие машины и цифровые камеры более высокого качества могут использовать более 8 бит при создании 10-, 12-, 14-, а иногда и 16-битных изображений каналов. Количество каналов для оттенков серого, RGB и CMYK остается прежним, но количество цифр в каждом канале увеличивается. Использование до 16 бит на канал дает огромное увеличение количества создаваемых цветов, а не удвоение числа, как может показаться на первый взгляд из разницы между «8» и «16». 8-битное изображение имеет 256 тонов на канал, а 16-битное изображение имеет 2, умноженное само на себя 16 раз, что равняется 65 536 тонам. В изображении RGB это составляет 65 536 x 3 (для трех каналов RGB), что соответствует многим триллионам потенциальных цветов.

Рисунок 15. Выше представлена ​​диаграмма, представляющая 8-битные, 12-битные и 16-битные изображения. 16-битное изображение может представлять триллионы различных цветов.

Photoshop принимает только 1-битные, 8-битные или 16-битные изображения, поэтому независимо от того, сколько битов на канал использует сканер или цифровая камера, если изображение имеет длину более 8 бит, оно будет считано Photoshop как 16-битное. Это явное увеличение битовой глубины не дает никакой выгоды, поскольку 12-битное сканирование по-прежнему имеет только 12 бит информации на канал, просто Photoshop будет хранить ее в 16-битном файле. Поскольку 16-битное изображение содержит вдвое больше битов информации, это приведет к тому, что размер рабочего файла будет в два раза больше, чем у 8-битного изображения. Несмотря на дополнительный размер файла и огромное увеличение количества цветов, исправление 16-битного сканирования в Photoshop может иметь некоторые очень реальные преимущества, но эта тема будет рассмотрена в разделе, посвященном цвету.

Связь между пикселями и размером файла

Изображения в оттенках серого, RGB и CMYK имеют 1, 3 или 4 байта на пиксель (8 бит на канал изображения) или 2, 6 или 8 байт на пиксель (16 бит на канал изображения). Таким образом, достаточно просто сложить количество пикселей в изображении, чтобы определить размер файла. Для 8-битных изображений количество байтов в градациях серого равно количеству пикселей, в RGB в 3 раза больше байтов, чем в пикселях, а в изображении CMYK — в 4 раза. Для 16-битных изображений цифры в два раза выше.

Рис. 16. Диаграмма, показывающая, как размеры файлов различаются между настоящим черно-белым изображением, изображением в оттенках серого, изображением RGB и изображением CMYK

К сожалению, как и в большинстве случаев, связанных с компьютерами, всегда есть другой вариант или исключение из общего правила. Разумно предположить, что термин килобайт (Кб) подразумевает значение 1000 байт, но поскольку компьютер использует двоичную систему счисления, десятичное число 1000 становится довольно нечетным числом 1111011000 в двоичном выражении. Компьютерная индустрия согласилась округлить эту цифру до двоичного числа 10000000000 (2 в степени 10 или 1 с 10 нулями). Однако это незначительное увеличение числового значения, поскольку оно затем переводится обратно в 1024 в десятичном выражении. Это не большая проблема, просто помните, что килобайт немного больше, чем следует из его названия.Таким образом, изображение в градациях серого размером в один миллион пикселей и один миллион байтов будет занимать всего 0,95 мегабайта (1 000 000/1 024/1 024) или чуть менее 1 мегабайта. Общее эмпирическое правило: один миллион пикселей соответствует одному мегабайту, если вам не нужна точность, поскольку разница невелика.

ПРИМЕЧАНИЕ. См. страницу о префиксах чисел, если вы хотите узнать больше о терминах, используемых для обозначения размеров чисел.

Чтобы продолжить отсюда, лучше всего упростить то, что мы подразумеваем под цифровым изображением, и добавлять варианты и исключения только тогда, когда это необходимо. На данный момент в тексте все изображения будут называться цветными в формате RGB с 8 битами на канал, всего 24 бита на три канала. Вы вполне можете в конечном итоге работать с 16-битными (всего 48 бит) RGB-изображениями, но вам всегда нужно будет предоставлять свои изображения в 8-битном формате, поскольку это то, что ожидают клиенты или клиенты, поэтому это стало стандартом.< /p>

Я хочу разделить это изображение на 48 частей поровну (4 "строки" X 12 "столбцов"), как я могу сделать это с помощью кода Matlab.

1 комментарий

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Так подходит ли изменение размера изображения, чтобы его можно было разделить на 48, если нет, например, код Matlab для разделения цветного изображения на 32 части (4X8). Просто я хочу знать концепцию кода в подобных вещах.

Ответы (1)

Прямая ссылка на этот ответ

Прямая ссылка на этот ответ

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

warningMessage = sprintf( 'Предупреждение: этот размер блока из %d строк и %d столбцов\nне соответствует заданному размеру блока из %d строк и %d столбцов.\nОн не будет добавлен в стек 3D-изображения. ' , .

8 комментариев

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Я хочу разделить изображение на ячейки. используя mat2cell .. примечание: я хочу разделить на ячейки, не разделяя каждую ячейку. вывод должен просто отображать изображение, разделенное на ячейки, но сохраненное без изменений (не разделенное на различные компоненты). Является ли это возможным. не могли бы вы предоставить пример кода

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Хотите просто нарисовать линии сетки в оверлее над изображением? h b, почему бы вам не начать новое изображение и показать нам, что вы хотите, с изображениями, диаграммой, небольшим числовым примером или чем-то еще. Сначала прочтите эту ссылку.

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Я хочу, чтобы на изображении отображались пиксели/ячейка. также здесь каждой ячейке присвоен размер 0,5*0,5м. Итак, как я могу изменить размер ячейки и сделать так, чтобы она отображалась так же, как в attchmnt

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

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

Pixel.js – это графический интерфейс на основе веб-браузера для разделения пикселей изображения партитуры на слои для OMR (включая автоматически создаваемый фоновый слой).Он может выводить либо исходное изображение, разделенное на разные слои, либо маски этих слоев. Различные формы или кисти можно использовать для классификации пикселей и фрагментов по разным слоям.

Формат вывода слоев (с маской или без) можно задать в настройках задания Rodan. Количество выходных портов для этого задания равно количеству сгенерированных слоев плюс два для автоматически сгенерированного фонового слоя и слоя выбранных областей.

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

Рабочий процесс классификатора в пиксель в Rodan. Ресурс PNG, представляющий изображение страницы рукописи, распространяется на задание Fast Pixelwise Analysis и задание Pixel.js. Задание Fast Pixelwise Analysis также использует уже существующие модели в качестве других входных данных для разделения слоев страницы рукописи. Задание создает несовершенные отдельные слои, которые передаются в Pixel.js, чтобы сформировать отправную точку для проверенных разделенных слоев, которые может создать пользователь.

Для получения дополнительной информации об использовании Pixel.js посетите вики проекта. Информацию о версии Pixel.js в Rodan, в том числе о том, как правильно настроить порты ввода и вывода, см. в файле README проекта.

Примечание. При загрузке уже существующих слоев в Pixel они должны завершить загрузку перед запуском плагина Pixel в Diva. В противном случае слои не появятся.

Настройки

  • Маска вывода: должен ли Pixel.js выводить слои с фактическими пикселями из исходного изображения или выводить их в виде маски изображения. По умолчанию установлено значение «false» (фактические пиксели).

Входные порты

  • Изображение – изображение, которое нужно классифицировать по слоям.
  • Входные слои. В качестве входных данных можно добавить некоторое количество слоев. Данные слоя будут предварительно загружены в Pixel при загрузке. Не загружайте фоновый слой, так как он создается автоматически.

Выходные порты

  • Выводы слоев: слои, созданные в Pixel. Обратите внимание, что если вы классифицируете n слоев, вы должны добавить выходные порты для слоев n+2 в качестве фонового слоя, а слой выбранных регионов будет автоматически сгенерирован как нулевой и последний. выходы соответственно.

Patchwise Trainer

Задание Patchwise Trainer (фактически называемое Модель обучения для Patchwise Analysis of Music Document и являющееся частью набора заданий классификатора Calvo) автоматически генерирует модели для классификации пикселей изображения в слои, соответствующие OMR. Он использует исходное изображение и созданные вручную маски слоя, созданные с помощью Pixel.js, в качестве входных данных. Его выходами являются модели для обнаружения слоев фона, музыкальных символов, строк нотоносца и текста. Для этого задания есть четыре параметра:

Настройки

  1. Максимальное количество образцов на этикетку;
  2. Максимальное количество эпох обучения;
  3. Высота патча;
  4. Ширина патча; и
  5. Размер партии.

Обратите внимание, что эти настройки и размеры исходного изображения изменят требования к памяти для задания. На момент написания (июль 2020 г.) задание и сам контейнер графического процессора могут использовать только 45 ГБ на промежуточной стадии и 100 ГБ в рабочей среде.

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

Входные порты

  • Изображение. Изображение, которое будет использоваться для обучения, и слои которого будут предоставлены.
  • Фоновый слой — маска для фонового слоя.
  • Выбранные области. Маска для областей изображения, которые были вручную классифицированы по слоям.
  • Слой 0 — маска для слоя переднего плана. Этот слой обычно используется для классификации символов на этапе классификации. В случае с OMR этим слоем обычно является слой «музыкальный символ».
  • Входные слои. В качестве входных данных можно добавить некоторое количество слоев (слой 1–9).

Выходные порты

  • Модель фона – модель фона.
  • Модель 0 – модель, соответствующая уровню 0.
  • Выходные данные модели. В качестве выходных данных можно добавить некоторое количество моделей (модели 1–9). Эти девять дополнительных выходных моделей соответствуют девяти дополнительным входным слоям (уровни 1–9).

Пример. При разделении документа на слои музыкальных символов, линий нотоносца и текста требуемый входной слой 0 можно использовать для слоя музыкальных символов, а слои 1 и 2 можно добавить для нотоносцев. -линии и текстовые слои соответственно. В этом случае выходной моделью 0 будет модель классификации музыкальных символов; модель 1 будет соответствовать модели классификации по штатному расписанию; а модель 2 будет моделью классификации текста.

Обучение HPC Patchwise

Это задание запускает описанный выше обучающий модуль в кластере Compute Canada Cedar. Он предоставляет доступ к большему количеству ресурсов, чем доступно в облаке.

Настройки

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

  1. Максимальное время выполнения в днях, часах и минутах;
  2. Количество процессоров, выделяемых для задания (один GPU выделяется независимо от этого значения);
  3. Электронная почта для отправки уведомлений; и
  4. Максимальный объем памяти, который будет использоваться заданием, в мегабайтах.

Входные порты

  • Изображение. Изображение, которое будет использоваться для обучения, и слои которого будут предоставлены.
  • Фоновый слой — маска для фонового слоя.
  • Выбранные области. Маска для областей изображения, которые были вручную классифицированы по слоям.
  • Слой 0 — маска для слоя переднего плана. Этот слой обычно используется для классификации символов на этапе классификации. В случае с OMR этим слоем обычно является слой «музыкальный символ».
  • Входные слои. В качестве входных данных можно добавить некоторое количество слоев (слой 1–9).

Выходные порты

  • Модель фона – модель фона.
  • Модель 0 – модель, соответствующая уровню 0.
  • Выходные данные модели. В качестве выходных данных можно добавить некоторое количество моделей (модели 1–9). Эти девять дополнительных выходных моделей соответствуют девяти дополнительным входным слоям (уровни 1–9).

Пример. При разделении документа на слои музыкальных символов, линий нотоносца и текста требуемый входной слой 0 можно использовать для слоя музыкальных символов, а слои 1 и 2 можно добавить для нотоносцев. -линии и текстовые слои соответственно. В этом случае выходной моделью 0 будет модель классификации музыкальных символов; модель 1 будет соответствовать модели классификации по штатному расписанию; а модель 2 будет моделью классификации текста.

Быстрый пиксельный классификатор

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

Настройки

  • Высота – высота фрагмента в пикселях. По умолчанию 256.
  • Ширина – ширина фрагмента в пикселях. По умолчанию 256.
  • Порог. Порог достоверности для классификации пикселя в процентах. По умолчанию 50.

Входные порты

  • Изображение – изображение, пиксели которого должны быть классифицированы.
  • Модель фона – модель фона.
  • Модель 0 – модель, соответствующая уровню 0.
  • Входные данные модели. В качестве входных данных можно добавить некоторое количество моделей (модели 1–9). Эти девять необязательных входных моделей соответствуют девяти необязательным выходным моделям обучающей части.

Выходные порты

  • Фон – пиксели, классифицируемые как фон.
  • Слой 0 – пиксели, классифицируемые как слой 0.
  • Выводы слоев. В качестве выходов можно добавить некоторое количество слоев (слой 1–9). Выходными данными слоя n являются пиксели, классифицированные как слой n в соответствии с моделью n.
  • Файл журнала — файл журнала классификации.


Эта работа находится под лицензией Creative Commons Attribution-ShareAlike 4.0 International License.

Читайте также: