استخدام الذكاء الاصطناعي البصري لتسريع توصيف الصور والفيديو
أعدّ كشف الأجسام المدعوم بالذكاء الاصطناعي والتوصيف المسبق والتصنيف لمهام الصور والفيديو مع YOLO وOllama وOpenAI وClaude.
استخدام الذكاء الاصطناعي البصري لتسريع توصيف الصور والفيديو
يقدم Potato 2.1 دعم الذكاء الاصطناعي البصري الذي يجلب المساعدة المدعومة بالذكاء الاصطناعي مباشرة إلى سير عمل توصيف الصور والفيديو. بدلاً من توصيف كل مربع إحاطة من الصفر، يمكنك جعل YOLO يكشف الأجسام تلقائياً ثم مراجعة اقتراحاته، أو اطلب من نموذج رؤية-لغة تصنيف الصور وشرح استدلاله.
يرشدك هذا الدليل خلال إعداد كل نقطة نهاية للذكاء الاصطناعي البصري، وإعداد أوضاع المساعدة المختلفة، والجمع بين الذكاء الاصطناعي البصري وميزات الذكاء الاصطناعي النصية في Potato.
ما ستتعلمه
- إعداد YOLO لكشف الأجسام المحلي السريع
- تشغيل نماذج Ollama Vision للفهم المحلي للصور
- استخدام واجهات OpenAI وAnthropic السحابية للرؤية
- إعداد أوضاع الكشف والتوصيف المسبق والتصنيف والتلميحات
- الجمع بين نقاط نهاية الذكاء الاصطناعي البصري والنصي في مشروع واحد
- سير عمل القبول/الرفض لمراجعة اقتراحات الذكاء الاصطناعي
المتطلبات الأساسية
ستحتاج Potato 2.1.0 أو أحدث:
pip install --upgrade potato-annotationوحسب نقطة النهاية التي تختارها، ستحتاج أحد هذه:
- YOLO:
pip install ultralytics opencv-python - Ollama: ثبّت من ollama.ai واسحب نموذج رؤية
- OpenAI: مفتاح API مع وصول إلى GPT-4o
- Anthropic: مفتاح API مع وصول إلى نماذج رؤية Claude
الخيار 1: YOLO لكشف الأجسام
YOLO هو الخيار الأفضل عندما تحتاج كشف مربعات إحاطة سريع ودقيق يعمل بالكامل على جهازك المحلي. يتميز بكشف الأجسام الشائعة (أشخاص، سيارات، حيوانات، أثاث) ويمكنه معالجة الصور في ميلي ثوانٍ.
الإعداد
pip install ultralytics opencv-pythonالإعدادات
annotation_task_name: "Object Detection with YOLO"
data_files:
- data/images.json
item_properties:
id_key: id
text_key: image_url
instance_display:
fields:
- key: image_url
type: image
display_options:
max_width: 800
zoomable: true
annotation_schemes:
- annotation_type: image_annotation
name: objects
description: "Detect and label objects"
source_field: "image_url"
tools:
- bbox
labels:
- name: "person"
color: "#FF6B6B"
- name: "car"
color: "#4ECDC4"
- name: "dog"
color: "#45B7D1"
- name: "cat"
color: "#96CEB4"
ai_support:
enabled: true
features:
detection: true
pre_annotate: true
hint: true
ai_support:
enabled: true
endpoint_type: "yolo"
ai_config:
model: "yolov8m.pt"
confidence_threshold: 0.5
iou_threshold: 0.45
output_annotation_dir: "annotation_output/"
user_config:
allow_all_users: trueتنسيق البيانات
أنشئ data/images.json بتنسيق JSONL (كائن JSON واحد لكل سطر):
{"id": "img_001", "image_url": "images/street_scene_1.jpg"}
{"id": "img_002", "image_url": "images/park_photo.jpg"}
{"id": "img_003", "image_url": "https://example.com/images/office.jpg"}اختيار نموذج YOLO
| النموذج | الحجم | السرعة | الدقة | الأفضل لـ |
|---|---|---|---|---|
yolov8n.pt | 6 MB | الأسرع | أقل | نماذج أولية سريعة |
yolov8s.pt | 22 MB | سريع | جيد | أعباء عمل متوازنة |
yolov8m.pt | 50 MB | متوسط | أفضل | استخدام عام |
yolov8l.pt | 84 MB | أبطأ | عالٍ | عندما تهم الدقة |
yolov8x.pt | 131 MB | الأبطأ | الأعلى | أقصى دقة |
لكشف أجسام ليست في فئات YOLO المدمجة، استخدم YOLO-World للكشف بمفردات مفتوحة:
ai_config:
model: "yolo-world"
confidence_threshold: 0.3ضبط الكشف
إذا كان YOLO يفوّت أجساماً، خفّض عتبة الثقة:
ai_config:
confidence_threshold: 0.3 # More detections, more false positivesإذا كنت تحصل على إيجابيات كاذبة كثيرة، ارفعها:
ai_config:
confidence_threshold: 0.7 # Fewer detections, higher precisionالخيار 2: Ollama Vision لنماذج الرؤية المحلية
يمنحك Ollama Vision قوة نماذج الرؤية واللغة محلياً. بخلاف YOLO، يمكن لهذه النماذج فهم سياق الصورة وتصنيف المشاهد وإنشاء تفسيرات نصية -- كل ذلك بدون إرسال البيانات لواجهة سحابية.
الإعداد
# Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# Pull a vision model
ollama pull llava
# Or for better performance:
ollama pull qwen2.5-vl:7bالإعدادات
annotation_task_name: "Image Classification with Ollama Vision"
data_files:
- data/images.json
item_properties:
id_key: id
text_key: image_url
instance_display:
fields:
- key: image_url
type: image
display_options:
max_width: 600
zoomable: true
annotation_schemes:
- annotation_type: radio
name: scene_type
description: "What type of scene is shown?"
labels:
- indoor
- outdoor_urban
- outdoor_nature
- aerial
- underwater
ai_support:
enabled: true
features:
hint: true
classification: true
ai_support:
enabled: true
endpoint_type: "ollama_vision"
ai_config:
model: "llava:latest"
base_url: "http://localhost:11434"
max_tokens: 500
temperature: 0.1
output_annotation_dir: "annotation_output/"
user_config:
allow_all_users: trueالنماذج المدعومة
| النموذج | المعاملات | نقاط القوة |
|---|---|---|
llava:7b | 7B | سريع، فهم عام جيد |
llava:13b | 13B | دقة أفضل |
llava-llama3 | 8B | استدلال قوي |
bakllava | 7B | تفاصيل بصرية جيدة |
llama3.2-vision:11b | 11B | أحدث رؤية Llama |
qwen2.5-vl:7b | 7B | متعدد اللغات + رؤية قوية |
moondream | 1.8B | سريع جداً، خفيف |
الخيار 3: OpenAI Vision
يوفر OpenAI Vision فهم صور عالي الجودة من خلال GPT-4o. الأفضل عندما تحتاج لأقوى نموذج رؤية ولا تمانع تكاليف واجهة السحابة.
الإعدادات
ai_support:
enabled: true
endpoint_type: "openai_vision"
ai_config:
api_key: "${OPENAI_API_KEY}"
model: "gpt-4o"
max_tokens: 1000
detail: "auto" # "low" for faster/cheaper, "high" for detailعيّن مفتاح API:
export OPENAI_API_KEY="sk-..."معامل detail يتحكم في دقة الصورة المرسلة للواجهة:
low-- أسرع وأرخص، جيد للتصنيفhigh-- دقة كاملة، أفضل لإيجاد أجسام صغيرةauto-- دع الواجهة تقرر
الخيار 4: Anthropic Vision
قدرات رؤية Claude قوية في فهم سياق الصورة وتقديم تفسيرات مفصلة.
الإعدادات
ai_support:
enabled: true
endpoint_type: "anthropic_vision"
ai_config:
api_key: "${ANTHROPIC_API_KEY}"
model: "claude-sonnet-4-20250514"
max_tokens: 1024export ANTHROPIC_API_KEY="sk-ant-..."أوضاع المساعدة بالذكاء الاصطناعي
تدعم كل نقطة نهاية للذكاء الاصطناعي البصري أوضاع مساعدة مختلفة. فعّل فقط ما تحتاجه لكل مخطط توصيف.
وضع الكشف
يجد الأجسام المطابقة لتسمياتك المُعدّة ويعرضها كتراكبات مربعات إحاطة متقطعة:
ai_support:
enabled: true
features:
detection: trueينقر المُوصِّف "كشف"، وتظهر اقتراحات الذكاء الاصطناعي كتراكبات متقطعة على الصورة. نقر مزدوج للقبول، نقر يمين للرفض.
وضع التوصيف المسبق (تلقائي)
يكشف تلقائياً جميع الأجسام وينشئ اقتراحات في مسح واحد. الأفضل لبدء مجموعات البيانات الكبيرة:
ai_support:
enabled: true
features:
pre_annotate: trueوضع التصنيف
يصنّف منطقة محددة أو الصورة بأكملها، مُعيداً تسمية مقترحة مع درجة ثقة:
ai_support:
enabled: true
features:
classification: trueوضع التلميحات
يقدم نص إرشادي دون الكشف عن الإجابة. جيد لتدريب المُوصِّفين الجدد:
ai_support:
enabled: true
features:
hint: trueسير عمل القبول/الرفض
عندما ينقر المُوصِّف زر مساعدة ذكاء اصطناعي، تظهر الاقتراحات كتراكبات متقطعة:
- قبول اقتراح -- نقر مزدوج على التراكب المتقطع لتحويله إلى توصيف حقيقي
- رفض اقتراح -- نقر يمين على التراكب لإلغائه
- قبول الكل -- انقر "قبول الكل" في شريط الأدوات لقبول كل اقتراح دفعة واحدة
- مسح الكل -- انقر "مسح" لإلغاء جميع الاقتراحات
هذا يبقي المُوصِّفين في السيطرة مع تقليل العمل اليدوي لرسم المربعات من الصفر.
توصيف الفيديو مع الذكاء الاصطناعي البصري
يعمل الذكاء الاصطناعي البصري أيضاً مع مهام توصيف الفيديو. يمكنك تفعيل كشف المشاهد وكشف الإطارات المفتاحية وتتبع الأجسام:
annotation_schemes:
- annotation_type: video_annotation
name: scenes
description: "Segment this video into scenes"
mode: segment
labels:
- name: "intro"
color: "#4ECDC4"
- name: "main_content"
color: "#FF6B6B"
- name: "outro"
color: "#45B7D1"
ai_support:
enabled: true
features:
scene_detection: true
pre_annotate: true
hint: true
ai_support:
enabled: true
endpoint_type: "ollama_vision"
ai_config:
model: "llava:latest"
max_frames: 10 # Number of frames to sampleمعامل max_frames يتحكم في عدد الإطارات التي يأخذها الذكاء الاصطناعي من الفيديو للتحليل. إطارات أكثر تعني دقة أفضل لكن معالجة أبطأ.
الجمع بين نقاط نهاية الذكاء الاصطناعي البصري والنصي
إذا كان مشروعك يحتوي على توصيف نصي وصوري، يمكنك إعداد نقاط نهاية منفصلة لكل منهما. استخدم نموذجاً محسّناً للنص للتلميحات والكلمات المفتاحية، ونموذج رؤية للكشف:
ai_support:
enabled: true
# Text AI for radio buttons, text schemes, etc.
endpoint_type: "ollama"
ai_config:
model: "llama3.2"
include:
all: true
# Visual AI for image/video schemes
visual_endpoint_type: "yolo"
visual_ai_config:
model: "yolov8m.pt"
confidence_threshold: 0.5أو استخدم نموذج رؤية سحابي إلى جانب نموذج نص محلي:
ai_support:
enabled: true
endpoint_type: "ollama"
visual_endpoint_type: "openai_vision"
ai_config:
model: "llama3.2"
visual_ai_config:
api_key: "${OPENAI_API_KEY}"
model: "gpt-4o"مثال كامل: توصيف صور المنتجات
إليك إعداداً جاهزاً للإنتاج لتوصيف صور المنتجات مع كشف YOLO وتلميحات ذكاء اصطناعي نصية:
annotation_task_name: "Product Photo Annotation"
data_files:
- data/product_photos.json
item_properties:
id_key: sku
text_key: photo_url
instance_display:
layout:
direction: horizontal
gap: 24px
fields:
- key: photo_url
type: image
label: "Product Photo"
display_options:
max_width: 600
zoomable: true
- key: product_description
type: text
label: "Product Details"
annotation_schemes:
- annotation_type: image_annotation
name: product_regions
description: "Draw boxes around products and defects"
source_field: "photo_url"
tools:
- bbox
labels:
- name: "product"
color: "#4ECDC4"
- name: "defect"
color: "#FF6B6B"
- name: "label"
color: "#45B7D1"
- name: "packaging"
color: "#96CEB4"
ai_support:
enabled: true
features:
detection: true
pre_annotate: true
- annotation_type: radio
name: photo_quality
description: "Is this photo suitable for the product listing?"
labels:
- Approved
- Needs editing
- Reshoot required
- annotation_type: multiselect
name: quality_issues
description: "Select any issues present"
labels:
- Blurry
- Poor lighting
- Wrong angle
- Background clutter
- Color inaccurate
ai_support:
enabled: true
endpoint_type: "ollama"
visual_endpoint_type: "yolo"
ai_config:
model: "llama3.2"
include:
all: true
visual_ai_config:
model: "yolov8m.pt"
confidence_threshold: 0.5
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
user_config:
allow_all_users: trueبيانات العيّنة (data/product_photos.json):
{"sku": "SKU-001", "photo_url": "images/products/laptop_front.jpg", "product_description": "15-inch laptop, silver finish"}
{"sku": "SKU-002", "photo_url": "images/products/headphones_side.jpg", "product_description": "Over-ear wireless headphones, black"}
{"sku": "SKU-003", "photo_url": "images/products/backpack_full.jpg", "product_description": "40L hiking backpack, navy blue"}نصائح لتوصيف الذكاء الاصطناعي البصري
- ابدأ بالتوصيف المسبق لمجموعات البيانات الكبيرة -- استخدم زر التلقائي لإنشاء اقتراحات لجميع الأجسام، ثم اجعل المُوصِّفين يراجعون ويصححون بدلاً من الرسم من الصفر
- طابق نقطة النهاية مع مهمتك -- YOLO للكشف الدقيق، نماذج الرؤية واللغة للتصنيف والفهم
- اضبط عتبات الثقة -- ابدأ عند 0.5 واضبط بناءً على مقايضة الإيجابيات/السلبيات الكاذبة التي تراها
- استخدم التلميحات لتدريب المُوصِّفين -- وضع التلميحات يرشد المُوصِّفين دون تحيزهم نحو إجابة محددة
- ادمج نقاط النهاية -- نقطة نهاية بصرية YOLO للكشف مع نقطة نهاية نصية Ollama للتلميحات تمنحك أفضل ما في العالمين
- خزّن نتائج الذكاء الاصطناعي مؤقتاً -- فعّل التخزين على القرص لتجنب إعادة تشغيل الكشف على نفس الصور
استكشاف الأخطاء وإصلاحها
"لم يتم إعداد نقطة نهاية ذكاء اصطناعي بصري"
تأكد من أن ai_support.enabled هو true وأنك عيّنت endpoint_type يدعم الرؤية: yolo أو ollama_vision أو openai_vision أو anthropic_vision.
YOLO لا يكشف أجسامك
فئات YOLO المدمجة تغطي 80 جسماً شائعاً. إذا لم تطابق تسمياتك أسماء فئات YOLO، جرّب YOLO-World للكشف بمفردات مفتوحة، أو خفّض confidence_threshold.
Ollama يُرجع أخطاء
تحقق من أن Ollama يعمل وأنك سحبت نموذج رؤية:
curl http://localhost:11434/api/tags # Check Ollama is running
ollama list # Check installed modelsاستجابة بطيئة من واجهات السحابة
فعّل التخزين المؤقت حتى لا تُحلل نفس الصورة مرتين:
ai_support:
cache_config:
disk_cache:
enabled: true
path: "ai_cache/visual_cache.json"الخطوات التالية
- اقرأ توثيق دعم الذكاء الاصطناعي البصري الكامل لتفاصيل مرجع الواجهة
- أعدّ عرض النماذج لعرض الصور إلى جانب أنواع محتوى أخرى
- استكشف دعم الذكاء الاصطناعي النصي للتلميحات وتمييز الكلمات المفتاحية
التوثيق الكامل في /docs/features/visual-ai-support.