مقدمه
تشخیص ناهنجاری تصاویر با n8n :
N8Nابزاری است که به کمک آن می توانید در مدتزمان کوتاهی، فرایندهای خود را با هوش مصنوعی خودکار کنید و از مزایای اتوماسیون هوشمند بهره مند شوید.
N8N برای چه کسب و کارهایی مناسب است:
اگر سازمان شما کوچک می باشد و هم اکنون بسیاری از کار های خود را با نرم افزار هایی همچون اکسل انجام می دهید، N8N برای کسب و کار شما ایده آل است و در صورتی که کسب و کاری متوسط یا بزرگ دارید می توانید بخش های بسیاری از فرایند های غیر کلیدی خود را با این ابزار هوشمند کنید.
اگر به پیادهسازی اختصاصی، اتصال n8n به نرمافزارهای سازمانی یا سفارشیسازی Workflowها متناسب با کسبوکارتان نیاز دارید، Danix با بررسی نیازهای کسبوکار شما، میتواند این فرایند را از طراحی تا استقرار برای شما انجام دهیم.
همچنین اگر ترجیح میدهید شخصاً نصب و راهاندازی را انجام دهید، میتوانید از اطلاعات موجود در مقالات، دسته N8N استفاده کنید .همچنین می توانید template موجود در این workflow را به صورت رایگان از این قسمت دانلود کنید.
تشخیص ناهنجاری تصاویر با n8n
تشخیص ناهنجاری تصاویر با n8n یکی از کاربردهای نوین و پردرآمد هوش مصنوعی در حوزه کشاورزی و بینایی ماشین است. در بسیاری از سیستمهای خودکار، از خط تولید کارخانهها گرفته تا پلتفرمهای تحلیل تصویر ماهوارهای، نیاز به شناسایی تصاویری وجود دارد که از الگوی عادی خارج باشند. در صنعت کشاورزی، این قابلیت میتواند به شناسایی آفات، بیماریهای گیاهی، آلودگی بذر و حتی تقلب در فروش محصولات کمک کند.
این Workflow یک ابزار تشخیص ناهنجاری تصاویر با n8n است که تصویر هر محصول کشاورزی را دریافت کرده، بردارهای توصیفی آن را با استفاده از مدل Voyage Multimodal تولید میکند و سپس شباهت آن تصویر را با مراکز خوشههای ذخیرهشده در پایگاه داده برداری Qdrant مقایسه میکند. اگر تصویر از تمام آستانههای تعریفشده پایینتر باشد، بهعنوان ناهنجار (anomaly) شناسایی میشود.
در این مقاله، نحوه کارکرد این Workflow، تمام Nodeها، تنظیمات و روش شخصیسازی آن بهصورت کامل آموزش داده میشود.
قبل از شروع
اگر هنوز n8n را نصب نکردهاید، پیشنهاد میکنیم ابتدا مقاله «آموزش n8n» را مطالعه کنید. در آن مقاله، مراحل نصب با Node.js و Docker، راهاندازی اولیه و ساخت اولین Workflow بهصورت کامل آموزش داده شده است. پس از نصب و راهاندازی، به این مقاله بازگردید و مراحل پیادهسازی این Workflow را دنبال کنید.
این Workflow چه کاری انجام میدهد؟
توضیح کلی عملکرد
این Workflow بهعنوان یک ابزار مستقل (Tool) عمل میکند و از Workflowهای دیگر فراخوانی میشود. ورودی آن یک URL تصویر از یک محصول کشاورزی است. تصویر ابتدا با Voyage AI embedding تبدیل به بردار میشود، سپس شباهت آن بردار با مراکز خوشههای شناختهشده در Qdrant بررسی میگردد. در نهایت یک پیام متنی برمیگرداند که آیا تصویر به یکی از محصولات شناختهشده شبیه است یا ناهنجار محسوب میشود.
نقش در مجموعه سهمرحلهای
این Workflow مرحله سوم از یک فرآیند سهمرحلهای است. مرحله اول بارگذاری تصاویر محصولات به Qdrant، مرحله دوم تنظیم مراکز خوشهها و آستانهها و مرحله سوم ابزار تشخیص ناهنجاری است.
کاربردهای تشخیص ناهنجاری تصاویر با n8n
این Workflow پایهای قدرتمند برای سناریوهای متنوعی است:
- کنترل کیفیت در خط تولید: تشخیص محصولات معیوب یا آلوده در خطوط بستهبندی و فرآوری محصولات کشاورزی.
- تشخیص آفت و بیماری گیاهی: مقایسه تصاویر برگها و میوهها با تصاویر سالم ذخیرهشده و شناسایی موارد غیرعادی.
- نظارت بر انبارها: اسکن خودکار تصاویر دوربینهای مداربسته انبار برای شناسایی محصولات نامناسب.
- تحلیل تصاویر ماهوارهای: کشف مناطق غیرعادی در مزارع از تصاویر هوایی.
- پلتفرمهای تجارت الکترونیک: بررسی خودکار تصاویر آپلودشده توسط فروشندگان برای تشخیص محصولات نامرتبط.
- تحقیقات علمی: پایش خودکار تصاویر نمونههای گیاهی در آزمایشگاهها و مزارع تحقیقاتی.
پیشنیازها
- نصب n8n: نسخه پایدار n8n با قابلیت اجرای Python Code.
- برای استفاده از Voyage AI، یک حساب کاربری ایجاد کرده و API Key دریافت کنید.
- در Qdrant Cloud نیز یک کلاستر ایجاد کنید (پلن Free Tier کافی است).
- سپس یک Credential از نوع HTTP Header Auth با نام “Voyage API” در n8n بسازید.
- همچنین یک Credential از نوع Qdrant API با نام “QdrantApi account” پیکربندی کنید.
- در نهایت، مجموعه دادههای تصویری محصولات کشاورزی را از طریق Workflow اول در Qdrant بارگذاری کنید.
دانلود Template
فایل JSON این Workflow را از این قسمت دانلود کنید.
رمز فایل:danixai.com
آموزش Import کردن Workflow
- وارد داشبورد n8n شوید.
- روی Import from File کلیک کنید.
- فایل JSON را انتخاب کنید.
- Workflow ایجاد خواهد شد.
- Credentialهای موردنیاز را تنظیم کنید.
ساختار Workflow تشخیص ناهنجاری تصاویر با n8n
جریان اجرایی
Execute Workflow Trigger
↓
Image URL hardcode
↓
Variables for medoids
↓
Total Points in Collection
↓
Each Crop Counts
↓
Info About Crop Labeled Clusters
↓
Embed image
↓
Get similarity of medoids
↓
Compare scores
اجرای Workflow با Node Execute Workflow Trigger آغاز میشود و آدرس تصویر را دریافت میکند. در مرحله بعد، متغیرهای مورد نیاز برای اتصال به Qdrant تنظیم میشوند. سپس سه Node ابتدایی تعداد کلاسهای مختلف محصولات را از پایگاه داده استخراج میکنند. در ادامه، تصویر به بردار embedding تبدیل شده و میزان شباهت آن با مراکز خوشهها مورد ارزیابی قرار میگیرد.
آموزش کامل تمام Nodeها
Execute Workflow Trigger
- وظیفه: نقطه شروع Workflow که از یک Workflow دیگر فراخوانی میشود.
- ورودی: دادههای ارسالی از Workflow فراخواننده شامل
imageURL. - خروجی: شیء JSON شامل آدرس تصویر.
- تنظیمات مهم: این Node تنظیمات اضافی ندارد. تنها مسیر دریافت داده را تعریف میکند.
- نکات قابل تغییر: در محیط تست میتوانید دادههای Pin شده در Workflow را برای شبیهسازی اجرا استفاده کنید.
- دلیل استفاده: این Workflow بهعنوان Tool در فرآیندهای بزرگتر فراخوانی میشود و Execute Workflow Trigger نقطه ورود استاندارد n8n برای این سناریو است.
Image URL hardcode
- وظیفه: استخراج و ذخیره آدرس تصویر از ورودی Workflow در یک فیلد مشخص.
- ورودی: خروجی Execute Workflow Trigger.
- خروجی: شیء JSON با فیلد
imageURL. - تنظیمات مهم: از نوع Set node استفاده شده و فیلد
imageURLاز$json.query.imageURLاستخراج میشود. - نکات قابل تغییر: اگر ساختار ورودی تغییر کند، مسیر فیلد باید بهروزرسانی شود.
- دلیل استفاده: جداسازی ورودی در یک Node مجزا خوانایی و دیباگ Workflow را آسانتر میکند.
Variables for medoids
- وظیفه: تعریف تمام متغیرهای مورد نیاز برای اتصال و پرسوجو از Qdrant.
- ورودی: خروجی Image URL hardcode.
- خروجی: شیء JSON شامل چهار متغیر:
clusterCenterType،qdrantCloudURL،collectionNameوclusterThresholdCenterType. - تنظیمات مهم: آدرس Qdrant Cloud، نام collection و فیلدهای مربوط به نوع مرکز خوشه در اینجا تنظیم میشوند.
- نکات قابل تغییر: آدرس URL کلاستر Qdrant و نام collection باید با محیط شما مطابقت داشته باشد. همچنین میتوانید بین
is_medoidوis_text_anchor_medoidیکی را انتخاب کنید. - دلیل استفاده: متمرکز کردن متغیرها در یک Node مجزا باعث میشود تغییرات بعدی تنها در یک نقطه اعمال شوند.
Total Points in Collection
- وظیفه: دریافت تعداد کل نقاط ذخیرهشده در collection مربوطه در Qdrant.
- ورودی: خروجی Variables for medoids.
- خروجی: شیء JSON شامل شماره تعداد کل نقاط.
- تنظیمات مهم: درخواست POST به endpoint
/collections/{name}/points/countبا پارامترexact: trueارسال میشود. - نکات قابل تغییر: در صورت نیاز میتوانید
exactرا false تنظیم کنید تا سرعت دریافت بالاتر برود. - دلیل استفاده: دانستن تعداد کل نقاط برای محاسبه مقدار
limitدر درخواستهای بعدی ضروری است.
Each Crop Counts
- وظیفه: دریافت تعداد نمونههای هر نوع محصول (crop) از collection با استفاده از API Facet.
- ورودی: خروجی Total Points in Collection.
- خروجی: لیستی از تمام محصولات کشاورزی موجود در Qdrant بههمراه تعداد نمونههای هر کدام.
- تنظیمات مهم: درخواست POST به endpoint
/facetبا فیلدcrop_nameو مقدارlimitبرابر تعداد کل نقاط. - نکات قابل تغییر: اگر نام فیلد دستهبندی در collection شما متفاوت است، مقدار
keyرا تغییر دهید. - دلیل استفاده: شناسایی دقیق تعداد کلاسهای مختلف برای تعیین limit درخواست شباهتسنجی لازم است.
Info About Crop Labeled Clusters
- وظیفه: محاسبه تعداد کل کلاسهای محصولات از خروжی Each Crop Counts.
- ورودی: خروجی Each Crop Counts.
- خروجی: شیء JSON با فیلد
cropsNumber. - تنظیمات مهم: مقدار
cropsNumberبرابر تعداد hitهای دریافتی از Qdrant است. - نکات قابل تغییر: این مقدار بهصورت خودکار محاسبه میشود و نیازی به تغییر دستی ندارد.
- دلیل استفاده: این عدد بهعنوان limit در درخواست شباهتسنجی استفاده میشود تا شباهت با تمام مراکز خوشهها مقایسه گردد.
Embed image
- وظیفه: تبدیل تصویر ورودی به بردار توصیفی (embedding) با استفاده از مدل Voyage Multimodal.
- ورودی: خروجی Info About Crop Labeled Clusters و تصویر URL از Nodeهای قبلی.
- خروجی: شیء JSON شامل بردار embedding تولید شده.
- تنظیمات مهم: درخواست POST به
https://api.voyageai.com/v1/multimodalembeddingsبا مدلvoyage-multimodal-3ارسال میشود. هدر احراز هویت از Credential “Voyage API” استفاده میکند. - نکات قابل تغییر: مدل embedding را میتوانید به سایر مدلهای Voyage AI تغییر دهید. همچنین فیلد
input_typeرا میتوانید بهimageتغییر دهید اگر فقط تصویر دارید. - دلیل استفاده: Voyage AI یکی از بهترین مدلهای Multimodal Embedding است که تصاویر را به بردارهای عددی تبدیل میکند تا قابل مقایسه باشند.
آشنایی با Voyage AI: Voyage AI یک پلتفرم ارائهدهنده مدلهای embedding است که مدلهای متنی و چندرسانهای با کیفیت بالا ارائه میدهد. مدل voyage-multimodal-3 قادر است تصاویر را به بردارهای توصیفی تبدیل کند و برای تسکهایی مانند جستجوی تصویر، مقایسه و تشخیص ناهنجاری بسیار مناسب است.
Get similarity of medoids
- وظیفه: مقایسه بردار embedding تصویر با مراکز خوشههای ذخیرهشده در Qdrant و محاسبه میزان شباهت با هر یک از آنها.
- ورودی: خروجی Node Embed image شامل بردار embedding تصویر.
- خروجی: فهرستی از مراکز خوشه بههمراه امتیاز شباهت (Similarity Score) هر کدام.
- تنظیمات مهم: درخواست
POSTبه endpoint/points/queryدر Qdrant ارسال میشود. با استفاده از فیلترis_medoid: trueتنها مراکز خوشه در نتایج جستجو برگردانده میشوند. - نکات قابل تغییر: مقدار
limitبهصورت خودکار بر اساس تعداد کلاسها تعیین میشود، اما در صورت نیاز میتوان آن را بهصورت دستی تغییر داد. همچنین مقدار فیلدusingباید با نام وکتور ذخیرهشده در Qdrant یکسان باشد. - دلیل استفاده: این Node با مقایسه embedding تصویر و مراکز خوشه، نزدیکترین کلاس را شناسایی میکند و امتیازهای شباهت مورد نیاز برای تصمیمگیری نهایی درباره ناهنجار بودن یا نبودن تصویر را در اختیار Node بعدی قرار میدهد.
- آشنایی با Qdrant Cloud: Qdrant یک پایگاه داده برداری متنباز است که برای ذخیره و جستجوی بردارهای embedding طراحی شده است. نسخه Qdrant Cloud بدون نیاز به راهاندازی زیرساخت اختصاصی، امکاناتی مانند جستجوی شباهت، فیلترگذاری پیشرفته و مدیریت Collectionها را در بستر ابری ارائه میدهد و حتی با پلن رایگان نیز قابل استفاده است.
Compare scores
- وظیفه: مقایسه امتیازات شباهت با آستانههای تعریفشده و تعیین نهایی ناهنجار بودن تصویر.
- ورودی: خروجی Get similarity of medoids.
- خروجی: پیام متنی شامل نتیجه تشخیص.
- تنظیمات مهم: کد پایتون در این Node اجرا میشود. حداکثر امتیاز شباهت با آستانه مربوطه مقایسه میگردد. اگر هیچ مرکز خوشهای امتیازی بالاتر از آستانه خود نداشته باشد، تصویر ناهنجار تشخیص داده میشود.
- نکات قابل تغییر: شرط مقایسه (
>=یا>) و مقدار آستانهها قابل تغییر هستند. میتوانید لاگهای بیشتری برای دیباگ اضافه کنید. - دلیل استفاده: این Node قلب منطق تصمیمگیری Workflow است و تعیین میکند تصویر در چه دستهای قرار میگیرد.
نحوه شخصیسازی Workflow
مدل AI
مدل embedding بهصورت پیشفرض از voyage-multimodal-3 استفاده میکند، اما امکان جایگزینی آن با سایر مدلهای Voyage AI مانند voyage-3 نیز وجود دارد. در صورت نیاز، میتوان از مدلهای OpenAI مانند text-embedding-3-large نیز برای تولید embedding استفاده کرد.
پایگاه داده برداری
در Node Variables for medoids امکان تغییر آدرس Qdrant Cloud، نام Collection و فیلد دستهبندی وجود دارد. همچنین در صورت استفاده از سرویسهای دیگر، میتوان Qdrant را با پایگاههای داده برداری مانند Pinecone یا Weaviate جایگزین کرد.
Trigger
برای دریافت درخواستهای خارجی، Execute Workflow Trigger را میتوان با Webhook Trigger جایگزین کرد. این تغییر باعث میشود Workflow مستقیماً از طریق درخواست HTTP اجرا شود.
آستانهها
مقادیر آستانه تشخیص ناهنجاری در مراکز خوشههای Qdrant ذخیره میشوند. با تغییر مقدار is_medoid_cluster_threshold میتوان حساسیت سیستم را متناسب با نیاز پروژه افزایش یا کاهش داد.
مسیر اجرای Workflow
ساختار فعلی Workflow بهصورت خطی طراحی شده است. در پروژههای پیچیدهتر، افزودن Nodeهای IF یا Switch امکان ایجاد مسیرهای شرطی و شاخههای مختلف اجرای Workflow را فراهم میکند.
مزایای تشخیص ناهنجاری تصاویر با n8n
- بدون نیاز به زیرساخت ML: تمام محاسبات توسط APIهای خارجی انجام میشود و نیازی به GPU محلی یا مدل آموزشدیده نیست.
- سهولت یکپارچهسازی: قابلیت فراخوانی از Workflowهای دیگر n8n و استفاده بهعنوان Tool.
- مقیاسپذیری: با تغییر اندازه کلاستر Qdrant و limit درخواستها، قابلیت پردازش حجم بالای تصاویر وجود دارد.
- انعطافپذیری بالا: با تغییر collection و مدل embedding، برای هر مجموعه تصویری دیگری قابل استفاده است.
- هزینه پایین: استفاده از پلن Free Tier Qdrant و API pricing مقرونبهصرفه Voyage AI.
- عدم وابستگی به مدل آموزشدیده: سیستم بر اساس شباهتسنجی عمل میکند و نیازی به جمعآوری داده ناهنجار برای آموزش مدل ندارد.
نکات مهم در استفاده از این Workflow
فنی
- Credential Voyage AI باید از نوع HTTP Header Auth باشد و هدر را بهصورت
Authorization: Bearer YOUR_API_KEYتنظیم کنید. - نام فیلد وکتور در Qdrant باید دقیقاً با مقدار فیلد
usingدر درخواست شباهتسنجی مطابقت داشته باشد. - تعداد کلاسهای محصولات باید از Qdrant بهصورت پویا دریافت شود. مقدار
cropsNumberبهصورت خودکار محاسبه میشود. - مدل پایتون مورد نیاز برای اجرای Node Code باید در محیط n8n فعال باشد.
عملکردی و بهینهسازی
- آستانههای تشخیص نقش حیاتی دارند. مقادیر پایین حساسیت بیشتر و False Positive بیشتر و مقادیر بالا False Negative بیشتر ایجاد میکنند.
- برای حجم بالای درخواستها، کلاستر Qdrant خود را ارتقا دهید و از
exact: falseاستفاده کنید. - دادههای Pin شده در Node “Execute Workflow Trigger” فقط برای تست هستند و در محیط Production حذف شوند.
- بخش سوم یک مجموعه سهمرحلهای است. برای استفاده باید Workflow اول و دوم نیز اجرا شده باشند.
خطاهای رایج در تشخیص ناهنجاری تصاویر با n8n
مشکل احراز هویت Voyage AI
- علت: Credential “Voyage API” بهدرستی تنظیم نشده یا API Key منقضی شده است.
- راهحل: Credential را در بخش Credentials n8n بررسی کنید. مطمئن شوید هدر بهصورت صحیح و با فرمت
Authorization: Bearerتنظیم شده.
خطای اتصال به Qdrant Cloud
- علت: آدرس URL کلاستر Qdrant نادرست است یا Credential Qdrant تنظیم نشده.
- راهحل: آدرس URL در Node “Variables for medoids” را با آدرس دقیق کلاستر Qdrant خود مقایسه کنید. Credential Qdrant API را بررسی نمایید.
خروجی خالی از Qdrant
- علت: Collection مربوطه وجود ندارد یا خالی است. ممکن است Workflow اول (بارگذاری داده) اجرا نشده باشد.
- راهحل: ابتدا Workflow اول مجموعه را اجرا کنید تا دادهها در Qdrant بارگذاری شوند. سپس نام collection در متغیرها را تأیید کنید.
خطای پایتون در Compare scores
- علت: ساختار خروجی Qdrant تغییر کرده یا فیلدهای مورد انتظار وجود ندارند.
- راهحل: خروجی Node “Get similarity of medoids” را بررسی کنید و مطمئن شوید فیلدهای
score،payloadوcrop_nameوجود دارند.
تشخیص نادرست ناهنجاری
- علت: آستانههای تشخیص در Qdrant بهینه نیستند یا مدل embedding با نوع تصاویر سازگار نیست.
- راهحل: آستانهها را با مجموعه تصاویر تست اعتبارسنجی کنید و در صورت نیاز مدل embedding را تغییر دهید.
جمعبندی تشخیص ناهنجاری تصاویر با n8n
تشخیص ناهنجاری تصاویر با n8n یک رویکرد نوین و عملی برای شناسایی تصاویر غیرعادی بدون نیاز به زیرساختهای سنگین یادگیری ماشین است. این Workflow با ترکیب Voyage AI برای تولید بردارهای توصیفی و Qdrant Cloud برای جستجوی شباهت، یک سیستم تشخیص سریع و مقیاسپذیر ایجاد میکند. با درک عملکرد هر Node و متغیرهای کلیدی، میتوانید این ابزار را برای هر مجموعه تصویری دیگری سفارشیسازی کنید و در فرآیندهای خودکار سازمان خود ادغام نمایید.
سوالات متداول
عمومی
این Workflow فقط برای تصاویر محصولات کشاورزی کار میکند؟ خیر. این Workflow بهصورت کلی طراحی شده و با جایگزینی collection در Qdrant و مجموعه تصاویر جدید، برای هر نوع تصویری قابل استفاده است.
آیا به GPU یا تجهیزات سختافزاری خاصی نیاز دارم؟ نیازی به GPU یا سختافزار اختصاصی نیست؛ زیرا تمام محاسبات embedding و جستجوی شباهت از طریق APIهای Voyage AI و Qdrant Cloud انجام میشوند.
فنی
ترکیب این Workflow با تصاویر آپلودشده کاربر امکانپذیر است؟ بله. با تغییر Execute Workflow Trigger به Webhook Trigger میتوانید تصاویر را از فرمها یا اپلیکیشنها دریافت کنید.
نحوه ارتقای دقت تشخیص چگونه است؟ آستانههای ذخیرهشده در Qdrant را با مجموعه داده اعتبارسنجی تنظیم کنید و از مدلهای embedding پیشرفتهتر Voyage AI استفاده نمایید.
حداکثر حجم درخواستها قابل پردازش توسط این Workflow چقدر است؟ با پلن Free Tier Qdrant تعداد محدودی درخواست در ثانیه پشتیبانی میشود. برای حجم بالاتر ارتقای کلاستر و کشگذاری embeddings پیشنهاد میشود.



