4

나는 각각 3072*3072 픽셀을 가질 수있는 제한된 수의 대형 이미지 작업을하고 있습니다. FCN 또는 U-net을 사용하여 의미 론적 세분화 모델을 학습하려면 트레이닝 세트의 큰 샘플을 만들고 각 트레이닝 이미지는 128*128입니다.대용량 이미지를위한 의미 론적 세분화

예측 단계에서 큰 이미지를 작은 조각으로 자르고 128*128이라는 훈련 세트와 동일하게 훈련 된 모델에 이러한 작은 조각을 공급하면 예측 된 마스크를 얻습니다. 그 후에,이 작은 패치들을 함께 꿰매 서 전체 이미지의 마스크를 얻습니다. 이것이 큰 이미지에 대한 의미 론적 세분화를 수행하는 올바른 메커니즘입니까?

+0

직접'3072' 이미지에서 직접 모델을 훈련시키지 않는 이유는 무엇입니까? – drpng

+1

약 100 개의 약 3072 개의 큰 이미지 만 있습니다. 또한, 큰 이미지에 대한 교육은 천천히 아주 많이 보인다. 나는 256 * 256, 128 * 128 및 64 * 64 모델을 훈련 시켰습니다. 패치 시간이 길어질수록 교육 시간이 매우 빠르게 증가합니다. – user288609

답변

1

입력 이미지 데이터 : 나는 큰 이미지 (3072x3072)를 카페에 직접 넣지 않을 것입니다. 작은 이미지 일괄 처리가 메모리에 더 잘 들어 맞을 것이고 병렬 프로그래밍 역시 효과를 발휘할 것입니다. 데이터 확대가 가능합니다.

큰 이미지의 출력 : 큰 이미지의 출력은 테스트 단계에서 FCN의 입력 크기를 3072x3072로 재조정하는 것이 좋습니다. 왜냐하면 FCN의 레이어는 어떤 크기의 입력도 허용 할 수 있기 때문입니다. 그러면 3072x3072 세그먼트 이미지가 출력됩니다.

+0

안녕하세요 키 센, 답장을 보내 주셔서 감사합니다. 테스트 단계에서 "FCN의 입력 크기를 3072x3072로 다시 작성"하는 것을 "재 작성"하시겠습니까? 교육 과정을 마친 후에도 FCN 아키텍처 (특히 첫 번째 레이어 모양)를 변경해야합니까? 나는 Keras를 사용하고 있으며 일반적으로 예측 단계에서 훈련 된 가중치를로드합니다. 아키텍처가 변경되면로드 가중치가 작동하지 않습니다. – user288609

+0

시험해보십시오. http://stackoverflow.com/questions/39814777/can-keras-deal-with-input-images-with-different-size – curio1729

+0

고마워요, 제가 찾고있는 것이 고맙습니다.그건 그렇고, 우리는 서로 다른 크기의 이미지로 트레이닝 프로세스를 공급할 수있는 것 같습니다. 맞습니까? – user288609

0

당신의 솔루션은 종종 이런 종류의 문제에 사용됩니다. 그러나 필자는 이것이 진정으로 의미가있는 경우 데이터에 의존한다고 주장 할 것이다. 당신이 kaggle에서 찾을 수있는 두 가지 예를 들어 보겠습니다.

위성 이미지의 특정 부분을 마스킹하려면 정확성을 떨어 뜨리지 않고이 방법을 사용하지 않을 수도 있습니다. 이러한 이미지는 매우 반복적이어서 세그먼트 화 된 영역과 원래 이미지에서 가져온 위치간에 상관 관계가 없을 가능성이 높습니다.

차를 배경에서 구분하려면 패치로 나누는 것이 바람직하지 않습니다. 여러 레이어를 통해 네트워크는 프레임에서 자동차의 전체적인 분포를 학습합니다. 마스크가 이미지의 모서리에서 중간 및 부정적이면 매우 가능성이 큽니다.

해결하려는 사항을 구체적으로 설명하지 않았기 때문에 일반적인 권장 사항 만 제공 할 수 있습니다. 하드웨어가 허용하는만큼 입력 이미지를 크게 유지하십시오. 많은 경우에 원본 이미지를 패치로 나누는 것이 아니라 오히려 원본 이미지를 다운 샘플링합니다.

curio1729의 권장 사항에 관해서는 작은 패치에 대한 교육을하지 말고 원본 이미지를 테스트하는 것이 좋습니다. 완전 컨볼 루션 (convolutional) 네트워크 덕분에 기술적으로 가능하지만 데이터를 확장하면 성능이 저하 될 수 있습니다. CNN은 로컬 기능을 추출한 것으로 유명하지만 여러 계층의 추상화를 통해 학습 된 많은 양의 글로벌 정보가 있습니다.