اگر شما مدیر یک بازار آنلاین هستید، میدانید که ارسال یک کره ۸ اونسی بهجای ۱۶ اونسی، یک شکست کامل در زنجیره تأمین است. اما مدلهای رایج بینایی-زبانی اغلب این اشتباهات بحرانی را به عنوان «تطابق احتمالی» میپذیرند و اجازه میدهند محصول غلط به دست مشتری برسد. تطبیق تصویر یک محصول با توضیحات آن، نیازمند چیزی فراتر از یک امتیاز شباهت ساده است؛ این فرآیند مستلزم یک «وتوی سخت» روی ویژگیهای خاص است. یک تطبیق نادرست در برند یا سایز، در دنیای واقعی یک بازار دیجیتال، به معنای شکست در تحویل کالا است، با این حال مدلهای استاندارد بینایی-زبانی اغلب این خطاها را به عنوان «تطابقهای احتمالی» رتبهبندی میکنند.
این مشکل از آنجاست که مدلهای استاندارد مثل CLIP و BLIP تصاویر و متنها را به عنوان واحدهای کلی پردازش میکنند. آنها یک امتیاز شباهت کلی تولید میکنند که نمیتواند دقیقاً مشخص کند کدام ویژگی خاص باعث عدم تطابق شده است. این مدلها هرگز نمیپرسند: «آیا برند موجود در تصویر با برند موجود در توضیحات مطابقت دارد؟» طبق گزارشهای فنی، یک برند اشتباه ممکن است در آزمونهای ITM مدل BLIP امتیاز ۰.۷۹ بگیرد و همچنان بهراحتی در محدوده «تطابق احتمالی» قرار بگیرد. علاوه بر این، یک سایز اشتباه برای هر دو مدل تقریباً نامرئی است. این نقص معماری به این معناست که امتیاز نهایی نمیتواند به کاربر بگوید کدام ویژگی باعث عدم تطابق شده است.
همانطور که در تحلیلهای پیشین ما دربارهی محدودیتهای مدلهای بینایی-زبانی اشاره کردیم، تکیه بر امتیاز کلی برای کاربردهای تجاری ریسک بالایی دارد. راهکار جدید، گذار از امتیازدهی کلی به روش «دیکشنری ویژگیها» است. در این رویکرد، لیستهای محصول به عنوان مجموعهای از ویژگیهای ساختاریافته — مانند برند، سایز و مدل — در نظر گرفته میشوند و هر یک بهطور مستقل تأیید میگردند. اگر حتی یک ویژگی بحرانی رد شود، کل لیست محصول به عنوان «عدم تطابق» علامت میخورد.
برای اعتبارسنجی این سیستم، آزمایشهایی روی سه محصول واقعی Grocery انجام شد که برای نمایش چالشهای مختلف بستهبندی و عدم تطابق انتخاب شده بودند:
- شیر کامل Prairie Farms (کارتون ۱ کوارت): دارای برچسبی با متن زیاد که شامل یک لوگوی برند استایلیزه و حقایق تغذیهای در پشت است. این محصول برای تست تشخیص برند و مدل (Variant) استفاده شد.
- سینه مرغ بدون استخوان Amazon Fresh (ظروف پلاستیکی ۳۰ اونسی): محصولی با حداقل متن روی برچسب که برند آن روی یک استیکر چاپ شده است. این مورد برای تست توانایی مدل در شناسایی همزمان برند و برشهای خاص گوشت به کار رفت.
- کره شور Land O Lakes (لفاف کاغذ ۸ اونسی): بستهبندی فشرده با چندین نمایش مختلف از سایز (۸ اونس، ۲۲۶.۸ گرم، ۴ تکه کره نصفه). این محصول برای تست حالتهای خاص (Edge Cases) در تطبیق سایز انتخاب شد.
اولین ابزار این خطلوله، نویسهخوانی نوری (OCR) — که شبیه به یک چشم دیجیتالی است که متنهای روی کاغذ را به کلمات قابل ویرایش تبدیل میکند — با استفاده از کتابخانه EasyOCR (pip install easyocr) است. این یک کتابخانه محلی پایتون است که باعث میشود از تأخیرهای API و فراخوانیهای خارجی جلوگیری شود. OCR پیکسلها را مستقیماً میخواند تا متن برچسب را به رشتههای متنی تبدیل کند. برای برچسبهای محصول، خواندن مستقیم متن چاپ شده سریعتر و دقیقتر از آن است که از یک مدل بینایی بخواهیم تصویر را تفسیر کند.
یک مرحله OCR روی برچسب کره Land O Lakes، رشتهای متنی بازمیگرداند که شامل این عبارات است: "jarmer-owned landolakes since 1921 tbsp 4 half sticks butter half net wt 8oz (226.8 g) salted". از میان این متن، سیستم میتواند با موفقیت کلمات "land o lakes"، "butter"، "8oz" و "salted" را استخراج کند.
برای مدیریت ناهماهنگیهای برچسبگذاری در دنیای واقعی، سیستم دو اصلاح منطقی خاص را به کار گرفته است:
۱. حذف فاصلهها (Space Stripping): مدل OCR معمولاً «8oz» را به عنوان یک توکن واحد میخواند، در حالی که در توضیحات محصول ممکن است «8 oz» نوشته شده باشد. یک تطبیق زیررشتهای ساده در اینجا شکست میخورد. سیستم تمام فاصلهها را از هر دو رشته قبل از مقایسه حذف میکند: ocr_found = any(d.replace(" ", "") in ocr_text.replace(" ", "") for d in desc_norms).
۲. نمایندگیهای معادل (Equivalent Representations): مقادیر سایز در لیستها متغیر هستند. یک لیست کره ممکن است عبارتهای «8 oz»، «226.8 g» یا «4 half sticks» را به کار ببرد. دیکشنری سیستم لیستی از این نمایشهای معادل را میپذیرد تا از منفیهای کاذب (False Negatives) جلوگیری کند. اگر OCR هر یک از اینها را پیدا کند، آن ویژگی پذیرفته میشود.
اما OCR دو محدودیت سخت دارد: اول اینکه نمیتواند لوگوهای استایلیزه یا فونتهای سفارشی برند را بخواند؛ برای مثال عبارت "Prairie Farms" که به صورت خطاطی تزیینی چاپ شده باشد، ممکن است کاراکترهای نامفهوم بازگرداند. دوم اینکه برخی ویژگیها، مانند «نوع ظرف»، ویژگیهای بصری هستند و به صورت متن ساده چاپ نمیشوند.
اینجاست که سیستم به Moondream2 روی میآورد؛ یک مدل پرسشوپاسخ تصویری (VQA) با ۱.۸۶ میلیارد پارامتر (vikhyatk/moondream2). VQA هدفمند و قابل کنترل است، برخلاف کپشننویسیهای کلی که ممکن است جزئیات خاص را نادیده بگیرند.
Moondream2 به دلایل فنی خاصی انتخاب شده است:
- اندازه مدل و عملکرد: در مقایسه با
blip-vqa-base(حدود ۴۰۰ مگابایت)، Moondream2 پیروی قویتری از دستورات دارد. در مقایسه باSalesforce/blip2-opt-2.7b(حدود ۵.۵ گیگابایت) که فقط مولد است و فاقد بخش VQA است، Moondream2 بسیار بهینهتر عمل میکند. - بازدهی سختافزاری: این مدل در حالت float16 روی Apple M2 MPS اجرا میشود و تقریباً ۴ گیگابایت از حافظه یکپارچه را اشغال میکند، که برای یک دستگاه با ۱۶ گیگابایت رم کاملاً مناسب است.
برای جلوگیری از توهم (Hallucination) — یعنی زمانی که مدل با اطمینان چیزی را میگوید که وجود ندارد — سیستم از پرامپتهای محدودکنندهای استفاده میکند که مدل را مجبور میکند از میان یک دایره لغات شناختهشده انتخاب کند:
- نوع محصول: «آیا این شیر، قهوه، کره، مرغ، گوشت، نان، آبمیوه، نوشیدنی، اسنک یا محصول پاککننده است؟»
- ظرف: «آیا این محصول در بطری، قوطی، کارتن، ظرف، کپسول، کیسه یا باکس است؟»
- برند: «نام برند نمایش داده شده روی این محصول چیست؟»
- سایز: «سایز یا مقدار چیست؟ عددی را پیدا کن که با این کلمات باشد: oz, quart, gram.»
- مدل (Variant): «این چه مدل یا طعمی است؟ برای مثال: whole, 2%, dark roast, classic roast.»
منطق مسیریابی سیستم برای به حداکثر رساندن دقت و سرعت، از یک توالی اولویتبندی شده پیروی میکند:
۱. ویژگیهای متنی (برند، سایز، مدل، نوع محصول): سیستم ابتدا EasyOCR را امتحان میکند. اگر ویژگی در متن OCR یافت شود، فرآیند به پایان میرسد. در صورت عدم یافتن، یک پرسش VQA از Moondream2 به عنوان جایگزین (Fallback) فعال میشود.
۲. ویژگیهای بصری (ظرف): سیستم کاملاً از OCR عبور کرده و مستقیماً از Moondream2 سؤال میپرسد، زیرا این موارد به صورت متن چاپ نمیشوند.
این منطق ترکیبی روی سه محصول ذکر شده تست شد. نتایج نشان داد که تمام توضیحات صحیح مطابقت داشتند، در حالی که برندهای اشتباه، سایزهای غلط و مدلهای نادرست در هر سه محصول بهدرستی باعث ایجاد «عدم تطابق» شدند.
نکته کلیدی این معماری، اصل «وتوی سخت» است. در نسخههای قدیمی این منطق، از یک نسبت استفاده میشد: اگر ۷۵٪ ویژگیها مطابقت داشتند، لیست محصول پذیرفته میشد. اما این برای یک بازار آنلاین غیرقابل قبول است. مشتریای که ۸ اونس کره سفارش داده اما ۱۶ اونس دریافت میکند، در واقع محصول غلطی دریافت کرده است. به همین ترتیب، سینه مرغ بدون استخوان که به عنوان «با استخوان» توصیف شده باشد، یک شکست واقعی در تحویل کالا است.
هیچ آستانهای وجود ندارد که در آن یک سایز اشتباه، قابل قبول باشد. نسخه فعلی یک «وتوی سخت» را با استفاده از مجموعهای از «ویژگیهای بحرانی» (CRITICAL_FEATURES) پیادهسازی میکند: {برند، نوع محصول، سایز، مدل، ظرف}. هر شکست واحد در این مجموعه، بدون توجه به اینکه چه تعداد از ویژگیهای دیگر مطابقت دارند، منجر به برچسب «عدم تطابق احتمالی» میشود.
با این حال، علیرغم بهبود نسبت به CLIP و BLIP، چندین مانع در مسیر تولید باقی مانده است:
- زاویه تصویر: OCR فقط آنچه را که قابل مشاهده است میخواند. اگر تصویر به جای برچسب جلو، پنل حقایق تغذیهای را نشان دهد، متن برند و مدل گم میشوند. راهکار آینده شامل پذیرش چندین URL تصویر برای هر محصول و ادغام نتایج OCR خواهد بود.
- کیفیت تصویر: تصاویر تار یا فشرده، دقت OCR را کاهش میدهند و ممکن است باعث شوند Moondream2 برای ویژگیهایی که بهوضوح نمیبیند، پاسخهای توهمی بدهد.
- پوشش پرامپتها: پرامپتهای فعلی VQA یک اثبات مفهوم (PoC) هستند. در یک بازار واقعی با هزاران دستهبندی، پرامپتها نیازمند مهندسی خاص برای هر دسته، لیستهای گزینهی گستردهتر و احتمالاً استدلالهای زنجیره-افکار (Chain-of-Thought) هستند.
- تطبیق معنایی: منطق فعلی از تطبیق زیررشتهای بعد از نرمالسازی فضا استفاده میکند. در نتیجه، «1 qt» و «one quart» با هم مطابقت ندارند. پیادهسازی تطبیق معنایی مبتنی بر Embedding این مشکل را حل میکند اما پیچیدگی سیستم را افزایش میدهد.
این تغییر ثابت میکند که قاببندی مسئله — یعنی پرسیدن سوالات خاص به جای اندازهگیری شباهت کلی — بسیار مهمتر از اندازه مدل است. با تفسیرپذیر و قابل عیبیابی کردن این فرآیند، سیستم مسیری عملی به سوی تایید محصولات آماده برای تولید فراهم میکند. تمام کدها و آزمایشات در github.com/ebiarian/product-image-description-alignment در دسترس هستند.
گام بعدی شما
- اگر در حال توسعه سیستمهای انبارداری هستید، به جای تکیه بر مدلهای کلی، از ترکیب OCR و VQA برای تایید ویژگیهای بحرانی استفاده کنید.
- برای کاهش نرخ توهم در مدلهای بصری، از «پرامپتهای گزینهای» (Multiple Choice) بهره ببرید.
- کد و آزمایشات این پروژه را در
github.com/ebiarian/product-image-description-alignmentبررسی کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو