TensorFlow는 다양한 컴퓨터 비전(CV) 및 이미지 분류 도구를 제공합니다. 이 문서에서는 이러한 도구 중 일부를 소개하고 일반적인 CV 작업을 시작하는 데 도움이 되는 리소스 개요를 제공합니다.
비전 라이브러리 및 도구
TensorFlow는 상위 수준 Keras 라이브러리와 하위 수준 tf.image
모듈을 통해 CV 도구를 제공합니다. 대부분의 사용 사례에서는 Keras 라이브러리가 내장된 TensorFlow 대안보다 더 편리합니다. 그러나 Keras 옵션이 사용 사례에 맞지 않거나 이미지 전처리에 대한 낮은 수준의 제어를 원하는 경우 낮은 수준의 TensorFlow 도구가 필요할 수 있습니다.
KerasCV
CV 프로젝트를 막 시작했고 어떤 라이브러리와 도구가 필요한지 확신할 수 없다면 KerasCV 는 시작하기 좋은 곳입니다. KerasCV는 Keras Core를 기반으로 구축된 모듈식 CV 구성 요소 라이브러리입니다. KerasCV에는 CV 작업을 위해 고급 Keras API를 확장하는 모델, 레이어, 메트릭, 콜백 및 기타 도구가 포함되어 있습니다. KerasCV API는 데이터 확대, 분류, 객체 감지, 분할, 이미지 생성 및 기타 일반적인 CV 워크플로에 도움이 될 수 있습니다. KerasCV를 사용하면 프로덕션 수준의 최첨단 교육 및 추론 파이프라인을 빠르게 조합할 수 있습니다.
케라스 유틸리티
tf.keras.utils
여러 가지 고급 이미지 전처리 유틸리티를 제공합니다. 예를 들어, tf.keras.utils.image_dataset_from_directory
디스크의 이미지 디렉터리에서 tf.data.Dataset
생성합니다.
tf.image
KerasCV가 사용 사례에 맞지 않으면 tf.image
및 tf.data
사용하여 자체 데이터 증대 파이프라인 또는 레이어를 작성할 수 있습니다.
tf.image
모듈에는 tf.image.flip_left_right
, tf.image.rgb_to_grayscale
, tf.image.adjust_brightness
, tf.image.central_crop
및 tf.image.stateless_random*
과 같은 이미지 처리를 위한 다양한 함수가 포함되어 있습니다.
tf.data
API를 사용하면 간단하고 재사용 가능한 부분으로 복잡한 입력 파이프라인을 구축할 수 있습니다.
TensorFlow 데이터 세트
TensorFlow Datasets는 TensorFlow와 함께 사용할 수 있는 데이터세트 모음입니다. 많은 데이터 세트(예: MNIST , Fashion-MNIST 및 TF Flowers )를 사용하여 컴퓨터 비전 알고리즘을 개발하고 테스트할 수 있습니다.
어디서 시작하나요
다음 리소스는 TensorFlow 및 Keras CV 도구를 시작하고 실행하는 데 도움이 됩니다.
- KerasCV : KerasCV에 대한 문서 및 리소스입니다.
- KerasCV 개발자 가이드 : KerasCV를 사용하여 일반적인 CV 작업을 수행하는 방법을 안내합니다. KerasCV를 처음 사용하는 경우 KerasCV를 사용한 분류부터 시작하는 것이 좋습니다.
TensorFlow 튜토리얼 : 핵심 TensorFlow 문서(이 가이드)에는 다양한 CV 및 이미지 처리 튜토리얼이 포함되어 있습니다.
- 기본 분류: 의류 이미지 분류 : 운동화, 셔츠와 같은 의류 이미지를 분류하기 위해 신경망 모델을 학습시킵니다.
이미지 로드 및 전처리 : 다음 세 가지 방법으로 이미지 데이터세트를 로드하고 전처리합니다.
- 높은 수준의 Keras 전처리 유틸리티를 사용하여 디스크의 이미지 디렉터리를 읽습니다.
-
tf.data
사용하여 처음부터 자신만의 입력 파이프라인을 작성하세요. - TensorFlow Datasets 에서 제공되는 대규모 카탈로그 에서 데이터세트를 다운로드하세요.
비디오 데이터 로드 : UCF101 인간 행동 데이터 세트를 사용하여 AVI 비디오 데이터를 로드하고 전처리합니다.
CNN(Convolutional Neural Network) : Keras API 를 사용하여 CIFAR 이미지를 분류하도록 간단한 CNN( Convolutional Neural Network )을 훈련시킵니다.
이미지 분류 :
tf.keras.Sequential
모델을 사용하여 꽃 이미지를 분류하고tf.keras.utils.image_dataset_from_directory
를 사용하여 데이터를 로드합니다.전이 학습 및 미세 조정 : 사전 훈련된 네트워크의 전이 학습을 사용하여 고양이와 개 이미지를 분류합니다.
데이터 증대 : 이미지 회전과 같은 무작위(그러나 현실적인) 변환을 적용하여 훈련 세트의 다양성을 높입니다.
3D 컨벌루션 신경망을 사용한 비디오 분류 : UCF101 동작 인식 데이터 세트를 사용하여 비디오 분류를 위한 3D 컨벌루션 신경망(CNN)을 훈련합니다.
MoViNet을 사용한 비디오 분류를 위한 전이 학습 : 사전 훈련된 MoViNet 모델과 UCF101 데이터 세트를 사용하여 동작 인식 작업을 위한 비디오를 분류합니다.