Samouczek: trenowanie modelu wykrywania obiektów za pomocą rozwiązania AutoML i języka Python
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)Zestaw SDK języka Python azure-ai-ml w wersji 2 (bieżąca)
Z tego samouczka dowiesz się, jak wytrenować model wykrywania obiektów przy użyciu zautomatyzowanego uczenia maszynowego platformy Azure przy użyciu rozszerzenia interfejsu wiersza polecenia usługi Azure Machine Learning w wersji 2 lub zestawu SDK języka Python usługi Azure Machine Learning w wersji 2. Ten model wykrywania obiektów określa, czy obraz zawiera obiekty, takie jak kan, karton, butelka mleka lub butelka wody.
Zautomatyzowane uczenie maszynowe akceptuje dane treningowe i ustawienia konfiguracji i automatycznie wykonuje iterację za pomocą kombinacji różnych metod normalizacji/standaryzacji cech, modeli i ustawień hiperparametrów, aby uzyskać najlepszy model.
W tym samouczku napiszesz kod przy użyciu zestawu SDK języka Python i poznasz następujące zadania:
- Pobieranie i przekształcanie danych
- Trenowanie modelu wykrywania obiektów zautomatyzowanego uczenia maszynowego
- Określanie wartości hiperparametrów dla modelu
- Wykonywanie zamiatania hiperparametrów
- Wdrażanie modelu
- Wizualizowanie wykrywania
Wymagania wstępne
-
Aby korzystać z usługi Azure Machine Learning, musisz najpierw mieć obszar roboczy. Jeśli go nie masz, ukończ tworzenie zasobów, które musisz rozpocząć, aby utworzyć obszar roboczy i dowiedzieć się więcej na temat korzystania z niego.
W przypadku tej funkcji obsługiwane są języki Python 3.6 lub 3.7
Pobierz i rozpakuj * plik danychodFridgeObjects.zip. Zestaw danych jest oznaczony adnotacją w formacie Pascal VOC, gdzie każdy obraz odpowiada plikowi xml. Każdy plik XML zawiera informacje o tym, gdzie znajduje się odpowiedni plik obrazu, a także zawiera informacje o polach ograniczenia i etykietach obiektów. Aby używać tych danych, należy najpierw przekonwertować go na wymagany format JSONL, jak pokazano w sekcji Konwertowanie pobranych danych na JSONL notesu.
Użyj wystąpienia obliczeniowego, aby wykonać czynności opisane w tym samouczku bez dalszej instalacji. (Zobacz, jak utworzyć wystąpienie obliczeniowe). Możesz też zainstalować interfejs wiersza polecenia/zestaw SDK, aby użyć własnego środowiska lokalnego.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
Ten samouczek jest również dostępny w repozytorium azureml-examples w witrynie GitHub. Jeśli chcesz go uruchomić we własnym środowisku lokalnym:
- Zainstaluj i skonfiguruj interfejs wiersza polecenia (wersja 2) i upewnij się, że zainstalowano
ml
rozszerzenie.
- Zainstaluj i skonfiguruj interfejs wiersza polecenia (wersja 2) i upewnij się, że zainstalowano
Konfiguracja docelowa zasobów obliczeniowych
Uwaga
Aby wypróbować środowisko obliczeniowe bezserwerowe (wersja zapoznawcza), pomiń ten krok i przejdź do sekcji Konfiguracja eksperymentu.
Najpierw należy skonfigurować docelowy obiekt obliczeniowy do użycia na potrzeby zautomatyzowanego trenowania modelu uczenia maszynowego. Zautomatyzowane modele uczenia maszynowego na potrzeby zadań obrazów wymagają jednostek SKU procesora GPU.
W tym samouczku użyto serii NCsv3 (z procesorami GPU V100), ponieważ ten typ obiektu docelowego obliczeniowego używa wielu procesorów GPU w celu przyspieszenia trenowania. Ponadto można skonfigurować wiele węzłów, aby korzystać z równoległości podczas dostrajania hiperparametrów dla modelu.
Poniższy kod tworzy obliczenia procesora GPU o rozmiarze Standard_NC24s_v3
z czterema węzłami.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
Utwórz plik yml z następującą konfiguracją.
$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json
name: gpu-cluster
type: amlcompute
size: Standard_NC24s_v3
min_instances: 0
max_instances: 4
idle_time_before_scale_down: 120
Aby utworzyć środowisko obliczeniowe, uruchom następujące polecenie interfejsu wiersza polecenia w wersji 2 ze ścieżką do pliku yml, nazwy obszaru roboczego, grupy zasobów i identyfikatora subskrypcji.
az ml compute create -f [PATH_TO_YML_FILE] --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
Konfiguracja eksperymentu
Możesz użyć eksperymentu do śledzenia zadań trenowania modelu.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
Nazwę eksperymentu można podać przy użyciu experiment_name
klucza w następujący sposób:
experiment_name: dpv2-cli-automl-image-object-detection-experiment
Wizualizowanie danych wejściowych
Po przygotowaniu danych wejściowych obrazu w formacie JSONL (JSON Lines) można wizualizować pola granic prawdy podstawowej dla obrazu. Aby to zrobić, upewnij się, że zainstalowano matplotlib
.
%pip install --upgrade matplotlib
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib.patches as patches
from PIL import Image as pil_image
import numpy as np
import json
import os
def plot_ground_truth_boxes(image_file, ground_truth_boxes):
# Display the image
plt.figure()
img_np = mpimg.imread(image_file)
img = pil_image.fromarray(img_np.astype("uint8"), "RGB")
img_w, img_h = img.size
fig,ax = plt.subplots(figsize=(12, 16))
ax.imshow(img_np)
ax.axis("off")
label_to_color_mapping = {}
for gt in ground_truth_boxes:
label = gt["label"]
xmin, ymin, xmax, ymax = gt["topX"], gt["topY"], gt["bottomX"], gt["bottomY"]
topleft_x, topleft_y = img_w * xmin, img_h * ymin
width, height = img_w * (xmax - xmin), img_h * (ymax - ymin)
if label in label_to_color_mapping:
color = label_to_color_mapping[label]
else:
# Generate a random color. If you want to use a specific color, you can use something like "red".
color = np.random.rand(3)
label_to_color_mapping[label] = color
# Display bounding box
rect = patches.Rectangle((topleft_x, topleft_y), width, height,
linewidth=2, edgecolor=color, facecolor="none")
ax.add_patch(rect)
# Display label
ax.text(topleft_x, topleft_y - 10, label, color=color, fontsize=20)
plt.show()
def plot_ground_truth_boxes_jsonl(image_file, jsonl_file):
image_base_name = os.path.basename(image_file)
ground_truth_data_found = False
with open(jsonl_file) as fp:
for line in fp.readlines():
line_json = json.loads(line)
filename = line_json["image_url"]
if image_base_name in filename:
ground_truth_data_found = True
plot_ground_truth_boxes(image_file, line_json["label"])
break
if not ground_truth_data_found:
print("Unable to find ground truth information for image: {}".format(image_file))
Korzystając z powyższych funkcji pomocnika, dla dowolnego obrazu, można uruchomić następujący kod, aby wyświetlić pola ograniczenia.
image_file = "./odFridgeObjects/images/31.jpg"
jsonl_file = "./odFridgeObjects/train_annotations.jsonl"
plot_ground_truth_boxes_jsonl(image_file, jsonl_file)
Przekazywanie danych i tworzenie tabeli MLTable
Aby używać danych do trenowania, przekaż dane do domyślnego magazynu obiektów blob obszaru roboczego usługi Azure Machine Learning i zarejestruj je jako zasób. Korzyści wynikające z rejestrowania danych to:
- Łatwe udostępnianie innym członkom zespołu
- Przechowywanie wersji metadanych (lokalizacja, opis itp.)
- Śledzenie pochodzenia
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
Utwórz plik yml z następującą konfiguracją.
$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: fridge-items-images-object-detection
description: Fridge-items images Object detection
path: ./data/odFridgeObjects
type: uri_folder
Aby przekazać obrazy jako zasób danych, uruchom następujące polecenie interfejsu wiersza polecenia w wersji 2 ze ścieżką do pliku yml, nazwy obszaru roboczego, grupy zasobów i identyfikatora subskrypcji.
az ml data create -f [PATH_TO_YML_FILE] --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
Następnym krokiem jest utworzenie MLTable
danych w formacie jsonl, jak pokazano poniżej. MLtable spakuj dane do obiektu eksploatacyjnego na potrzeby trenowania.
paths:
- file: ./train_annotations.jsonl
transformations:
- read_json_lines:
encoding: utf8
invalid_lines: error
include_path_column: false
- convert_column_types:
- columns: image_url
column_type: stream_info
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
Poniższa konfiguracja tworzy dane trenowania i walidacji z tabeli MLTable.
target_column_name: label
training_data:
path: data/training-mltable-folder
type: mltable
validation_data:
path: data/validation-mltable-folder
type: mltable
Konfigurowanie eksperymentu wykrywania obiektów
Aby skonfigurować zadania zautomatyzowanego uczenia maszynowego na potrzeby zadań związanych z obrazem, utwórz zadanie specyficzne dla rozwiązania AutoML.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
Aby użyć bezserwerowego środowiska obliczeniowego (wersja zapoznawcza), zastąp wiersz
compute: azureml:gpu-cluster
tym kodem:resources: instance_type: Standard_NC24s_v3 instance_count: 4
task: image_object_detection
primary_metric: mean_average_precision
compute: azureml:gpu-cluster
Automatyczne zamiatanie hiperparametrów dla zadań obrazów (AutoMode)
Ważne
Ta funkcja jest obecnie w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest dostarczana bez umowy dotyczącej poziomu usług. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
W zadaniu rozwiązania AutoML możesz wykonać automatyczne zamiatanie hiperparametrów w celu znalezienia optymalnego modelu (nazywamy to funkcją AutoMode). Określasz tylko liczbę prób; nie jest wymagana przestrzeń wyszukiwania hiperparametrów, metoda próbkowania i zasady wczesnego zakończenia. System automatycznie określi region przestrzeni hiperparametrów, aby zamiatać na podstawie liczby prób. Wartość z zakresu od 10 do 20 prawdopodobnie będzie działać dobrze w wielu zestawach danych.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
limits:
max_trials: 10
max_concurrent_trials: 2
Następnie możesz przesłać zadanie, aby wytrenować model obrazu.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
Aby przesłać zadanie rozwiązania AutoML, uruchom następujące polecenie interfejsu wiersza polecenia w wersji 2 ze ścieżką do pliku yml, nazwy obszaru roboczego, grupy zasobów i identyfikatora subskrypcji.
az ml job create --file ./hello-automl-job-basic.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
Ręczne zamiatanie hiperparametrów pod kątem zadań obrazów
W zadaniu rozwiązania AutoML można określić architektury modelu przy użyciu model_name
parametru i skonfigurować ustawienia w celu przeprowadzenia zamiatania hiperparametrów na zdefiniowanej przestrzeni wyszukiwania w celu znalezienia optymalnego modelu.
W tym przykładzie wytrenujemy model wykrywania obiektów z elementami yolov5
i fasterrcnn_resnet50_fpn
, z których oba są wstępnie wytrenowane w środowisku COCO, wykrywania obiektów na dużą skalę, segmentacji i zestawu danych podpisów zawierającego ponad tysiące oznaczonych obrazów z ponad 80 kategoriami etykiet.
Aby znaleźć optymalny model, możesz wykonać zamiatanie hiperparametrów na zdefiniowanej przestrzeni wyszukiwania.
Limity zadań
Zasoby wydane w zadaniu trenowania obrazów automatycznego uczenia maszynowego można kontrolować, określając timeout_minutes
parametr i max_trials
max_concurrent_trials
dla zadania w ustawieniach limitu. Zapoznaj się ze szczegółowym opisem parametrów limitów zadań.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
limits:
timeout_minutes: 60
max_trials: 10
max_concurrent_trials: 2
Poniższy kod definiuje przestrzeń wyszukiwania w ramach przygotowania do zamiatania hiperparametrów dla każdej zdefiniowanej architektury yolov5
i fasterrcnn_resnet50_fpn
. W obszarze wyszukiwania określ zakres wartości , learning_rate
optimizer
, lr_scheduler
itp., aby rozwiązanie AutoML było wybierane w miarę próby wygenerowania modelu z optymalną metryką podstawową. Jeśli wartości hiperparametryczne nie są określone, wartości domyślne są używane dla każdej architektury.
W przypadku ustawień dostrajania użyj losowego próbkowania, aby wybrać próbki z tej przestrzeni parametrów random
przy użyciu sampling_algorithm. Powyższe limity zadań informują zautomatyzowane uczenie maszynowe o wypróbowaniu w sumie 10 prób z tymi różnymi przykładami, uruchamiając jednocześnie dwie próby w ramach celu obliczeniowego, który został skonfigurowany przy użyciu czterech węzłów. Tym więcej parametrów zawiera przestrzeń wyszukiwania, tym więcej prób jest potrzebnych do znalezienia optymalnych modeli.
Stosowane są również zasady wczesnego zakończenia bandyty. Ta zasada kończy testy o niskiej wydajności; oznacza to, że te wersje próbne, które nie należą do 20% czasu pracy w ramach najlepszej wersji próbnej, co znacznie oszczędza zasoby obliczeniowe.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
sweep:
sampling_algorithm: random
early_termination:
type: bandit
evaluation_interval: 2
slack_factor: 0.2
delay_evaluation: 6
search_space:
- model_name:
type: choice
values: [yolov5]
learning_rate:
type: uniform
min_value: 0.0001
max_value: 0.01
model_size:
type: choice
values: [small, medium]
- model_name:
type: choice
values: [fasterrcnn_resnet50_fpn]
learning_rate:
type: uniform
min_value: 0.0001
max_value: 0.001
optimizer:
type: choice
values: [sgd, adam, adamw]
min_size:
type: choice
values: [600, 800]
Po zdefiniowaniu ustawień obszaru wyszukiwania i zamiatania możesz przesłać zadanie w celu wytrenowania modelu obrazu przy użyciu zestawu danych trenowania.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
Aby przesłać zadanie rozwiązania AutoML, uruchom następujące polecenie interfejsu wiersza polecenia w wersji 2 ze ścieżką do pliku yml, nazwy obszaru roboczego, grupy zasobów i identyfikatora subskrypcji.
az ml job create --file ./hello-automl-job-basic.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
Podczas wykonywania zamiatania hiperparametrów może być przydatne wizualizowanie różnych prób próbnych przy użyciu interfejsu użytkownika funkcji HyperDrive. Możesz przejść do tego interfejsu użytkownika, przechodząc do karty "Zadania podrzędne" w interfejsie użytkownika głównego automl_image_job z powyższego, co jest zadaniem nadrzędnym funkcji HyperDrive. Następnie możesz przejść do karty "Zadania podrzędne" tego zadania.
Alternatywnie poniżej możesz wyświetlić bezpośrednio zadanie nadrzędne funkcji HyperDrive i przejść do karty "Zadania podrzędne":
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
CLI example not available, please use Python SDK.
Rejestrowanie i wdrażanie modelu
Po zakończeniu zadania możesz zarejestrować model utworzony na podstawie najlepszej wersji próbnej (konfiguracja, która doprowadziła do najlepszej metryki podstawowej). Model można zarejestrować po pobraniu lub określając ścieżkę przy użyciu odpowiedniego azureml
jobid
elementu .
Uzyskiwanie najlepszej wersji próbnej
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
CLI example not available, please use Python SDK.
Rejestrowanie modelu
Zarejestruj model przy użyciu azureml
ścieżki lub ścieżki pobranej lokalnie.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
az ml model create --name od-fridge-items-mlflow-model --version 1 --path azureml://jobs/$best_run/outputs/artifacts/outputs/mlflow-model/ --type mlflow_model --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
Po zarejestrowaniu modelu, którego chcesz użyć, możesz wdrożyć go przy użyciu zarządzanego punktu końcowego online deploy-managed-online-endpoint
Konfigurowanie punktu końcowego online
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: od-fridge-items-endpoint
auth_mode: key
Tworzenie punktu końcowego
Przy użyciu utworzonego MLClient
wcześniej punktu końcowego utworzymy punkt końcowy w obszarze roboczym. To polecenie uruchamia tworzenie punktu końcowego i zwraca odpowiedź potwierdzenia podczas tworzenia punktu końcowego.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
az ml online-endpoint create --file .\create_endpoint.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
Możemy również utworzyć punkt końcowy wsadowy na potrzeby wnioskowania wsadowego na dużych ilościach danych w danym okresie. Zapoznaj się z notesem oceniania wsadowego wykrywania obiektów na potrzeby wnioskowania wsadowego przy użyciu punktu końcowego wsadowego.
Konfigurowanie wdrożenia online
Wdrożenie to zestaw zasobów wymaganych do hostowania modelu, który wykonuje rzeczywiste wnioskowanie. Tworzymy wdrożenie dla naszego punktu końcowego ManagedOnlineDeployment
przy użyciu klasy . Dla klastra wdrażania można użyć jednostek SKU procesora GPU lub procesora CPU.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
name: od-fridge-items-mlflow-deploy
endpoint_name: od-fridge-items-endpoint
model: azureml:od-fridge-items-mlflow-model@latest
instance_type: Standard_DS3_v2
instance_count: 1
liveness_probe:
failure_threshold: 30
success_threshold: 1
timeout: 2
period: 10
initial_delay: 2000
readiness_probe:
failure_threshold: 10
success_threshold: 1
timeout: 10
period: 10
initial_delay: 2000
Tworzenie wdrożenia
Przy użyciu utworzonego MLClient
wcześniej wdrożenia utworzymy w obszarze roboczym. To polecenie uruchamia tworzenie wdrożenia i zwraca odpowiedź potwierdzenia podczas tworzenia wdrożenia.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
az ml online-deployment create --file .\create_deployment.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
Aktualizowanie ruchu:
Domyślnie bieżące wdrożenie jest ustawione na odbieranie ruchu 0%. Można ustawić wartość procentową bieżącego wdrożenia ruchu. Suma wartości procentowych ruchu wszystkich wdrożeń z jednym punktem końcowym nie powinna przekraczać 100%.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
az ml online-endpoint update --name 'od-fridge-items-endpoint' --traffic 'od-fridge-items-mlflow-deploy=100' --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
Testowanie wdrożenia
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
CLI example not available, please use Python SDK.
Wizualizowanie wykrywania
Po zdobyciu wyniku obrazu testowego możesz zwizualizować pola ograniczenia dla tego obrazu. W tym celu upewnij się, że zainstalowano bibliotekę matplotlib.
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
CLI example not available, please use Python SDK.
Czyszczenie zasobów
Nie należy wykonywać tej sekcji, jeśli planujesz uruchamianie innych samouczków usługi Azure Machine Learning.
Jeśli nie planujesz korzystać z utworzonych zasobów, usuń je, aby nie ponosić żadnych opłat.
- W witrynie Azure Portal na końcu z lewej strony wybierz pozycję Grupy zasobów.
- Wybierz utworzoną grupę zasobów z listy.
- Wybierz pozycję Usuń grupę zasobów.
- Wpisz nazwę grupy zasobów. Następnie wybierz pozycję Usuń.
Możesz też zachować grupę zasobów i usunąć jeden obszar roboczy. Wyświetl właściwości obszaru roboczego i wybierz pozycję Usuń.
Następne kroki
W tym samouczku zautomatyzowanego uczenia maszynowego wykonano następujące czynności:
- Skonfigurowano obszar roboczy i przygotowano dane do eksperymentu.
- Trenowanie zautomatyzowanego modelu wykrywania obiektów
- Określone wartości hiperparametrów dla modelu
- Wykonano zamiatanie hiperparametrów
- Wdrożono model
- Wizualizowane wykrycia
Dowiedz się więcej o przetwarzaniu obrazów w zautomatyzowanym uczeniu maszynowym.
Dowiedz się, jak skonfigurować trenowanie przyrostowe w modelach przetwarzania obrazów.
Zobacz , jakie hiperparametry są dostępne dla zadań przetwarzania obrazów.
Przykłady kodu:
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)
- Zapoznaj się ze szczegółowymi przykładami kodu i przypadkami użycia w repozytorium azureml-examples na potrzeby przykładów zautomatyzowanego uczenia maszynowego. Sprawdź foldery z prefiksem "cli-automl-image-" pod kątem przykładów specyficznych dla tworzenia modeli przetwarzania obrazów.
Uwaga
Korzystanie z zestawu danych obiektów lodówki jest dostępne za pośrednictwem licencji w ramach licencji MIT.