در این قسمت تیم کدگیت سورس تشخیص ارقام انگلیسی در پایتون (با CNN) را تهیه کرده است. دنیای پردازش تصویر و بینایی ماشین بسیار دگرگون گردیده است. شما یک اپلیکیشن در تلفن همراه را مشاهده میکنید که از طریق تصویر نوع بیماری را شناسایی می کند. اپلیکیشن دیگری از طریق تصویر یک حیوان، نژاد آن را به شما میگوید! سوالی که پیش میآید، این فرآیند چگونه انجام میگیرد؟ یا از چه طریقی شناسایی یک بیماری از روی تصویر امکان پذیر میشود؟ همه این موارد توسط شبکه عصبی قابل انجام است. ما در این قسمت سورس تشخیص ارقام انگلیسی که از شبکههای عصبی پیچشی (CNN) استفاده میکند را تهیه کردهایم. با ما همراه باشید تا این سورس جذاب را معرفی کنیم.
سورس تشخیص ارقام انگلیسی در پایتون
تکنولوژی امروزه به سرعت در حال پیشرفت است. تشخیص عینک، تشخیص خودرو، تشخیص چشم و … تنها بخشی از پیشرفت تکنولوژی است که با کمک پردازش تصویر، بینایی ماشین و هوش مصنوعی قابل انجام است. در این قسمت سورس تشخیص ارقام انگلیسی در پایتون را تهیه کردهایم. برای این کار ما از ماژول tensorflow و seaborn و numpy و pandas و matplotlib کمک میگیریم. در صورتی که با این ماژولها آشنایی ندارید پیشنهاد میکنیم دوره آموزش پیش نیاز علم داده را مطالعه نمایید چراکه در این دوره تمامی ماژولهای فوق (به استثنا tensorflow) آموزش داده میشوند. همچنین دیتاست استفاده گردیده در این پروزه mnist میباشد.
ساختار شبکه عصبی
در سورس پیاده سازی گردیده جهت شناسایی ارقام انگلیسی از ساختار زیر برای شبکه عصبی استفاده گردیده است:
در ساختار بالا همانطور که میبینید ابتدا دو لایه کانولوشن پشت سر هم استفاده گردیده سپس لایه pooling و dropout آمده است (مربع های آبی رنگ). همین ترتیب لایهها مجددا مورد استفاده قرار گرفته یعنی کانولوشن دو بار، pooling و dropout پشت سر آنها (مربع های نارنجی رنگ). در قسمت پایانی Fully Connected Layer در کنار Drop out قرار گرفته است. لایه پایانی نیز Fully Connected Layer می باشد (مربع های سبز رنگ).
دیتاست Mnist
همانطور که گفتیم ما در این پروژه از دیتاست mnist استفاده میکنیم. این دیتاست شامل تصاویر اعداد دستنویس می باشد. بسیاری از کسانی که میخواهند شبکه عصبی کانولوشنی را یاد بگیرند، از این دیتاست برای پیاده سازی شبکه عصبی خود استفاده میکنند. تصویر زیر برخی از تصاویر این دیتاست را نمایش میدهد:
نحوه اجرا
زبان برنامه نویسی سورس تشخیص ارقام انگلیسی، پایتون بوده و فرمت فایل .py است. بعد از تهیه سورس از سایت کدگیت فایلی با فرمت zip در اختیار شما قرار میگیرد. فایل را از حالت zip خارج کرده تا بتوانید سورس کد را ببینید. فایل اصلی برنامه با نام mnist.py میباشد. این فایل را اجرا کنید تا برنامه اجرا شود. پس از اجرا خروجی زیر را مشاهده خواهید کرد:
نمایش تعداد تصاویر برای هر عدد
نمایش میزان دقت و خطا بعد از training
ماتریس confusion
علاوه بر تصاویر بالا در کنسول خروجی زیر را خواهید دید:
tensorflow Version: 2.13.0
x_train has nan ? False
x_test has nan ? False
Epoch 1/5
844/844 [==============================] - 73s 86ms/step - loss: 0.2228 - acc: 0.9309 - val_loss: 0.0708 - val_acc: 0.9792
Epoch 2/5
844/844 [==============================] - 73s 86ms/step - loss: 0.0739 - acc: 0.9788 - val_loss: 0.0446 - val_acc: 0.9890
Epoch 3/5
844/844 [==============================] - 73s 87ms/step - loss: 0.0561 - acc: 0.9839 - val_loss: 0.0342 - val_acc: 0.9903
Epoch 4/5
844/844 [==============================] - 78s 92ms/step - loss: 0.0491 - acc: 0.9858 - val_loss: 0.0305 - val_acc: 0.9922
Epoch 5/5
844/844 [==============================] - 121s 144ms/step - loss: 0.0450 - acc: 0.9869 - val_loss: 0.0367 - val_acc: 0.9918
313/313 [==============================] - 7s 22ms/step - loss: 0.0303 - acc: 0.9916
313/313 [==============================] - 7s 22ms/step
x_train shape: (60000, 28, 28, 1)
y_train shape: (60000, 10)
x_test shape: (10000, 28, 28, 1)
y_test shape: (10000, 10)
در خروجی بالا تعداد 5 epoch شبکه عصبی train گردیده است. همچنین میزان دقت را در هر دور epoch میتوانید مشاهده کنید. در epoch آخر دقت 99 درصدی توسط این مدل محاسبه شده است که بسیار دقت بالایی است.
فایلها و ماژولها سورس کد
در سورس فوق از فایلها و ماژولهای زیر استفاده گردیده است:
- tensorflow: جهت نصب وارد cmd شوید و دستور pip install tensorflow را وارد کنید.
- Numpy: نصب numpy با دستور pip install numpy از طریق cmd انجام میشود.
- pandas: با دستور pip install pandas از طریق cmd، نصب این ماژول انجام میشود.
- matplotlib: دستور pip install matplotlib را در cmd بزنید.
- seaborn: برای نصب seaborn نیز در cmd دستور pip install seaborn را بنویسید.
برای نصب پایتون به طوری که در CMD بتوانید کدهای پایتون را اجرا و ماژولها را نصب نمایید ویدئو زیر را حتماً مشاهده کنید:
نقد و بررسیها
هنوز بررسیای ثبت نشده است.