سلام!
به دوره جدید من 'تشخیص کاراکترهای نوری و شروع سریع تشخیص اشیا با پایتون' خوش آمدید. این سومین دوره از سری کامپیوتر ویژن من است.
تشخیص تصویر، تشخیص اشیا، تشخیص اشیا و همچنین تشخیص کاراکتر نوری از جمله پرکاربردترین برنامه های بینایی کامپیوتر هستند.
با استفاده از این تکنیکها، رایانه میتواند کل تصویر یا چندین شی را در داخل یک تصویر واحد تشخیص دهد و طبقهبندی کند و کلاس اشیاء را با امتیاز درصد دقت پیشبینی کند. با استفاده از OCR، همچنین میتواند متن موجود در تصاویر را به فرمت قابل خواندن ماشینی مانند متن یا سند، شناسایی و تبدیل کند.
تشخیص شی و تشخیص شی به طور گسترده در بسیاری از برنامه های کاربردی ساده و همچنین موارد پیچیده مانند اتومبیل های خودران استفاده می شود.
این دوره یک شروع سریع برای افرادی خواهد بود که می خواهند با استفاده از Python به تشخیص کاراکتر نوری، تشخیص تصویر و تشخیص اشیا بدون نیاز به پرداختن به همه پیچیدگی ها و ریاضیات مرتبط با فرآیند یادگیری عمیق معمولی بپردازند.
بیایید اکنون فهرستی از موضوعات جالبی که در این دوره گنجانده شده است را ببینیم.
در ابتدا یک جلسه تئوری مقدماتی در مورد فناوری تشخیص کاراکتر نوری خواهیم داشت.
پس از آن، با دانلود و نصب بسته anaconda، آماده آماده سازی رایانه خود برای کدنویسی پایتون هستیم و بررسی می کنیم و می بینیم که آیا همه چیز به خوبی نصب شده است یا خیر.
ممکن است اکثر شما از پس زمینه برنامه نویسی مبتنی بر پایتون نباشید. چند جلسه و مثال های بعدی به شما کمک می کند تا مهارت اصلی برنامه نویسی پایتون را برای ادامه جلسات موجود در این دوره کسب کنید. موضوعات شامل تخصیص پایتون، کنترل جریان، توابع و ساختارهای داده است.
سپس وابستگیها و کتابخانههایی را که برای انجام تشخیص کاراکتر نوری نیاز داریم، نصب میکنیم. ما از کتابخانه Tesseract برای انجام OCR استفاده می کنیم. ابتدا کتابخانه و سپس پیوندهای پایتون آن را نصب می کنیم. همچنین OpenCV را که کتابخانه Open Source Computer Vision در پایتون است نصب خواهیم کرد.
ما همچنین کتابخانه Pillow را که کتابخانه تصویر پایتون است نصب خواهیم کرد. سپس مقدمه ای بر مراحل تشخیص کاراکتر نوری خواهیم داشت و در ادامه به کدنویسی و اجرای برنامه OCR می پردازیم. ما از چند نمونه تصویر برای انجام آزمایش تشخیص کاراکتر استفاده خواهیم کرد و نتایج را تأیید خواهیم کرد.
سپس مقدمهای برای شبکههای عصبی کانولوشن خواهیم داشت که از آن برای انجام تشخیص تصویر استفاده میکنیم. در اینجا ما یک تصویر کامل را بر اساس یک شی اصلی در آن طبقه بندی می کنیم.
سپس به نصب کتابخانه Keras که از آن برای انجام تشخیص تصویر استفاده خواهیم کرد، ادامه خواهیم داد. ما از مدل های داخلی و از پیش آموزش دیده ای که در Keras موجود است استفاده خواهیم کرد. کد پایه در پایتون نیز در اسناد Keras ارائه شده است.
در ابتدا از معماری مدل از پیش آموزش دیده محبوب به نام VGGNet استفاده خواهیم کرد. ما یک جلسه مقدماتی در مورد معماری VGGNet خواهیم داشت. سپس با استفاده از مدل VGGNet 16 از پیش آموزش دیده موجود در keras برای انجام تشخیص و طبقه بندی تصویر اقدام می کنیم. ما با چند نمونه نمونه سعی خواهیم کرد پیش بینی ها را بررسی کنیم. سپس به سراغ یک مدل عمیقتر VGGNet 19 میرویم که در keras برای انجام تشخیص و طبقهبندی تصویر وجود دارد.
سپس ما مدل از پیش آموزش دیده ResNet را که با کتابخانه Keras ارائه شده است امتحان خواهیم کرد. ما مدل را در کد قرار می دهیم و سپس با چند نمونه نمونه سعی می کنیم پیش بینی ها را بررسی کنیم.
و پس از آن مدل از پیش آموزش دیده Inception را امتحان خواهیم کرد. ما همچنین مدل را در کد قرار می دهیم و سپس با چند نمونه تصویر سعی می کنیم پیش بینی ها را بررسی کنیم. سپس با مدل از پیش آموزش دیده Xception پیش می رود. در اینجا نیز مدل را در کد قرار می دهیم و سپس با چند نمونه عکس امتحان می کنیم.
و اینها مدلهای از پیش آموزش دیده تشخیص تصویر بودند که فقط می توانند یک تصویر کامل را بر اساس شی اصلی موجود در آن برچسب گذاری و طبقه بندی کنند. اکنون ما به تشخیص شی ادامه می دهیم که در آن می توانیم چندین شی را در یک تصویر شناسایی و برچسب گذاری کنیم.
در ابتدا مقدمه ای بر MobileNet-SSD Pre-trained Model خواهیم داشت، که یک آشکارساز تک شات است که قادر به تشخیص چندین شی در یک صحنه است. همچنین در مورد مجموعه داده ای که برای آموزش این مدل استفاده می شود، بحث خواهیم کرد.
بعداً ما مدل از پیش آموزشدیده MobileNet-SSD را در کد خود پیادهسازی خواهیم کرد و پیشبینیها و مختصات جعبه مرزی را برای هر شی شناسایی شده دریافت خواهیم کرد. کادر محدود کننده را در اطراف اشیاء در تصویر می کشیم و برچسب را همراه با مقدار اطمینان می نویسیم.
سپس تشخیص اشیا را از یک ویدیوی زنده ادامه خواهیم داد. ما ویدیوی زنده بیدرنگ را از وبکم رایانه پخش خواهیم کرد و سعی خواهیم کرد اشیا را از آن تشخیص دهیم. ما مستطیل اطراف هر شی شناسایی شده در ویدیوی زنده را همراه با برچسب و اطمینان ترسیم می کنیم.
در جلسه بعدی، تشخیص اشیا را از یک ویدیوی از پیش ذخیره شده ادامه خواهیم داد. ما ویدیوی ذخیره شده را از پوشه خود پخش می کنیم و سعی می کنیم اشیا را از آن تشخیص دهیم. ما مستطیل اطراف هر شی شناسایی شده را همراه با برچسب و اطمینان ترسیم می کنیم.
بعداً ما با مدل از پیش آموزش دیده Mask-RCNN پیش خواهیم رفت. در مدل قبلی، ما فقط میتوانستیم یک جعبه مرزی در اطراف جسم بگیریم، اما در Mask-RCNN، میتوانیم هم مختصات جعبه و هم ماسک را بر روی شکل دقیق شی شناسایی شده بدست آوریم. ما مقدمه ای در مورد این مدل و جزئیات آن خواهیم داشت.
بعداً مدل از پیش آموزشدیده Mask-RCNN را در کد خود پیادهسازی میکنیم و به عنوان اولین قدم پیشبینیها و مختصات جعبه مرزی را برای هر شی شناسایی شده دریافت میکنیم. کادر محدود کننده را در اطراف اشیاء در تصویر می کشیم و برچسب را همراه با مقدار اطمینان می نویسیم.
بعداً ماسک را برای هر شیء پیشبینیشده برمیگردانیم. ما آن دادهها را پردازش میکنیم و از آنها برای کشیدن ماسکهای چند رنگ شفاف روی هر شی شناسایی شده استفاده میکنیم و برچسب را همراه با مقدار اطمینان مینویسیم.
سپس با استفاده از Mask-RCNN به شناسایی شی از یک ویدیوی زنده ادامه خواهیم داد. ما ویدیوی زنده بیدرنگ را از وبکم رایانه پخش خواهیم کرد و سعی خواهیم کرد اشیا را از آن تشخیص دهیم. ما ماسک را روی محیط هر شی شناسایی شده در ویدیوی زنده به همراه برچسب و اطمینان ترسیم می کنیم.
همانطور که برای مدل قبلی خود انجام دادیم، با استفاده از Mask-RCNN به تشخیص شی از یک ویدیوی از پیش ذخیره شده ادامه خواهیم داد. ما ویدیوی ذخیره شده را از پوشه خود پخش می کنیم و سعی می کنیم اشیا را از آن تشخیص دهیم. ما ماسک های رنگی برای شی شناسایی شده همراه با برچسب و اطمینان ترسیم می کنیم.
Mask-RCNN با فهرست کلاسهای گسترده بسیار دقیق است، اما در پردازش تصاویر با استفاده از رایانههای مبتنی بر CPU کم توان بسیار کند خواهد بود. MobileNet-SSD سریع است اما دقت کمتری دارد و از نظر تعداد کلاس کم است. ما به ترکیبی عالی از سرعت و دقت نیاز داریم که ما را با استفاده از مدل از پیش آموزش دیده YOLO به تشخیص و تشخیص اشیاء ببرد. در جلسه بعدی یک مرور کلی در مورد مدل yolo خواهیم داشت و سپس تشخیص شی yolo را از یک تصویر واحد اجرا خواهیم کرد.
و با استفاده از آن به عنوان پایه، مدل yolo را برای تشخیص اشیا از یک ویدیوی وبکم بلادرنگ امتحان میکنیم و عملکرد را بررسی میکنیم. بعداً از آن برای تشخیص شیء از فایل ویدیویی از پیش ذخیره شده استفاده خواهیم کرد.
برای بهبود بیشتر سرعت فریمهای پردازش شده، از مدلی به نام Tiny YOLO استفاده خواهیم کرد که یک نسخه سبک وزن از مدل واقعی yolo است. ما ابتدا از yolo کوچک برای ویدیوی از پیش ذخیره شده استفاده می کنیم و دقت و سرعت را تجزیه و تحلیل می کنیم و سپس همین کار را برای یک ویدیوی بلادرنگ از وب کم امتحان می کنیم و تفاوت عملکرد را در مقایسه با یولو واقعی مشاهده می کنیم.
این همه در مورد موضوعاتی است که در حال حاضر در این دوره سریع گنجانده شده است. کد، تصاویر و کتابخانه های مورد استفاده در این دوره در یک پوشه آپلود و به اشتراک گذاشته شده است. لینک دانلود آنها را در آخرین جلسه یا قسمت منابع این دوره قرار خواهم داد. شما آزاد هستید که از کد در پروژه های خود استفاده کنید بدون اینکه سوالی پرسیده شود.
همچنین پس از اتمام این دوره، گواهی پایان دوره به شما ارائه می شود که ارزش افزوده ای به مجموعه شما خواهد داشت.
بنابراین فعلاً تمام است، به زودی شما را در کلاس می بینیم. یادگیری مبارک و اوقات خوبی داشته باشید.
استاد و برنامه نویس ارشد مهندسی کامپیوتر در دبی من یک پیشگام ، با استعداد و امنیت گرا Android/iOS Mobile و PHP/Python Web Developer Application Developer با بیش از هشت سال تجربه کلی فناوری اطلاعات که شامل طراحی ، پیاده سازی ، یکپارچه سازی ، آزمایش و حمایت از تأثیر است برنامه های کامل وب و تلفن همراه. من دارنده مدرک کارشناسی ارشد کارشناسی ارشد در رشته علوم کامپیوتر و مهندسی هستم. تجربه من با برنامه نویسی PHP/Python یک مزیت اضافی برای برنامه های سرویس گیرنده Android و iOS مبتنی بر سرور است. من در حال حاضر تمام وقت به عنوان یک معمار ارشد راه حل مشغول به کار هستم که پروژه های مشتری خود را از ابتدا تا انتها مدیریت می کنم تا از طراحی با کیفیت ، ابتکاری و کاربردی اطمینان حاصل کنم.
نمایش نظرات