واجهة برمجة تطبيقات الاستدلال Ultralytics HUB
بعد تدريب النموذج، يمكنك استخدام واجهة برمجة تطبيقات الاستدلال المشتركة مجانًا. إذا كنت مستخدمًا Pro، فيمكنك الوصول إلى واجهة برمجة تطبيقات الاستدلال المخصصة. تتيح لك واجهة برمجة تطبيقات الاستدلال Ultralytics HUB تشغيل الاستدلال من خلال واجهة برمجة تطبيقات REST الخاصة بنا دون الحاجة إلى تثبيت وإعداد بيئة Ultralytics YOLO محليًا.
شاهد: جولة إرشادية لواجهة برمجة تطبيقات الاستدلال Ultralytics HUB
واجهة برمجة تطبيقات الاستدلال المخصصة
استجابة للطلب المتزايد والاهتمام الواسع النطاق، يسعدنا الكشف عن واجهة برمجة تطبيقات الاستدلال المخصصة Ultralytics HUB، التي توفر نشرًا بنقرة واحدة في بيئة مخصصة لمستخدمي Pro!
ملاحظة
يسعدنا أن نقدم هذه الميزة مجانًا خلال النسخة التجريبية العامة كجزء من الخطة الاحترافية، مع إمكانية وجود مستويات مدفوعة في المستقبل.
- تغطية عالمية: يتم النشر عبر 38 منطقة حول العالم، مما يضمن الوصول بزمن انتقال منخفض من أي مكان. اطلع على القائمة الكاملة لمناطق Google Cloud.
- مدعوم من Google Cloud Run: مدعوم من Google Cloud Run، مما يوفر بنية تحتية قابلة للتطوير بلا حدود وموثوقة للغاية.
- سرعة عالية: زمن انتقال أقل من 100 مللي ثانية ممكن لاستدلال YOLOv8n بدقة 640 من المناطق القريبة بناءً على اختبار Ultralytics.
- أمان مُحسَّن: يوفر ميزات أمان قوية لحماية بياناتك وضمان الامتثال لمعايير الصناعة. تعرف على المزيد حول أمان Google Cloud.
لاستخدام واجهة برمجة تطبيقات الاستدلال المخصصة Ultralytics HUB، انقر فوق الزر بدء نقطة النهاية. بعد ذلك، استخدم عنوان URL الفريد لنقطة النهاية كما هو موضح في الأدلة أدناه.
نصيحة
اختر المنطقة ذات الأقل زمن انتقال للحصول على أفضل أداء كما هو موضح في الوثائق.
لإيقاف نقطة النهاية المخصصة، انقر فوق زر إيقاف نقطة النهاية.
واجهة برمجة تطبيقات الاستدلال المشتركة (Shared Inference API)
لاستخدام واجهة برمجة تطبيقات الاستدلال المشتركة Ultralytics HUB، اتبع الأدلة أدناه.
تتمتع واجهة برمجة تطبيقات الاستدلال المشتركة Ultralytics HUB بحدود الاستخدام التالية:
- 100 مكالمة / ساعة
Python
للوصول إلى واجهة برمجة تطبيقات الاستدلال Ultralytics HUB باستخدام Python، استخدم الكود التالي:
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
ملاحظة
استبدل MODEL_ID
مع مُعرّف النموذج المطلوب، API_KEY
مع مفتاح API الفعلي الخاص بك، و path/to/image.jpg
مع مسار الصورة التي تريد تشغيل الاستدلال عليها.
إذا كنت تستخدم واجهة برمجة تطبيقات الاستدلال المخصصة، استبدل الـ url
أيضًا.
cURL
للوصول إلى واجهة برمجة تطبيقات الاستدلال Ultralytics HUB باستخدام cURL، استخدم الكود التالي:
curl -X POST "https://predict.ultralytics.com" \
-H "x-api-key: API_KEY" \
-F "model=https://hub.ultralytics.com/models/MODEL_ID" \
-F "file=@/path/to/image.jpg" \
-F "imgsz=640" \
-F "conf=0.25" \
-F "iou=0.45"
ملاحظة
استبدل MODEL_ID
مع مُعرّف النموذج المطلوب، API_KEY
مع مفتاح API الفعلي الخاص بك، و path/to/image.jpg
مع مسار الصورة التي تريد تشغيل الاستدلال عليها.
إذا كنت تستخدم واجهة برمجة تطبيقات الاستدلال المخصصة، استبدل الـ url
أيضًا.
الوسائط
راجع الجدول أدناه للحصول على قائمة كاملة بحجج الاستدلال المتاحة.
الوسيطة | افتراضي | النوع | الوصف |
---|---|---|---|
file |
file |
ملف صورة أو فيديو لاستخدامه في الاستدلال. | |
imgsz |
640 |
int |
حجم الصورة المدخلة، النطاق الصالح هو 32 - 1280 بكسل. |
conf |
0.25 |
float |
عتبة الثقة للتنبؤات، نطاق صالح 0.01 - 1.0 . |
iou |
0.45 |
float |
التقاطع على الاتحاد عتبة (IoU)، نطاق صالح 0.0 - 0.95 . |
استجابة
تقوم واجهة برمجة تطبيقات الاستدلال Ultralytics HUB بإرجاع استجابة JSON.
التصنيف
نموذج التصنيف
from ultralytics import YOLO
# Load model
model = YOLO("yolov8n-cls.pt")
# Run inference
results = model("image.jpg")
# Print image.jpg results in JSON format
print(results[0].to_json())
curl -X POST "https://predict.ultralytics.com" \
-H "x-api-key: API_KEY" \
-F "model=https://hub.ultralytics.com/models/MODEL_ID" \
-F "file=@/path/to/image.jpg" \
-F "imgsz=640" \
-F "conf=0.25" \
-F "iou=0.45"
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"images": [
{
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92
}
],
"shape": [
750,
600
],
"speed": {
"inference": 200.8,
"postprocess": 0.8,
"preprocess": 2.8
}
}
],
"metadata": ...
}
اكتشاف
نموذج الكشف
from ultralytics import YOLO
# Load model
model = YOLO("yolov8n.pt")
# Run inference
results = model("image.jpg")
# Print image.jpg results in JSON format
print(results[0].to_json())
curl -X POST "https://predict.ultralytics.com" \
-H "x-api-key: API_KEY" \
-F "model=https://hub.ultralytics.com/models/MODEL_ID" \
-F "file=@/path/to/image.jpg" \
-F "imgsz=640" \
-F "conf=0.25" \
-F "iou=0.45"
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"images": [
{
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {
"x1": 118,
"x2": 416,
"y1": 112,
"y2": 660
}
}
],
"shape": [
750,
600
],
"speed": {
"inference": 200.8,
"postprocess": 0.8,
"preprocess": 2.8
}
}
],
"metadata": ...
}
OBB
نموذج OBB
from ultralytics import YOLO
# Load model
model = YOLO("yolov8n-obb.pt")
# Run inference
results = model("image.jpg")
# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://predict.ultralytics.com" \
-H "x-api-key: API_KEY" \
-F "model=https://hub.ultralytics.com/models/MODEL_ID" \
-F "file=@/path/to/image.jpg" \
-F "imgsz=640" \
-F "conf=0.25" \
-F "iou=0.45"
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"images": [
{
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {
"x1": 374.85565,
"x2": 392.31824,
"x3": 412.81805,
"x4": 395.35547,
"y1": 264.40704,
"y2": 267.45728,
"y3": 150.0966,
"y4": 147.04634
}
}
],
"shape": [
750,
600
],
"speed": {
"inference": 200.8,
"postprocess": 0.8,
"preprocess": 2.8
}
}
],
"metadata": ...
}
التجزئة
نموذج التقسيم
from ultralytics import YOLO
# Load model
model = YOLO("yolov8n-seg.pt")
# Run inference
results = model("image.jpg")
# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://predict.ultralytics.com" \
-H "x-api-key: API_KEY" \
-F "model=https://hub.ultralytics.com/models/MODEL_ID" \
-F "file=@/path/to/image.jpg" \
-F "imgsz=640" \
-F "conf=0.25" \
-F "iou=0.45"
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"images": [
{
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {
"x1": 118,
"x2": 416,
"y1": 112,
"y2": 660
},
"segments": {
"x": [
266.015625,
266.015625,
258.984375,
...
],
"y": [
110.15625,
113.67188262939453,
120.70311737060547,
...
]
}
}
],
"shape": [
750,
600
],
"speed": {
"inference": 200.8,
"postprocess": 0.8,
"preprocess": 2.8
}
}
],
"metadata": ...
}
الوضع
نموذج الوضعية
from ultralytics import YOLO
# Load model
model = YOLO("yolov8n-pose.pt")
# Run inference
results = model("image.jpg")
# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://predict.ultralytics.com" \
-H "x-api-key: API_KEY" \
-F "model=https://hub.ultralytics.com/models/MODEL_ID" \
-F "file=@/path/to/image.jpg" \
-F "imgsz=640" \
-F "conf=0.25" \
-F "iou=0.45"
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"images": [
{
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {
"x1": 118,
"x2": 416,
"y1": 112,
"y2": 660
},
"keypoints": {
"visible": [
0.9909399747848511,
0.8162999749183655,
0.9872099757194519,
...
],
"x": [
316.3871765136719,
315.9374694824219,
304.878173828125,
...
],
"y": [
156.4207763671875,
148.05775451660156,
144.93240356445312,
...
]
}
}
],
"shape": [
750,
600
],
"speed": {
"inference": 200.8,
"postprocess": 0.8,
"preprocess": 2.8
}
}
],
"metadata": ...
}