Two months ago we evaluated the OCR performance of several models applied to television news frames, including dedicated SOTA OCR models like GCP Cloud Vision API, SOTA LMM models like Paligemma, Gemini and GPT and open source Tesseract. Cloud Vision yielded nearly flawless results across all of our experiments, while Tesseract failed across the board and the LMM models yielded highly inconsistent results, including hallucinations and dropouts, as is expected from GenAI models. As we continue our evaluations of the OCR landscape, how does the multilingual and freely available EasyOCR perform on these same image benchmarks?
The end results are that EasyOCR vastly outperforms Tesseract and actually achieves accuracy on par with Cloud Vision and the LMMs for many of the sample images. Unfortunately, EasyOCR also suffers from several key limitations that make it difficult to apply to television news archives at scale. Perhaps most critically, EasyOCR requires that the complete list of all languages to be found in the image must be specified at runtime and if an unexpected language appears in the image (such as Urdu on ABC News or English on IRINN or an English loanword on a Russian broadcast), it will not only not be recognized, but will be incorrectly transcribed into gibberish. Moreover, EasyOCR does not support many language combinations, meaning many multilingual channels are unprocessable using it. Given the highly multilingual nature of global television this is especially problematic. EasyOCR also had an elevated error rate for certain languages and even for ones in which it performed well, it often included at least a few typographical errors not found in the SOTA OCR gold. Most problematically, EasyOCR failed miserably on the most trivial example out of the entire set: a basic CSPAN broadcast featuring just a simple chyron. It appears that the broadcast's lower SD resolution and blurry text confused EasyOCR. Given that much of the TV News Archive's historical archive is SD resolution with similar kinds of text, this raises key questions about its applicability.
Finally, perhaps most difficult is that its strength (freely available and run on local hardware) is also its key limitation: on a V100 GPU it takes a substantial fraction of a second per image at 40% GPU usage during the recognition stage, meaning at most 2 images could be OCR'd at once. For a typical Russian television news frame with a small amount of text, we could OCR 2 images simultaneously, each of which takes around 0.6-0.7s, averaging around 171 frames per minute per GPU, which is simply not tractable. For text-heavy coverage, this increases up to 1 to nearly 2 seconds, meaning that the amount of GPU hardware it would require to OCR the complete archive at these scales is simply intractable.
At the same time, EasyOCR is a strong contender for many other kinds of OCR tasks and is worth further exploration.
True to its name, EasyOCR is trivial to install and use and includes a CLI to make it trivial to experiment with:
pip install easyocr time ./easyocr -l en -f sample.jpg --detail=1 --gpu=True
For the language codes, see the official documentation.
We also wrote a quick Python script to measure the precise elapsed time of the OCR process to separate it from model loading:
import easyocr import argparse import time # Set up command line argument parsing with optional arguments parser = argparse.ArgumentParser(description="Run OCR on an image file.") parser.add_argument("-filename", required=True, help="Path to the image file to process") parser.add_argument("-languages", required=True, help="Comma-separated list of language codes") args = parser.parse_args() # Split the language codes from command line input language_codes = args.languages.split(',') # Measure the time to load the reader start_time_reader = time.time() reader = easyocr.Reader(language_codes) end_time_reader = time.time() reader_elapsed = end_time_reader - start_time_reader print(f"Time to load reader: {reader_elapsed:.4f} seconds") # Measure the time to process the image start_time_result = time.time() result = reader.readtext(args.filename) end_time_result = time.time() result_elapsed = end_time_result - start_time_result print(f"Time to read text: {result_elapsed:.4f} seconds") # Print the OCR results for detection in result: print(detection)
Which can be used like:
time python3 ./easy.py -filename ./RUSSIA24_20230306_123000_RIK_Rossiya_24-000382-1.jpg -languages ru
Let's start with a simple Russian image:
Taking 0.61s and yielding overall strong results, with some errors:
wget https://blog.gdeltproject.org/wp-content/uploads/RUSSIA24_20230306_123000_RIK_Rossiya_24-000382.jpg time easyocr -l ru -f RUSSIA24_20230306_123000_RIK_Rossiya_24-000382-1.jpg --detail=1 --gpu=True ([[62, 32], [122, 32], [122, 58], [62, 58]], '15.54', 0.8837529330688062) ([[132, 32], [258, 32], [258, 62], [132, 62]], 'КРЕМЛЬ:', 0.9989001465407213) ([[294, 34], [1040, 34], [1040, 62], [294, 62]], 'Раиси позитивно оценили уровень и динамику отношений РФ и Ирана', 0.5710171344334445) ([[1072, 30], [1220, 30], [1220, 60], [1072, 60]], 'РОССИЯ |24', 0.8498592981325865) ([[1100, 82], [1175, 82], [1175, 133], [1100, 133]], '[А', 0.6087477485184768) ([[117, 533], [369, 533], [369, 577], [117, 577]], 'СТОП ФЕЙК', 0.6517988848671807) ([[67, 633], [1222, 633], [1222, 660], [67, 660]], '"РОСКОСМОС . ГРУЗОВИК "ПРОГРЕСС МС-22" УВЕЛ МЕЖДУНАРОДНУЮ КОСМИЧЕСКУЮ СТАНЦИЮ ОТ КОСМИЧЕСКОГО МУСОР^', 0.3344995025012154) ([[64, 665], [1002, 665], [1002, 695], [64, 695]], 'м мишустин: Туристический ссктор должен стать опорным направлением развития СКФО', 0.5993310325910549)
One with a greater variety of backgrounds:
Taking 0.66s:
wget https://blog.gdeltproject.org/wp-content/uploads/RUSSIA24_20230306_123000_RIK_Rossiya_24-000154.jpg time easyocr -l ru -f RUSSIA24_20230306_123000_RIK_Rossiya_24-000154.jpg --detail=1 --gpu=True ([[60, 32], [122, 32], [122, 58], [60, 58]], '15.39', 0.9932071865735385) ([[132, 32], [502, 32], [502, 62], [132, 62]], 'КРЕМЛЬ: зальнсйших контактон', 0.4525455301423925) ([[588, 32], [1046, 32], [1046, 61], [588, 61]], 'Состоялся тслсфонный разгонор Еладимир', 0.35860393009845276) ([[1072, 30], [1220, 30], [1220, 60], [1072, 60]], 'РОССИЯ 24', 0.7499081192753785) ([[850, 131], [1144, 131], [1144, 164], [850, 164]], '"РУСАТОМ ОВЕРСИЗ"', 0.9998200147945872) ([[453, 136], [813, 136], [813, 198], [453, 198]], 'ВОДОРОДНАЯ', 0.9999849587166194) ([[851, 161], [1189, 161], [1189, 197], [851, 197]], 'И "ПОЛИКОМ" СОЗДАЮТ', 0.9676176518647238) ([[466, 196], [798, 196], [798, 250], [466, 250]], 'ЭНЕРГЕТИКА', 0.6870788043702382) ([[850, 190], [1117, 190], [1117, 228], [850, 228]], 'КОНСОРЦИУМ ДЛЯ', 0.9962880095416501) ([[852, 224], [1074, 224], [1074, 256], [852, 256]], 'ПРОДВИЖЕНИЯ', 0.9999885700978873) ([[849, 251], [1207, 251], [1207, 287], [849, 287]], 'ОБОРУДОВАНИЯ В СФЕРЕ', 0.7549671171302168) ([[850, 280], [1053, 280], [1053, 318], [850, 318]], 'ВОДОРОДНОЙ', 0.9976567616322649) ([[850, 312], [1036, 312], [1036, 344], [850, 344]], 'ЭНЕРГЕТИКИ', 0.9999936668440753) ([[850, 392], [1204, 392], [1204, 424], [850, 424]], 'НОВЫЕ УСТАНОВКИ БУДУТ', 0.8626192891449265) ([[848, 420], [1050, 420], [1050, 450], [848, 450]], 'ПРИМЕНЯТЬСЯ', 0.9997548133280961) ([[848, 448], [1168, 448], [1168, 480], [848, 480]], 'В МИКРОЭЛЕКТРОНИКЕ;', 0.7349269251354386) ([[850, 476], [1052, 476], [1052, 506], [850, 506]], 'МЕТАЛЛУРГИИ', 0.8873509584159213) ([[847, 499], [1205, 499], [1205, 539], [847, 539]], 'И ДРУГИХ НАПРАВЛЕНИЯХ', 0.8049850294888868) ([[64, 665], [1002, 665], [1002, 695], [64, 695]], 'м; мишустин: Туристический ссктор должен стать опорным направлением развития СКФО', 0.6936832036305911)
A more text-saturated example:
Taking 0.94s and yielding:
wget https://blog.gdeltproject.org/wp-content/uploads/RUSSIA24_20230306_123000_RIK_Rossiya_24-000245.jpg time easyocr -l ru -f RUSSIA24_20230306_123000_RIK_Rossiya_24-000245.jpg --detail=1 --gpu=True ([[62, 32], [258, 32], [258, 62], [62, 62]], '15.45 КРЕМЛЬ:', 0.49096285034885184) ([[272, 32], [826, 32], [826, 61], [272, 61]], 'Состоялся телефонный разговор Владимира Путина', 0.9831666851351072) ([[830, 34], [1052, 34], [1052, 60], [830, 60]], 'с Президентом Ислаг', 0.7998568863219014) ([[1072, 30], [1220, 30], [1220, 60], [1072, 60]], 'РОССИЯ |24', 0.9035256650971656) ([[446, 68], [1146, 68], [1146, 100], [446, 100]], 'раненным в результате обстрела жителям, попала под повторный обстрел с', 0.5501356178571527) ([[443, 101], [648, 101], [648, 128], [443, 128]], 'украинской стороны:', 0.8712919793429373) ([[446, 143], [1220, 143], [1220, 173], [446, 173]], 'Ранее представитель силовых структур ДНР сообщал 0 троих погибших сотрудника;', 0.7191291714229837) ([[444, 172], [536, 172], [536, 200], [444, 200]], 'бригады.', 0.9693139248471844) ([[446, 216], [1188, 216], [1188, 244], [446, 244]], 'Как следует из данных представительства ДНР в Совместном центре контроля и', 0.7904203366459024) ([[445, 245], [1136, 245], [1136, 275], [445, 275]], 'координации БОПрОсов; связанных с военными преступлениями Украины;', 0.7336532330043296) ([[445, 274], [1110, 274], [1110, 304], [445, 304]], 'украинские войска в четверг дважды обстреливали Петровский район с', 0.7505212823106964) ([[446, 306], [1162, 306], [1162, 332], [446, 332]], 'применением реактивных систем залпового огня, выпустив по нему в общей]', 0.5652755545019279) ([[446, 334], [1180, 334], [1180, 363], [446, 363]], 'сложности 23 снаряда Такжеони открывали понему огонь из артиллерийских]', 0.710806818166907) ([[445, 364], [1196, 364], [1196, 395], [445, 395]], 'орудий натовского калибра 155 мм В администрации района сообщали об одной', 0.5197781191800508) ([[446, 394], [1092, 394], [1092, 422], [446, 422]], 'погибшей женщине и раненом мужчине из числа мирных жителей п', 0.6682388737385351) ([[446, 433], [544, 433], [544, 457], [446, 457]], 'Тел:: Укрэкна', 0.15985351537331247) ([[549, 435], [599, 435], [599, 451], [549, 451]], 'Росска', 0.8911808005673971) ([[603, 437], [741, 437], [741, 453], [603, 453]], 'Росьная огераЦи', 0.26873680182141424) ([[738, 433], [798, 433], [798, 457], [738, 457]], 'Укранне', 0.12435251947433003) ([[117, 533], [367, 533], [367, 577], [117, 577]], 'СТОПФЕЙК', 0.8228780144859125) ([[64, 665], [1008, 665], [1008, 696], [64, 696]], 'МО РФ: Средства ПВО Россим за сУтки в ходе СВО сбили 15 снарядов РСЗО НИМАРЗ и ~Ураган"', 0.4959223689999626)
Unfortunately, despite supporting multiple languages, EasyOCR requires the list of expected languages to be provided and only recognizes text in those languages. We were not expecting to find an English loanword in a Russian broadcast, but here we see in the bottom line of the OCR results above that the English word "HIMARS" was incorrectly transcribed as "НИМАРЗ".
Thus, we'll rerun and request dual Russian + English OCR, taking 0.98s and this time correctly transcribing HIMARS:
time easyocr -l ru en -f RUSSIA24_20230306_123000_RIK_Rossiya_24-000245.jpg --detail=1 --gpu=True ([[62, 32], [258, 32], [258, 62], [62, 62]], '15.45 КРЕМЛЬ:', 0.4909589510254794) ([[272, 32], [826, 32], [826, 61], [272, 61]], 'Состоялся телефонный разговор Владимира Путина', 0.9829460541284426) ([[830, 34], [1052, 34], [1052, 60], [830, 60]], 'c Президентом Ислаг', 0.6560381513078026) ([[1072, 30], [1220, 30], [1220, 60], [1072, 60]], 'РОССИЯ |24', 0.9034967905081214) ([[446, 68], [1146, 68], [1146, 100], [446, 100]], 'раненным в результате обстрела жителям, попала под повторный обстрел с', 0.5078988375486506) ([[443, 101], [648, 101], [648, 128], [443, 128]], 'украинской стороны:', 0.8712906118678123) ([[446, 143], [1220, 143], [1220, 173], [446, 173]], 'Ранее представитель силовых структур ДНР сообщал 0 троих погибших сотрудника;', 0.7181240232734253) ([[444, 172], [536, 172], [536, 200], [444, 200]], 'бригады.', 0.9693138394582257) ([[446, 216], [1188, 216], [1188, 244], [446, 244]], 'Как следует из данных представительства ДНР в Совместном центре контроля и', 0.7892027159463854) ([[445, 245], [1136, 245], [1136, 275], [445, 275]], 'координации БОПрОсов; связанных c военными преступлениями Украины;', 0.6803733346419891) ([[445, 274], [1110, 274], [1110, 304], [445, 304]], 'украинские войска в четверг дважды обстреливали Петровский район с', 0.6839281496374497) ([[446, 306], [1162, 306], [1162, 332], [446, 332]], 'применением реактивных систем залпового огня, выпустив по нему в общей]', 0.5651645400687069) ([[446, 334], [1180, 334], [1180, 363], [446, 363]], 'сложности 23 снаряда Такжеони открывали понему огонь из артиллерийских]', 0.710793421095864) ([[445, 364], [1196, 364], [1196, 395], [445, 395]], 'орудий натовского калибра 155 мм В администрации района сообщали об одной', 0.5011891244350426) ([[446, 394], [1092, 394], [1092, 422], [446, 422]], 'погибшей женщине и раненом мужчине из числа мирных жителей п', 0.6680865646431152) ([[446, 433], [544, 433], [544, 457], [446, 457]], 'Tent: Укрэкна', 0.32094213196365773) ([[549, 435], [599, 435], [599, 451], [549, 451]], 'Росска', 0.6563169316301201) ([[603, 437], [741, 437], [741, 453], [603, 453]], 'Рoсkная огераЦи', 0.1596826610746511) ([[738, 433], [798, 433], [798, 457], [738, 457]], 'Укранне', 0.1239066703730769) ([[117, 533], [367, 533], [367, 577], [117, 577]], 'СТОПФЕЙК', 0.8227103213941312) ([[64, 665], [1008, 665], [1008, 696], [64, 696]], 'MО РФ: Средства ПВО Россим за сUтки в ходе CBO сбили 15 снарядов РСЗО HIMARS и ~Ураган"', 0.5773960170618337
How about a trilingual image? While this image is a screen capture of the trilingual spoke word transcript of this particular clip, it reflects the complex linguistic combinations we frequently see across television news:
Unfortunately, EasyOCR is severely restricted in the language combinations it supports and does not support Chinese+Arabic transcription:
wget https://blog.gdeltproject.org/wp-content/uploads/2023-09-chirp-trilingual-header.png time easyocr -l ch_sim en ar -f 2023-09-chirp-trilingual-header.png --detail=1 --gpu=True ValueError: Chinese_sim is only compatible with English, try lang_list=["ch_sim","en"]
How about Farsi? Unfortunately, EasyOCR appears to struggle with this image:
Taking 1.1s:
wget https://blog.gdeltproject.org/wp-content/uploads/IRINN_20230504_033000-000084.jpg time easyocr -l fa -f IRINN_20230504_033000-000084.jpg --detail=1 --gpu=True [[394, 8], [522, 8], [522, 32], [394, 32]], 'زى٨أ طظ ', 0.06923849891045723] [[[394, 32], [526, 32], [526, 56], [394, 56]], '0^|/00/301,/0$101', 0.015583527771846508] [[[372, 78], [574, 78], [574, 102], [372, 102]], 'مربداران ( ٠ پرای نبان در دمتر', 0.08311258567408375] [[[608, 80], [822, 80], [822, 104], [608, 104]], 'که بندروزییئنر :بر . زرار', 0.15544354904126195] [[[816, 75], [974, 75], [974, 107], [816, 107]], '# حمیدرما _ الداعی', 0.28577635739999824] [[[334, 100], [976, 100], [976, 127], [334, 127]], 'دمن مزاحمن وکررمی ازآرائل وادبت بانما لركبر ندربر نراصابن جالو جاض رااز دمن داد', 0.040576137473918035] [[[658, 124], [758, 124], [758, 153], [658, 153]], 'سپبی ما دانن .', 0.2097998866368443] [[[822, 126], [974, 126], [974, 153], [822, 153]], 'نه سبتی برد ر نه ارد', 0.12545104514929517] [[[339, 167], [974, 167], [974, 196], [339, 196]], 'بونمنت نزدیکاش ارلبلادر مربان انفلاب # رن _ رندگی _ آرادی نومل معن بمبهی ما که امدوز', 0.022729778222150776] [[[430, 194], [632, 194], [632, 220], [430, 220]], 'دمرب رننم أرار کرنه ود', 0.10241708022944764] [[[696, 194], [924, 194], [924, 220], [696, 220]], 'داض را مممانره کرده انده با : ركر', 0.10707300620836092] [[[329, 363], [439, 363], [439, 379], [329, 379]], '٥1 0 ٥(١٥؟٥٥|', 0.007122028656464025] [[[947, 583], [1012, 583], [1012, 613], [947, 613]], 'خبر ٧', 0.9951406697332412] [[[5, 627], [647, 627], [647, 667], [5, 667]], 'توافق كردند دلاررا از مبادلات تجارى خود حذف كنند', 0.8096972799577571] [[[705, 623], [1025, 623], [1025, 667], [705, 667]], 'رئيسان جمهور برزیل 9 آرژا', 0.6102608517188842] [[[1040, 628], [1114, 628], [1114, 658], [1040, 658]], '٠٥؛٥٧', 0.8780681000188244] [[[1181, 633], [1245, 633], [1245, 675], [1181, 675]], '٦٧', 0.4040886049666611] [[[568.9400021199937, 81.30400339198982], [610.6571779373828, 76.88028517744402], [612.0599978800063, 100.69599660801018], [570.3428220626172, 104.11971482255598]], '): بر', 0.37125926186455604] [[[756.5857864376269, 131.5857864376269], [822.8506102773214, 124.24155316503223], [824.4142135623731, 144.4142135623731], [758.1493897226786, 150.75844683496777]], 'نانی ~', 0.1302319801525503] [[[629.2307692307693, 194.15384615384616], [698.9793211980007, 202.7131418553622], [695.7692307692307, 221.84615384615384], [626.0206788019993, 213.2868581446378]], 'مور د عمله', 0.18317797871283648] [[[641.2802656784306, 634.3885579247043], [716.4664898274967, 628.0041422205322], [718.7197343215694, 662.6114420752957], [643.5335101725033, 669.9958577794678]], 'اثین', 0.46752242139382]
It also fails to recognize the English transliteration of the username, so let's try again with English + Farsi this time, taking 1.14s. Unfortunately it fails to correctly transcribe the English username and display names:
time easyocr -l fa en -f IRINN_20230504_033000-000084.jpg --detail=1 --gpu=True [[[394, 8], [522, 8], [522, 32], [394, 32]], 'Magih Alincjau', 0.6050721935564054] [[[394, 32], [526, 32], [526, 56], [394, 56]], '@ Alinojadhasih', 0.15478240126227888] [[[372, 78], [574, 78], [574, 102], [372, 102]], 'مربداران ( ٠ پرای نبان در دمتر', 0.07796533402334072] [[[608, 80], [822, 80], [822, 104], [608, 104]], 'که بندروزییئنر :بر . زرار', 0.15079017097307756] [[[816, 75], [974, 75], [974, 107], [816, 107]], '# حمیدرما _ الداعی', 0.2850298081239191] [[[334, 100], [976, 100], [976, 127], [334, 127]], 'دمن مزاحمن وکررمی ازآرائل وادبت بانما لركبر ندربر نراصابن جالو جاض رااز دمن داد', 0.04009377583855612] [[[658, 124], [758, 124], [758, 153], [658, 153]], 'سپبی ما دانن .', 0.20564794848603887] [[[822, 126], [974, 126], [974, 153], [822, 153]], 'نه سبتی برد ر نه ارد', 0.12007214868990192] [[[339, 167], [974, 167], [974, 196], [339, 196]], 'بونمنت نزدیکاش ارلبلادر مربان انفلاب # رن _ رندگی _ آرادی نومل معن بمبهی ما که امدوز', 0.022040699254750613] [[[430, 194], [632, 194], [632, 220], [430, 220]], ' وضرب وننم فرار کرنه بود .', 0.30641515271739656] [[[696, 194], [924, 194], [924, 220], [696, 220]], 'داض را مممانره کرده انده با : ركر', 0.10078332339410885] [[[329, 363], [439, 363], [439, 379], [329, 379]], 'Iunslalo Iwccl', 0.16237723958774006] [[[947, 583], [1012, 583], [1012, 613], [947, 613]], 'خبر ٧', 0.9951280998787526] [[[5, 627], [647, 627], [647, 667], [5, 667]], 'توافق كردند دلاررا از مبادلات تجارى خود حذف كنند', 0.8096413546934602] [[[705, 623], [1025, 623], [1025, 667], [705, 667]], 'رئيسان جمهور برزیل 9 آرژا', 0.6101930425692701] [[[1040, 628], [1114, 628], [1114, 658], [1040, 658]], '٠٥؛٥٧', 0.8772947728175178] [[[1181, 633], [1245, 633], [1245, 675], [1181, 675]], '٦W', 0.2656488103229908] [[[568.9400021199937, 81.30400339198982], [610.6571779373828, 76.88028517744402], [612.0599978800063, 100.69599660801018], [570.3428220626172, 104.11971482255598]], '): بر', 0.3653196078616341] [[[756.5857864376269, 131.5857864376269], [822.8506102773214, 124.24155316503223], [824.4142135623731, 144.4142135623731], [758.1493897226786, 150.75844683496777]], 'نانی ~', 0.12547591063427044] [[[629.2307692307693, 194.15384615384616], [698.9793211980007, 202.7131418553622], [695.7692307692307, 221.84615384615384], [626.0206788019993, 213.2868581446378]], 'مور د عمله', 0.18176095599129447] [[[641.2802656784306, 634.3885579247043], [716.4664898274967, 628.0041422205322], [718.7197343215694, 662.6114420752957], [643.5335101725033, 669.9958577794678]], 'اثین', 0.4671788575172052]
How about a text-saturated Taiwanese broadcast?
This takes the longest thus far, at 1.72s:
wget https://blog.gdeltproject.org/wp-content/uploads/CTV_20230504_010000-000234.jpg time easyocr -l ch_tra -f CTV_20230504_010000-000234.jpg --detail=1 --gpu=True [[1561, 61], [1829, 61], [1829, 123], [1561, 123]], '中視新聞邵', 0.02612874543985771) ([[167, 53], [1141, 53], [1141, 185], [167, 185]], '黃子佼槓天下雜甚', 0.09949884978080033) ([[279, 201], [329, 201], [329, 217], [279, 217]], '玉=', 0.026476795309153343) ([[245, 237], [281, 237], [281, 253], [245, 253]], '三岳', 0.008316719115015964) ([[228, 252], [345, 252], [345, 295], [228, 295]], '-三云薹', 0.007236711215227842) ([[367, 277], [431, 277], [431, 293], [367, 293]], '要=受妥', 0.0009339844691567123) ([[1073, 226], [1354, 226], [1354, 301], [1073, 301]], '藝人黃子佼', 0.9987266000991155) ([[1438, 212], [1726, 212], [1726, 316], [1438, 316]], '!抗議!', 0.8262463212013245) ([[252, 304], [352, 304], [352, 334], [252, 334]], '云_', 0.014843236714246777) ([[451, 311], [513, 311], [513, 327], [451, 327]], '可?乏5', 0.0013991264859214425) ([[538, 306], [562, 306], [562, 332], [538, 332]], '8', 0.8548066940363839) ([[275, 351], [393, 351], [393, 367], [275, 367]], '=[心=', 0.011708375066518784) ([[409, 351], [531, 351], [531, 367], [409, 367]], '玉 巨-1丑=', 0.00011846696160359412) ([[219, 395], [307, 395], [307, 411], [219, 411]], '1""=111亡', 0.18606244574883152) ([[907, 334], [1378, 334], [1378, 438], [907, 438]], '沒問過就擅自', 0.9970050467910182) ([[226, 418], [554, 418], [554, 446], [226, 446]], '下單後價格竟五級跳!黃予', 0.6567877149642783) ([[218, 448], [252, 448], [252, 472], [218, 472]], '佼', 0.9886786141799497) ([[272, 446], [556, 446], [556, 474], [272, 474]], '網購黑膠的皓事與驚喜', 0.4586433038212549) ([[229, 487], [349, 487], [349, 507], [229, 507]], '[垚予1#1]', 0.013324017203512235) ([[357, 487], [539, 487], [539, 507], [357, 507]], '委跆0姪珍背黑脹和', 1.8789854458826972e-05) ([[906, 426], [1463, 426], [1463, 535], [906, 535]], '改7文章的標題', 0.8168513038424509) ([[217, 511], [249, 511], [249, 531], [217, 531]], '口', 0.04000181915444134) ([[263, 511], [427, 511], [427, 531], [263, 531]], '其中往往聒蒞陷陣', 0.0004698083474240226) ([[443, 511], [545, 511], [545, 531], [443, 531]], '下梏而翌仔子', 0.011731698758084625) ([[215, 531], [282, 531], [282, 557], [215, 557]], '汪看清', 0.15849838974182762) ([[296, 532], [522, 532], [522, 556], [296, 556]], '楚免以為魅到最卻易心:', 0.002441708868705482) ([[263, 577], [357, 577], [357, 595], [263, 595]], '文=吾=;', 0.0003073285645110707) ([[367, 577], [409, 577], [409, 593], [367, 593]], '03:38', 0.48808746066147324) ([[908, 524], [1720, 524], [1720, 628], [908, 628]], '甚至連內容 都大幅刪減', 0.8839748852332583) ([[239, 627], [345, 627], [345, 643], [239, 643]], '311;7=3', 0.00022446047315192422) ([[910, 619], [1760, 619], [1760, 719], [910, 719]], '你放400個字跟放4000字', 0.9971265811293423) ([[906, 709], [1462, 709], [1462, 811], [906, 811]], '其實真的沒差耶', 0.993301709527246) ([[194, 810], [310, 810], [310, 864], [194, 864]], '台北', 0.9892898292830269) ([[236, 862], [350, 862], [350, 914], [236, 914]], '上海', 0.9975759846163521) ([[212, 918], [360, 918], [360, 966], [212, 966]], '21-24', 0.9989971036449019) ([[374, 846], [1823, 846], [1823, 979], [374, 979]], '專遭天下雜大改黃子佛請辭怒轟:寫給鬼看嗎?', 0.0943073779717538) ([[118, 972], [367, 972], [367, 1038], [118, 1038]], '09:15:52', 0.9974770350959478) ([[398, 966], [642, 966], [642, 1038], [398, 1038]], '活動訊息', 0.6930791735649109) ([[662, 966], [1776, 966], [1776, 1038], [662, 1038]], '2023臺南國際綠色產業展 將於5/24-26日舉行', 0.9603010934668789) ([[719.2820418413822, 575.1333087875939], [798.9974412271628, 587.8988637353335], [795.7179581586178, 604.8666912124061], [716.0025587728372, 592.1011362646665]], '#.111__01', 0.036806981744863465)
What about a trivial chyron-only CSPAN example?
We initially were not even going to include this image since it is such a trivial recognition case that even Tesseract correctly OCR'd it, but stunningly, EasyOCR severely struggles with it, failing to OCR almost any of the lower-case text. It took 0.4s. The most likely culprit appears to be the blurry text and lower resolution of this SD broadcast, suggesting EasyOCR may struggle with the vast historical SD resolution archives:
wget https://blog.gdeltproject.org/wp-content/uploads/CSPAN2_20230504_110200_Susan_Rice_Speaks_at_Anti-Defamation_League_Leadership_Summit-000238.jpg time easyocr -l en -f CSPAN2_20230504_110200_Susan_Rice_Speaks_at_Anti-Defamation_League_Leadership_Summit-000238.jpg --detail=1 --gpu=True ([[535, 75], [587, 75], [587, 91], [535, 91]], 'Mondoy', 0.5990036822825958) ([[138, 312], [489, 312], [489, 333], [138, 333]], 'ANTI-DEFAMATION LEAGUE NATIONAL LEADERSHIP SUMMIT', 0.5707975931924345) ([[143, 337], [269, 337], [269, 357], [143, 357]], 'EVELYN FARKAS', 0.8453453595107611) ([[145, 353], [461, 353], [461, 373], [145, 373]], 'Formor Doputy Aselstant Dolonso Socrotary lor', 0.4412029957821988) ([[506, 348], [602, 348], [602, 374], [506, 374]], 'C-SPAN2', 0.6400309924283046) ([[145, 373], [477, 373], [477, 389], [145, 389]], 'Russla; Ukralno & Eurasla; Obama Adminiatratlon', 0.5150677211146243
And this text-heavy business channel example?
Taking 0.89s, EasyOCR struggles in several palces:
wget https://blog.gdeltproject.org/wp-content/uploads/BLOOMBERG_20230504_030000_Bloomberg_Markets_Asia-000191.jpg time easyocr -l en -f BLOOMBERG_20230504_030000_Bloomberg_Markets_Asia-000191.jpg --detail=1 --gpu=True ([[451, 48], [604, 48], [604, 77], [451, 77]], 'Bloomberg Markets', 0.9998874079981319) ([[653, 34], [784, 34], [784, 91], [653, 91]], 'NEXT', 0.9996629357337952) ([[982, 31], [1141, 31], [1141, 64], [982, 64]], 'TOP NEWS', 0.889327014621433) ([[453, 71], [531, 71], [531, 107], [453, 107]], 'Asia', 0.8996113378577457) ([[986, 71], [1220, 71], [1220, 102], [986, 102]], 'Bill Ackman WarnsUS', 0.8531061812583906) ([[986, 92], [1175, 92], [1175, 124], [986, 124]], 'Regional Banking', 0.8697825945170392) ([[986, 116], [1166, 116], [1166, 144], [986, 144]], 'System Isat Risk', 0.4246096519524587) ([[1063, 161], [1147, 161], [1147, 179], [1063, 179]], 'PAGE 20F3', 0.6230873648210941) ([[992, 178], [1204, 178], [1204, 204], [992, 204]], 'First Republic Bank', 0.9994008571402612) ([[446, 168], [623, 168], [623, 244], [446, 244]], 'Roger', 0.9999833133228728) ([[994, 200], [1232, 200], [1232, 230], [994, 230]], 'was the second-biggest', 0.8073596222951487) ([[992, 222], [1180, 222], [1180, 250], [992, 250]], 'bank failure in US', 0.7166000131805137) ([[991, 244], [1158, 244], [1158, 274], [991, 274]], 'history,and the', 0.9859052924815603) ([[448, 236], [708, 236], [708, 316], [448, 316]], 'Bacon', 0.9999951486052463) ([[992, 267], [1224, 267], [1224, 299], [992, 299]], 'fourth regional lender', 0.7214725206527584) ([[992, 290], [1174, 290], [1174, 320], [992, 320]], 'to collapse since', 0.832959714668599) ([[994, 312], [1176, 312], [1176, 340], [994, 340]], 'early March after', 0.9318104987555949) ([[449, 325], [885, 325], [885, 370], [449, 370]], 'Citi Global Wealth Investments', 0.9711954431691217) ([[993, 333], [1186, 333], [1186, 365], [993, 365]], 'Silvergate Capital', 0.9999673179285632) ([[992, 356], [1212, 356], [1212, 387], [992, 387]], 'Corp-, SVB Financial', 0.7215928857511815) ([[451, 367], [887, 367], [887, 411], [451, 411]], 'Head of UHNW Investments Asia', 0.8207493288831041) ([[993, 378], [1225, 378], [1225, 410], [993, 410]], 'Groups Silicon Valley', 0.7581743513639836) ([[994, 403], [1204, 403], [1204, 436], [994, 436]], 'Bank and Signature', 0.8919766469513851) ([[447, 405], [891, 405], [891, 474], [447, 474]], 'Fed rates outlook', 0.5854784006397692) ([[994, 428], [1060, 428], [1060, 454], [994, 454]], 'Bank', 0.9816796688551533) ([[449, 492], [733, 492], [733, 536], [449, 536]], 'Bloomberg Television Bloomberg-com', 0.885827207720973) ([[451, 524], [516, 524], [516, 552], [451, 552]], 'TV<GO>', 0.9034834229661908) ([[54, 592], [229, 592], [229, 642], [54, 642]], 'Bloomberg', 0.9999390433876731) ([[240, 600], [354, 600], [354, 630], [240, 630]], 'EUR-USD', 0.9998467913441224) ([[406, 599], [517, 599], [517, 630], [406, 630]], 'USD-JPY', 0.999876812050257) ([[574, 600], [690, 600], [690, 628], [574, 628]], 'GBP-USD', 0.6823852962107101) ([[742, 600], [858, 600], [858, 628], [742, 628]], 'EUR-NOK', 0.9733816950880729) ([[910, 600], [1022, 600], [1022, 628], [910, 628]], 'EUR-SEK', 0.8923941621419622) ([[1072, 600], [1170, 600], [1170, 628], [1072, 628]], 'HB-EUR', 0.9745086003879511) ([[75, 637], [207, 637], [207, 657], [75, 657]], 'I1.12 ET MAY 3', 0.5006957228222535) ([[240, 628], [336, 628], [336, 660], [240, 660]], '1.1086', 0.9014595718642684) ([[406, 628], [506, 628], [506, 660], [406, 660]], '134.49', 0.9809005535647308) ([[574, 628], [674, 628], [674, 660], [574, 660]], '1.2589', 0.792392987274994) ([[741, 627], [847, 627], [847, 659], [741, 659]], '11.8781', 0.9522179904305269) ([[910, 627], [1016, 627], [1016, 659], [910, 659]], '11.3310', 0.7151095504319308) ([[1066, 628], [1164, 628], [1164, 660], [1066, 660]], '1.0267', 0.8000592916043036) ([[88, 658], [196, 658], [196, 682], [88, 682]], '@BUSINESS', 0.9998128981907609) ([[238, 654], [396, 654], [396, 686], [238, 686]], '+0.0024 0.24% ', 0.7331108778941204) ([[418, 654], [564, 654], [564, 686], [418, 686]], '0.22 0.22%', 0.571751369346786) ([[574, 654], [732, 654], [732, 686], [574, 686]], '+0.0025 0.24%', 0.9154395709090115) ([[742, 654], [900, 654], [900, 686], [742, 686]], '~0.0177 0.14%', 0.846906554481573) ([[910, 654], [1068, 654], [1068, 686], [910, 686]], '~0.0206 0.24%', 0.9146046721078622) ([[1092, 656], [1182, 656], [1182, 686], [1092, 686]], 'IUNCH', 0.9986584035011313)
What about one of our vertical montages? You can see the full image here. It took 2.3s:
wget https://storage.googleapis.com/data.gdeltproject.org/blog/2024-videoocrexperiments/CNNW_20240903_230000_Erin_Burnett_OutFront.fullres1fps-1x9tile.montage.jpg time easyocr -l en -f CNNW_20240903_230000_Erin_Burnett_OutFront.fullres1fps-1x9tile.montage.jpg --detail=1 --gpu=True ([[1106, 29], [1219, 29], [1219, 54], [1106, 54]], 'Via Skype', 0.9997793059271373) ([[997, 65], [1219, 65], [1219, 90], [997, 90]], 'Geneva, Switzerland', 0.5793775450949727) ([[1106, 96], [1219, 96], [1219, 121], [1106, 121]], '12.59 AM', 0.954037115563052) ([[75, 527], [325, 527], [325, 570], [75, 570]], 'NEW TONIGHT', 0.9035400566175543) ([[1105, 532], [1199, 532], [1199, 570], [1105, 570]], 'LIVE', 0.8007830471286367) ([[79, 573], [992, 573], [992, 623], [79, 623]], 'WORLD HEALTH ORGANIZATION SAYS GAZA POLIO', 0.8170241905169935) ([[1081, 571], [1223, 571], [1223, 651], [1081, 651]], '@N', 0.6422755844304525) ([[80, 616], [955, 616], [955, 658], [80, 658]], 'VACCINATION CAMPAIGN IS AHEAD OF TARGETS', 0.9809439598359786) ([[1095, 637], [1193, 637], [1193, 662], [1095, 662]], '3.59 PM P-', 0.6157004140993362) ([[39, 679], [1053, 679], [1053, 709], [39, 709]], 'AHU AT ODDS AGAIN AFTER US PRESIDENT SAYS ISRAELI PM NOT DOING ENOUGH IN', 0.6883609827239455) ([[1076, 680], [1223, 680], [1223, 698], [1076, 698]], 'SITUATION Room', 0.7351079649447732) ([[1106, 768], [1219, 768], [1219, 792], [1106, 792]], 'Via Skype', 0.9981033086271669) ([[997, 804], [1079, 804], [1079, 829], [997, 829]], 'Geneva', 0.9999976153169163) ([[1090, 804], [1219, 804], [1219, 829], [1090, 829]], 'Switzerland', 0.9999222937829293) ([[1107, 841], [1213, 841], [1213, 859], [1107, 859]], '42.59 AM', 0.4942947653108264) ([[75, 1266], [325, 1266], [325, 1308], [75, 1308]], 'NEW TONIGHT', 0.7014600116832344) ([[1105, 1271], [1199, 1271], [1199, 1308], [1105, 1308]], 'LIVE', 0.9998388290405273) ([[80, 1318], [991, 1318], [991, 1361], [80, 1361]], 'WORLD HEALTH ORGANIZATION SAYS GAZA POLIO', 0.9545299432628352) ([[1077, 1306], [1228, 1306], [1228, 1394], [1077, 1394]], '@', 0.6609529498416613) ([[79, 1354], [956, 1354], [956, 1403], [79, 1403]], 'VACCINATION CAMPAIGN IS AHEAD OF TARGETS', 0.7688157310432094) ([[1111, 1376], [1203, 1376], [1203, 1401], [1111, 1401]], '{59 PM PT', 0.4684613153546655) ([[39, 1418], [100, 1418], [100, 1448], [39, 1448]], 'AHU', 0.4565173344209365) ([[133, 1418], [1053, 1418], [1053, 1448], [133, 1448]], 'ODDS AGAIN AFTER US PRESIDENT SAYS ISRAELI PM NOT DOING ENOUGH IN', 0.7722129072886967) ([[1075, 1418], [1224, 1418], [1224, 1443], [1075, 1443]], 'SITUATION ROOM', 0.9984360415023622) ([[1106, 1506], [1219, 1506], [1219, 1536], [1106, 1536]], 'Via Skype', 0.6884297593852318) ([[997, 1543], [1214, 1543], [1214, 1568], [997, 1568]], 'Geneva, Switzerland', 0.9916012996308284) ([[1106, 1579], [1172, 1579], [1172, 1604], [1106, 1604]], '12.59', 0.6224866628901077) ([[75, 2010], [325, 2010], [325, 2047], [75, 2047]], 'NEW TONIGHT', 0.9929032978295462) ([[1105, 2010], [1199, 2010], [1199, 2053], [1105, 2053]], 'LIVE', 0.7127555955894591) ([[80, 2057], [991, 2057], [991, 2099], [80, 2099]], 'WORLD HEALTH ORGANIZATION SAYS GAZA POLIO', 0.6723123730679973) ([[1081, 2054], [1223, 2054], [1223, 2128], [1081, 2128]], '@N', 0.6460536388654559) ([[80, 2099], [955, 2099], [955, 2141], [80, 2141]], 'VACCINATION CAMPAIGN IS AHEAD OF TARGETS', 0.8396702511397078) ([[1096, 2121], [1192, 2121], [1192, 2139], [1096, 2139]], '3.59 PM P', 0.9932463181327646) ([[39, 2157], [95, 2157], [95, 2182], [39, 2182]], 'AHU', 0.6404013209149471) ([[133, 2157], [210, 2157], [210, 2187], [133, 2187]], 'ODDS', 0.9997334480285645) ([[293, 2156], [1054, 2156], [1054, 2193], [293, 2193]], 'AFTER US PRESIDENT SAYS ISRAELI PM NOT DOING ENOUGH IN', 0.9285410511957523) ([[1076, 2163], [1223, 2163], [1223, 2181], [1076, 2181]], 'SITUATION ROOM', 0.8492627350378248) ([[1106, 2250], [1219, 2250], [1219, 2275], [1106, 2275]], 'Via Skype', 0.988160896413902) ([[998, 2288], [1057, 2288], [1057, 2305], [998, 2305]], 'Gene', 0.9952597405383758) ([[1091, 2288], [1218, 2288], [1218, 2305], [1091, 2305]], 'Switzerland', 0.9998886701921377) ([[1106, 2318], [1214, 2318], [1214, 2343], [1106, 2343]], '12.59 AM', 0.825456139226747) ([[75, 2749], [325, 2749], [325, 2791], [75, 2791]], 'NEW TONIGHT', 0.6725039326202834) ([[1105, 2749], [1199, 2749], [1199, 2786], [1105, 2786]], 'LIVE', 0.9997826218605042) ([[80, 2796], [991, 2796], [991, 2838], [80, 2838]], 'WORLD HEALTH ORGANIZATION SAYS GAZA POLIO', 0.6738218100449114) ([[1081, 2793], [1223, 2793], [1223, 2872], [1081, 2872]], 'CN', 0.1944053906680919) ([[80, 2837], [955, 2837], [955, 2880], [80, 2880]], 'VACCINATION CAMPAIGN IS AHEAD OF TARGETS', 0.5869006402006599) ([[1138, 2860], [1192, 2860], [1192, 2878], [1138, 2878]], 'PM P', 0.9168089231647333) ([[49, 2895], [903, 2895], [903, 2932], [49, 2932]], 'DS AGAIN AFTER US PRESIDENT SAYS ISRAELI PM NOT DOING ENOUGH', 0.6682113790726932) ([[933, 2895], [1074, 2895], [1074, 2932], [933, 2932]], 'CEASEFIRE', 0.9998434720774124) ([[1076, 2902], [1223, 2902], [1223, 2919], [1076, 2919]], 'SITUATION ROOM', 0.937533340510459) ([[1106, 2989], [1214, 2989], [1214, 3014], [1106, 3014]], 'Via Skype', 0.8118984955455925) ([[997, 3026], [1084, 3026], [1084, 3051], [997, 3051]], 'Geneva;', 0.8451241757929161) ([[1091, 3027], [1218, 3027], [1218, 3044], [1091, 3044]], 'Switzerland', 0.9997597023510275) ([[1106, 3057], [1172, 3057], [1172, 3082], [1106, 3082]], '12.59', 0.9423655939755641) ([[75, 3488], [325, 3488], [325, 3530], [75, 3530]], 'NEW TONIGHT', 0.9831733285139858) ([[1105, 3493], [1199, 3493], [1199, 3530], [1105, 3530]], 'LIVE', 0.9998494386672974) ([[80, 3535], [991, 3535], [991, 3577], [80, 3577]], 'WORLD HEALTH ORGANIZATION SAYS GAZA POLIO', 0.9559606116940806) ([[1081, 3532], [1223, 3532], [1223, 3611], [1081, 3611]], '@N', 0.43856784336162086) ([[80, 3576], [955, 3576], [955, 3619], [80, 3619]], 'VACCINATION CAMPAIGN IS AHEAD OF TARGETS', 0.6433959409577008) ([[1095, 3598], [1193, 3598], [1193, 3623], [1095, 3623]], '3.59 PM P"', 0.5313227205060264) ([[44, 3640], [777, 3640], [777, 3670], [44, 3670]], 'AFTER US PRESIDENT SAYS ISRAELI PM NOT DOING ENOUGH', 0.8199583998982607) ([[809, 3640], [1224, 3640], [1224, 3670], [809, 3670]], 'CEASEFIRE-HOSTAGE SITUATION ROOM', 0.9409291344344214) ([[1106, 3728], [1214, 3728], [1214, 3753], [1106, 3753]], 'Via Skype', 0.9994142352357107) ([[997, 3765], [1079, 3765], [1079, 3789], [997, 3789]], 'Geneva', 0.9986380816676677) ([[1090, 3765], [1219, 3765], [1219, 3789], [1090, 3789]], 'Switzerland', 0.9999826753977742) ([[1107, 3802], [1171, 3802], [1171, 3820], [1107, 3820]], '12.59', 0.9766651546900481) ([[80, 4227], [325, 4227], [325, 4269], [80, 4269]], 'NEW TONIGHT', 0.9995757779703018) ([[1105, 4232], [1199, 4232], [1199, 4269], [1105, 4269]], 'LIVE', 0.9977180448554323) ([[76, 4267], [995, 4267], [995, 4328], [76, 4328]], 'WORLD HEALTH ORGANIZATION SAYS GAZA POLIO', 0.6412613098448048) ([[1081, 4270], [1223, 4270], [1223, 4350], [1081, 4350]], '@N', 0.3899826599364964) ([[79, 4314], [956, 4314], [956, 4364], [79, 4364]], 'VACCINATION CAMPAIGN IS AHEAD OF TARGETS', 0.8808961197967494) ([[1095, 4337], [1203, 4337], [1203, 4362], [1095, 4362]], '3.59 PM PT', 0.9849837346180169) ([[43, 4378], [1059, 4378], [1059, 4415], [43, 4415]], 'PRESIDENT SAYS ISRAELI PM NOT DOING ENOUGH IN CEASEFIRE-HOSTAGE RELEASE', 0.6274219856240116) ([[1075, 4379], [1224, 4379], [1224, 4403], [1075, 4403]], 'SITUATION ROOM', 0.9997662192157777) ([[1106, 4467], [1214, 4467], [1214, 4497], [1106, 4497]], 'Via Skype', 0.7110910810686314) ([[997, 4503], [1219, 4503], [1219, 4528], [997, 4528]], 'Geneva, Switzerland', 0.9917590397332369) ([[1107, 4541], [1213, 4541], [1213, 4558], [1107, 4558]], '42.59 AM', 0.8144427295933948) ([[80, 4971], [325, 4971], [325, 5008], [80, 5008]], 'NEW TONIGHT', 0.8036953535344091) ([[1105, 4971], [1199, 4971], [1199, 5008], [1105, 5008]], 'LIVE', 0.9998304843902588) ([[79, 5011], [992, 5011], [992, 5061], [79, 5061]], 'WORLD HEALTH ORGANIZATION SAYS GAZA POLIO', 0.7113613510255252) ([[1081, 5009], [1223, 5009], [1223, 5089], [1081, 5089]], '@N', 0.3650098108737782) ([[79, 5053], [956, 5053], [956, 5103], [79, 5103]], 'VACCINATION CAMPAIGN IS AHEAD OF TARGETS', 0.873273188770194) ([[1096, 5082], [1192, 5082], [1192, 5100], [1096, 5100]], '3.59 PM P', 0.8934159641135835) ([[60, 5117], [527, 5117], [527, 5147], [60, 5147]], 'SAYS ISRAELI PM NOT DOING ENOUGH', 0.9813015333939471) ([[554, 5117], [1224, 5117], [1224, 5147], [554, 5147]], 'CEASEFIRE-HOSTAGE RELEASE TALKS. WHF SITUATION ROOM', 0.670396646889746) ([[1106, 5211], [1219, 5211], [1219, 5236], [1106, 5236]], 'Via Skype', 0.776378312074441) ([[998, 5248], [1078, 5248], [1078, 5266], [998, 5266]], 'Geneva', 0.7880081677795265) ([[1091, 5248], [1218, 5248], [1218, 5266], [1091, 5266]], 'Switzerland', 0.9998544600103143) ([[1106, 5279], [1214, 5279], [1214, 5303], [1106, 5303]], '12.59 AM', 0.8784369795919004) ([[75, 5710], [325, 5710], [325, 5752], [75, 5752]], 'NEW TONIGHT', 0.7680088716321476) ([[1105, 5710], [1199, 5710], [1199, 5752], [1105, 5752]], 'LIVE', 0.9997101426124573) ([[80, 5756], [991, 5756], [991, 5799], [80, 5799]], 'WORLD HEALTH ORGANIZATION SAYS GAZA POLIO', 0.6332083904487279) ([[1081, 5753], [1223, 5753], [1223, 5828], [1081, 5828]], 'CN', 0.43649135701868474) ([[80, 5798], [955, 5798], [955, 5840], [80, 5840]], 'VACCINATION CAMPAIGN IS AHEAD OF TARGETS', 0.9546360997031846) ([[1081, 5821], [1135, 5821], [1135, 5838], [1081, 5838]], 'DOW', 0.9988773338323386) ([[1154, 5821], [1218, 5821], [1218, 5838], [1154, 5838]], '626 15', 0.8358186437737104) ([[43, 5855], [398, 5855], [398, 5892], [43, 5892]], 'IELI PM NOT DOING ENOUGH', 0.6426562063736659) ([[428, 5855], [882, 5855], [882, 5892], [428, 5892]], 'CEASEFIRE-HOSTAGE RELEASE TALKS', 0.7160573070559002) ([[891, 5855], [1225, 5855], [1225, 5892], [891, 5892]], 'WHEN HE WAS SITUATION ROOM', 0.9978320299147491) ([[1106, 5950], [1219, 5950], [1219, 5980], [1106, 5980]], 'Via Skype', 0.8949342117427044) ([[997, 5986], [1219, 5986], [1219, 6011], [997, 6011]], 'Geneva, Switzerland', 0.9965692165239151) ([[1106, 6018], [1172, 6018], [1172, 6042], [1106, 6042]], '12.59', 0.4850393659678864) ([[1179, 6018], [1214, 6018], [1214, 6042], [1179, 6042]], 'AM', 0.9997748589591324) ([[75, 6448], [325, 6448], [325, 6491], [75, 6491]], 'NEW TONIGHT', 0.9997350773328715) ([[1105, 6448], [1199, 6448], [1199, 6491], [1105, 6491]], 'LIVE', 0.9994772672653198) ([[80, 6495], [991, 6495], [991, 6538], [80, 6538]], 'WORLD HEALTH ORGANIZATION SAYS GAZA POLIO', 0.8486802789029213) ([[1081, 6492], [1223, 6492], [1223, 6567], [1081, 6567]], '@N', 0.21925159290391028) ([[80, 6537], [955, 6537], [955, 6579], [80, 6579]], 'VACCINATION CAMPAIGN IS AHEAD OF TARGETS', 0.9550281113709489) ([[1080, 6559], [1136, 6559], [1136, 6583], [1080, 6583]], 'DOW', 0.9914584946882111) ([[1153, 6559], [1219, 6559], [1219, 6583], [1153, 6583]], '626.15', 0.772675559577265) ([[70, 6600], [272, 6600], [272, 6630], [70, 6630]], 'DOING ENOUGH', 0.8544290087513681) ([[299, 6600], [756, 6600], [756, 6630], [299, 6630]], 'CEASEFIRE-HOSTAGE RELEASE TALKS', 0.881030350312858) ([[768, 6600], [1037, 6600], [1037, 6630], [768, 6630]], 'WHEN HE WAS ASKED', 0.9785117766311934) ([[1076, 6601], [1223, 6601], [1223, 6619], [1076, 6619]], 'SITUATION ROOM', 0.6505578534271369) ([[209.41000317999047, 2161.4560050879845], [287.7493599873219, 2155.799575216803], [288.58999682000956, 2182.5439949120155], [211.2506400126781, 2189.200424783197]], 'AGAIN', 0.999957030406943)
Finally, what about this fascinating 2010 ABC Evening News broadcast that features a clip from Umar Media, complete with its Urdu scroll?
This takes 0.57s. Since we were never expecting to find Urdu text on an ABC evening news broadcast, we originally OCR'd it asking only for English text:
wget https://blog.gdeltproject.org/wp-content/uploads/2020-abc-news-arabic-ocr.png time easyocr -l en -f 2020-abc-news-arabic-ocr.png --detail=1 --gpu=True ([[1186, 2], [1290, 2], [1290, 74], [1186, 74]], 'U', 0.45749600348728237) ([[1130, 70], [1369, 70], [1369, 135], [1130, 135]], 'Umar Media', 0.9193549037889254) ([[1315, 611], [1461, 611], [1461, 649], [1315, 649]], 'abc NEW', 0.5186949788214834) ([[1416, 640], [1482, 640], [1482, 664], [1416, 664]], 'com', 0.6146604588614145) ([[432, 690], [506, 690], [506, 722], [432, 722]], 'J', 0.027170431828782426) ([[503, 683], [1006, 683], [1006, 733], [503, 733]], 'Laded', 0.016586759100344472) ([[1029, 689], [1127, 689], [1127, 727], [1029, 727]], '13', 0.13166277323415446) ([[1249, 693], [1349, 693], [1349, 731], [1249, 731]], 'GC', 0.16028602896133629) ([[1365, 693], [1513, 693], [1513, 725], [1365, 725]], '40.09Ku4', 0.031875602092516345
Going back and manually specifying that the image contains Urdu text, this takes 0.64 seconds, but does a fairly poor job:
time easyocr -l en ur -f 2020-abc-news-arabic-ocr.png --detail=1 --gpu=True [[[1186, 2], [1290, 2], [1290, 74], [1186, 74]], '{', 0.06254612760177825] [[[1130, 70], [1369, 70], [1369, 135], [1130, 135]], 'Umar Medin', 0.19355770683525222] [[[1315, 611], [1461, 611], [1461, 649], [1315, 649]], 'abc Nall', 0.20547790469724495] [[[1416, 640], [1482, 640], [1482, 664], [1416, 664]], 'C077', 0.13588246703147888] [[[432, 690], [506, 690], [506, 722], [432, 722]], 'ج', 0.44490139832646847] [[[503, 683], [1006, 683], [1006, 733], [503, 733]], '', 0.0] [[[1029, 689], [1127, 689], [1127, 727], [1029, 727]], 'تا', 0.5076047526169988] [[[1249, 693], [1349, 693], [1349, 731], [1249, 731]], 'ن', 0.5900338677862607] [[[1365, 693], [1513, 693], [1513, 725], [1365, 725]], '40:08#36', 0.017852405052405616]