OCR به سادگی مجموعه ای از وظایف بینایی کامپیوتری است که اسناد و تصاویر اسکن شده را به متن قابل خواندن ماشین تبدیل می کند. از اسناد، فاکتورها و رسیدها عکس می گیرد، متن را در آن پیدا می کند و آن را به قالبی تبدیل می کند که ماشین ها بهتر بتوانند پردازش کنند. شما می خواهید اطلاعات کارت های شناسایی را بخوانید یا اعداد را در چک بانکی بخوانید، OCR چیزی است که نرم افزار شما را هدایت می کند.
ممکن است لازم باشد نویسههای مختلف چک را بخوانید، شماره حساب، مبلغ، ارز، تاریخ و غیره را استخراج کنید. اما چگونه میدانید کدام کاراکتر مربوط به کدام قسمت است؟ اگر می خواهید قرائت کنتور را استخراج کنید، چگونه می دانید قرائت کنتور چه قسمت هایی است و چه اعدادی برای شناسایی کنتور چاپ شده است؟
یادگیری چگونگی استخراج متن از تصاویر یا نحوه اعمال یادگیری عمیق برای OCR یک فرآیند طولانی و موضوعی برای پست وبلاگ دیگری است. تمرکز این یکی بر این است که بدانیم فناوری OCR در کجا ایستاده است، محصولات OCR چه چیزی را ارائه می دهند، چه چیزی کم است و چه کارهایی را می توان بهتر انجام داد.
آیا می خواهید فاکتورها، پی دی اف ها یا پلاک ها را دیجیتالی کنید؟ سر به نانوت و شروع به ساختن کنید OCR مدل های رایگان!
چشم انداز OCR
بسیاری تصور می کنند که OCR یک مشکل حل شده است، اما در واقعیت، محصولاتی که به عنوان ابزارهای منبع باز در دسترس ما هستند یا توسط غول های تکنولوژی ارائه می شوند، بسیار سفت و سخت، اغلب نادرست و در دنیای واقعی شکست می خورند.
API های ارائه شده توسط بسیاری محدود به حل مجموعه بسیار محدودی از موارد استفاده هستند و از سفارشی سازی بیزار هستند. اغلب اوقات، برنامه ریزی کسب و کار برای استفاده از فناوری OCR به یک تیم داخلی نیاز دارد تا بر اساس آن کار کند OCR API در دسترس آنها است تا در واقع آن را در مورد استفاده خود اعمال کنند. فناوری OCR که امروزه در بازار موجود است، عمدتاً یک راه حل جزئی برای این مشکل است.
نانوت OCR API بسیار جالب دارد موارد استفاده. برای کسب اطلاعات بیشتر با یک متخصص هوش مصنوعی Nanonets صحبت کنید.
جایی که APIهای OCR فعلی خراب می شوند
کاستی های محصول
کار با داده های سفارشی مجاز نیست - یکی از بزرگترین موانع برای پذیرش OCR این است که هر موردی دارای تفاوتهای ظریف است و نیاز به الگوریتمهای ما برای مقابله با انواع مختلف داده دارد. برای اینکه بتوانیم نتایج خوبی برای مورد استفاده خود به دست آوریم، مهم است که بتوان مدلی را بر روی داده هایی که بیشتر با آنها سر و کار داریم آموزش داد. این امکان با OCR API های موجود برای ما وجود ندارد. به عنوان مثال، هر کاری که شامل OCR در طبیعت باشد، خواندن علائم راهنمایی و رانندگی یا خواندن شماره کانتینرهای حمل و نقل را در نظر بگیرید. APIهای OCR فعلی اجازه خواندن عمودی را نمی دهد که کار تشخیص در تصویر بالا را بسیار سخت تر می کند. این موارد استفاده به شما نیاز دارند که به طور خاص برای شخصیتهای تصاویری که بیشتر با آنها سروکار دارید، جعبههای مرزبندی دریافت کنید.
به مقدار قابل توجهی پس پردازش نیاز دارد - همه APIهای OCR در حال حاضر استخراج متن از تصاویر داده شده. این به ما بستگی دارد که بر روی خروجی ایجاد کنیم تا بتواند برای سازمان ما مفید باشد. دریافت متن از فاکتور هیچ فایده ای ندارد. اگر نیاز به استفاده از آن دارید، باید یک لایه از آن بسازید نرم افزار ocr در بالای آن است که به شما امکان می دهد تاریخ، نام شرکت، مقدار، جزئیات محصول و غیره را استخراج کنید. مسیر رسیدن به چنین محصول نهایی را می توان با موانعی به دلیل ناهماهنگی در تصاویر ورودی و عدم سازماندهی در متن استخراج شده پر کرد. . برای اینکه بتوان به نتایج معنادار دست یافت، متن استخراج شده از مدل های OCR باید باشد ساختار هوشمندانه و در قالبی قابل استفاده بارگذاری می شود. این می تواند به این معنی باشد که شما به یک تیم داخلی از توسعه دهندگان نیاز دارید تا از API های OCR موجود برای ساختن نرم افزاری استفاده کنند که سازمان شما بتواند از آن استفاده کند.
فقط در محدودیت های خاص خوب کار کنید - روش های OCR فعلی روی اسناد اسکن شده با متن دیجیتال عملکرد خوبی دارند. از سوی دیگر، اسناد دست نویس، تصاویر متن به چندین زبان به طور همزمان، تصاویر با وضوح پایین، تصاویر با فونت های جدید و اندازه های مختلف فونت یا تصاویر با متن سایه دار و غیره می توانند باعث شوند که مدل OCR شما خطاهای زیادی داشته باشد و شما را با دقت ضعیف ترک می کند. مدلهای سفت و سختی که از سفارشیسازی بیزارند، دامنه کاربردهای فناوری را محدود میکنند، جایی که میتوانند با حداقل اثربخشی معقول عمل کنند.
موانع تکنولوژیکی
متن کج شده در تصاویر - در حالی که تحقیقات فعلی نشان می دهد که تشخیص شی باید قادر به کار با تصاویر چرخانده شده با آموزش آنها بر روی داده های تقویت شده باشد، شگفت آور است که متوجه شویم هیچ یک از ابزارهای OCR موجود در بازار واقعاً تشخیص شی را در خط لوله خود انجام نمی دهند. این چند ایراد دارد، یکی از آنها این است که مدل OCR شما کاراکترها و کلماتی که کج شده اند را انتخاب نمی کند. به عنوان مثال، خواندن پلاک ها را در نظر بگیرید. دوربینی که به نور خیابان متصل است، بسته به فاصله و جهت خودرو، یک خودروی در حال حرکت را در زاویه متفاوتی عکس میگیرد. در چنین مواردی، متن کج به نظر می رسد. دقت بهتر ممکن است به معنای اجرای قوی تر قانون راهنمایی و رانندگی و کاهش میزان تصادفات باشد.
OCR در صحنه های طبیعی - OCR از نظر تاریخی برای رسیدگی به اسناد تکامل یافته است و اگرچه بسیاری از اسناد و مدارک ما این روزها با رایانه ها انجام می شود، هنوز موارد استفاده متعددی وجود دارد که ما را ملزم می کند که بتوانیم تصاویر گرفته شده در تنظیمات مختلف را پردازش کنیم. یکی از این نمونه ها خواندن شماره کانتینرهای حمل و نقل است. رویکردهای کلاسیک تمایل دارند اولین کاراکتر را پیدا کنند و در یک خط افقی به دنبال کاراکترهای بعدی بگردند. این رویکرد هنگام تلاش برای اجرای OCR روی تصاویر در طبیعت بی فایده است. این تصاویر می توانند تار و نویز باشند. متن موجود در آنها میتواند در مکانهای مختلفی باشد، فونت ممکن است چیزی باشد که مدل OCR شما قبلاً ندیده است، متن میتواند کج شود و غیره.
متن دست نویس، فونت شکسته، اندازه فونت - فرآیند حاشیهنویسی OCR از شما میخواهد که هر کاراکتر را بهعنوان یک کادر مجزا شناسایی کنید و مدلهایی که برای کار روی چنین دادههایی آموزش دیدهاند، وقتی با متن دستنویس یا فونتهای شکسته روبرو میشوند، حذف میشوند. این به این دلیل است که فاصله بین هر دو کاراکتر، جداسازی یکی از دیگری را آسان می کند. این شکاف ها برای فونت های شکسته وجود ندارد. بدون این شکافها، مدل OCR فکر میکند که همه شخصیتهایی که به هم متصل هستند در واقع یک الگوی واحد هستند که در هیچ یک از توصیفهای کاراکتر در واژگان آن قرار نمیگیرد. این مشکلات را می توان با تامین انرژی خود برطرف کرد موتور OCR با یادگیری عمیق.
متن به زبان هایی غیر از انگلیسی - مدل های OCR ارائه شده توسط گوگل و مایکروسافت با زبان انگلیسی خوب کار کنید اما با زبان های دیگر خوب کار نمی کنید. این بیشتر به دلیل کمبود داده های آموزشی کافی و قوانین نحوی متفاوت برای زبان های مختلف است. هر پلتفرم یا شرکتی که قصد دارد از OCR برای داده ها به زبان مادری خود استفاده کند، باید با مدل های بد و نتایج نادرست دست و پنجه نرم کند. ممکن است بخواهید اسنادی را که حاوی چندین زبان به طور همزمان هستند، مانند فرم هایی برای رسیدگی به فرآیندهای دولتی، تجزیه و تحلیل کنید. کار با چنین مواردی با API های OCR موجود امکان پذیر نیست.
تصاویر پر سر و صدا/ تار - تصاویر پر سر و صدا اغلب می توانند طبقه بندی کننده شما را از بین ببرند و نتایج اشتباهی ایجاد کنند. یک تصویر تار می تواند مدل OCR خود را اشتباه بگیرید بین '8' و 'B' یا 'A' و '4'. تصاویر حذف نویز یک حوزه فعال تحقیقاتی است و به طور فعال در زمینه های یادگیری عمیق، بینایی کامپیوتری مورد مطالعه قرار می گیرد. ساخت مدلهایی که در برابر نویز مقاوم هستند، میتواند به ایجاد یک رویکرد کلی کمک کند شخصیت شناسی و طبقه بندی تصاویر و درک نویز زدایی و به کارگیری آن در کارهای تشخیص کاراکتر می تواند دقت را تا حد زیادی بهبود بخشد.
آیا حتی باید از OCR استفاده کنم؟
پاسخ کوتاه بله است.
هر جا که کاغذبازی یا تلاش دستی زیادی درگیر باشد، تکنولوژی OCR می تواند اتوماسیون فرآیند مبتنی بر تصویر و متن را فعال کند. توانایی دیجیتالی کردن اطلاعات به روشی دقیق می تواند به فرآیندهای کسب و کار کمک کند تا به همراه کاهش نیروی انسانی مورد نیاز برای اجرای این فرآیندها روان تر، آسان تر و قابل اعتمادتر شوند. برای سازمانهای بزرگی که باید با فرمها، فاکتورها، رسیدها و غیره زیادی سر و کار داشته باشند، توانایی دیجیتالی کردن تمام اطلاعات، ذخیره و ساختاردهی دادهها، جستجو و ویرایش آنها گامی نزدیکتر به دنیای بدون کاغذ است.
به موارد استفاده زیر فکر کنید.
شماره پلاک - تشخیص پلاک را می توان برای اجرای قوانین راهنمایی و رانندگی، ردیابی خودروها در پارکینگ سرویس تاکسی، افزایش امنیت در فضاهای عمومی، ساختمان های شرکتی، مراکز خرید و غیره استفاده کرد.
اسناد حقوقی - پرداختن به اشکال مختلف اسناد - استشهادنامه، قضاوت، پرونده سازی و غیره دیجیتالی کردن، پایگاه داده و قابل جستجو کردن آنها.
استخراج جدول - تشخیص خودکار جداول در یک سند، دریافت متن در هر سلول، عنوان ستون برای تحقیق، ورود داده ها، جمع آوری داده ها و غیره.
بانکداری - تجزیه و تحلیل چک ها، خواندن و به روز رسانی دفترچه های عبور، اطمینان از انطباق با KYC، تجزیه و تحلیل برنامه های کاربردی برای وام ها، حساب ها و سایر خدمات.
دیجیتالی کردن منو - استخراج اطلاعات از منوی رستوران های مختلف و قرار دادن آنها در قالبی همگن برای برنامه های تحویل غذا مانند swiggy، zomato، uber eats و غیره.
بهداشت و درمان - سوابق پزشکی بیماران، سابقه بیماری ها، تشخیص ها، داروها و غیره را دیجیتالی کنید و برای راحتی پزشکان قابل جستجو کنید.
فاکتورها - خودکار خواندن صورتحساب ها، فاکتورها و رسیدها، استخراج محصولات، قیمت ها، داده های تاریخ، نام شرکت/خدمت برای خرده فروشی و صنعت لجستیک.
خودکارسازی فرآیندهای تجاری ثابت کرده است که برای سازمان ها یک موهبت است. این امر به آنها کمک کرده تا شفافتر شوند، ارتباطات و هماهنگی بین تیمهای مختلف را آسانتر کند، توان عملیاتی کسبوکار را افزایش دهد، نرخ حفظ کارمندان را افزایش دهد، خدمات مشتری و تحویل را افزایش دهد، بهرهوری و عملکرد کارکنان را افزایش دهد. اتوماسیون هوشمند به سرعت بخشیدن به فرآیندهای تجاری کمک کرده و در عین حال هزینه ها را کاهش داده است. این فرآیندها را کمتر آشفته و قابل اعتمادتر کرده و به افزایش روحیه کارکنان کمک کرده است. حرکت به سمت دیجیتالی شدن برای رقابتی ماندن در دنیای امروز ضروری است.
آیا می خواهید فاکتورها، پی دی اف ها یا پلاک ها را دیجیتالی کنید؟ سر به نانوت و شروع به ساختن کنید OCR مدل های رایگان!
این OCR API به چه چیزی نیاز دارد؟
OCR پتانسیل های زیادی دارد، اما اکثر محصولات موجود امروزی استفاده از این فناوری را برای مشاغل آسان نمی کند. کاری که OCR انجام می دهد تبدیل تصاویر دارای متن یا اسناد اسکن شده به متن قابل خواندن توسط ماشین است. اینکه چه کاری با متن انجام شود به افرادی که از آنها استفاده می کنند واگذار می شود فناوری های OCR، که ممکن است در ابتدا چیز خوبی به نظر برسد. این به افراد اجازه میدهد تا متنی را که با آن کار میکنند آنطور که میخواهند سفارشی کنند، با توجه به اینکه آماده هستند منابع مورد نیاز برای تحقق آن را خرج کنند. اما فراتر از چند مورد استفاده مانند خواندن اسناد اسکن شده و تجزیه و تحلیل صورتحساب ها و رسیدها، این فناوری ها نتوانستند مورد خود را برای پذیرش گسترده مطرح کنند.
یک محصول OCR خوب در جنبه های زیر بهبود می یابد.
نحوه برخورد آن با تصاویری که وارد می شوند
- آیا پیش پردازش مورد نیاز را به حداقل می رساند؟
- آیا می توان فرآیند حاشیه نویسی را آسان تر کرد؟
- تصاویر ما را در چند فرمت می پذیرد؟
- آیا هنگام پیش پردازش اطلاعات را از دست می دهیم؟
نحوه عملکرد آن در مشکلات دنیای واقعی
- دقتش چطوره؟
- آیا در هر زبانی عملکرد خوبی دارد؟
- در مورد موارد دشوار مانند متن کج شده، OCR در حالت طبیعی، متن دست نویس چطور؟
- آیا می توان مدل های خود را دائماً بهبود بخشید؟
- در مقابل سایر ابزارها و APIهای OCR چگونه عمل می کند؟
نحوه استفاده از متن قابل خواندن توسط ماشین
- آیا به ما اجازه می دهد که به آن ساختار بدهیم؟
- آیا تکرار روی ساختار را آسان تر می کند؟
- آیا میتوانم اطلاعاتی را که میخواهم حفظ کنم انتخاب کنم و بقیه را کنار بگذارم؟
- آیا ذخیره سازی، ویرایش و جستجو را آسان تر می کند؟
- آیا تجزیه و تحلیل داده ها را آسان تر می کند؟
نانو شبکه ها و OCR
ما در نانوت برای ساختن نوع محصولی که این مشکلات را حل می کند کار کرده اند. ما با کار با آن نه تنها به عنوان تشخیص کاراکتر، بلکه به عنوان یک کار تشخیص و طبقه بندی اشیا، توانسته ایم یک خط لوله برای OCR تولید کنیم.
اما مزایای استفاده از نانو شبکه نسبت به سایر APIهای OCR فراتر از دقت بهتر است. در اینجا چند دلیل وجود دارد که باید به استفاده از آن فکر کنید Nanonets OCR API.
استخراج میدان ساخت یافته هوشمند خودکار - فرض کنید میخواهید دریافتها را در سازمانتان تجزیه و تحلیل کنید تا بازپرداختها را خودکار کنید. شما یک برنامه دارید که افراد می توانند رسیدهای خود را آپلود کنند. این برنامه باید متن آن رسیدها را بخواند، داده ها را استخراج کند و آنها را در جدولی با ستون هایی مانند شناسه تراکنش، تاریخ، زمان، خدمات استفاده شده، قیمت پرداخت شده و غیره قرار دهد. این اطلاعات به طور مداوم در یک پایگاه داده به روز می شود که کل را محاسبه می کند. بازپرداخت برای هر کارمند در پایان هر ماه. نانو شبکه ها این کار را آسان می کند استخراج متن، داده های مربوطه را در فیلدهای مورد نیاز ساختار دهید و داده های نامربوط استخراج شده از تصویر را دور بریزید.
با چندین زبان به خوبی کار می کند - اگر شرکتی هستید که با داده هایی که به زبان انگلیسی نیستند سر و کار دارید، احتمالاً از قبل احساس می کنید که وقت خود را برای جستجوی API های OCR مانند OCR ژاپنی که در واقع آنچه را که وعده داده اند را انجام می دهد. ما میتوانیم با آموزش سفارشی و تغییر واژگان مدلهایمان مطابق با نیازهای شما، یک خط لوله خودکار از انتها به انتها خاص برای مورد استفاده شما ارائه دهیم.
عملکرد خوبی روی متن در طبیعت دارد - خواندن تابلوهای خیابان برای کمک به ناوبری در مناطق دورافتاده، خواندن شماره کانتینرهای حمل و نقل برای پیگیری مواد خود، خواندن پلاک شماره برای ایمنی ترافیک تنها برخی از موارد استفاده است که شامل تصاویر در طبیعت است. نانوشبکهها از روشهای تشخیص اشیا برای بهبود جستجوی متن در تصویر و همچنین طبقهبندی آنها حتی در تصاویر با سطوح کنتراست، اندازه فونت و زوایای مختلف استفاده میکنند.
داده های خود را آموزش دهید تا برای مورد استفاده شما کار کند - از سختی خدمات OCR قبلی که گردش کار شما را به آن اجبار کرده بود خلاص شوید. لازم نیست به این فکر کنید که با این فناوری چه چیزی ممکن است. با نانو نت ها، می توانید بر یافتن راهی برای به دست آوردن بهترین نتیجه برای کسب و کار خود تمرکز کنید. اینکه بتوانید از داده های خود برای آموزش استفاده کنید، دامنه برنامه ها را گسترش می دهد، مانند کار با چندین زبان به طور همزمان، و همچنین عملکرد مدل شما را به دلیل شبیه بودن داده های آزمایشی بسیار شبیه به داده های آموزشی، افزایش می دهد.
یادگیری مستمر - تصور کنید که دارید خدمات حمل و نقل خود را به حالت جدیدی گسترش می دهید. به دلیل زبان جدیدی که شماره پلاک کامیونتان به آن میگویند، در آینده با خطر منسوخ شدن مدل خود مواجه هستید. یا شاید یک پلتفرم ویدیویی دارید که نیاز به تعدیل متن صریح در فیلمها و تصاویر دارد. با محتوای جدید، شما با موارد لبه بیشتری مواجه می شوید که پیش بینی های مدل چندان مطمئن نیستند یا در برخی موارد نادرست هستند. برای غلبه بر چنین موانعی، Nanonets OCR API به شما این امکان را میدهد که مدلهای خود را با دادههای جدید به راحتی دوباره آموزش دهید، بنابراین میتوانید عملیات خود را در هر کجا سریعتر خودکار کنید.
هیچ تیم داخلی از توسعه دهندگان مورد نیاز نیست - نیازی به نگرانی در مورد استخدام توسعه دهندگان و به دست آوردن استعداد برای شخصی سازی فناوری برای نیازهای کسب و کار خود نباشید. نانوشبکهها به نیازهای شما رسیدگی میکنند، از منطق کسبوکار گرفته تا محصول نهایی به کار گرفته شده که میتواند به راحتی در جریان کاری کسبوکار شما ادغام شود، بدون اینکه نگران نیازهای زیرساختی باشید.
OCR با Nanonets
Nanonets OCR API به شما اجازه می دهد تا مدل های OCR را به راحتی بسازید. میتوانید دادههای خود را آپلود کنید، آنها را حاشیهنویسی کنید، مدل را برای آموزش تنظیم کنید و منتظر دریافت پیشبینیها از طریق یک UI مبتنی بر مرورگر باشید.
1. استفاده از رابط کاربری گرافیکی: https://app.nanonets.com/
همچنین می توانید با دنبال کردن مراحل زیر از Nanonets-OCR- API استفاده کنید:
2. استفاده از NanoNets API: https://github.com/NanoNets/nanonets-ocr-sample-python
در زیر، راهنمای گام به گام آموزش مدل خود با استفاده از Nanonets API را در 9 مرحله ساده به شما ارائه می دهیم.
مرحله 1: Repo را شبیه سازی کنید
git clone https://github.com/NanoNets/nanonets-ocr-sample-python
cd nanonets-ocr-sample-python
sudo pip install requests
sudo pip install tqdm
مرحله 2: کلید API رایگان خود را دریافت کنید
کلید API رایگان خود را از اینجا دریافت کنید https://app.nanonets.com/#/keys
مرحله 3: کلید API را به عنوان یک محیط متغیر تنظیم کنید
export NANONETS_API_KEY=YOUR_API_KEY_GOES_HERE
مرحله 4: یک مدل جدید ایجاد کنید
python ./code/create-model.py
توجه: این یک MODEL_ID را ایجاد می کند که برای مرحله بعدی به آن نیاز دارید
مرحله 5: شناسه مدل را به عنوان متغیر محیط اضافه کنید
export NANONETS_MODEL_ID=YOUR_MODEL_ID
مرحله 6: داده های آموزش را بارگذاری کنید
تصاویر شیئی را که می خواهید تشخیص دهید جمع آوری کنید. هنگامی که مجموعه داده را در پوشه آماده کردید images
(فایل های تصویری)، آپلود مجموعه داده را شروع کنید.
python ./code/upload-training.py
مرحله 7: مدل قطار
پس از بارگذاری تصاویر ، آموزش مدل را شروع کنید
python ./code/train-model.py
مرحله 8: حالت مدل را دریافت کنید
آموزش این مدل حدود 30 دقیقه طول می کشد. پس از آموزش مدل، ایمیلی دریافت خواهید کرد. در همین حین شما وضعیت مدل را بررسی می کنید
watch -n 100 python ./code/model-state.py
مرحله 9: پیش بینی کنید
پس از آموزش مدل. با استفاده از مدل می توانید پیش بینی کنید
python ./code/prediction.py PATH_TO_YOUR_IMAGE.jpg
نتیجه
در حالی که OCR یک مشکل به طور گسترده مورد مطالعه است، به طور کلی یک زمینه تحقیقاتی است که تا زمانی که رویکردهای یادگیری عمیق برای هدایت تحقیقات در این زمینه به میدان آمدند، راکد بود. در حالی که بسیاری از محصولات OCR موجود امروزه به سمت استفاده از رویکردهای مبتنی بر یادگیری عمیق در OCR پیشرفت کردهاند، کمبود محصولاتی وجود دارد که در واقع فرآیند OCR را برای یک کاربر، یک تجارت یا هر سازمان دیگری آسانتر میکند.
برای کدنویسی تنبل هستید، نمیخواهید برای پردازندههای گرافیکی هزینه کنید؟ سر به نانوت و ساخت بینایی کامپیوتر مدل های رایگان!
برای مطالعه بیشتر
به روز رسانی:
مطالب خواندنی بیشتری در مورد اهمیت تشخیص شخصیت در استخراج اطلاعات.