Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GOOGLE OCR: current situation #685

Open
bropines opened this issue Dec 17, 2024 · 16 comments
Open

GOOGLE OCR: current situation #685

bropines opened this issue Dec 17, 2024 · 16 comments

Comments

@bropines
Copy link
Contributor

bropines commented Dec 17, 2024

I @bropines wrote a plugin for Google ocr.

Lately it may not work, producing “text not found” or 303 errors.
In case of an error, the text was not found, try going to the google.com page and passing it an image to the search area. If you are moved to this (screenshot), then the problem is in the EU region. Use proxies of CIS countries or any other except EU.

ScreenShot

image

If your page is significantly different from my example, then there was an update in your region and Google changed the Endpoints. This happens 3 times. I will find a solution if suddenly the update becomes final.

  • If you have a 303 error, increase delay to 1.5. Recently, Google has introduced protection from our plugins (and they work identically everywhere) and can ignore some of the for quick queries. I also do not recommend using google translate during recognition. Better recognize it and then start the translation. Temporarily Fixed

I'm writing a plugin that connects to Google's paid API, and unfortunately, in many regions it's not even possible to register with it. The plugin will be for those who have somehow gained access and a key from google vision.

@vanderalex
Copy link

vanderalex commented Dec 17, 2024

If you have a 303 error, increase delay to 1.5.

With delay 30!! I still have sometimes 303 error...

@bropines
Copy link
Contributor Author

bropines commented Dec 17, 2024

If you have a 303 error, increase delay to 1.5.

With 30!! I still have sometimes 303 error...

chrome-lens-py

Here is my library. Make a bunch of images (40 pieces) and run the folder through this library. If everything goes well with it, I will add updated COOKIES. A 303 error literally means that Google is sending you somewhere. And there are two reasons

  1. Google is moving you to a new interface due to an update.
  2. You live in the EU and Google forcibly asks you for “COOKIES”.

You can check with this command:

lens_scan <folder> full_text_default --debug=debug

@vanderalex
Copy link

I just want to say what is simple way to solve this problem 303 - rerun this OCRed picture again (and again if you got 303 in second time). I try to do it manually and it works.

@bropines
Copy link
Contributor Author

I just want to say what is simple way to solve this problem 303 - rerun this OCRed picture again (and again if you got 303 in second time). I try to do it manually and it works.

Do the test as I described above. If it goes smoothly, I'll rewrite the plugin to make it work correctly. I don't yet understand what causes this error.

@vanderalex
Copy link

I just want to say what is simple way to solve this problem 303 - rerun this OCRed picture again (and again if you got 303 in second time). I try to do it manually and it works.

Do the test as I described above. If it goes smoothly, I'll rewrite the plugin to make it work correctly. I don't yet understand what causes this error.

Sorry, but it's too late in my country (KZ). Tomorrow I'm going to test it.

@bropines
Copy link
Contributor Author

I just want to say what is simple way to solve this problem 303 - rerun this OCRed picture again (and again if you got 303 in second time). I try to do it manually and it works.

Do the test as I described above. If it goes smoothly, I'll rewrite the plugin to make it work correctly. I don't yet understand what causes this error.

Sorry, but it's too late in my country (KZ). Tomorrow I'm going to test it.

We could have spoken Russian

@vanderalex
Copy link

vanderalex commented Dec 17, 2024

We could have spoken Russian

На 30 тестовых страницах из 30 комиксов вывел результаты для всех 30 страниц, но насколько он там все или не все распознал, или часть баллонов пропустил - я сверять не могу, у меня нет столько времени. Но по крайней мере все 30 страниц есть результат в виде текста
log:
https://pastebin.com/aZ7xMbmm

@bropines
Copy link
Contributor Author

bropines commented Dec 18, 2024

Offtop:

  • Во первых. Я тебя ща ушатаю за то что ты лог загрузил так. Лучше грузи такое длинное на pastebin или хотябы в код блок(перезалей, а то листать не удобно, мыж тут не одни в теме). На крайняк загрузи сюда https://gist.github.com/ и замени на ссылку. А как файл сделай debug.bash
  • Во вторых, я примерно понял почему. Завтра после универа сделаю фикс. Посмотрим. Если гугл не учудит что-то снова.

@vanderalex
Copy link

vanderalex commented Dec 18, 2024

  • Завтра после универа сделаю фикс.

Offtop. 2 вопроса.

  1. У меня гугл OCR часто (1-5 раз на страницу) распознает часть текста другим языком. То есть если страница например на английском, то иногда в предложении одно-два слова распознается другим языком, например на русском или на греческом. Естественно это рушит весь смысл и приходится руками править. Например OCR выдает : On va se changer...Ca c'est pour τοι... И тут последнее слово - это вообще греческие буквы, а должно быть toi. И тако происходит постоянно, прям среди предложения бумс и левое слово. По написанию то оно похоже, но с другого языка, другими символами. Нельзя ли при распознавании явно задать язык перевода, чтобы не было таких багов?
    Дружищще, подскажи, мне часто нужен такой функционал - при распознавании очень часто теряются диакритические знаки у символов. Все эти á È ê Ç и так далее, зависит от исходного языка. Проблема в том, что без этих знаков часто становится совершенно другой смысл, и получается ты много времени проводишь в правке исходного текста, заменяя в некоторых случаях а на á, Е на È и так далее. И мне очень не хватает на правой кнопке мыши в поле текстового ввода минитабличку быстрого ввода определенных символов. То есть смысл такой - на правой кнопке есть новый пункт - добавить символ. В нем заранее определенные пара десятков символов. Появляется необходимость ввести какой-то нестандартный символ - нажал правую кнопку, выбрал, символ появился в тексте на позиции курсора. Надеюсь понятно объяснил. Возможно, тебе будет интересно добавить такой функционал?

@bropines
Copy link
Contributor Author

Нельзя ли при распознавании явно задать язык перевода, чтобы не было таких багов?

  • Нет нельзя. Поясняю точнее. Текст детектится и распознается гуглом. У интерфейса GOOGLE lens тупо нет варианта выбора языка. Я как решение могу сделать заглушки. Что имеется в виду. Ты выбираешь бабл, ЯВНО указываешь язык в параметрах плагина. В этот момент мой плагин автоматически с каждой картинкой посылает заглушку гдето сверху над блоком с текстом на нужном языке. Да, костыль. Я могу попробовать это сделать. Так же, есть теория что язык выбирается от страны запроса, но я не понимаю как встроить в куки такое.

  • Второе решение á можно добавить в
    image

В теории тоже поможет.


Eng:

Is it possible to explicitly set the translation language during recognition so that there are no such bugs?

  • No, you can't. I'm explaining it more precisely. The text is detected and recognized by Google. The GOOGLE lens interface stupidly has no language selection option. As a solution, I can make stubs. What is meant by that. You select the bubble, EXPLICITLY specify the language in the plugin parameters. At this point, my plugin automatically sends a stub with each picture somewhere above the block with the text in the desired language. Yes, a crutch. I can try to do it. Also, there is a theory that the language is selected from the country of the request, but I do not understand how to embed this in cookies.

  • The second solution á can be added to
    image

In theory, it will also help.

@vanderalex
Copy link

Оба решения не помогут.
Потому что гугл то распознает язык бабла нормально. Но вот какое-то одно слово (или даже несколько символов) заменяет. Вряд ли заглушка поможет. Автозамена тоже не вариант, так как иногда заменяется одна буква а иногда друга, не говоря уже что у исходных букв могут быть диакритика... В общем ладно, лучше руками править, так хоть какой-то контроль.

@bropines
Copy link
Contributor Author

Оба решения не помогут. Потому что гугл то распознает язык бабла нормально. Но вот какое-то одно слово (или даже несколько символов) заменяет. Вряд ли заглушка поможет. Автозамена тоже не вариант, так как иногда заменяется одна буква а иногда друга, не говоря уже что у исходных букв могут быть диакритика... В общем ладно, лучше руками править, так хоть какой-то контроль.

Кинь ка мне в тг страницы с аномалиями. Я хочу посмотреть че там гугл засылает. А еще кинь скрин страницы с аномалией. Так же в тг. @bropines

@bropines
Copy link
Contributor Author

bropines commented Dec 20, 2024

Оба решения не помогут. Потому что гугл то распознает язык бабла нормально. Но вот какое-то одно слово (или даже несколько символов) заменяет. Вряд ли заглушка поможет. Автозамена тоже не вариант, так как иногда заменяется одна буква а иногда друга, не говоря уже что у исходных букв могут быть диакритика... В общем ладно, лучше руками править, так хоть какой-то контроль.

303 ошибку починил(теоретически). Как DmMaze проснется, он зальет изменение. Ща сижу потею над фиксом "неверного" языка

I fixed the 303 error (theoretically). As DmMaze wakes up, he will flood the change. Right now I’m sitting here sweating over a fix for the “wrong” language

@vanderalex
Copy link

Problem 303 is apparently solved, it is no longer present on the tests. The problem with partial recognition of another language remains, if you still need - I can give you test pages, but I have this problem on almost any page of French comics (I mainly use translation from French to English), it's strange that no one else reported this problem. Do you still need me to send test pages to telegram?

@bropines
Copy link
Contributor Author

Problem 303 is apparently solved, it is no longer present on the tests. The problem with partial recognition of another language remains, if you still need - I can give you test pages, but I have this problem on almost any page of French comics (I mainly use translation from French to English), it's strange that no one else reported this problem. Do you still need me to send test pages to telegram?

Yes. Let's. I'll see what's there

@bropines
Copy link
Contributor Author

22.12.24

I'm developing a plugin that connects to Google's paid API. Unfortunately, in many regions, it’s not even possible to register for it. The plugin is intended for those who have somehow managed to get access and an API key for Google Vision.

Based on my tests, it seems the paid version of Cloud Vision is significantly worse compared to what Google Lens provides. My assumption is that the paid version is trained on much more specialized data, such as documents. While it handles English fairly well, it struggles with other languages. For example:

  • In Japanese, it often ignores the character.
  • In Chinese, it occasionally skips characters altogether.
  • Korean, however, is recognized reliably.

I initially thought the issues might be caused by specific data included in the API requests. However, the problem remains unresolved because the official documentation at Google Cloud Vision API Reference has been down for several days. This has prevented me from experimenting further, although my current implementation follows Google’s official guidelines.

When it comes to detecting text and text blocks (such as speech bubbles), Google Vision performs on par with CTD, and in some minor cases, even exceeds it. My plan is to integrate Google Vision as a text detection option, but only experimentally. The primary issue is the cost: both detection and recognition are charged under the same pricing model. This means the free monthly limit of 1,000 units will be exhausted quickly. Unfortunately, I’m not yet sure if the plugin can be designed to handle detection and recognition in a single request while outputting the identified text blocks. @dmMaze – is this possible, or would this require modifications to the plugin?


If your page is significantly different from my example, there may have been a regional update where Google changed the endpoints. This has happened three times before. I’ll look for a solution if the update becomes permanent.

From what I’ve seen on forums, Google seems to have rolled back the recent changes—possibly due to user complaints or because they broke something. After the update, Google browsers suddenly stopped utilizing Lens features entirely. I don’t know how long the current method will remain functional, but I’ll provide updates here as soon as something changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants