تشخیص ناهنجاری تصاویر کشاورزی با Qdrant و Voyage AI

تشخیص ناهنجاری تصاویر کشاورزی با Qdrant و Voyage AI

6 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۳۰

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 2656 · منبع: کاتالوگ Axeto

ابزار تشخیص ناهنجاری برای تصاویر محصولات کشاورزی

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

1. بارگذاری و برش مجموعه داده: تصاویر مجموعه داده را برای Qdrant دریافت و آماده می‌کند.

2. تعریف خوشه: مراکز خوشه‌بندی و آستانه‌های شباهت را برای هر کلاس محصول در Qdrant ایجاد می‌کند.

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

گردش کار به چهار بلوک اصلی تقسیم شده است:

  • دریافت و آماده‌سازی ورودی: URL تصویر ورودی را مدیریت می‌کند و جزئیات اتصال ضروری Qdrant را راه‌اندازی می‌کند.
  • تولید جاسازی: یک نمایش برداری از تصویر ورودی با استفاده از Voyage AI ایجاد می‌کند.
  • جستجوی شباهت Qdrant: امتیازات شباهت را از Qdrant با مقایسه جاسازی تصویر با مدویدهای خوشه بازیابی می‌کند.
  • مقایسه امتیاز و تعیین ناهنجاری: امتیازات شباهت را در برابر آستانه‌ها تجزیه و تحلیل می‌کند تا تصویر را به عنوان ناهنجار یا متعلق به یک کلاس شناخته شده طبقه‌بندی کند.

---

تشریح گردش کار

۱. دریافت و آماده‌سازی ورودی

این بلوک اولیه یک URL تصویر را به عنوان ورودی دریافت می‌کند و متغیرهای ضروری را برای تعامل با پایگاه داده برداری Qdrant پیکربندی می‌کند. همچنین فراداده مربوط به مجموعه داده محصول ذخیره شده در Qdrant را بازیابی می‌کند.

گره‌ها (Nodes):

  • Execute Workflow Trigger: نقطه ورود گردش کار، انتظار یک بار داده JSON حاوی imageURL.
  • Set Image URL: imageURL را از بار داده تریگر استخراج کرده و برای گره‌های بعدی در دسترس قرار می‌دهد.
  • Set Qdrant Variables: متغیرهای ثابت را برای جزئیات اتصال Qdrant، از جمله URL ابری، نام مجموعه (agricultural-crops) و کلیدهای مورد استفاده برای شناسایی مدویدها و مقادیر آستانه مرتبط آن‌ها در Qdrant تعریف می‌کند.
  • Get Qdrant Point Count: مجموعه Qdrant را برای بازیابی تعداد کل نقاط داده جستجو می‌کند.
  • Get Crop Class Facets: از جستجوی facet در Qdrant برای شمارش تعداد نقاط مرتبط با هر نام محصول استفاده می‌کند و به طور موثر کلاس‌های مختلف محصول را شناسایی می‌کند.
  • Calculate Number of Crop Classes: تعداد کل کلاس‌های محصول منحصر به فرد را بر اساس نتایج facet تعیین می‌کند. این تعداد برای محدود کردن جستجوی شباهت Qdrant استفاده می‌شود.
  • Sticky Notes: چندین یادداشت چسبان زمینه در مورد کلاس‌های محصول، استفاده از متغیرهای Qdrant، تعاریف مرکز خوشه/آستانه و مروری بر فرآیند تشخیص ناهنجاری ارائه می‌دهند.

---

۲. تولید جاسازی

این بلوک بر تبدیل تصویر ورودی به یک نمایش برداری عددی (جاسازی) مناسب برای مقایسه‌های شباهت تمرکز دارد.

گره‌ها (Nodes):

  • Generate Image Embedding: URL تصویر ورودی را به API جاسازی‌های چندوجهی Voyage AI (مدل voyage-multimodal-3) ارسال می‌کند تا یک جاسازی برداری تولید کند.
  • Sticky Note: هدف و فرآیند تولید جاسازی‌های تصویر را توضیح می‌دهد.

---

۳. جستجوی شباهت Qdrant

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

گره‌ها (Nodes):

  • Query Medoid Similarity: یک جستجوی شباهت در مجموعه Qdrant انجام می‌دهد. از جاسازی تصویر ورودی برای یافتن limit تعداد نزدیک‌ترین همسایگان که به عنوان مدوید (is_medoid: true) شناسایی شده‌اند، استفاده می‌کند. جستجو همچنین داده‌های بار برای هر نقطه مطابق را بازیابی می‌کند که شامل امتیاز شباهت و مقدار آستانه است.
  • Sticky Note: عملکرد این جستجو را در یافتن شباهت به مراکز خوشه شرح می‌دهد.

---

۴. مقایسه امتیاز و تعیین ناهنجاری

بلوک نهایی امتیازات شباهت به دست آمده از Qdrant را تجزیه و تحلیل می‌کند تا تصمیم بگیرد که آیا تصویر ورودی ناهنجار است یا خیر.

گره‌ها (Nodes):

  • Compare Similarity Scores: این گره کد پایتون از طریق نقاط مدوید بازگردانده شده توسط جستجوی Qdrant تکرار می‌کند. برای هر مدوید، امتیاز شباهت آن را با مقدار آستانه ذخیره شده (is_medoid_cluster_threshold) مقایسه می‌کند.

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

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

* گره یک شیء JSON حاوی کلید result با یک پیام توصیفی که نشان می‌دهد آیا ناهنجاری تشخیص داده شده است یا تصویر به کدام کلاس محصول شباهت بیشتری دارد، خروجی می‌دهد.

---

جدول خلاصه

نام گره (Node Name)نوع گره (Node Type)نقش عملکردیگره(های) ورودی (Input Node(s))گره(های) خروجی (Output Node(s))یادداشت‌ها (Notes)
Execute Workflow TriggerExecute Workflow Triggerدریافت imageURL ورودیNoneSet Image URLنقطه ورود برای گردش کار.
Set Image URLSetاستخراج و تنظیم URL تصویر ورودیExecute Workflow TriggerSet Qdrant Variables
Set Qdrant VariablesSetپیکربندی اتصال Qdrant و کلیدهای شناسایی خوشهSet Image URLGet Qdrant Point Countبرای راه‌اندازی Qdrant به کاتالوگ Axeto.ai مراجعه کنید.
Get Qdrant Point CountHTTP Requestبازیابی تعداد کل نقاط در مجموعه QdrantSet Qdrant VariablesGet Crop Class Facets
Get Crop Class FacetsHTTP Requestشمارش نقاط بر اساس نام محصول با استفاده از facetهای QdrantGet Qdrant Point CountCalculate Number of Crop Classes
Calculate Number of Crop ClassesSetتعیین تعداد کلاس‌های محصول (cropsNumber)Get Crop Class FacetsGenerate Image Embeddingبرای محدود کردن جستجوی شباهت Qdrant استفاده می‌شود.
Generate Image EmbeddingHTTP Requestایجاد جاسازی برداری برای URL تصویر ورودیCalculate Number of Crop ClassesQuery Medoid Similarityاز API جاسازی‌های چندوجهی Voyage AI استفاده می‌کند.
Query Medoid SimilarityHTTP Requestجستجو در Qdrant برای امتیازات شباهت در برابر مدویدهای خوشهGenerate Image EmbeddingCompare Similarity Scoresنقاط مدوید و امتیازات شباهت و آستانه‌های مرتبط با آن‌ها را بازیابی می‌کند.
Compare Similarity ScoresCode (Python)تجزیه و تحلیل امتیازات در برابر آستانه‌ها برای تشخیص ناهنجاری‌هاQuery Medoid SimilarityOutputوضعیت ناهنجاری را بر اساس مقایسه امتیاز-آستانه تعیین می‌کند.

Nodeهای استفاده‌شده

سوالات متداول

این گردش کار چگونه ناهنجاری‌ها را در تصاویر محصولات کشاورزی تشخیص می‌دهد؟

این گردش کار با تبدیل تصاویر به نمایش‌های برداری (جاسازی) با استفاده از Voyage AI و سپس مقایسه این جاسازی‌ها با مدویدهای خوشه‌های از پیش تعریف شده در پایگاه داده برداری Qdrant، ناهنجاری‌ها را تشخیص می‌دهد. اگر تصویر ورودی به طور قابل توجهی با هیچ یک از خوشه‌های شناخته شده مطابقت نداشته باشد، به عنوان ناهنجار علامت‌گذاری می‌شود.

نقش Qdrant در این گردش کار چیست؟

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

چه چیزی باعث می‌شود یک تصویر به عنوان ناهنجار در نظر گرفته شود؟

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

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.