کتاب Practical Machine Learning for Computer Vision

0

معرفی کامل کتاب Practical Machine Learning for Computer Vision

این مقاله به معرفی و نقد کتاب Practical Machine Learning for Computer Vision: End-to-End Machine Learning for Images می‌پردازد. این کتاب با هدف ارائه یک راهنمای کاملاً عملی، به خوانندگان کمک می‌کند تا از داده‌های خام تصویری به مدلی آماده برای استقرار در محیط‌های تولیدی برسند. کتاب توسط سه مهندس گوگل، Valliappa (Lak) Lakshmanan، Martin Görner و Ryan Gillard، نوشته شده و توسط انتشارات O’Reilly در سال ۲۰۲۱ منتشر شده است. این اثر ۴۸۰ صفحه‌ای، حاصل تجربه عملی نویسندگان در پروژه‌های صنعتی است و لحنی اجرایی و قابل پیاده‌سازی دارد.

این کتاب یک منبع جامع برای حل مسائل بینایی کامپیوتر مانند کلاسه‌بندی تصاویر، تشخیص اشیا، خودرمزگذارها (Autoencoders)، تولید تصویر، شمارش و تولید کپشن است. نویسندگان تأکید می‌کنند که یادگیری ماشین در بینایی کامپیوتر تنها به طراحی شبکه عصبی محدود نمی‌شود، بلکه شامل یک خط لوله (Pipeline) کامل است که مراحل آموزش، ارزیابی مستمر، استقرار روی وب یا دستگاه‌های لبه (Edge) و قابلیت تبیین‌پذیری (Explainability) را نیز در بر می‌گیرد.


فهرست کتاب Practical Machine Learning for Computer Vision

چرا کتاب Practical Machine Learning for Computer Vision مهم است؟

در دنیای امروز، یادگیری ماشین بر روی تصاویر انقلابی در حوزه‌هایی مانند سلامت، تولید و خرده‌فروشی ایجاد کرده است. بسیاری از چالش‌های پیچیده‌ای که پیش‌تر غیرقابل حل به نظر می‌رسیدند، اکنون با آموزش مدل‌های هوش مصنوعی برای شناسایی و تحلیل اشیا در تصاویر، به سادگی پاسخ داده می‌شوند. نویسندگان کتاب با درک این تحول، کلاسه‌بندی تصویر را نقطه شروع و به نوعی Hello World یا «سلام دنیا»ی یادگیری عمیق می‌دانند. از این رو، این اثر نه‌تنها یک راهنمای عملی برای بینایی کامپیوتر است، بلکه به عنوان یک مقدمه جامع بر یادگیری عمیق، دروازه‌ای به سوی سایر حوزه‌ها مانند پردازش زبان طبیعی نیز می‌گشاید.

این کتاب فراتر از آموزش‌های تئوری، به خوانندگان کمک می‌کند تا با استفاده از TensorFlow و Keras به طراحی معماری‌ها و پیاده‌سازی مدل‌ها بپردازند. همچنین، نویسندگان وعده داده‌اند که تکنیک‌هایی برای بهبود دقت و توضیح‌پذیری مدل‌ها ارائه دهند. در نهایت، هدف اصلی کتاب این است که به شما نشان دهد چگونه یک خط لوله (pipeline) کامل و سرتاسری برای درک تصاویر طراحی، پیاده‌سازی و بهینه‌سازی کنید. این رویکرد عملی و جامع، کتاب را به یک منبع ارزشمند برای علاقه‌مندان به این حوزه تبدیل می‌کند.


مخاطبان و پیش‌نیازهای کتاب Practical Machine Learning for Computer Vision

کتاب «Practical Machine Learning for Computer Vision» به طور مستقیم برای توسعه‌دهندگانی نوشته شده است که قصد دارند مسائل رایج بینایی کامپیوتر را با استفاده از TensorFlow و Keras حل کنند. کدهای مورد نیاز برای تمرین در GitHub در دسترس هستند و به راحتی می‌توانید اغلب بخش‌های آن را در محیط رایگان Google Colab اجرا کنید. برای اجرای سریع‌تر و بهره‌مندی از منابع قدرتمندتر، استفاده از Vertex Notebooks توصیه شده است.

از آنجا که مدل‌ها و دیتاست‌ها در فصل‌های ۳، ۴، ۱۱ و ۱۲ پیچیده‌تر هستند، بهره‌گیری از TPUهای Google Cloud می‌تواند به بهبود عملکرد کمک شایانی کند. کدهای کتاب با APIهای متن‌باز نوشته شده‌اند، بنابراین باید در هر محیط Jupyter که از TensorFlow پشتیبانی می‌کند (مانند لپ‌تاپ شخصی، AWS SageMaker یا Azure ML) قابل اجرا باشند. با این حال، نویسندگان تأکید می‌کنند که این کدها به طور رسمی در تمام این محیط‌ها آزمایش نشده‌اند و از جامعه کاربری برای ارسال Pull Request جهت اعمال هرگونه تغییر لازم، استقبال می‌کنند.

نکته قابل توجه این است که کدهای کتاب تحت مجوز متن‌باز Apache منتشر شده‌اند؛ این موضوع به شما امکان می‌دهد تا از آن‌ها نه تنها به عنوان ابزار آموزشی، بلکه به عنوان پایه‌ای برای ساخت مدل‌های کاربردی و تولیدی نیز بهره ببرید.

نکته کاربردی نسخه‌ها: نسخه چاپی کتاب سیاه‌وسفید است و اگر به تصاویر رنگی نیاز دارید، نسخه Kindle رنگی ارائه شده است.


چه خواهید آموخت؟ (مطابق با معرفی رسمی کتاب)

  • طراحی معماری ML برای تسک‌های بینایی کامپیوتر
  • انتخاب مدل مناسب برای مسئله‌تان از جمله ResNet، SqueezeNet یا EfficientNet
  • ساخت یک پایپلاین کامل و سراسری برای آموزش، ارزیابی، استقرار و توضیح مدل
  • پیش‌پردازش و افزایش داده (Data Augmentation) برای بهبود «قابلیت یادگیری» تصاویر
  • گنجاندن تبیین‌پذیری و بهترین‌رویّه‌های AI مسئولانه
  • استقرار مدل‌های تصویری به‌عنوان وب‌سرویس یا قرارگیری روی دستگاه‌های لبه
  • پایش و مدیریت مداوم مدل‌ها پس از استقرار

این فهرست نشان می‌دهد کتاب صرفاً به بخش «تحقیق» بسنده نمی‌کند، بلکه به «مهندسی تولید» نگاهی عمیق و اساسی دارد؛ از انتخاب معماری گرفته تا پایش چرخه عمر مدل.


ساختار و سرفصل‌ کتاب Practical Machine Learning for Computer Vision

فهرست کتاب تصویری کامل از مسیر یادگیری ارائه می‌دهد. عناوین فصل‌ها به‌صورت زیر است:

  1. Machine Learning for Computer Vision
  2. ML Models for Vision
  3. Image Vision
  4. Object Detection and Image Segmentation
  5. Creating Vision Datasets
  6. Preprocessing
  7. Training Pipeline
  8. Model Quality and Continuous Evaluation
  9. Model Predictions
  10. Trends in Production ML
  11. Advanced Vision Problems
  12. Image and Text Generation
    (به‌همراه پیشگفتار، پس‌گفتار و نمایه)

بر پایه‌ی همین عناوین می‌توان مسیر یادگیری کتاب را چنین فهمید: از معرفیِ کاربرد یادگیری ماشین در Vision و مرور معماری‌های رایج شروع می‌شود، سپس به تشخیص شیء و قطعه‌بندی می‌رسد، مرحله‌ی ساخت دیتاست و پیش‌پردازش را جداگانه می‌کاود، پایپلاین آموزش و سپس ارزیابی پیوسته کیفیت مدل را طرح می‌کند، خروجی گرفتن و پیش‌بینی را سامان می‌دهد، به روندهای ML تولیدی می‌پردازد و در انتها مسائل پیشرفته و تولید تصویر و متن را پوشش می‌دهد.

کتاب طبق معرفی رسمی، مسائل متنوعی مانند کلاسه‌بندی، تشخیص شیء، خودرمزگذارها، تولید تصویر، شمارش و کپشن‌گذاری را هدف گرفته است. تأکید بر «پیوستگی» میان این فصل‌ها (از داده تا استقرار) نقطه تمایز اصلی اثر است.


فصل اول کتاب Practical Machine Learning for Computer Vision

فصل اول کتاب: یادگیری ماشین برای بینایی کامپیوتر

نویسندگان کتاب در آغاز فصل نخست، موضوع را با یک تمثیل ساده و در عین حال عمیق مطرح می‌کنند: تصور کنید در باغی نشسته‌اید و محیط پیرامون خود را مشاهده می‌کنید. در این لحظه، دو سیستم در بدن شما به طور هم‌زمان در حال فعالیت هستند. چشم‌ها به‌عنوان حسگر عمل کرده و بازنمایی‌های اولیه‌ای از صحنه می‌سازند، در حالی که سیستم شناختی مغز مسئولیت تفسیر این بازنمایی‌ها را بر عهده دارد. به این ترتیب، شما نه تنها اشیایی مانند پرنده یا کرم را می‌بینید، بلکه از طریق پردازش ذهنی درمی‌یابید که پرنده مسیر را طی کرده و اکنون در حال خوردن کرم است.

این مثال اولیه، نقطه عزیمت بحثی گسترده‌تر است: بینایی کامپیوتر. همان‌گونه که در انسان، فرآیند دیدن ترکیبی از حسگری (sensory) و ادراک شناختی (cognitive) است، در حوزه ماشین نیز این دو مؤلفه بازآفرینی می‌شوند. بخش نخست، معادل طراحی و استقرار حسگرهایی مانند دوربین‌هاست که جنبه سخت‌افزاری موضوع را پوشش می‌دهد. بخش دوم اما به قلب مدرن بینایی ماشین مربوط می‌شود: استفاده از روش‌های یادگیری ماشین برای استخراج اطلاعات و معنا از داده‌های تصویری.

نویسندگان تأکید می‌کنند که آنچه این کتاب به آن می‌پردازد، همین وجه دوم است؛ یعنی الگوریتم‌ها و مدل‌هایی که می‌کوشند توانایی شناختی انسان در درک تصاویر را بازسازی کنند. برای نمونه، وقتی انسان به تصویری از یک گل مروارید (daisy) نگاه می‌کند، سیستم شناختی او بلافاصله قادر است آن را به‌عنوان یک «daisy» تشخیص دهد. در قیاس، مدل‌های یادگیری ماشین برای طبقه‌بندی تصاویر تلاش می‌کنند همین توانایی را تقلید کنند؛ آن‌ها از مجموعه‌ای از تصاویر آغاز کرده و با یادگیری الگوها، به تدریج قدرت شناسایی و دسته‌بندی اشیا را به دست می‌آورند.

به این ترتیب، فصل اول به‌مثابه یک دروازه مفهومی عمل می‌کند: معرفی رابطه میان بینایی انسان و بینایی ماشین، و نشان دادن این که چگونه ابزارهای یادگیری ماشین امروز امکان تقلید از فرآیندهای شناختی ما را فراهم می‌آورند. این مقدمه، مسیر کتاب را روشن می‌سازد: گذار از مشاهده ساده تصاویر به سمت تحلیل و درک ماشینی آن‌ها.

فصل دوم کتاب Practical Machine Learning for Computer Vision

فصل دوم کتاب: مدل‌های یادگیری ماشین برای بینایی

فصل دوم کتاب نقطه‌ای کلیدی در مسیر یادگیری خواننده است؛ جایی که مباحث نظری فصل نخست به عرصه مدل‌سازی عملی وارد می‌شوند. هدف اصلی این فصل نشان دادن این است که چگونه می‌توان تصاویر را به‌گونه‌ای بازنمایی کرد که برای مدل‌های یادگیری ماشین قابل استفاده باشند، و سپس با این بازنمایی‌ها مدل‌های پایه‌ای برای طبقه‌بندی تصاویر ساخت.

نویسندگان به‌روشنی بیان می‌کنند که عملکرد مدل‌های ساده، مانند مدل‌های خطی یا حتی شبکه‌های عصبی کاملاً متصل (fully connected neural networks)، بر روی تصاویر چندان مطلوب نیست. این موضوع برای خواننده آموزنده است، زیرا نشان می‌دهد که داده‌های تصویری به دلیل ماهیت پیچیده و چندبعدی خود، به رویکردهای ویژه‌تری نسبت به داده‌های جدولی یا متنی نیاز دارند. اما در همین فرآیند، مخاطب با نحوه استفاده از Keras API آشنا می‌شود؛ ابزاری که نه تنها پیاده‌سازی این مدل‌ها را تسهیل می‌کند، بلکه درک ساختارهای اولیه یادگیری ماشین را نیز برای خواننده عملی می‌سازد.

پایگاه داده گل‌ها: زمینه‌ای برای تمرین عملی

برای اینکه مباحث کتاب ملموس و کاربردی باشد، نویسندگان یک مسأله واقعی اما ساده را انتخاب کرده‌اند: تشخیص نوع گل‌ها از روی تصاویر. آن‌ها یک مجموعه‌داده شامل نزدیک به چهار هزار عکس از گل‌ها را معرفی می‌کنند. این مجموعه‌داده که به نام ۵-flowers شناخته می‌شود، شامل تصاویر پنج نوع گل است:

  • مروارید (daisy)
  • قاصدک (dandelion)
  • رز (rose)
  • آفتابگردان (sunflower)
  • لاله (tulip)

هر تصویر در این پایگاه داده از پیش برچسب‌گذاری شده و نوع گل مشخص است. بنابراین، مسأله اصلی به این صورت تعریف می‌شود: ایجاد مدلی که با دریافت یک تصویر، نوع گل موجود در آن را پیش‌بینی کند. این فرایند در ادبیات علمی با عنوان machine perception یا «ادراک ماشینی» شناخته می‌شود؛ یعنی توانایی یک سیستم هوشمند در درک و تفسیر محتوای یک تصویر.

اهمیت این فصل

نکته کلیدی در این فصل، یادگیری از مسیر خطاها و محدودیت‌هاست. وقتی خواننده متوجه می‌شود که مدل‌های خطی یا fully connected برای داده‌های تصویری کافی نیستند، زمینه‌ای برای درک ضرورت معماری‌های پیچیده‌تر مانند شبکه‌های عصبی کانولوشنی (CNNs) فراهم می‌شود که در فصل‌های بعدی معرفی خواهند شد.

به بیان دیگر، این فصل نه‌تنها به خواننده ابزار و مهارت اولیه کار با داده‌های تصویری و Keras را آموزش می‌دهد، بلکه او را آماده می‌سازد تا با انگیزه بیشتری به استقبال راهکارهای تخصصی‌تر در بینایی کامپیوتر برود.

فصل سوم کتاب Practical Machine Learning for Computer Vision

فصل سوم کتاب: مدل‌های بینایی تصویر

فصل سوم نقطه عطفی در کتاب است؛ زیرا نویسندگان در این بخش وارد بحث اصلی و بنیادین بینایی کامپیوتر می‌شوند: چگونگی بهره‌گیری از ساختار ذاتی تصاویر در طراحی مدل‌ها.

در فصل دوم دیدیم که وقتی تصاویر تنها به‌صورت مجموعه‌ای از پیکسل‌های مستقل در نظر گرفته شوند، شبکه‌های عصبی کاملاً متصل (fully connected layers) عملکرد مناسبی ندارند. دلیل آن روشن است: چنین معماری‌هایی هیچ توجهی به ماهیت دوبعدی و سلسله‌مراتبی تصاویر ندارند. در حالی که در عمل، پیکسل‌های مجاور با یکدیگر ترکیب می‌شوند تا الگوهایی همچون خطوط، منحنی‌ها یا بافت‌ها را شکل دهند؛ سپس همین الگوها در سطوح بالاتر به اجزای قابل تشخیص یک شیء—مانند ساقه و گلبرگ‌های یک گل—تبدیل می‌شوند.

به بیان ساده، یک تصویر صرفاً مجموعه‌ای از نقاط رنگی مستقل نیست، بلکه ساختاری تو در تو و معنادار دارد. فصل سوم دقیقاً بر همین نکته تمرکز دارد و به معرفی روش‌ها و معماری‌هایی می‌پردازد که می‌توانند از این ویژگی‌ها استفاده کنند.

گذر از مدل‌های پایه به معماری‌های تخصصی‌تر

نویسندگان با این پرسش کلیدی پیش می‌روند: اگر fully connected layers ضعف‌هایی جدی در درک تصاویر دارند، چه راهکاری وجود دارد؟ پاسخ در معماری‌هایی نهفته است که بتوانند ویژگی‌های مکانی (spatial features) را درک کنند و از همبستگی میان پیکسل‌های همجوار بهره ببرند.

این بخش کتاب به‌عنوان پلی عمل می‌کند: از مدل‌های ساده و ناکارآمد فصل قبل، به سمت مدل‌های تخصصی‌تر و عمیق‌تر در بینایی ماشین.

embeddings از پیش آموزش‌دیده (Pretrained Embeddings)

یکی از مفاهیم مهمی که در همین فصل مطرح می‌شود، embeddingهای از پیش آموزش‌دیده است. نویسندگان نشان می‌دهند که شبکه‌ای با لایه‌های پنهان محدود (برای مثال ۶۴ نود در لایه اول و ۱۶ نود در لایه دوم) چگونه اطلاعات را به صورت فشرده بازنمایی می‌کند. این بازنمایی‌ها یا همان embeddings می‌توانند به‌عنوان پایه‌ای قدرتمند برای استخراج ویژگی‌ها عمل کنند. در واقع، به‌جای آنکه هر بار مدل را از ابتدا آموزش دهیم، می‌توانیم از بازنمایی‌های یادگرفته‌شده در مدل‌های بزرگ‌تر و پیش‌تر آموزش‌دیده استفاده کنیم.

این مفهوم اهمیت فراوانی دارد، زیرا زمینه را برای معرفی شبکه‌های عصبی کانولوشنی (CNNs) و همچنین تکنیک‌های انتقال یادگیری (transfer learning) در فصل‌های بعدی فراهم می‌کند.

اهمیت فصل سوم

این فصل را می‌توان نقطه چرخش از دیدگاه خام به دیدگاه ساختاریافته دانست. مخاطب درمی‌یابد که برای موفقیت در بینایی کامپیوتر، باید از معماری‌هایی بهره برد که ماهیت سلسله‌مراتبی و محلی تصاویر را بازتاب دهند. این شناخت، زیربنای تمام پیشرفت‌های بعدی در کتاب است؛ از مدل‌های CNN گرفته تا مدل‌های عمیق‌تر و پیچیده‌تر برای درک تصاویر.

فصل چهارم کتاب Practical Machine Learning for Computer Vision

فصل چهارم کتاب: شناسایی اشیاء و تقسیم‌بندی تصاویر

تا اینجای کتاب، تمرکز اصلی بر روی یک مسأله واحد بود: طبقه‌بندی کل تصویر. مدل‌ها یا شبکه‌هایی که بررسی شد، صرفاً قادر بودند یک برچسب کلی به تصویر اختصاص دهند—مثلاً بگویند «این یک گل آفتابگردان است.» اما جهان واقعی بسیار پیچیده‌تر است؛ اغلب در یک تصویر چندین شیء وجود دارد و جایگاه دقیق هرکدام از اهمیت بالایی برخوردار است. فصل چهارم نقطه‌ای است که کتاب از طبقه‌بندی ساده تصاویر فراتر می‌رود و به سه مسأله بنیادی و پیشرفته‌تر در بینایی کامپیوتر می‌پردازد:

  1. شناسایی اشیاء (Object Detection)
    در این مسأله، هدف نه‌تنها تشخیص نوع شیء در تصویر، بلکه تعیین مکان آن است. مدل باید بتواند مثلاً تشخیص دهد «یک پروانه در این ناحیه تصویر وجود دارد» و آن را با جعبه‌های محدودکننده (bounding boxes) مشخص کند.
  2. تقسیم‌بندی نمونه‌ها (Instance Segmentation)
    گامی فراتر از شناسایی اشیاء است. اینجا مدل باید مرز دقیق هر شیء را در تصویر مشخص کند، نه فقط مکان تقریبی آن. به‌عنوان مثال، در تصویر چند گل کنار هم، هر گل باید به‌طور جداگانه تشخیص داده و بخش‌بندی شود.
  3. تقسیم‌بندی معنایی صحنه (Semantic Segmentation)
    در این سطح، کل تصویر به نواحی معنایی تقسیم می‌شود. یعنی مدل هر پیکسل را بر اساس دسته‌بندی معنایی‌اش مشخص می‌کند (برای مثال، پیکسل‌های آسمان، جاده، درخت یا خودرو). این نوع تحلیل به ماشین‌ها امکان می‌دهد تصویر را مانند یک «نقشه معنایی» درک کنند.

گذر از طبقه‌بندی به درک صحنه

این فصل به‌خوبی تفاوت میان «شناختن تصویر به‌عنوان یک کل» و «درک جزئیات تصویر» را برجسته می‌کند. در حالی که شبکه‌های معرفی‌شده در فصل سوم تنها می‌توانستند بگویند چه چیزی در تصویر وجود دارد، در اینجا مدل‌ها باید پاسخ دهند:

  • کجا دقیقاً آن شیء قرار دارد؟
  • چند نمونه از آن شیء موجود است؟
  • مرز دقیق هر شیء در تصویر کجاست؟
  • هر بخش از تصویر به چه مفهومی تعلق دارد؟

اهمیت فصل چهارم

اهمیت این فصل در آن است که خواننده را به سوی کاربردهای عملی‌تر و پیچیده‌تر بینایی ماشین هدایت می‌کند. از خودروهای خودران گرفته تا سیستم‌های پزشکی و واقعیت افزوده، همگی به توانایی مدل‌ها در شناسایی اشیاء و تقسیم‌بندی دقیق تصاویر وابسته‌اند.

از سوی دیگر، فصل چهارم سکوی پرتابی برای مباحث پیشرفته‌تر کتاب است. نویسندگان اشاره می‌کنند که موضوعاتی مانند تولید تصویر، شمارش، تخمین ژست بدن (pose estimation)، و مدل‌های مولد در فصل‌های ۱۱ و ۱۲ پوشش داده خواهند شد. به این ترتیب، خواننده درمی‌یابد که مسیر یادگیری او از طبقه‌بندی ساده تصاویر به سوی درک کامل و چندلایه از صحنه‌ها و حتی خلق محتوای بصری حرکت می‌کند.

فصل پنجم کتاب: ایجاد دیتاست‌های بینایی ماشین

فصل پنجم یکی از بخش‌های کلیدی کتاب است، زیرا بدون داده‌های مناسب هیچ‌یک از مدل‌های یادگیری ماشین معرفی‌شده در فصل‌های پیشین کارایی واقعی نخواهند داشت. اگرچه الگوریتم‌ها و معماری‌ها نقش مهمی در بینایی کامپیوتر ایفا می‌کنند، اما آنچه که در نهایت کیفیت خروجی را تعیین می‌کند، تصاویر و برچسب‌های آموزشی است که مدل‌ها با آن‌ها تغذیه می‌شوند.

اهمیت داده در یادگیری ماشین

در ابتدای فصل، نویسندگان تأکید می‌کنند که بیشتر موارد استفاده بررسی‌شده تاکنون بر پایه‌ی یادگیری نظارتی (supervised learning) بوده است. در چنین رویکردی، علاوه بر تصاویر، باید برچسب‌های درست نیز در دسترس باشند تا مدل بتواند بیاموزد چه چیزی را باید در تصویر شناسایی کند. البته در مدل‌های بدون‌نظارت (unsupervised) یا خودنظارتی (self-supervised) مانند GAN یا خودرمزگذارها (autoencoders)، وجود برچسب الزامی نیست. همین تمایز ساده نشان می‌دهد که نحوه آماده‌سازی دیتاست به نوع مدل و هدف پروژه بستگی دارد.

جمع‌آوری تصاویر

اولین گام، همان‌طور که نویسندگان شرح می‌دهند، جمع‌آوری تصاویر است. این کار می‌تواند شکل‌های بسیار متفاوتی داشته باشد:

  • نصب دوربین در یک تقاطع برای ثبت تصاویر ترافیک،
  • اتصال به کاتالوگ دیجیتال برای دریافت تصاویر قطعات خودرو،
  • خرید آرشیوی از تصاویر ماهواره‌ای.

جمع‌آوری داده ممکن است یک فعالیت لجستیکی باشد (مانند نصب دوربین)، یا فعالیتی فنی (نوشتن کد برای اتصال به پایگاه داده)، و حتی یک فعالیت تجاری (خرید دیتاست آماده).

متادیتا به‌عنوان ورودی

یکی از نکات برجسته‌ی این فصل، تأکید بر اهمیت متادیتا است. کیفیت و کارایی یک پروژه‌ی یادگیری ماشین تنها به تصویر وابسته نیست، بلکه شرایط و زمینه‌ای که تصویر در آن گرفته شده نیز اهمیت دارد. به‌عنوان مثال، دانستن اینکه یک تصویر ترافیکی در شرایط آب‌وهوایی بارانی یا آفتابی ثبت شده، می‌تواند برای آموزش مدل ارزشمند باشد. بنابراین دیتاست خوب تنها مجموعه‌ای از پیکسل‌ها نیست، بلکه ترکیبی از تصاویر + اطلاعات زمینه‌ای است.

اهمیت فصل پنجم

این فصل نقطه‌ی تمرکز را از معماری‌ها و مدل‌ها به سمت پایه‌ی حیاتی همه پروژه‌ها یعنی داده می‌برد. خواننده درمی‌یابد که حتی پیشرفته‌ترین شبکه‌ها نیز در صورتی که دیتاست غیردقیق یا ناکافی باشد، عملکرد ضعیفی خواهند داشت. همچنین، فصل پنجم مقدمه‌ای است برای مباحثی مانند پاک‌سازی داده، برچسب‌گذاری و آماده‌سازی پیشرفته‌تر دیتاست‌ها که در مراحل بعدی توسعه پروژه‌های بینایی ماشین اهمیت ویژه‌ای پیدا می‌کنند.

فصل چهارم کتاب Practical Machine Learning for Computer Vision

فصل ششم کتاب: پیش‌پردازش (Preprocessing)

در فصل پنجم دیدیم که اولین گام در یک پروژه‌ی بینایی کامپیوتر، ایجاد دیتاست آموزشی است. اما داشتن تصاویر خام و برچسب‌گذاری‌شده کافی نیست. پیش از آنکه داده‌ها وارد مدل شوند، باید فرایند مهمی به نام پیش‌پردازش روی آن‌ها انجام گیرد. فصل ششم دقیقاً بر همین موضوع تمرکز دارد: اینکه چرا و چگونه تصاویر خام باید به شکلی استاندارد و قابل‌استفاده برای مدل‌های یادگیری ماشین تبدیل شوند.


چرا پیش‌پردازش ضروری است؟

نویسندگان سه دلیل اصلی برای پیش‌پردازش تصاویر مطرح می‌کنند:

  1. تبدیل شکل (Shape Transformation)
    تصاویر خام معمولاً ابعاد و اندازه‌های متفاوتی دارند. در حالی که مدل‌های یادگیری ماشین به ورودی‌های با ابعاد ثابت نیاز دارند. بنابراین باید همه‌ی تصاویر به یک اندازه‌ی استاندارد تغییر داده شوند (مثلاً ۲۵۶×۲۵۶ پیکسل). این کار باعث می‌شود مدل بتواند بدون خطا داده‌ها را پردازش کند.
  2. کیفیت داده (Data Quality)
    تصاویر ممکن است نویز داشته باشند، تار باشند یا شرایط نوری نامناسبی داشته باشند. پیش‌پردازش می‌تواند شامل حذف نویز، تنظیم روشنایی یا حتی اصلاح رنگ‌ها باشد تا کیفیت داده‌ی ورودی افزایش یابد.
  3. کیفیت مدل (Model Quality)
    پیش‌پردازش مناسب به بهبود عملکرد مدل کمک می‌کند. نرمال‌سازی مقادیر پیکسل‌ها یا افزایش داده‌ها (data augmentation) می‌تواند به مدل کمک کند تا بهتر تعمیم دهد و در برابر داده‌های جدید مقاوم‌تر باشد.

اطمینان از بازتولید (Reproducibility)

یکی از نکات کلیدی در این فصل، توجه به بازتولید‌پذیری در محیط تولید است. در پروژه‌های واقعی، پیش‌پردازش باید نه تنها هنگام آموزش، بلکه در زمان پیش‌بینی (inference) هم دقیقاً به همان شکل اعمال شود. اگر مدل در هنگام آموزش تصاویر را نرمال‌سازی کرده باشد، اما در زمان پیش‌بینی این کار انجام نشود، خروجی‌ها غیرقابل اعتماد خواهند بود.


پیاده‌سازی با Keras/TensorFlow

فصل ششم نشان می‌دهد که چطور می‌توان طیف وسیعی از عملیات پیش‌پردازش را با استفاده از Keras و TensorFlow پیاده‌سازی کرد. این شامل مراحل زیر است:

  • تغییر اندازه (resize) و برش (crop) تصاویر،
  • نرمال‌سازی مقادیر پیکسل‌ها،
  • افزایش داده‌ها مانند چرخش، برگرداندن یا تغییر مقیاس تصاویر،
  • مدیریت کانال‌های رنگی و تبدیل فرمت داده‌ها برای سازگاری با مدل.

اهمیت فصل ششم

اهمیت این فصل در آن است که به خواننده نشان می‌دهد پیش‌پردازش نه یک مرحله‌ی جانبی، بلکه بخشی حیاتی از زنجیره‌ی پردازش داده‌هاست. بدون پیش‌پردازش مناسب، حتی بهترین معماری‌های شبکه‌های عصبی هم نمی‌توانند عملکرد مطلوبی داشته باشند. همچنین، فصل ششم خواننده را آماده می‌کند تا در فصل‌های بعدی، جایی که مدل‌های پیچیده‌تر و دیتاست‌های واقعی‌تر به کار گرفته می‌شوند، بتواند داده‌ها را به‌طور درست مدیریت و آماده‌سازی کند.

فصل هفتم کتاب: خط لوله‌ی آموزش (Training Pipeline)

پس از ایجاد دیتاست (فصل ۵) و انجام پیش‌پردازش (فصل ۶)، نوبت به مرحله‌ای می‌رسد که عملاً قلب فرایند یادگیری ماشین محسوب می‌شود: آموزش مدل. در این مرحله، داده‌های آماده‌شده وارد مدل می‌شوند و وزن‌های شبکه به‌تدریج با استفاده از الگوریتم‌های بهینه‌سازی تنظیم می‌گردند. فصل هفتم به بررسی چگونگی ساخت یک خط لوله‌ی آموزشی کارآمد، مقاوم و بازتولیدپذیر می‌پردازد.


آموزش مدل و چرخه‌ی داده

همان‌طور که نویسندگان توضیح می‌دهند، آموزش یک مدل یادگیری ماشین شامل سه گام کلیدی است:

  1. خواندن داده‌های پیش‌پردازش‌شده و انتقال آن‌ها به مدل،
  2. به‌روزرسانی وزن‌ها از طریق الگوریتم‌های یادگیری،
  3. ذخیره و خروجی گرفتن از مدل به‌گونه‌ای که بعداً قابل استقرار (deployment) باشد.

نکته‌ی مهم در این فصل، تأکید بر این است که آموزش تنها به معماری و الگوریتم‌ها مربوط نمی‌شود، بلکه نحوه‌ی ورود داده به مدل نقش تعیین‌کننده‌ای در سرعت و کیفیت آموزش دارد.


کارایی در ingestion (خواندن داده‌ها)

یکی از پرهزینه‌ترین بخش‌های آموزش، خواندن و آماده‌سازی داده‌ها است. اگر این مرحله به‌درستی مدیریت نشود، GPUها و TPUها اغلب در حال انتظار می‌مانند، چون CPU به اندازه کافی سریع داده‌ها را به آن‌ها تحویل نمی‌دهد. برای بهبود این وضعیت، کتاب چند راهکار کلیدی ارائه می‌دهد:

  • ذخیره‌ی داده به‌صورت کارآمد: داده‌ها بهتر است پس از پیش‌پردازش در قالب‌های بهینه (مثل TFRecord در TensorFlow) ذخیره شوند تا نیاز به پردازش مجدد نباشد.
  • استفاده از پردازش موازی (parallel processing): هم‌زمان‌سازی CPUها و GPUها از طریق time slicing باعث می‌شود هر کدام بدون توقف کار کنند.
  • بارگذاری تدریجی (streaming/batching): داده‌ها به‌صورت دسته‌های کوچک بارگذاری می‌شوند تا حافظه اشغال نشود و پردازش پیوسته ادامه یابد.

مقاومت و بازتولیدپذیری (Resilience & Reproducibility)

یکی از چالش‌های عملی در آموزش مدل‌ها، پایداری فرایند است. یک خط لوله‌ی آموزشی خوب باید در برابر خطاهای سخت‌افزاری، قطعی‌ها یا نوسانات منابع مقاوم باشد. همچنین برای اینکه یک پروژه در محیط‌های مختلف (توسعه، آزمایش، و تولید) نتایج مشابهی بدهد، نیاز به بازتولیدپذیری داریم. به همین دلیل، ثبت دقیق تنظیمات، نسخه‌ی داده‌ها و شرایط آموزش از اهمیت ویژه‌ای برخوردار است.


اهمیت فصل هفتم

این فصل اهمیت ویژه‌ای دارد زیرا دیدگاه خواننده را از تمرکز صرف بر معماری‌های مدل فراتر می‌برد و نشان می‌دهد که زیرساخت آموزش به همان اندازه حیاتی است. سرعت و کیفیت ingestion، هماهنگی CPU/GPU، و طراحی خط لوله‌ای مقاوم و بازتولیدپذیر، عواملی هستند که در دنیای واقعی تعیین می‌کنند یک پروژه‌ی بینایی ماشین موفق باشد یا شکست بخورد.

فصل هشتم کتاب: کیفیت مدل و ارزیابی مستمر (Model Quality and Continuous Evaluation)

تا اینجا در کتاب یاد گرفتیم چگونه مدل‌های بینایی کامپیوتر را طراحی، آموزش و استقرار دهیم. اما سفر مدل پس از استقرار به پایان نمی‌رسد. اگر قرار است یک سامانه‌ی بینایی ماشین در دنیای واقعی به‌طور پایدار و دقیق عمل کند، نیازمند چیزی فراتر از معماری خوب و داده‌ی کافی است: یعنی پایش، ارزیابی و بهبود مستمر. فصل هشتم به همین موضوع می‌پردازد.


پایش (Monitoring)

نویسندگان با یک هشدار مهم شروع می‌کنند: حتی اگر مدلی روی میلیون‌ها تصویر آموزش داده شده باشد و در زمان استقرار عملکرد عالی داشته باشد، نمی‌توان آن را رها کرد تا برای همیشه درست عمل کند. درست مانند کودکی که نیازمند مراقبت مداوم است، مدل‌های ML هم در دنیای واقعی باید به‌طور مداوم تحت نظر باشند.

پایش شامل دو جنبه‌ی اصلی است:

  1. کیفیت پیش‌بینی‌ها – مثلاً دقت (accuracy)، F1-score یا سایر معیارهای ارزیابی.
  2. کارایی محاسباتی – شامل نرخ پاسخ‌گویی (QPS)، تأخیر (latency) و بهره‌وری منابع.

چالش بزرگ زمانی پدید می‌آید که مدل‌ها با داده‌های جدید و پویا مواجه می‌شوند؛ داده‌هایی که توزیع آن‌ها با داده‌ی آموزشی متفاوت است (distribution shift). در این حالت، اگر پایشی وجود نداشته باشد، کیفیت مدل به‌تدریج افت می‌کند بدون اینکه تیم توسعه از آن آگاه شود.


نقش TensorBoard در ارزیابی

کتاب تأکید می‌کند که بسیاری از متخصصان ML تنها خروجی نهایی مدل را بررسی می‌کنند، در حالی که بخش بزرگی از مشکلات در فرایند آموزش و جزئیات رفتار مدل نهفته است. TensorBoard به‌عنوان یک ابزار استاندارد در اکوسیستم TensorFlow راه‌حلی برای این مشکل ارائه می‌دهد.

TensorBoard امکان موارد زیر را فراهم می‌کند:

  • مشاهده‌ی روند یادگیری (loss, accuracy) در طول زمان،
  • بررسی جزئیات وزن‌ها و گرادیان‌ها،
  • مقایسه‌ی آزمایش‌های مختلف،
  • تحلیل عملکرد مدل در شرایط متفاوت.

این سطح از شفافیت به محققان کمک می‌کند مشکلات را پیش از استقرار شناسایی و رفع کنند.

ارزیابی مستمر (Continuous Evaluation)

نکته‌ی کلیدی فصل هشتم، تأکید بر ارزیابی پیوسته است. مدل‌ها باید مرتباً با داده‌های جدید سنجیده شوند تا انحراف احتمالی شناسایی شود. این کار تنها محدود به داده‌های برچسب‌خورده نیست؛ حتی با داده‌های بدون برچسب هم می‌توان نشانه‌هایی از تغییر توزیع یا خطاهای سیستمی یافت.

ارزیابی مستمر در عمل شامل سه گام است:

  1. گردآوری داده‌ی جدید از محیط واقعی،
  2. محاسبه‌ی معیارهای عملکردی به‌صورت منظم،
  3. بازآموزی (retraining) یا به‌روزرسانی مدل در صورت نیاز.

این چرخه باعث می‌شود مدل نه‌تنها در زمان آموزش، بلکه در طول عمر عملیاتی خود نیز کیفیت بالایی را حفظ کند.


اهمیت فصل هشتم

این فصل نقطه‌ی عطفی در کتاب است زیرا خواننده را از ذهنیت صرفاً «ساخت و آموزش» خارج کرده و وارد فضای واقعی «مدیریت چرخه‌ی عمر مدل» می‌کند. پیام اصلی این فصل ساده و حیاتی است:

مدل‌های بینایی ماشین زنده‌اند و باید مراقبشان بود.

فصل نهم کتاب: پیش‌بینی با مدل (Model Predictions)

در هشت فصل گذشته، خواننده با چرخه‌ی کامل طراحی، آموزش و ارزیابی مدل‌های بینایی کامپیوتر آشنا شد. اکنون در فصل نهم، کتاب به نقطه‌ی کلیدی می‌رسد: استفاده از مدل در عمل برای تولید پیش‌بینی‌ها. این همان هدف اصلی یادگیری ماشین است—ساختن مدلی که بتواند ورودی‌های جدید را دریافت کرده و خروجی معناداری ارائه دهد.


ساختار فصل

این فصل دو بخش اصلی دارد:

  1. ساخت و بارگذاری مدل برای پیش‌بینی (Exporting & Loading Models)
  2. بهینه‌سازی فرآیند پیش‌بینی (Improving Maintainability & Performance)

۱. ساخت و بارگذاری مدل برای پیش‌بینی

برای استفاده از مدل، ابتدا باید آن را از محیط آموزش به یک قالب مناسب صادر (export) کنیم. کتاب یادآوری می‌کند که در TensorFlow/Keras می‌توان این کار را به‌سادگی با دستور زیر انجام داد:

model.save('gs://practical-ml-vision-book/flowers_5_trained')

این دستور مدل را در قالب استاندارد SavedModel ذخیره می‌کند. نکته‌ی مهم اینجاست که هر مدل ذخیره‌شده دارای امضا (serving signature) است؛ امضایی که مشخص می‌کند ورودی و خروجی پیش‌بینی چگونه تعریف شده‌اند.

به کمک ابزار خط فرمان saved_model_cli می‌توان این امضا را بررسی کرد. به‌صورت پیش‌فرض، امضا منطبق با لایه‌ی ورودی مدل است، اما توسعه‌دهنده می‌تواند آن را به‌گونه‌ای تنظیم کند که استفاده‌ی عملی آسان‌تر شود (مثلاً پذیرش تصاویر خام یا خروجی گرفتن در قالبی خاص).


۲. بهینه‌سازی فرآیند پیش‌بینی

بارگذاری و استفاده‌ی مستقیم از مدل کافی نیست؛ کتاب توضیح می‌دهد که باید به نگهداشت‌پذیری (maintainability) و کارایی (performance) نیز توجه داشت. برخی از ملاحظات کلیدی:

  • مدیریت نسخه‌ها (Versioning): وقتی مدل‌های جدید آموزش داده می‌شوند، باید راهکاری برای نگهداری نسخه‌های قبلی و مهاجرت نرم به نسخه‌های تازه وجود داشته باشد.
  • کارایی پیش‌بینی: بهینه‌سازی مدل برای محیط‌های استقرار مختلف (GPU، TPU یا CPU) و حتی استفاده از کتابخانه‌های شتاب‌دهنده مانند TensorRT می‌تواند سرعت و مقیاس‌پذیری پیش‌بینی‌ها را بهبود دهد.
  • سازگاری با سامانه‌های عملیاتی: بسته به نیاز، مدل می‌تواند روی سرویس ابری (مانند Google Cloud AI Platform) یا به‌صورت محلی/لبه‌ای (edge devices) مستقر شود.

اهمیت فصل نهم

این فصل خواننده را از فضای آموزشی به فضای استقرار واقعی (production deployment) هدایت می‌کند. اگرچه تمرکز اصلی روی جزئیات فنی ذخیره‌سازی و بارگذاری مدل است، پیام ضمنی کتاب این است که:

مدلی که تنها در نوت‌بوک آموزشی کار کند کافی نیست؛ باید بتواند در یک سامانه‌ی عملیاتی به‌صورت پایدار، سریع و انعطاف‌پذیر خدمت‌رسانی کند.

فصل دهم کتاب: روندها در یادگیری ماشین در محیط تولید (Trends in Production ML)

در فصل‌های پیشین، تمرکز کتاب بر طراحی و پیاده‌سازی مدل‌های بینایی کامپیوتر از دیدگاه دانشمندان داده بود. اما در فصل دهم، دید گسترده‌تر می‌شود و به واقعیت‌های عملی دنیای تولید (production) پرداخته می‌شود؛ جایی که مدل‌ها دیگر تنها یک پروژه‌ی تحقیقاتی یا آزمایشگاهی نیستند، بلکه باید در محیط‌های واقعی، با کاربران و نقش‌های مختلف، کار کنند.


ساختار فصل

کتاب فصل را در قالب چند بخش کلیدی پیش می‌برد:

  1. Machine Learning Pipelines
    • نیاز به پایپ‌لاین‌ها
    • استفاده از Kubeflow Pipelines Cluster
    • کانتینرسازی کدها
    • نوشتن کامپوننت‌ها و اتصال آن‌ها
    • خودکارسازی اجراها
  2. Explainability (توضیح‌پذیری مدل)
    • تکنیک‌ها
    • افزودن قابلیت توضیح‌پذیری
  3. No-Code Computer Vision (ابزارهای بدون کدنویسی)
    • چرایی استفاده از رویکرد No-Code
    • بارگذاری داده
    • آموزش
    • ارزیابی
  4. جمع‌بندی (Summary)

۱. پایپ‌لاین‌های یادگیری ماشین (ML Pipelines)

مدل‌های ساخته‌شده توسط دانشمندان داده، زمانی ارزشمند می‌شوند که بتوان آن‌ها را در یک چرخه‌ی کامل قرار داد: جمع‌آوری داده → پردازش → آموزش → ارزیابی → استقرار → پیش‌بینی.

این فرایند در محیط‌های تولیدی به کمک پایپ‌لاین‌ها مدیریت می‌شود. ابزارهایی مانند Kubeflow Pipelines امکان اجرای این مراحل را در قالب یک خوشه (cluster) فراهم می‌کنند.

  • کانتینرسازی کدها (Containerizing the Codebase): برای انعطاف‌پذیری و قابلیت حمل، هر بخش از پایپ‌لاین در یک کانتینر مستقل (مثلاً Docker) اجرا می‌شود.
  • نوشتن و اتصال کامپوننت‌ها: اجزای مختلف (data ingestion، preprocessing، training، evaluation، deployment) به صورت ماژولار نوشته شده و سپس در پایپ‌لاین به هم متصل می‌شوند.
  • خودکارسازی اجراها: این رویکرد امکان اجرای خودکار پایپ‌لاین در پاسخ به تغییر داده‌ها یا نسخه‌ی جدید مدل را فراهم می‌کند—مفهومی که در عمل با عنوان MLOps شناخته می‌شود.

۲. توضیح‌پذیری (Explainability)

یکی از چالش‌های مهم در تولید این است که کاربران (به‌ویژه متخصصان پزشکی یا مالی) به جعبه‌سیاه بودن مدل‌ها بی‌اعتمادند. بنابراین، افزودن قابلیت توضیح‌پذیری (مثلاً با تکنیک‌هایی مانند LIME، SHAP یا saliency maps در بینایی کامپیوتر) ضروری است.

کتاب بر این نکته تأکید می‌کند که توضیح‌پذیری تنها یک ویژگی اضافی نیست، بلکه شرط لازم برای اعتمادسازی و استفاده‌ی مسئولانه از AI است.


۳. بینایی کامپیوتر بدون کدنویسی (No-Code Computer Vision)

یکی از روندهای نوظهور، دموکراتیزه شدن یادگیری ماشین است. به این معنا که توسعه‌ی مدل‌های ساده دیگر محدود به دانشمندان داده نیست. با ابزارهای No-Code / Low-Code، کارشناسان حوزه (domain experts) نیز می‌توانند:

  • داده بارگذاری کنند،
  • مدل‌ها را آموزش دهند،
  • و نتایج را ارزیابی کنند.

این ابزارها برای سازمان‌هایی که منابع محدود یا نیاز به سرعت بالا دارند، ارزشمند هستند؛ هرچند معمولاً انعطاف‌پذیری و کارایی کمتری نسبت به کدنویسی مستقیم دارند.


اهمیت فصل دهم

این فصل به‌خوبی نشان می‌دهد که موفقیت یک پروژه‌ی ML تنها به کیفیت مدل وابسته نیست؛ بلکه به همکاری میان نقش‌های مختلف—دانشمندان داده، مهندسان ML، کاربران نهایی و کارشناسان حوزه—بستگی دارد. MLOps، توضیح‌پذیری، و ابزارهای No-Code سه روند اصلی هستند که آینده‌ی بینایی کامپیوتر در محیط‌های تولیدی را شکل می‌دهند.

فصل یازدهم کتاب: مسائل پیشرفته در بینایی کامپیوتر (Advanced Vision Problems)

تا اینجا، کتاب عمدتاً بر روی طبقه‌بندی کل تصویر تمرکز داشت (Classification). در فصل یازدهم، دامنه‌ی کاربردها گسترده‌تر می‌شود و به سراغ مسائل پیشرفته‌تر بینایی ماشین می‌رویم: اندازه‌گیری، شمارش، تخمین حالت بدن (Pose Estimation) و جستجوی تصویر.


ساختار فصل

این فصل به چند بخش کلیدی تقسیم شده است:

  1. Object Measurement (اندازه‌گیری اجسام)
    • Reference Object
    • Segmentation
    • Rotation Correction
    • Ratio and Measurements
  2. Counting (شمارش)
    • Density Estimation
    • Extracting Patches
    • Simulating Input Images
  3. Regression (رگرسیون تصویری)
    • Prediction
  4. Pose Estimation (تخمین حالت بدن)
    • PersonLab
    • PoseNet Model
    • Identifying Multiple Poses
  5. Image Search (جستجوی تصویر)
    • Distributed Search
    • Fast Search
    • Better Embeddings
  6. Summary

۱. اندازه‌گیری اجسام (Object Measurement)

هدف این بخش، استخراج ابعاد فیزیکی اجسام از تصاویر است (مثلاً طول یک مبل یا اندازه‌ی کف پا).

  • Reference Object: نیاز به یک مرجع شناخته‌شده (مثل یک سکه یا برگه A4) برای مقیاس‌بندی.
  • Segmentation: جداسازی جسم اصلی از پس‌زمینه.
  • Rotation Correction: اصلاح زاویه یا چرخش تصویر برای محاسبه‌ی دقیق‌تر ابعاد.
  • Ratio & Measurements: محاسبه نسبت پیکسل‌ها به اندازه‌ی واقعی با کمک شیء مرجع و به‌دست‌آوردن اندازه‌ی نهایی جسم.

۲. شمارش (Counting)

در برخی مسائل (مانند شمارش سلول‌ها یا افراد در یک جمعیت)، نیاز به روش‌های فراتر از Object Detection داریم.

  • Density Estimation: استفاده از نقشه‌های چگالی برای تخمین تعداد زیاد اشیا.
  • Extracting Patches: تقسیم تصویر بزرگ به قطعات کوچک‌تر برای پردازش سریع‌تر.
  • Simulating Input Images: ایجاد داده‌های مصنوعی برای آموزش مدل‌های شمارش، به‌ویژه زمانی که داده‌ی واقعی محدود است.

۳. رگرسیون تصویری (Regression)

در این بخش، مدل‌ها به جای دسته‌بندی، خروجی عددی (مثلاً یک پیش‌بینی پیوسته) تولید می‌کنند. نمونه: تخمین میزان بارش از روی تصاویر ماهواره‌ای.


۴. تخمین حالت بدن (Pose Estimation)

یکی از مسائل مهم در بینایی ماشین، شناسایی موقعیت مفاصل و اعضای بدن انسان است.

  • PersonLab: مدلی برای استخراج حالت بدن افراد از تصاویر پیچیده.
  • PoseNet: مدلی سبک‌تر و سریع‌تر، مناسب برای اجرا در مرورگر یا موبایل.
  • Identifying Multiple Poses: توانایی شناسایی هم‌زمان چندین فرد و تشخیص حالت بدن آن‌ها.

کاربردها: ورزش، فیزیوتراپی، تعامل انسان-ماشین، واقعیت افزوده.


۵. جستجوی تصویر (Image Search)

یکی از کاربردهای پیشرفته CV، جستجو بر اساس شباهت تصویری است.

  • Distributed Search: مقیاس‌پذیری جستجو روی پایگاه‌های داده بزرگ.
  • Fast Search: استفاده از تکنیک‌های شاخص‌گذاری (Indexing) برای سرعت‌بخشیدن به بازیابی تصویر.
  • Better Embeddings: طراحی بازنمایی‌های برداری (embeddings) قدرتمندتر برای مقایسه تصاویر مشابه.

اهمیت فصل یازدهم

این فصل نشان می‌دهد که بینایی کامپیوتر فراتر از طبقه‌بندی ساده است و می‌تواند به مسائل کمی (اندازه‌گیری و شمارش)، تحلیلی (تخمین حالت بدن) و جستجو (بازیابی تصاویر مشابه) بپردازد. همچنین تأکید دارد که این مسائل اغلب به ترکیبی از روش‌های پایه‌ای (segmentation, regression, embeddings) نیاز دارند.

فصل دوازدهم: تولید تصویر و متن

در فصل ۱۲ کتاب، تمرکز از تحلیل تصویر به سمت تولید داده‌های جدید تغییر می‌کند. این داده‌ها می‌توانند تصاویر مصنوعی یا متن توصیفی (caption) برای تصاویر باشند. نویسنده ابتدا بر درک تصویر (Image Understanding) تأکید دارد، زیرا تا زمانی که یک مدل نفهمد در تصویر چه خبر است، نمی‌تواند تصویر یا متن معناداری تولید کند.


بخش اول: درک تصویر (Image Understanding)

۱. Embeddings

  • در فصل سوم درباره انتقال یادگیری (Transfer Learning) توضیح داده شد.
  • ایده اصلی این است که از مدل‌های بزرگ از پیش آموزش‌دیده (مثل ResNet50) برای استخراج ویژگی‌ها (Embeddings) استفاده شود.
  • این Embeddingها امکان می‌دهند که حتی با داده کم، مدل‌های مؤثر برای وظایف خاص ایجاد کنیم.

۲. Auxiliary Learning Tasks

  • برای بهبود کیفیت بازنمایی، می‌توان وظایف جانبی تعریف کرد (مثلاً پیش‌بینی زاویه چرخش تصویر یا پرکردن بخشی از تصویر).
  • این وظایف کمک می‌کنند مدل خصوصیات بهتری از داده‌ها بیاموزد.

۳. Autoencoders

  • ساختار Encoder–Decoder که تصویر را فشرده کرده و دوباره بازسازی می‌کند.
  • خروجی مدل باید شبیه ورودی باشد، بنابراین شبکه یاد می‌گیرد ویژگی‌های مهم تصویر را در لایه میانی ذخیره کند.

۴. Variational Autoencoders (VAEs)

  • نسخه پیشرفته Autoencoderها که بازنمایی فشرده را به صورت توزیعی (Distribution) یاد می‌گیرند.
  • VAEs برای تولید تصویر کاربرد دارند چون می‌توان از توزیع نهفته نمونه‌گیری (Sampling) کرد و تصاویر جدید ساخت.

بخش دوم: تولید تصویر (Image Generation)

۱. Generative Adversarial Networks (GANs)

  • شامل دو شبکه است:
    • Generator: تولید تصویر
    • Discriminator: تشخیص واقعی یا جعلی بودن تصویر
  • این دو در یک بازی تخاصمی (Adversarial) رقابت می‌کنند تا کیفیت تصاویر بالا برود.

۲. GAN Improvements

  • معماری‌های پیشرفته‌تر مثل DCGAN، WGAN، StyleGAN برای رفع مشکلات اولیه (مثل ناپایداری در آموزش).

۳. Image-to-Image Translation

  • تبدیل یک نوع تصویر به نوع دیگر (مثلاً سیاه‌وسفید به رنگی، نقاشی به عکس واقعی).

۴. Super-Resolution

  • بهبود وضوح تصاویر کم‌کیفیت با استفاده از مدل‌های مولد.

۵. Modifying Pictures (Inpainting)

  • پرکردن بخش‌های خالی یا آسیب‌دیده تصویر.

۶. Anomaly Detection

  • آموزش مدل برای بازسازی تصاویر نرمال و تشخیص داده‌های غیرعادی بر اساس میزان خطا در بازسازی.

۷. Deepfakes

  • تولید ویدئو یا تصویر جعلی واقعی‌نما با ترکیب چهره‌ها یا تغییر محتوا.

بخش سوم: تولید متن از تصویر (Image Captioning)

۱. Dataset

  • نیاز به مجموعه‌داده شامل تصاویر همراه با توضیحات متنی (مثلاً MS-COCO).

۲. Tokenizing the Captions

  • تبدیل متن به توکن‌ها و سپس به اعداد (ورودی مناسب برای مدل).

۳. Batching

  • آماده‌سازی داده برای آموزش مدل به صورت دسته‌ای (Batch).

۴. Captioning Model

  • معماری رایج: Encoder–Decoder
    • Encoder (مثلاً CNN یا ResNet): استخراج ویژگی‌های تصویر.
    • Decoder (مثلاً LSTM یا Transformer): تولید کلمه به کلمه جمله.

۵. Training Loop

  • آموزش مدل برای کمینه کردن اختلاف بین جملات پیش‌بینی‌شده و جملات واقعی.

۶. Prediction

  • استفاده از مدل آموزش‌دیده برای تولید توضیحات جدید برای تصاویر نادیده.

جمع‌بندی فصل

فصل دوازدهم نشان می‌دهد که مدل‌های بینایی کامپیوتر تنها به تحلیل داده محدود نمی‌شوند، بلکه می‌توانند داده‌های جدید تولید کنند. از تولید تصاویر مصنوعی با GAN و VAE گرفته تا تولید متن‌های توصیفی با مدل‌های ترکیبی بینایی و زبان، این فصل دریچه‌ای به سمت هوش مصنوعی خلاق باز می‌کند.


روش استفاده از کتاب Practical Machine Learning for Computer Vision و کدهای آن

نویسندگان توصیه کرده‌اند کتاب را به‌ترتیب بخوانید و حتماً نوت‌بوک‌های همراه را در GitHub اجرا کنید—در Colab یا Vertex Notebooks. پیشنهاد عملی آن‌ها این است که پس از مطالعه هر بخش، کد همان بخش را اجرا و تمرین کنید تا مفاهیم و تکنیک‌ها جا بیفتد؛ سپس به فصل بعد بروید.

به‌گفته‌ی نویسندگان، Colab رایگان است و اغلب نوت‌بوک‌ها را می‌چرخاند؛ Vertex Notebooks توانمندتر است و اجرای سریع‌تری فراهم می‌کند. فصل‌های ۳، ۴، ۱۱ و ۱۲—به‌دلیل مدل‌ها یا دیتاست‌های پیچیده‌تر—از TPU بهره می‌برند. هرچند کدها با APIهای متن‌باز نوشته شده‌اند و باید در محیط‌های دیگر Jupyter نیز کار کنند، اما آزموده نشده‌اند؛ در صورت نیاز به تغییرات، مشارکت خوانندگان در قالب Pull Request تشویق شده است.

همه‌ی کدها با مجوز Apache ارائه می‌شوند؛ ابتدا به‌عنوان ابزار آموزشی و سپس مبنایی برای مدل‌های تولیدی.


از ایده تا تولید: نگاه End-to-End

یکی از کلیدواژه‌های مکرر در معرفی کتاب، End-to-End است. به‌طور مشخص، کتاب Practical Machine Learning for Computer Vision وعده می‌دهد که زنجیره‌ی کامل یک پروژه‌ی بینایی کامپیوتر را پوشش دهد:

  • ساخت دیتاست: از گردآوری تا برچسب‌گذاری و آماده‌سازی
  • پیش‌پردازش و Augmentation: برای افزایش داده‌های مؤثر و کمک به «قابلیت یادگیری» مدل
  • طراحی و انتخاب معماری: انتخاب میان خانواده‌های مشهور مانند ResNet، SqueezeNet، EfficientNet
  • آموزش و ارزیابی: هم ارزیابی ابتدایی و هم ارزیابی پیوسته برای کیفیت
  • تبیین‌پذیری و AI مسئولانه: دست‌کم در سطح به‌کارگیری بهترین‌رویّه‌ها
  • استقرار: به‌صورت وب‌سرویس یا روی دستگاه‌های لبه
  • پایش و مدیریت پس از استقرار: تا چرخه عمر مدل کامل شود

این رویکرد برای تیم‌هایی که می‌خواهند از آزمایشگاه به محیط تولید در مقیاس بزرگ بروند، بسیار اهمیت دارد؛ نویسندگان طبق معرفی کتاب، نشان می‌دهند چگونه می‌توان مدل‌های دقیق و قابل توضیح ساخت و آن‌ها را با معماری‌های محکم ML، منعطف و قابل نگه‌داری به تولید برد.


تمرکز تکنولوژیک: TensorFlow و Keras

کتاب Practical Machine Learning for Computer Vision صراحتاً اعلام می‌کند که مدل‌ها را با TensorFlow یا Keras طراحی، آموزش، ارزیابی و برای پیش‌بینی استفاده می‌کند. اگرچه خوانندگان PyTorch می‌توانند از توضیحات متنی بهره ببرند، اما برای قطعه‌کدهای عملی باید سراغ منابع دیگر بروند—هرچند نویسندگان استقبال می‌کنند که معادل‌های PyTorch از سوی جامعه به مخزن GitHub افزوده شود.


نگاهی به بازخوردها و امتیازهای کتاب Practical Machine Learning for Computer Vision

در اطلاعات محصول، امتیاز ۴٫۳ از ۵ (بر پایه ۴۲ نظر) ذکر شده است. مرور بر چند نمونه از بازخوردهای کاربران نکات زیر را روشن می‌کند:

  • برخی خوانندگان این کتاب را برای عملی‌بودن و افزایش بینش نسبت به پرسش‌های واقعیِ کار با تصویر تحسین کرده‌اند—از پاسخ به پرسش‌های کاربردی تا معرفی منابع مکمل.
  • گروهی دیگر آن را متن منظم و خوش‌چینشی می‌دانند که از مبانی تا مباحث پیشرفته و بهترین‌رویّه‌های طراحی و پیاده‌سازی را در بر می‌گیرد؛ از ذخیره و واکشی کارآمد داده تا استفاده حداکثری از GPU و استراتژی‌های آموزش توزیع‌شده، و مهم‌تر از همه مسیر بردن مدل به تولید—موضوعی که معمولاً کمتر به آن پرداخته می‌شود.
  • چند نقد پرتکرار مربوط به سیاه‌وسفید بودن نسخه چاپی و قیمت است. بعضی خوانندگان اشاره کرده‌اند که برای کتابی درباره بینایی کامپیوتر، تصاویر رنگی مفیدتر است و نسخه چاپی از این منظر محدودیت دارد—هرچند خود کتاب تذکر داده که Kentle تمام‌رنگی است.

این طیف از بازخوردها مطابق اطلاعات محصول ارائه‌شده است و تصویری واقع‌گرایانه از تجربه خوانندگان به دست می‌دهد: محتوای قوی و عملی، همراه با چند نکته قابل‌توجه در نسخه فیزیکی.


نویسندگان

  • Valliappa (Lak) Lakshmanan: مدیر راه‌حل‌های تحلیل و هوش مصنوعی در Google Cloud با مأموریت «دموکراتیزه‌کردن یادگیری ماشین». او پیش‌تر کتاب‌ها و دوره‌های متعددی در حوزه داده و ML منتشر کرده است.
  • Martin Görner: مدیرمحصول Keras/TensorFlow با تمرکز بر بهبود تجربه توسعه‌دهنده هنگام استفاده از مدل‌های پیشرفته.
  • Ryan Gillard: مهندس هوش مصنوعی در سازمان خدمات حرفه‌ای Google Cloud که مدل‌های ML را برای طیف وسیعی از صنایع می‌سازد؛ با پیشینه تحصیلی در علوم اعصاب و فیزیک و علاقه‌مند به کاوش هوش از مسیر ریاضیات.

این ترکیب نویسندگان، مطابق معرفی رسمی کتاب، تکیه‌گاهی از تجربه صنعتی و نگاه محصول‌محور به یادگیری ماشین فراهم کرده است.


مشخصات انتشار

  • ناشر: O’Reilly Media
  • عنوان: کتاب Practical Machine Learning for Computer Vision
  • چاپ: اول
  • تاریخ انتشار: ۲۴ اوت ۲۰۲۱
  • زبان: انگلیسی
  • تعداد صفحات: ۴۸۰
  • شابک: ‎ISBN-10: ‎۱۰۹۸۱۰۲۳۶۳ | ‎ISBN-13: ‎۹۷۸-۱۰۹۸۱۰۲۳۶۴
  • ابعاد: ‎۶٫۷۵ × ۱ × ۹ اینچ | وزن: حدود ‎۲٫۳۱ پوند
  • رده‌بندی‌های فروش (طبق اطلاعات محصول):
    • #۱۷ در Computer Vision & Pattern Recognition
    • #۴۸ در Computer Neural Networks
    • #۲۴۴ در Artificial Intelligence & Semantics
  • امتیاز کاربران: ‎۴٫۳ از ۵ بر مبنای ‎۴۲ رأی
  • یادآوری مهم: نسخه چاپی سیاه‌وسفید است؛ برای تصاویر رنگی، نسخه Kindle توصیه شده است.

قوت‌های کلیدی کتاب Practical Machine Learning for Computer Vision (بر اساس معرفی رسمی)

  1. پوشش مسائل متنوع بینایی کامپیوتر: از کلاسه‌بندی و تشخیص شیء تا خودرمزگذارها، تولید تصویر، شمارش و کپشن‌گذاری.
  2. نگاه انتهابه‌انتها: از ساخت دیتاست و پیش‌پردازش تا آموزش، ارزیابی، استقرار، تبیین‌پذیری و پایش.
  3. راهبرد مدل‌گزینی: راهنمایی عملی برای انتخاب میان ResNet/SqueezeNet/EfficientNet متناسب با مسئله.
  4. تمرکز بر تبیین‌پذیری و AI مسئولانه: گنجاندن بهترین‌رویّه‌ها در چرخه توسعه.
  5. قابلیت استقرار در سناریوهای متنوع: وب‌سرویس یا Edge.
  6. کدهای عملی و قابل اجرا در Colab یا Vertex Notebooks و امکان استفاده از TPU برای فصل‌های پرحجم‌تر.
  7. مجوز Apache و متن‌باز بودن کدها: استفاده آموزشی و نقطه شروع برای کاربردهای تولیدی.

نکات قابل توجه پیش از خرید/مطالعه

  • اگر به‌دنبال کدهای PyTorch هستید، بدانید که تمرکز کتاب روی TensorFlow/Keras است؛ هرچند توضیحات متنی برای خوانندگان PyTorch نیز مفید توصیف شده‌اند و از مشارکت جامعه برای افزودن معادل‌های PyTorch استقبال شده است.
  • برای تصاویر تمام‌رنگی، نسخه Kindle را در نظر بگیرید؛ نسخه چاپی سیاه‌وسفید است.
  • اجرای مدل‌ها و دیتاست‌های بزرگ‌تر در فصل‌های ۳، ۴، ۱۱ و ۱۲ با TPU روان‌تر خواهد بود.
  • کدها در محیط‌های Jupyterِ مجهز به TensorFlow «باید» کار کنند، اما در AWS SageMaker و Azure ML رسماً آزمایش نشده‌اند.

جمع‌بندی: کتاب Practical Machine Learning for Computer Vision برای چه کسانی «ارزشمند» است؟

بر مبنای اطلاعات رسمی کتاب، اگر شما مهندس ML یا دانشمند داده هستید و می‌خواهید مسائل تصویری را واقعاً حل کنید—نه فقط در محیط آزمایشگاه، بلکه تا استقرار و پایش در مقیاس تولید—این کتاب یک مسیر روشن و عملی پیش پای شما می‌گذارد. از «سلام دنیا»ی کلاسه‌بندی تصویر تا تشخیص شیء و قطعه‌بندی، از افزایش داده و تبیین‌پذیری تا استقرار روی وب یا لبه، و از انتخاب معماری مناسب تا مدیریت کیفیت و ارزیابی مداوم، همه در یک چارچوب یکپارچه ارائه شده‌اند.

اگرچه تمرکز فنی کتاب بر TensorFlow/Keras است، اما حتی برای کسانی که با PyTorch کار می‌کنند، توضیحات متنی می‌تواند دید معمارانه و فرآیندی بسیار خوبی فراهم آورد—به‌خصوص زمانی که هدف، ساخت پایپلاین‌های انتهابه‌انتها و مدل‌های قابل توضیح برای کاربردهای صنعتی باشد.

در نهایت، Practical Machine Learning for Computer Vision بر اساس معرفی منتشرشده، نه‌فقط یک کتاب درسی، که یک نقشه راه اجرایی است: با کدهای متن‌باز، توصیه‌های صریح درباره انتخاب مدل و ساخت پایپلاین، و توجه به چرخه‌ی کامل عمر مدل—از داده تا تولید. اگر دنبال منبعی هستید که فهم عمیق را با قابلیت پیاده‌سازی جمع کند، این کتاب یکی از گزینه‌های برجسته در قفسه‌ی شما خواهد بود.


اطلاعات محصول (خلاصه)

  • عنوان: Practical Machine Learning for Computer Vision: End-to-End Machine Learning for Images (1st Edition)
  • نویسندگان: Valliappa Lakshmanan، Martin Görner، Ryan Gillard
  • ناشر: O’Reilly Media | تاریخ انتشار: ۲۴ اوت ۲۰۲۱ | زبان: انگلیسی
  • قطع و وزن: ‎۶٫۷۵ × ۱ × ۹ اینچ | ۲٫۳۱ پوند | ۴۸۰ صفحه
  • شابک: ‎۱۰۹۸۱۰۲۳۶۳ | ‎۹۷۸-۱۰۹۸۱۰۲۳۶۴
  • امتیاز کاربران: ۴٫۳/۵ بر پایه ۴۲ رأی
  • نکته نسخه‌ها: چاپ سیاه‌وسفید؛ Kindle رنگی
  • کدها: GitHub (مجوز Apache)؛ اجرای توصیه‌شده در Colab یا Vertex Notebooks؛ فصل‌های ۳، ۴، ۱۱ و ۱۲ مناسب TPU
Share.
Leave A Reply Cancel Reply
Exit mobile version