예를 들어 학습하고 주변 환경을 인식하는 타고난 능력을 로봇에 불어넣었다는 사실은 안심이 됩니다. 근본적인 문제는 인간처럼 "보는" 방법을 컴퓨터에 가르치는 데 훨씬 더 많은 시간과 노력이 필요하다는 것입니다.
그러나 현재 이 기술이 조직과 기업에 제공하는 실질적인 가치를 고려할 때 그 노력은 가치가 있습니다. 이 문서에서는 이미지 분류, 작동 방식 및 실제 구현에 대해 알아봅니다. 의 시작하자.
이미지 분류란 무엇입니까?
에 이미지를 공급하는 작업 신경망 해당 사진에 대한 어떤 형태의 레이블을 출력하도록 하는 것을 이미지 인식이라고 합니다. 네트워크의 출력 레이블은 미리 정의된 클래스에 해당합니다.
그림에 할당된 클래스가 많거나 하나만 있을 수 있습니다. 하나의 클래스만 있는 경우에는 "인정"이라는 용어를 많이 사용하고 여러 클래스가 있는 경우에는 "분류"라는 용어를 많이 사용합니다.
물체 감지 개체의 특정 인스턴스가 동물, 차량 또는 인간과 같은 주어진 클래스에 속하는 것으로 감지되는 그림 분류의 하위 집합입니다.
이미지 분류는 어떻게 작동합니까?
픽셀 형태의 이미지는 컴퓨터에 의해 분석됩니다. 이미지 해상도에 따라 크기가 결정되는 매트릭스 모음으로 그림을 처리하여 이 작업을 수행합니다. 그림분류는 쉽게 말해 컴퓨터의 관점에서 알고리즘을 활용한 통계자료 연구이다.
이미지 분류는 픽셀을 사전 결정된 그룹 또는 "클래스"로 그룹화하여 디지털 이미지 처리에서 수행됩니다. 알고리즘은 이미지를 일련의 주목할만한 특성으로 분할하여 최종 분류기의 부담을 줄입니다.
이러한 특성은 분류자에게 이미지의 의미와 잠재적 분류에 대해 알려줍니다. 그림을 분류하는 나머지 과정은 그것에 의존하기 때문에 특성 추출 방법이 가장 중요한 단계입니다.
XNUMXD덴탈의 제공된 데이터 알고리즘에 대한 이미지 분류, 특히 지도 분류에서도 중요합니다. 클래스에 기반한 데이터 불균형과 낮은 그림 및 주석 품질을 가진 끔찍한 데이터 세트와 비교할 때 잘 최적화된 분류 데이터 세트는 훌륭하게 수행됩니다.
Python에서 Tensorflow 및 Keras를 사용한 이미지 분류
우리는 시파 -10 데이터 세트(비행기, 비행기, 새 및 기타 7개 항목 포함).
1. 설치 요구 사항
아래 코드는 모든 필수 구성 요소를 설치합니다.
2. 종속 항목 가져오기
Python에서 train.py 파일을 만듭니다. 아래 코드는 Tensorflow 및 Keras 종속성을 가져옵니다.
3. 파라미터 초기화
CIFAR-10에는 10개의 그림 범주만 포함되므로 num 클래스는 단순히 분류할 범주의 수를 나타냅니다.
4. 데이터셋 불러오기
이 함수는 Tensorflow 데이터 세트 모듈을 사용하여 데이터 세트를 로드하고 정보를 True로 설정하여 이에 대한 정보를 얻습니다. 인쇄하여 어떤 필드와 해당 값이 있는지 확인할 수 있으며 이 정보를 사용하여 교육 및 테스트 세트의 샘플 수를 검색합니다.
5. 모델 만들기
이제 우리는 각각 최대 풀링 및 ReLU 활성화 기능이 있는 두 개의 ConvNet으로 구성된 세 개의 계층을 구축하고 완전히 연결된 1024 단위 시스템을 구축합니다. 최첨단 모델인 ResNet50이나 Xception과 비교하면 비교적 작은 모델일 수 있습니다.
6. 모델 훈련
Tensorboard를 사용하여 각 시대의 정확도와 손실을 측정하고 데이터를 가져오고 모델을 생성한 후 멋진 디스플레이를 제공했습니다. 다음 코드를 실행하십시오. CPU/GPU에 따라 교육에 몇 분 정도 소요됩니다.
텐서보드를 사용하려면 현재 디렉터리의 터미널 또는 명령 프롬프트에 다음 명령을 입력하기만 하면 됩니다.
유효성 검사 손실이 감소하고 정확도가 약 81%로 상승하는 것을 볼 수 있습니다. 환상적이야!
모델 테스트
학습이 완료되면 최종 모델과 가중치가 결과 폴더에 저장되어 한 번 학습하고 선택할 때마다 예측할 수 있습니다. test.py라는 새 Python 파일의 코드를 따릅니다.
7. 테스트용 유틸리티 가져오기
8. 파이썬 디렉토리 만들기
각 정수 값을 데이터 세트의 적절한 레이블로 변환하는 Python 사전을 만듭니다.
9. 테스트 데이터 및 모델 불러오기
다음 코드는 테스트 데이터와 모델을 로드합니다.
10. 평가 및 예측
다음 코드는 개구리 이미지를 평가하고 예측합니다.
11. 결과
모델은 80.62%의 정확도로 개구리를 예측했습니다.
결론
자, 이 수업을 마치겠습니다. 작은 CNN에는 80.62%가 좋지 않지만 더 나은 결과를 위해 모델을 변경하거나 ResNet50, Xception 또는 기타 최첨단 모델을 살펴보는 것이 좋습니다.
이제 Keras에서 첫 번째 이미지 인식 네트워크를 구축했으므로 모델을 실험하여 다양한 매개변수가 성능에 어떤 영향을 미치는지 알아내야 합니다.
댓글을 남겨주세요.