Я пытаюсь решить проблему классификации MNIST на устройствах Android. У меня уже есть обученная модель, теперь я хочу, чтобы на фотографии можно было узнать одну цифру.
После фотографирования я делаю некоторую предварительную обработку, прежде чем передать изображение модели.
Вот пример оригинального изображения:
После этого я делаю его только черно-белым, поэтому он начинает выглядеть так:
Пожалуйста, не обращайте внимания на изменения размеров - они были введены тем, как я делаю скриншоты, в приложении оба изображения по-прежнему имеют одинаковый размер.
После приведения его к цветам BW я извлекаю каплю числа, уменьшая ее до 20 * 20 (с учетом соотношения сторон), а затем добавляю отступы, чтобы он соответствовал размеру MNIST 28 * 28. Окончательный результат следующий:
Обратите внимание, что я увеличил изображение, чтобы показать проблему. И проблема заключается в следующем: после уменьшения масштабов много полезной информации теряется. Иногда целые края номера исчезают. Есть ли способ избежать этого? Может быть, я смогу как-то сделать белые линии толще до уменьшения масштаба?
P.S. Я использую фреймворк Catalano для обработки изображений.
РЕДАКТИРОВАТЬ После применения предложенного фильтра из ответа вот что я получаю: