TensorFlow zapewnia szereg narzędzi do widzenia komputerowego (CV) i klasyfikacji obrazów. W tym dokumencie przedstawiono niektóre z tych narzędzi i przedstawiono przegląd zasobów, które pomogą Ci rozpocząć typowe zadania związane z CV.
Biblioteki i narzędzia wizji
TensorFlow zapewnia narzędzia CV za pośrednictwem bibliotek Keras wyższego poziomu i modułu tf.image
niższego poziomu. W większości przypadków biblioteki Keras będą wygodniejsze niż wbudowane alternatywy TensorFlow. Jeśli jednak opcje Keras nie pasują do Twojego przypadku użycia lub chcesz mieć kontrolę niższego poziomu nad wstępnym przetwarzaniem obrazu, możesz potrzebować narzędzi TensorFlow niższego poziomu.
KerasCV
Jeśli dopiero zaczynasz pracę nad projektem CV i nie masz pewności, jakich bibliotek i narzędzi będziesz potrzebować, KerasCV jest dobrym miejscem na rozpoczęcie. KerasCV to biblioteka modułowych komponentów CV zbudowana na Keras Core. KerasCV zawiera modele, warstwy, metryki, wywołania zwrotne i inne narzędzia, które rozszerzają wysokopoziomowe API Keras do zadań CV. Interfejsy API KerasCV mogą pomóc w powiększaniu danych, klasyfikacji, wykrywaniu obiektów, segmentacji, generowaniu obrazów i innych typowych przepływach pracy CV. Możesz użyć KerasCV do szybkiego tworzenia najnowocześniejszych potoków uczenia i wnioskowania klasy produkcyjnej.
Narzędzia Keras
tf.keras.utils
udostępnia kilka narzędzi do wstępnego przetwarzania obrazów wysokiego poziomu. Na przykład tf.keras.utils.image_dataset_from_directory
generuje tf.data.Dataset
z katalogu obrazów na dysku.
tf.image
Jeśli KerasCV nie pasuje do Twojego przypadku użycia, możesz użyć tf.image
i tf.data
do napisania własnych potoków lub warstw powiększania danych.
Moduł tf.image
zawiera różne funkcje do przetwarzania obrazu, takie jak tf.image.flip_left_right
, tf.image.rgb_to_grayscale
, tf.image.adjust_brightness
, tf.image.central_crop
i tf.image.stateless_random*
.
Interfejs API tf.data
umożliwia budowanie złożonych potoków wejściowych z prostych elementów, które można ponownie wykorzystać.
Zbiory danych TensorFlow
Zestawy danych TensorFlow to zbiór zestawów danych gotowych do użycia z TensorFlow. Wiele zbiorów danych (na przykład MNIST , Fashion-MNIST i TF Flowers ) można wykorzystać do opracowania i przetestowania algorytmów widzenia komputerowego.
Gdzie zacząć
Poniższe zasoby pomogą Ci rozpocząć pracę z narzędziami TensorFlow i Keras CV.
- KerasCV : Dokumentacja i zasoby dotyczące KerasCV.
- Przewodniki dla programistów KerasCV : Przewodniki dotyczące wykonywania typowych zadań CV przy użyciu KerasCV. Jeśli jesteś nowy w KerasCV, dobrym miejscem na rozpoczęcie będzie klasyfikacja za pomocą KerasCV .
Samouczki TensorFlow : Podstawowa dokumentacja TensorFlow (ten przewodnik) zawiera szereg samouczków dotyczących CV i przetwarzania obrazu.
- Klasyfikacja podstawowa: Klasyfikuj obrazy odzieży : Wytrenuj model sieci neuronowej, aby klasyfikował obrazy odzieży, takiej jak trampki i koszule.
Załaduj i wstępnie przetwórz obrazy : Załaduj i wstępnie przetwórz zestaw danych obrazu na trzy sposoby:
- Użyj wysokopoziomowych narzędzi do wstępnego przetwarzania Keras, aby odczytać katalog obrazów na dysku.
- Napisz od podstaw własny potok wejściowy , używając
tf.data
. - Pobierz zestaw danych z dużego katalogu dostępnego w TensorFlow Datasets .
Załaduj dane wideo : Załaduj i wstępnie przetwórz dane wideo AVI przy użyciu zestawu danych o działaniu człowieka UCF101 .
Konwolucyjna sieć neuronowa (CNN) : trenuj prostą splotową sieć neuronową (CNN) w celu klasyfikowania obrazów CIFAR przy użyciu interfejsu API Keras .
Klasyfikacja obrazów : klasyfikuj obrazy kwiatów za pomocą modelu
tf.keras.Sequential
i ładuj dane za pomocątf.keras.utils.image_dataset_from_directory
.Uczenie się transferu i dostrajanie : klasyfikuj obrazy kotów i psów, korzystając z uczenia transferowego ze wstępnie wyszkolonej sieci.
Powiększanie danych : zwiększ różnorodność swojego zestawu treningowego, stosując losowe (ale realistyczne) transformacje, takie jak obrót obrazu.
Segmentacja obrazu : Wykonaj segmentację obrazu przy użyciu zmodyfikowanej sieci U-Net .
Klasyfikacja wideo za pomocą splotowej sieci neuronowej 3D : Trenuj splotową sieć neuronową 3D (CNN) do klasyfikacji wideo przy użyciu zestawu danych rozpoznawania działań UCF101 .
Przenieś naukę do klasyfikacji wideo za pomocą MoViNet : Użyj wstępnie wytrenowanego modelu MoViNet i zestawu danych UCF101 , aby klasyfikować filmy na potrzeby zadania rozpoznawania działań.