Tworzenie i eksplorowanie zestawu danych usługi Azure Machine Learning z etykietami
W tym artykule dowiesz się, jak wyeksportować etykiety danych z projektu etykietowania danych usługi Azure Machine Learning i załadować je do popularnych formatów, takich jak ramka danych pandas na potrzeby eksploracji danych.
Co to są zestawy danych z etykietami
Zestawy danych usługi Azure Machine Learning z etykietami są nazywane zestawami danych oznaczonymi etykietami. Te konkretne zestawy danych są tabelarycznymi zestawami danych z dedykowaną kolumną etykiet i są tworzone tylko jako dane wyjściowe projektów etykietowania danych usługi Azure Machine Learning. Utwórz projekt etykietowania danych na potrzeby etykietowania obrazów lub etykietowania tekstu. Usługa Machine Learning obsługuje projekty etykietowania danych na potrzeby klasyfikacji obrazów, wielu etykiet lub wielu klas oraz identyfikacji obiektów wraz z powiązanymi polami.
Wymagania wstępne
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Zestaw AZURE Machine Learning SDK dla języka Python lub dostęp do usługi Azure Machine Learning Studio.
- Obszar roboczy usługi Machine Learning. Zobacz Tworzenie zasobów obszaru roboczego.
- Dostęp do projektu etykietowania danych usługi Azure Machine Learning. Jeśli nie masz projektu etykietowania, najpierw utwórz go na potrzeby etykietowania obrazów lub etykietowania tekstu.
Eksportowanie etykiet danych
Po zakończeniu projektu etykietowania danych można wyeksportować dane etykiet z projektu etykietowania. Dzięki temu można przechwycić zarówno odwołanie do danych, jak i ich etykiet, a następnie wyeksportować je w formacie COCO lub jako zestaw danych usługi Azure Machine Learning.
Użyj przycisku Eksportuj na stronie Szczegóły projektu projektu etykietowania.
COCO
Plik COCO jest tworzony w domyślnym magazynie obiektów blob obszaru roboczego usługi Azure Machine Learning w folderze eksportu /coco.
Uwaga
W projektach wykrywania obiektów wyeksportowane wartości "bbox": [x,y,width,height]" w pliku COCO są znormalizowane. Są one skalowane do 1. Przykład: pole ograniczenia w lokalizacji (10, 10) z szerokością 30 pikseli, wysokością 60 pikseli w obrazie 640x480 pikseli zostanie oznaczone jako (0,015625. 0,02083, 0,046875, 0,125). Ponieważ coordintes są znormalizowane, będzie on wyświetlany jako "0,0" jako "width" i "height" dla wszystkich obrazów. Rzeczywista szerokość i wysokość można uzyskać przy użyciu biblioteki języka Python, takiej jak OpenCV lub Pillow(PIL).
Zestaw danych usługi Azure Machine Learning
Dostęp do wyeksportowanego zestawu danych usługi Azure Machine Learning można uzyskać w sekcji Zestawy danych w usłudze Azure Machine Learning Studio. Strona Szczegóły zestawu danych zawiera również przykładowy kod umożliwiający uzyskiwanie dostępu do etykiet z poziomu języka Python.
Napiwek
Po wyeksportowaniu danych oznaczonych etykietą do zestawu danych usługi Azure Machine Learning możesz użyć rozwiązania AutoML do tworzenia modeli przetwarzania obrazów wyszkolonych na danych oznaczonych etykietami. Dowiedz się więcej na stronie Konfigurowanie automatycznego uczenia maszynowego w celu trenowania modeli przetwarzania obrazów przy użyciu języka Python
Eksplorowanie oznaczonych etykietami zestawów danych za pośrednictwem ramki danych biblioteki pandas
Załaduj oznaczone zestawy danych do ramki danych biblioteki pandas, aby wykorzystać popularne biblioteki open source do eksploracji danych za pomocą to_pandas_dataframe()
metody z azureml-dataprep
klasy .
Zainstaluj klasę za pomocą następującego polecenia powłoki:
pip install azureml-dataprep
W poniższym kodzie animal_labels
zestaw danych jest danymi wyjściowymi projektu etykietowania wcześniej zapisanego w obszarze roboczym.
Wyeksportowany zestaw danych jest tabelarycznym zestawem danych.
DOTYCZY: Zestaw SDK języka Python w wersji 1
import azureml.core
from azureml.core import Dataset, Workspace
# get animal_labels dataset from the workspace
animal_labels = Dataset.get_by_name(workspace, 'animal_labels')
animal_pd = animal_labels.to_pandas_dataframe()
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
#read images from dataset
img = mpimg.imread(animal_pd['image_url'].iloc(0).open())
imgplot = plt.imshow(img)