فهرست مندرجات[پنهان شدن][نمایش]
این اطمینانبخش است که بدانیم ما توانستهایم رباتها را با تواناییهای ذاتی خود در بیاموزیم تا از طریق مثال یاد بگیرند و محیط اطراف خود را درک کنند. چالش اساسی این است که آموزش کامپیوترها برای "دیدن" مانند انسان ها به زمان و تلاش بسیار بیشتری نیاز دارند.
با این حال، وقتی ارزش عملی را که این مهارت در حال حاضر برای سازمان ها و شرکت ها فراهم می کند در نظر بگیریم، تلاش ارزشمند است. در این مقاله با طبقه بندی تصاویر، نحوه عملکرد و اجرای عملی آن آشنا خواهید شد. شروع کنیم.
طبقه بندی تصاویر چیست؟
کار تغذیه یک تصویر به a شبکه های عصبی و داشتن یک نوع برچسب برای آن تصویر به عنوان تشخیص تصویر شناخته می شود. برچسب خروجی شبکه با یک کلاس از پیش تعریف شده مطابقت دارد.
ممکن است کلاس های متعددی به تصویر اختصاص داده شده باشد، یا به سادگی یک. هنگامی که فقط یک کلاس وجود دارد، اصطلاح "شناسایی" اغلب استفاده می شود، در حالی که زمانی که چندین کلاس وجود دارد، اصطلاح "طبقه بندی" اغلب استفاده می شود.
تشخیص اشیا زیرمجموعه ای از طبقه بندی تصویر است که در آن نمونه های خاصی از اشیاء به عنوان متعلق به یک کلاس مشخص مانند حیوانات، وسایل نقلیه یا انسان ها تشخیص داده می شود.
طبقه بندی تصاویر چگونه کار می کند؟
یک تصویر به شکل پیکسل توسط کامپیوتر تجزیه و تحلیل می شود. این کار را با در نظر گرفتن تصویر به عنوان مجموعه ای از ماتریس ها انجام می دهد که اندازه آن ها با وضوح تصویر تعیین می شود. به زبان ساده، طبقه بندی تصاویر مطالعه داده های آماری با استفاده از الگوریتم ها از دیدگاه یک کامپیوتر است.
طبقه بندی تصویر در پردازش تصویر دیجیتال با گروه بندی پیکسل ها به گروه های از پیش تعیین شده یا "کلاس ها" انجام می شود. الگوریتم ها تصویر را به مجموعه ای از ویژگی های قابل توجه تقسیم می کنند که بار طبقه بندی کننده نهایی را کاهش می دهد.
این ویژگی ها طبقه بندی کننده را در مورد معنای تصویر و طبقه بندی احتمالی آن آگاه می کند. از آنجایی که بقیه فرآیندها در طبقه بندی یک تصویر به آن وابسته است، روش استخراج مشخصه بحرانی ترین مرحله است.
La داده های ارائه شده به الگوریتم نیز در طبقه بندی تصاویر، به ویژه طبقه بندی نظارت شده بسیار مهم است. در مقایسه با یک مجموعه داده وحشتناک با عدم تعادل داده بر اساس کلاس و کیفیت پایین تصویر و حاشیه نویسی، یک مجموعه داده طبقه بندی به خوبی بهینه شده عملکرد تحسین برانگیزی دارد.
طبقه بندی تصویر با استفاده از Tensorflow و Keras در پایتون
ما استفاده خواهیم کرد CIFAR-10 مجموعه داده (که شامل هواپیما، هواپیما، پرندگان و 7 چیز دیگر است).
1. نصب نیازمندیها
کد زیر تمامی پیش نیازها را نصب می کند.
2. واردات وابستگی
یک فایل train.py در پایتون بسازید. کد زیر وابستگی های Tensorflow و Keras را وارد می کند.
3. مقداردهی اولیه پارامترها
CIFAR-10 فقط شامل 10 دسته تصویر است، از این رو تعداد کلاس ها به سادگی به تعداد دسته هایی که باید طبقه بندی شوند اشاره می کنند.
4. بارگذاری مجموعه داده
این تابع از ماژول Tensorflow Datasets برای بارگیری مجموعه داده استفاده می کند و ما اطلاعات را روی True تنظیم می کنیم تا اطلاعاتی در مورد آن به دست آوریم. میتوانید آن را چاپ کنید تا ببینید چه فیلدها و مقادیر آنها هستند، و ما از اطلاعات برای بازیابی تعداد نمونهها در مجموعههای آموزشی و آزمایشی استفاده میکنیم.
5. ایجاد مدل
اکنون ما سه لایه می سازیم که هر کدام از دو ConvNet با عملکرد حداکثر ادغام و فعال سازی ReLU تشکیل شده و به دنبال آن یک سیستم 1024 واحدی کاملاً متصل است. در مقایسه با ResNet50 یا Xception که مدل های پیشرفته ای هستند، این ممکن است یک مدل نسبتا کوچک باشد.
6. آموزش مدل
من از Tensorboard برای اندازهگیری دقت و تلفات در هر دوره استفاده کردم و پس از وارد کردن دادهها و تولید مدل، یک صفحه نمایش دوستداشتنی برای ما فراهم کردم. کد زیر را اجرا کنید؛ بسته به CPU/GPU شما، آموزش چند دقیقه طول خواهد کشید.
برای استفاده از تنسوربرد کافیست دستور زیر را در ترمینال یا خط فرمان در دایرکتوری فعلی تایپ کنید:
خواهید دید که از دست دادن اعتبار در حال کاهش است و دقت به حدود 81٪ افزایش می یابد. این فوق العاده است!
تست مدل
پس از پایان آموزش، مدل نهایی و وزنهها در پوشه نتایج ذخیره میشوند و به ما این امکان را میدهند که یک بار تمرین کنیم و هر زمان که انتخاب کردیم پیشبینی کنیم. کد را در یک فایل پایتون جدید به نام test.py دنبال کنید.
7. واردات آب و برق برای آزمایش
8. ساخت دایرکتوری پایتون
یک فرهنگ لغت پایتون بسازید که هر عدد صحیح را به برچسب مناسب مجموعه داده ترجمه کند:
9. بارگذاری داده ها و مدل های آزمایشی
کد زیر داده های تست و مدل را بارگذاری می کند.
10. ارزیابی و پیش بینی
کد زیر تصاویر قورباغه را ارزیابی و پیش بینی می کند.
11. نتایج
مدل قورباغه را با دقت 80.62 درصد پیش بینی کرد.
نتیجه
خوب، ما با این درس تمام شدیم. در حالی که 80.62% برای یک CNN کوچک خوب نیست، من قویاً به شما توصیه می کنم که مدل را تغییر دهید یا برای نتایج بهتر به ResNet50، Xception یا سایر مدل های پیشرفته نگاه کنید.
اکنون که اولین شبکه تشخیص تصویر خود را در Keras ساخته اید، باید با مدل آزمایش کنید تا متوجه شوید که چگونه پارامترهای مختلف بر عملکرد آن تأثیر می گذارد.
پاسخ دهید