برای اختصار، این پست تنها مهمترین تکههای کد نوتبوک را بررسی میکند. اما، مطمئناً، میتوانید دفترچه یادداشت کامل را در اوقات فراغت خود با شماره بلوک مطالعه کنید و یاد بگیرید که چگونه یک شبکه عصبی را از ابتدا آموزش دادیم تا به سطحی از دقت دست یابیم که یک دهه پیش ممکن نبود.
اکنون خودتان متوجه شده اید که نوشتن کد OCR با عملکرد بالا با OpenVINO چقدر آسان است.
یادگیری اصول
هیچ مجوزی (به صورت صریح یا ضمنی، توسط estoppel یا غیره) برای هیچ گونه حقوق مالکیت معنوی توسط این سند اعطا نمی شود.
برای مثال سیستم پست را در نظر بگیرید. برای مرتب کردن هجوم بی پایان نامه ها و بسته ها تلاش زیادی لازم است. بدون OCR، ممکن است تحویل به تاخیر بیفتد یا گم شود. اما با قابلیتهای OCR، فرآیند مرتبسازی نامهها را میتوان خودکار کرد – و در نتیجه بستهها و نامههای بیشتری به موقع تحویل داده میشوند. و به نکته قبلی من، باور نکنید، OCR از سال 1965 توسط USPS وجود داشته و اجرا شده است – برای کسب اطلاعات بیشتر، این ویدیو را از اداره بایگانی و سوابق ملی مشاهده کنید.
mo_command = f”””mo –saved_model_dir “{ model_name} “ –input_shape “[28,28] –data_type “{ ir_data_type} –output_dir “{ model_path.parent} –model_name “{ ir_model_name} “ “””mo_command = ” “.join(mo_command.split())# Run the Model Optimizer (overwrites the older model) print(“Exporting TensorFlow model to IR… This may take a few minutes.”)mo_result = %sx $mo_commandprint(“
“.join(mo_result))
OpenVINO Runtime (Core) در بلوک 15 با این دستور بارگذاری می شود:
میتوانید کد منبع کامل نسخهی نمایشی امروز را در یک نوت بوک Kaggle بیابید، جایی که به صورت مجموعهای از بلوکهای بسیار کوتاه و شمارهگذاری شده است.
بعد چه می شود؟
در بلوک های 1 تا 3، نوت بوک محیط پایتون را برای TensorFlow تنظیم می کند. در بلوکهای 4 تا 14، نوتبوک پایگاه داده MNIST را بارگیری میکند، این همان چیزی است که ما از آن برای ایجاد مدلی استفاده خواهیم کرد که میتواند ارقام دستنویس را تشخیص دهد و شبکههای عصبی ما را آموزش دهد. سپس بخش جدید و هیجان انگیزی که اینتل امروز ارائه می دهد این است که چگونه می توان این مدل ها را بر روی سخت افزار اینتل بهینه کرد تا کارآمدتر و سریع تر اجرا شوند.
اینتل تمام ضمانتهای صریح و ضمنی، از جمله بدون محدودیت، ضمانتهای ضمنی خرید و فروش، تناسب برای یک هدف خاص، و عدم نقض، و همچنین ضمانتنامههای ناشی از عملکرد، دوره معامله یا استفاده در تجارت را سلب میکند.
همانطور که در جدول بالا می بینید، تمام 10 رقم به درستی مشخص شده اند، با اطمینان بیشتر از 99.99٪ در بسیاری از موارد، اما همیشه در حدود 99٪! اگر قرار بود این دقت را به کسی در دهه 90 نشان دهید، اساساً جادوگری بودید که غیرممکن ها را خلق می کرد.
هیچ محصول یا جزء نمی تواند کاملاً ایمن باشد.
# Load network to the plugin ie = Core()model = ie.read_model(model=model_xml)compiled_model = ie.compile_model(model=model, device_name=”CPU”)input_layer = compiled_model.input(0)output_layer = compiled_model.output(0)
برنامههای OCR به کاربران امکان میدهند دادهها را از اسناد و تصاویر استخراج، تبدیل و تغییر کاربری دهند – ورود دستی دادههای مستعد خطا و زمانبر را حذف میکنند. فراتر از تحقیقات، این اپلیکیشن امروزه در بسیاری از موارد استفاده صنعتی، از دیجیتالی کردن کتابها و تراکنشهای بانکی گرفته تا موجودیهای انبار، جایگاه خود را پیدا کرده است.
AI/ML دنیایی از امکانات را برای توسعه دهندگان باز می کند تا کارهای جدید و هیجان انگیزی را با برنامه های خود انجام دهند. اما اگر واقعاً می خواهید به یک توسعه دهنده واقعی هوش مصنوعی تبدیل شوید، ابتدا باید اصول اولیه را بدانید. یک پله اساسی عالی، آشنایی با تشخیص کاراکتر نوری (OCR) است. OCR ممکن است یک برنامه یادگیری ماشینی اساسی باشد (از سال 1965 وجود داشته است!)، اما به چند دلیل مهم است:
به دلیل سادگی، اغلب اولین مشکل یادگیری ماشینی است که در مدرسه با آن مواجه می شوید.
با یادگیری عمیق شبکه عصبی کانولوشن (CNN)، اکنون میتوانیم به دقت بسیار بالایی (با نرخ خطای کم 0.17٪) دست یابیم.
این به طور موثر بر روی سخت افزارهای مدرن مانند CPU های لپ تاپ با OpenVINO™ اجرا می شود.
سپس، بلوک 16 توپولوژی (model_xml) و وزن (model_bin) مدل IR را در موتور استنتاج OpenVINO بارگذاری می کند:
© شرکت اینتل. اینتل، لوگوی اینتل و سایر علائم اینتل علائم تجاری Intel Corporation یا شرکت های تابعه آن هستند. نام ها و مارک های دیگر ممکن است به عنوان دارایی دیگران ادعا شود.
منبع
به دلیل تطبیق پذیری آن، OCR یک ابزار یادگیری عالی برای توسعه دهندگان است. در این پست، به شما نشان خواهم داد که چگونه می توانید با استفاده از پلتفرم یادگیری ماشینی TensorFlow و Intel® Distribution of OpenVINO™ Toolkit با OCR شروع کنید.
برای کسب اطلاعات بیشتر در مورد اینکه چرا و چگونه OCR واقعاً یک مفهوم اساسی هوش مصنوعی است، این ویدیو را توسط تیم توسعه هوش مصنوعی Intel® نگاه کنید. حتی میتوانید با برنامههای پیشرفتهتر، اما به همان اندازه آسان OCR، با دو دفترچه یادداشت ما درباره تشخیص متن در عکسها و نحوه تشخیص متن با وبکم، حتی زمانی که در حال حرکت است، شروع به تمرین کنید!
امروزه، یادگیری ماشینی درها را به روی بسیاری از برنامههای کاربردی باز میکند که زمانی فقط در داستانهای علمی تخیلی قابل تصور بودند. اگر به تعداد زیادی از این مشکلات دشوار در نهایت حل شده اند و بشریت را به جلو برده اند نگاه می کنید، شاید زمان آن رسیده است که شما بخشی از این انقلاب در محاسبات هوش مصنوعی باشید – با OCR 101 اولیه شروع کنید. 😃
هزینه ها و نتایج شما ممکن است متفاوت باشد.
اینتل داده های شخص ثالث را کنترل یا ممیزی نمی کند. برای ارزیابی دقت باید به منابع دیگری مراجعه کنید.
#test against a few images from the dataset input_list = x_test[:10]for input_image in input_list:res = compiled_model([input_image])[output_layer]X = input_imageX = X.reshape([28, 28]);plt.figure()plt.gray()plt.imshow(X)plt.text(0,-1, “The prediction is “+str(np.argmax(res[0]))+” @ “+str(max(res[0])*100)+”%”)
این داستان برای اولین بار در OpenVINO-toolkit در https://medium.com/openvino-toolkit/ai-inference-software-fundamentals-getting-started-with-optical-character-recognition-2f6ee0a127c2 ارسال شد.
همیشه خوب است که از صفر شروع کنید، اصول را درک کنید و بدانید که کارها چگونه کار می کنند به جای اینکه فقط دکمه های جادویی را فشار دهید بدون اینکه بدانید چرا، درست است؟
به محض اینکه آماده شدید تا مهارت هوش مصنوعی خود را بیشتر کنید، از Adventures تیم توسعه هوش مصنوعی اینتل دیدن کنید زیرا ما این مفاهیم اساسی را در نظر می گیریم و مشکلات دنیای واقعی را حل می کنیم.
و سپس تعدادی تصویر رقمی از MNIST به آن می دهد تا تشخیص دهد:
قسمت میانی بلوک 15 مونتاژ می شود و سپس دستور Model Optimizer را اجرا می کند که مدل IR را تولید می کند:
from openvino.runtime import Core
OpenVINO همچنین میتواند از یک مدل با دقت دوگانه (FP32، یعنی با 32 به جای 16 بیت در هر عدد) استفاده کند، اما همانطور که در یک لحظه خواهید دید، با مدلهای FP16 که سریعتر اجرا میشوند و حافظه کمتری مصرف میکنند حتی در CPUهای استاندارد، شما هنوز هم نتایج خیلی خوبی می گیرید
از آنجایی که OpenVINO به تنهایی روی مدل ها کار می کند “نمایندگی متوسط” فرمت (IR)، همچنین لازم است که مدل ایجاد شده با TensorFlow کجاست و نام و نوع داده (FP16، یعنی اعداد 16 بیتی، ممیز شناور) نسخه IR کجاست:
model_name = “mnist”model_path = Path(model_name)ir_data_type = “FP16″ir_model_name = “mnist_ir”
فناوریهای اینتل ممکن است به فعالسازی سختافزار، نرمافزار یا سرویس نیاز داشته باشند.
برای این نسخه آزمایشی، ما از طریق یک برنامه ساده اجرا می کنیم که می تواند ارقام دست نویس را در مجموعه داده MNIST تشخیص دهد و آن را به طور بهینه روی سخت افزارهای در دسترس مانند CPU شما اجرا کند. (برای آشنایی سریع با تئوری تشخیص رقم مبتنی بر هوش مصنوعی، تماشای این آموزش گرانت ساندرسون را به شدت توصیه می کنم).