# FiftyOne

FiftyOne هو مجموعة أدوات مفتوحة المصدر لتنظيم البيانات البصرية غير المهيكلة وعرضها وإدارتها. تُسهّل المكتبة سير العمل الذي يركّز على البيانات، بدءًا من العثور على التنبؤات منخفضة الثقة، مرورًا بتحديد العينات ذات الجودة المنخفضة، وصولًا إلى اكتشاف الأنماط الخفية في بياناتك. تدعم المكتبة جميع أنواع البيانات البصرية، من الصور والفيديوهات إلى ملفات PDF وسحب النقاط والشبكات.

يستوعب FiftyOne اكتشافات الكائنات ونقاط المفاصل والخطوط المتعددة والمخططات المخصصة.

يتكامل FiftyOne مع Hugging Face Hub بحيث يمكنك تحميل مجموعات بيانات FiftyOne ومشاركتها مباشرةً من Hub.

🚀 جرّب تكامل FiftyOne 🤝 Hugging Face في [Colab](https://colab.research.google.com/drive/1l0kzfbJ2wtUw1EGS1tq1PJYoWenMlihp?usp=sharing)!

## المتطلبات

أولاً [سجّل الدخول بحساب Hugging Face الخاص بك](/docs/huggingface_hub/quick-start#login):

```bash
hf auth login
```

تأكد من تثبيت `fiftyone>=0.24.0` :

```bash
pip install -U fiftyone
```

## تحميل مجموعات البيانات البصرية من المستودع

باستخدام `load_from_hub()` من أدوات Hugging Face في FiftyOne، يمكنك تحميل:

- أي مجموعة بيانات FiftyOne تم رفعها إلى المستودع
- معظم مجموعات البيانات المعتمدة على الصور والمخزنة في ملفات Parquet (وهي المعيار لمجموعات البيانات المرفوعة إلى المستودع عبر مكتبة `datasets`)

### تحميل مجموعات بيانات FiftyOne من Hub

يجب أن تحتوي أي مجموعة بيانات مُرسلة إلى المستودع المركزي بصيغة واحدة من [الصيغ الشائعة المدعومة](https://docs.voxel51.com/user_guide/dataset_creation/datasets.html#supported-import-formats) في FiftyOne على جميع معلومات التهيئة اللازمة في مستودع المجموعة على المستودع المركزي، بحيث يمكنك تحميل مجموعة البيانات عن طريق تحديد `repo_id` الخاص بها. كمثال، لتحميل [مجموعة بيانات VisDrone للكشف](https://huggingface.co/datasets/Voxel51/VisDrone2019-DET):

```python
import fiftyone as fo
from fiftyone.utils import load_from_hub

## load from the hub
dataset = load_from_hub("Voxel51/VisDrone2019-DET")

## visualize in app
session = fo.launch_app(dataset)
```

![FiftyOne VisDrone dataset](https://cdn-uploads.huggingface.co/production/uploads/63127e2495407887cb79c5ea/0eKxe_GSsBjt8wMjT9qaI.jpeg)

يمكنك [تخصيص عملية التنزيل](https://docs.voxel51.com/integrations/huggingface.html#configuring-the-download-process)، بما في ذلك عدد العينات المراد تنزيلها، واسم كائن مجموعة البيانات المُنشأة، أو ما إذا كانت محفوظة على القرص أم لا.

يمكنك سرد جميع مجموعات بيانات FiftyOne المتاحة على Hub باستخدام:

```python
from huggingface_hub import HfApi
api = HfApi()
api.list_datasets(tags="fiftyone")
```

### تحميل مجموعات بيانات Parquet من Hub باستخدام FiftyOne

يمكنك أيضًا استخدام دالة `load_from_hub()` لتحميل مجموعات البيانات من ملفات Parquet. يتم التعامل مع تحويلات الأنواع نيابةً عنك، وتُحمَّل الصور من عناوين URL عند الحاجة.

بفضل هذه الميزة، [يمكنك تحميل](https://docs.voxel51.com/integrations/huggingface.html#basic-examples) أي مما يلي:

- مجموعات بيانات تصنيف الصور المتوافقة مع [FiftyOne](https://huggingface.co/collections/Voxel51/fiftyone-compatible-image-classification-datasets-665dfd51020d8b66a56c9b6f)، مثل [Food101](https://huggingface.co/datasets/ethz/food101) و[ImageNet-Sketch](https://huggingface.co/datasets/songweig/imagenet_sketch)
- مجموعات بيانات كشف الكائنات المتوافقة مع [FiftyOne](https://huggingface.co/collections/Voxel51/fiftyone-compatible-object-detection-datasets-665e0279c94ae552c7159a2b) مثل [CPPE-5](https://huggingface.co/datasets/rishitdagli/cppe-5) و[WIDER FACE](https://huggingface.co/datasets/CUHK-CSE/wider_face)
- مجموعات بيانات التقطيع المتوافقة مع [FiftyOne](https://huggingface.co/collections/Voxel51/fiftyone-compatible-image-segmentation-datasets-665e15b6ddb96a4d7226a380) مثل [SceneParse150](https://huggingface.co/datasets/zhoubolei/scene_parse_150) و[Sidewalk Semantic](https://huggingface.co/datasets/segments/sidewalk-semantic)
- مجموعات بيانات وصف الصور المتوافقة مع [FiftyOne](https://huggingface.co/collections/Voxel51/fiftyone-compatible-image-captioning-datasets-665e16e29350244c06084505) مثل [COYO-700M](https://huggingface.co/datasets/kakaobrain/coyo-700m) و[New Yorker Caption Contest](https://huggingface.co/datasets/jmhessel/newyorker_caption_contest)
- مجموعات بيانات الإجابة على الأسئلة البصرية المتوافقة مع [FiftyOne](https://huggingface.co/collections/Voxel51/fiftyone-compatible-vqa-datasets-665e16424ecc8a718156248a) مثل [TextVQA](https://huggingface.co/datasets/facebook/textvqa) و[ScienceQA](https://huggingface.co/datasets/derek-thomas/ScienceQA)

كمثال، يمكننا تحميل أول 1,000 عينة من [مجموعة بيانات WikiArt](https://huggingface.co/datasets/huggan/wikiart) في FiftyOne باستخدام:

```python
import fiftyone as fo
from fiftyone.utils.huggingface import load_from_hub

dataset = load_from_hub(
    "huggan/wikiart",  ## repo_id
    format="parquet",  ## for Parquet format
    classification_fields=["artist", "style", "genre"], ## columns to treat as classification labels
    max_samples=1000,  # number of samples to load
    name="wikiart",  # name of the dataset in FiftyOne
)
```

![WikiArt Dataset](https://cdn-uploads.huggingface.co/production/uploads/63127e2495407887cb79c5ea/PCqCvTlNTG5SLtcK5fwuQ.jpeg)

## دفع مجموعات بيانات FiftyOne إلى Hub

يمكنك دفع مجموعة بيانات إلى المستودع باستخدام:

```python
import fiftyone as fo
import fiftyone.zoo as foz
from fiftyone.utils.huggingface import push_to_hub

## load example dataset
dataset = foz.load_zoo_dataset("quickstart")

## push to hub
push_to_hub(dataset, "my-hf-dataset")
```

عند استدعاء `push_to_hub()`، سيتم رفع مجموعة البيانات إلى المستودع باسم المستودع المحدد تحت اسم المستخدم الخاص بك، وسيتم إنشاء المستودع إذا لزم الأمر. سيتم توليد [بطاقة مجموعة البيانات](./datasets-cards) تلقائيًا وتعبئتها بتعليمات لتحميل مجموعة البيانات من المركز. يمكنك رفع صورة مصغرة أو ملف gif للظهور على بطاقة مجموعة البيانات باستخدام الحجة `preview_path`.

فيما يلي مثال يستخدم العديد من هذه الحجج، والذي سيؤدي إلى رفع أول ثلاثة عينات من مجموعة بيانات [Quickstart Video](https://docs.voxel51.com/user_guide/dataset_zoo/datasets.html#quickstart-video) الخاصة بـ FiftyOne إلى المستودع الخاص `username/my-quickstart-video-dataset` مع وسمات، ورخصة MIT، ووصف، وصورة معاينة:

```python
dataset = foz.load_from_zoo("quickstart-video", max_samples=3)

push_to_hub(
    dataset,
    "my-quickstart-video-dataset",
    tags=["video", "tracking"],
    license="mit",
    description="A dataset of video samples for tracking tasks",
    private=True,
    preview_path="<path/to/preview.png>"
)
```

## 📚 الموارد

- [🚀 دفتر ملاحظات Colab للمتابعة مع الكود](https://colab.research.google.com/drive/1l0kzfbJ2wtUw1EGS1tq1PJYoWenMlihp?usp=sharing)
- [🗺️ دليل المستخدم لمجموعات بيانات FiftyOne](https://docs.voxel51.com/user_guide/using_datasets.html#)
- [🤗 FiftyOne 🤝 توثيقات التكامل مع Hub](https://docs.voxel51.com/integrations/huggingface.html#huggingface-hub)
- [🤗 وثائق تكامل FiftyOne 🤝 Transformers](https://docs.voxel51.com/integrations/huggingface.html#transformers-library)
- [🧩 إضافة FiftyOne لمركز Hugging Face](https://github.com/voxel51/fiftyone-huggingface-plugins)

