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

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

Образец чистого изображения:

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

После добавления синтетического шума:

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

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


person alyssaeliyah    schedule 20.11.2019    source источник
comment
какое у вас исходное изображение? и текст, кажется, не деформируется с деформацией бумаги, что маловероятно, верно?   -  person venkata krishnan    schedule 20.11.2019
comment
@venkatakrishnan -› Смотрите мой обновленный пост :)   -  person alyssaeliyah    schedule 20.11.2019
comment
Может быть, вы ищете это?   -  person nathancy    schedule 21.11.2019
comment
вместе с ответом @nathancy вы можете просто создать простой фильтр с opencv, чтобы замаскировать черные пиксели (текст), добавить некоторые дополнения, как указано Натаном, и вернуть текст. Вы можете написать это как пользовательскую функцию увеличения в keras, чтобы автоматически генерировать изображения случайным образом. Или вы можете сгенерировать случайным образом самостоятельно и использовать весь набор.   -  person venkata krishnan    schedule 21.11.2019


Ответы (2)


S C R A P E — B A C K ​​G R O U N D – I M A G E S

На мой взгляд, очевидный способ ввести шум реального мира — это ввести шум реального мира. Thus you could scrape the web for paper backgrounds (пример ссылки): Поиск:

  1. бумажный фон
  2. грязный бумажный фон
  3. фон окрашенной бумаги

Должен сделать трюк.

В зависимости от того, сколько различных шаблонов вам нужно, вы можете захотеть автоматически очищать веб-страницы (selenium пакет python прикрывает вашу спину ).

O V E R L A Y - B A C K ​​G R O U N D - W I T H - Y O U R - T E X T

Затем, в зависимости от выбранного вами языка программирования, вы должны иметь возможность накладывать фоновое изображение на изображение текста, который вы хотите дополнить для python и opencv, это подробно описано здесь на SO.

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

person mrk    schedule 28.11.2019

Предлагается объединить чистые изображения с шумовым фоном. Хотя этот метод не поддерживает деформации бумаги.

Следующий код может помочь:

import numpy as np
import cv2

# Load both clean and noisey background images in grayscale
img_clean = cv2.imread('img_clean1.jpg',0)
img_bg = cv2.imread('img_noisy_bg1.jpg',0)

# Make clean image binary
img_clean , thr = cv.threshold(img_clean , 10, 255, cv.THRESH_BINARY)

# Blend clean with the noisy BG
res = cv2.bitwise_and(img_bg, img_bg, mask=img_clean)

# Make it more natural!
res = cv.blur(res, (3,3))

cv2.imshow('image', res)
cv2.waitKey(0)
person ma.mehralian    schedule 26.11.2019
comment
Есть ли у вас какие-либо идеи о том, как деформировать текст на основе деформации бумаги (например, волнистой)? - person alyssaeliyah; 02.02.2020