1

이 질문은 이전에 묻지 만 아직 답변을 찾을 수 없었습니다. 저는 Python과 Tensorflow를 처음 사용했지만 MNIST 이미지 세트로 최대 ± 99.3 %의 정확도를 얻을 수있었습니다. 이제는 내 자신의 이미지를 사용하려고하지만 이것은 예상했던 것보다 나에게 힘든 것으로 판명되었습니다.TensorFlow에서 내 이미지를 어떻게 사용합니까?

Tensorflow 사이트의 튜토리얼 페이지를 수백 번 읽었지만 나에게 의미가 없으며 어떤 시도를하든 나는 경고로 끝납니다. 이제는 나 자신을 알아 내고 싶지만 누군가 내 자신의 이미지로 작업하는 것이 가장 쉬운 방법을 생각하고 있습니까? 아니면 어떤예요? 나는 그들을 위해 온라인을 찾고 있었지만, 나는 그것들의 1000을 발견하고있는 것처럼 느껴졌지 만 그들 중 아무도 내가 이해할 수있는 방식으로 설명을 얻지 못한다.

미리 도움을 주셔서 감사합니다.

+0

답변을 받으려면 이미지가 무엇입니까? 얼마나? 레이블이 붙어 있습니까? 어떤 크기? 어떤 수업/얼마나 많은 수업이 있습니까? 분류 작업을 원하십니까? 아니면 더 정교한 작업을 원하십니까? – dga

+0

각기 다른 기호로 된 42 개의 토큰이 있습니다. 이미지 크기가 정말 낮은 품질이 될 수 있도록 기호가 실제로 양식이 적용됩니다. 내 목표는 내가 만든 토큰을 인식하는 것입니다. 이것은 각각 다른 레이블을 가진 42 개의 토큰을 의미합니다. –

+0

레이블이 지정된 데이터 세트를 만들기 위해 미리 사진을 찍고있는 물리적 토큰? 서로 다른 조건 (배경, 조명, 방향 등) 하에서 각각의 사진을 몇 장이나 가져갈 의향이 있습니까? :) – dga

답변

1

이렇게 정리하면 42 개의 클래스가 있으며 각각 약 10 개의 그림이 있어야합니다.

이 두 가지의 필요에 꽤 정면을 배치합니다

당신은 이미 코멘트에 데이터 증가에 대한 가능성 필요성을 언급 한, 그리고 당신 다시 주목하자면 : 클래스 당 10 개의 이미지를 최대한 활용하기 위해서는 전체 변형을 적용하는 것이 좋습니다. 아마도 더 많은보다 10/20 총 이미지 :

  • 는 스케일링
  • 자르기
  • 노이즈
  • 대비/색상/밝기 조정
  • 회전

데이터 보강의 좋은 예 이미지 분류는 official resnet example model

두 번째는 전송 학습입니다. 아주 작은 데이터에서 42 개 클래스의 모델을 배우려고하면 다른 데이터에 대해 숙련 된 모델에서 시작하여 새 데이터 세트로 마지막 (몇 개) 레이어를 다시 교육하면 더 잘 수행 할 수 있습니다. 이 배후의 이유는 초기 학습의 예제 공간이 훨씬 넓어 분류자가 전송 학습 분류기가 더 높은 수준의 인식을 더 빨리 달성하는 데 사용할 수있는 다양한 일반 이미지 기능을 학습하는 데 도움이된다는 것입니다.

물론 다른 방법으로는 능동적 인 학습을 할 수 있습니다. 분류자를 훈련시킨 다음 토큰 이미지를 보여줄 수 있습니다 (웹캠을 통해 각 프레임을 분류하는 등) 이것을 다음 훈련 라운드의 예로서 저장하십시오. 이것은 더 많은 작업을 필요로하며 인프라에 대한 인프라를 구축해야하기 때문에 전송 학습부터 시작합니다.

그러면 전송 학습을 위해 시작할 아키텍처가 무엇인지 질문하게됩니다. 시작은 아마 당신이하는 일에 너무 많은 것이지만, MNIST 모델은 아마도 당신이 원하는 것보다 더 간단 할 것입니다. 몇 가지 실험을해야 할 것입니다. 일반적인 MNIST 예제와 같이 수정 된 LeNet 스타일 분류기는 매우 잘 작동합니다 (다른 길쌈 레이어 추가, batchnorm 추가 및 드롭 아웃 추가). 또는 미리 훈련 된 Mobilenet 네트워크에서 시작하여 전송할 수 있습니다.당신이 추론 속도에 대한 몇 가지 엄격한 계산 한계를 가지고 있지 않다면 나는 후자로부터 시작하기를 원할 것입니다.

이미지의 경우 JPEG 이미지 디렉토리를 만들어야합니다. 이들을 처리하는 가장 "공식적인"방법은 this answer의 프로세스입니다.

+0

이 답변은 놀라운 것입니다, 정말 고마워요! 나는 기본적인 MNIST 모델이 꽤 잘 작동하지 않을 것이라고 생각했기 때문에, 내 계획을 내 코드로 가져올 수 있는지 확인한 다음, 문서를 가지고 모든 테스트를 수행하여 모든 다른 옵션에 대한 느낌을 얻었습니다. 가장 효율적인 방법은 아니지만 배우려고 노력하고 있습니다. 그러면 많은 것을 시험하고 시행 착오를 통해 길을 찾을 수있게 될 것입니다. 이미 이미 관심을 끌었던 Mobilenet 네트워크를 살펴 보았습니다. 전송 학습을 사용하여 토큰에 사용하는 방법을 살펴 보겠습니다. –

관련 문제