Орієнтація документа, знятого мобільним телефоном, неправильна. Спочатку обробіть EXIF а потім надішліть його в OCR.

Фотографія контракту на моєму телефоні виглядала вертикально, але після її завантаження розвернулася горизонтально. Причина може полягати в тому, що самі пікселі не повертаються, програма перегляду просто налаштовує відображення на основі маркерів орієнтації EXIF. Якщо введення OCR ігнорує цю позначку, сторінку читатиметься в іншому напрямку.

— ImageOps.exif_transpose від Pillow застосовує інформацію про орієнтацію та видаляє маркери, але не обробляє нахил кадру чи спотворення перспективи.

  • Нахил, трапецієподібна деформація та відсутні покажчики напрямку повинні оцінюватися окремо і не можуть об’єднуватися разом.
  • Кадр, повернутий оптичним розпізнаванням на скоригованому зображенні, повинен зберегти вхідний розмір і інформацію про перетворення, а зворотне перетворення має бути виконано під час відображення його назад до вихідного зображення.

Контрактні фотографії, зроблені мобільним телефоном, вертикальні в альбомі, але стають горизонтальними після завантаження. Багато хто подумає, що фотографія крива або файл неправильний. Ця стаття написана для людей, яким потрібно надіслати фотографії мобільного телефону в OCR або процес перекладу, щоб допомогти вам розрізнити «напрямок відображення» та «напрямок пікселів».

Прочитавши це, ви дізнаєтесь, що таке прапор орієнтації EXIF, яку функцію використовує Pillow для його обробки та які проблеми він не вирішує. У прикладах використовуються синтетичні зразки, а код перевірено в ізольованому середовищі, але це не є гарантією всіх реальних файлів або продуктивності продукту. Перед обробкою важливих документів збережіть оригінали та перегляньте їх відповідно до меж і пунктів прийняття в тексті.

Що мені робити, якщо документ, зроблений моїм мобільним телефоном, спрямований у неправильному напрямку? Висновок одним реченням

Спочатку використовуйте ImageOps.exif_transpose, щоб застосувати позначку напрямку EXIF, а потім надішліть скориговане зображення в OCR; питання нахилу та перспективи потрібно розглядати окремо.

ваша ситуаціяРекомендовані практикипричина
Переглядач відображається нормально, але результати синтаксичного аналізу відображаються збокуСпочатку використовуйте ImageOps.exif_transpose, щоб застосувати напрямок EXIFПікселі не повертаються, налаштовується лише шар відображення
Вся фотографія трохи нахиленаОцініть корекцію нахилу індивідуальноexif_transpose не обробляє кути зйомки
Папір трапецієподібнийВизначте межі паперу та виправте перспективуСпотворення перспективи не є проблемою орієнтації EXIF
Потрібно зберегти коробку, повернуту OCRОдночасно записуйте вхідний розмір, трансформацію орієнтації та вихідний розмірНалаштовані координати зображення відрізняються від оригінального зображення

Напрямок відображення та напрямок пікселя слід розглядати окремо.

Пікселі мобільної фотографії можуть не повертатися самі, а теги орієнтації EXIF у файлі повідомляють глядачеві, як її відобразити. Переглядач відповідним чином налаштує зображення, і якщо механізм OCR проігнорує цю позначку, він прочитає сторінку в іншому напрямку.

ImageOps.exif_transpose від Pillow налаштовує пікселі на основі інформації про орієнтацію та видаляє застосовані маркери орієнтації, щоб уникнути подальшого обертання. Це стосується орієнтації EXIF, а не довільного нахилу кадру чи спотворення перспективи. Вирівнювання паперу, зробленого криво за допомогою мобільного телефону, все одно потребує ще однієї геометричної обробки.

Перевірте межі обертання за допомогою синтезованих пікселів

Наступний код використовує складене зображення, щоб перевірити, чи правильно застосовано маркери орієнтації:

from PIL import Image, ImageOps

source = Image.new("RGB", (40, 20), "white")
source.putpixel((0, 0), (255, 0, 0))
source.getexif()[274] = 6
fixed = ImageOps.exif_transpose(source)
assert fixed.size == (20, 40)
assert fixed.getpixel((19, 0)) == (255, 0, 0)
assert fixed.getexif().get(274) is None
assert source.size == (40, 20)
again = ImageOps.exif_transpose(fixed)
assert again.size == fixed.size
assert again.tobytes() == fixed.tobytes()

Червоні пікселі в кутах використовуються тут, щоб допомогти перевірити геометричні зв’язки, без виклику механізму розпізнавання символів або імітації реального тексту. Таким чином, тест може лише підтвердити висновок про те, що «маркери напрямків застосовано правильно», але не може підтвердити «наскільки покращився рівень розпізнавання тексту». Приклади залежать від Pillow і повинні запускатися в заблокованих версіях.

Аномалії напрямку відхилення

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

спостерігатиМожливі причиниНаступний крок
Переглядач звичайний, парсер горизонтальнийEXIF не застосованоПеревірте позначки орієнтації в порівнянні з пікселями
Вся сторінка трохи нахиленакут зйомкиНезалежна оцінка корекції нахилу
Сторінка трапецієподібнаспотворення перспективиВиправлення після виявлення меж паперу
Текст перевернутий, але без розміткиВідсутні метаданіСудіть за вмістом сторінки, не робіть сліпих припущень

Запис координат має початися після обертання

Якщо OCR повертає текстове поле на скоригованому зображенні, координати поля відповідають скоригованому зображенню, а не оригінальному захопленому зображенню. Таким чином, потрібно зберегти три частини інформації: розмір введення, перетворення орієнтації та розмір виводу. Під час відображення виділення застосуйте зворотне перетворення до координат і поверніться до вихідного положення зображення.

Тільки якщо зберегти групу коробок без запису, до якого зображення вона належить, позиція виділення буде відхилятися від тексту.

Зорієнтуйте зображення перед перекладом

Під час обробки відсканованих матеріалів через портал OCR і перекладу OmniDoc (портал продуктів) ви можете спочатку підтвердити орієнтацію щодо оригіналу. Орієнтація, перспектива та чіткість – це три різні елементи перевірки, які потрібно підтверджувати окремо.

Після чіткого сортування умов введення двомовні результати використовуються для оцінки якості перекладу. Якщо ви приписуєте відсутні слова моделі перекладу щоразу, коли ви їх зустрічаєте, ви часто пропускатимете справжню проблему введення.

Джерела: Pillow ImageOps.

📊 Основне порівняння

Об'єкт обробкиСпосіб обробкиЧи виконаноexif_transpose
Прапор напрямку EXIFНалаштуйте пікселі маркерамитак
Вся сторінка трохи нахиленаКорекція кута зйомкиНі, потрібна незалежна оцінка
Сторінка трапецієподібнакорекція перспективиНі, межі паперу потрібно визначити

🎯 Який спосіб вам підходить?

якщо ви...

  • Програма перегляду в порядку, результати розпізнавання збоку: спочатку застосуйте орієнтацію EXIF, а потім повторно подайте OCR.
  • Загальний перекіс фотографії: розглядайте корекцію нахилу як незалежний крок, не очікуйте, що обробка орієнтації вирішить це.
  • Край паперу має форму трапеції: спочатку визначте край паперу, а потім виконайте коригування перспективи.
  • Потрібно виділити початкове положення зображення: збережіть вхідний розмір і інформацію про перетворення, а потім виконайте зворотне перетворення під час відображення.

❓ Часті запитання (FAQ)

1. Чи може exif_transpose вирівняти викривлений папір?

не може. Він лише коригує пікселі на основі маркерів орієнтації EXIF і не обробляє кути зйомки або перспективні спотворення, які вимагають додаткової геометричної обробки.

2. Чому засіб перегляду відображається нормально, але результат OCR є горизонтальним?

Засіб перегляду застосовує маркери орієнтації EXIF, але самі пікселі можна не повертати. Якщо розпізнавання символів ігнорує цю позначку, воно читатиме сторінку в іншому напрямку.

3. Чи може зразок коду показати, наскільки покращився рівень розпізнавання?

не може. У цьому прикладі використовуються синтетичні пікселі, щоб перевірити правильність застосування маркерів орієнтації без виклику механізму оптичного розпізнавання тексту та без імітації реального тексту.

4. Чому кадр, отриманий OCR, не збігається з положенням оригінального зображення?

Якщо OCR виконується на скоригованій карті, координати поля відповідають скоригованій карті. Необхідно записати вхідний розмір, перетворення та вихідний розмір, а потім виконати зворотне перетворення при відображенні.

📝 Підсумок

Що стосується орієнтації фотографій мобільного телефону, спочатку перевірте, чи це напрямок відображення чи напрямок пікселів, а потім визначте напрямок, нахил і перспективу відповідно. Будь ласка, збережіть оригінали та перевірте їх перед обробкою важливих документів.

Спробуйте зараз: завантажте документ, щоб розпочати переклад, зберігаючи вихідний макет

Оновлено 2026-11-11