> 백엔드 개발 > 파이썬 튜토리얼 > Python의 이미지 분류 예

Python의 이미지 분류 예

PHPz
풀어 주다: 2023-06-10 15:43:37
원래의
1463명이 탐색했습니다.

Python은 컴퓨터 비전 및 이미지 처리 분야에서 널리 사용되는 프로그래밍 언어입니다. 이 기사에서는 Python의 이미지 분류 예제를 살펴보겠습니다. 이미지 분류는 이미지에서 객체나 장면을 식별하는 것과 관련된 컴퓨터 비전의 기본 작업입니다. 이 기사에서는 Python의 딥 러닝 프레임워크인 Keras를 사용하여 이미지 분류 모델의 훈련 및 예측을 구현하는 방법을 소개합니다.

준비

이미지 분류를 수행하기 전에 필요한 소프트웨어 패키지를 설치해야 합니다. 다음은 필요한 패키지 목록입니다:

  • Python 3. 필요한 패키지를 설치하려면 명령줄에서 다음 명령을 실행하세요.
  • pip install keras
    pip install tensorflow
    pip install numpy
    pip install Pillow
    로그인 후 복사
  • Dataset
  • 이미지 분류를 수행하기 전에 데이터세트가 필요합니다. 데이터 세트는 이미지 분류 모델을 훈련하고 테스트하는 데 사용되는 주석이 달린 이미지 세트를 나타냅니다. 이 예에서는 MNIST 데이터 세트를 사용합니다. MNIST 데이터 세트는 손으로 쓴 숫자 이미지를 포함하며 이미지 분류 알고리즘의 성능을 테스트하는 데 널리 사용되는 데이터 세트입니다.
  • MNIST 데이터 세트에는 60,000개의 훈련 이미지와 10,000개의 테스트 이미지가 포함되어 있으며 각 이미지의 크기는 28x28픽셀입니다. 사진에는 ​​0부터 9까지 10개의 숫자 중 하나로 라벨이 지정되어 있습니다.
  • Keras에서는 다음 코드를 사용하여 MNIST 데이터 세트를 다운로드할 수 있습니다.
  • from keras.datasets import mnist
    
    (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
    로그인 후 복사
모델 구축

이미지 분류 모델을 구축하기 전에 모델의 아키텍처를 정의해야 합니다. 이 예에서는 CNN(Convolutional Neural Network) 모델을 사용합니다. CNN 모델은 이미지 분류에 좋은 성능을 보이는 딥러닝 모델입니다.

Keras는 CNN 모델을 구축하는 쉬운 방법을 제공합니다. 다음은 예시 CNN 모델에 대한 코드입니다.

from keras import layers
from keras import models

model = models.Sequential()

model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))

model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))

model.add(layers.Flatten())

model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))

model.summary()
로그인 후 복사

위 코드에서는 두 개의 컨볼루셔널 레이어와 두 개의 최대 풀링 레이어가 포함된 CNN 모델을 정의합니다. 이 모델에는 각각 ReLU 활성화 함수를 사용하는 두 개의 밀집 레이어도 포함되어 있습니다.

모델 학습

모델을 정의한 후에는 모델을 학습해야 합니다. 훈련 중에 모델은 입력 이미지를 올바른 숫자 범주에 매핑하는 방법을 학습합니다.

Keras에서는 다음 코드를 사용하여 모델을 컴파일하고 훈련할 수 있습니다.

model.compile(optimizer='rmsprop',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

train_images = train_images.reshape((60000, 28, 28, 1))
train_images = train_images.astype('float32') / 255

test_images = test_images.reshape((10000, 28, 28, 1))
test_images = test_images.astype('float32') / 255

from keras.utils import to_categorical

train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)

model.fit(train_images, train_labels, epochs=5, batch_size=64)
로그인 후 복사

위 코드에서는 먼저 이미지를 전처리한 다음 옵티마이저를 "rmsprop"로 사용하고 손실 함수를 교차로 사용하여 모델을 컴파일합니다. 엔트로피 모델. 그런 다음 훈련 이미지와 레이블을 사용하여 모델을 훈련합니다. 각 시대가 끝나면 테스트 이미지와 라벨을 사용하여 모델을 테스트합니다.

모델 테스트

모델 훈련이 완료된 후 테스트 데이터 세트를 사용하여 모델의 정확성을 테스트할 수 있습니다. 모델은 다음 코드를 사용하여 테스트할 수 있습니다.

test_loss, test_acc = model.evaluate(test_images, test_labels)
print('test_acc:', test_acc)
로그인 후 복사

다음으로 다음 코드를 사용하여 예측을 할 수 있습니다.

predictions = model.predict(test_images)

import numpy as np

print(np.argmax(predictions[0]))
로그인 후 복사
위 코드에서는 테스트 이미지 세트의 첫 번째 이미지를 예측한 다음 Numpy를 사용하여 최대값을 찾습니다. 값을 색인화하고 예측 결과를 인쇄합니다.

결론

이 기사에서는 Python의 딥 러닝 프레임워크인 Keras를 사용하여 이미지 분류 모델의 학습 및 예측을 구현하는 방법을 소개했습니다. 테스트에는 MNIST 데이터세트를 사용하고 훈련에는 CNN 모델을 사용합니다. 마지막으로 테스트 이미지 세트에 대한 예측을 수행하여 모델의 정확성을 테스트합니다. 이 예제는 딥 러닝과 컴퓨터 비전의 입문 예제로 사용될 수 있으므로 초보자가 Python을 사용하여 이미지 분류 작업을 구현하는 방법을 이해할 수 있습니다.

위 내용은 Python의 이미지 분류 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿