신경망을위한 이미지를 준비 / 확대하는 방법은 무엇입니까?


41

이미지 분류에 신경망을 사용하고 싶습니다. 사전 훈련 된 CaffeNet으로 시작하여 응용 프로그램에 맞게 교육하겠습니다.

입력 이미지를 어떻게 준비해야합니까?

이 경우 모든 이미지는 동일한 객체이지만 변형이 있습니다 (생각 : 품질 관리). 그것들은 다소 다른 스케일 / 해상도 / 거리 / 조명 조건에 있습니다 (그리고 대부분의 경우 스케일을 모릅니다). 또한 각 이미지에는 네트워크에서 무시해야 할 관심 대상 주위에 알려진 영역이 있습니다.

예를 들어, 각 이미지의 중심을자를 수 있습니다. 관심 대상의 일부를 포함하고 무시 된 영역은 포함하지 않습니다. 그러나 그것은 정보를 버리는 것처럼 보이며 결과는 실제로 같은 규모가 아닐 수도 있습니다 (1.5x 변형).

데이터 세트 기능 보강

무작위 자르기 / 미러 등으로 더 많은 훈련 데이터를 생성한다고 들었습니다. 표준 방법이 있습니까? 분류기 정확도가 얼마나 향상되었는지에 대한 결과가 있습니까?

답변:


35

신경망의 아이디어는 무거운 학습이 기능 학습을 담당하는 알고리즘에 의해 수행되므로 사전 처리가 거의 필요 없다는 것입니다.

Data Science Bowl 2015의 우승자는 접근 방식에 대한 글을 많이 작성 했으므로이 답변 내용의 대부분은 다음 같습니다 . 심층 신경망으로 플랑크톤 분류 . 특히 전처리 및 데이터 기능 보강에 대한 부분을 읽어 보시기 바랍니다 .

-이미지 크기 조정

다른 크기, 해상도 또는 거리에 대해서는 다음을 수행 할 수 있습니다. 각 이미지의 가장 큰면을 고정 길이로 간단히 조정할 수 있습니다.

또 다른 옵션은 openCV 또는 scipy를 사용하는 것입니다. 그러면 100 열 (너비)과 50 행 (높이)을 갖도록 이미지 크기가 조정됩니다.

resized_image = cv2.resize(image, (100, 50)) 

또 다른 옵션은 다음을 사용하여 scipy 모듈을 사용하는 것입니다.

small = scipy.misc.imresize(image, 0.5)

-데이터 보강

데이터 보강은 데이터 집합에 따라 다르지만 항상 성능을 향상시킵니다. 인위적으로 데이터 집합의 크기를 늘리기 위해 데이터를 보강하려는 경우 사례가 적용되는 경우 다음을 수행 할 수 있습니다 (예를 들어 주택이나 사람들의 이미지가 180도 회전하면 모든 정보가 손실되는 경우에는 적용되지 않음) 그러나 거울처럼 뒤집어 놓지 않으면)

  • 회전 : 각도가 0 ° ~ 360 ° 인 임의 (균일)
  • 번역 : -10에서 10 픽셀 사이의 이동으로 임의 (균일)
  • 크기 조정 : 1 / 1.6과 1.6 사이의 배율 (임의)
  • 뒤집기 : 예 또는 아니오 (베르누이)
  • 전단 : -20 °와 20 ° 사이의 각도로 임의 (균일)
  • 스트레칭 : 1 / 1.3과 1.3 사이의 신축 계수를 갖는 랜덤 (로그-균일)

Data Science 보울 이미지에서 결과를 볼 수 있습니다.

전처리 된 이미지

전처리 된 이미지

동일한 이미지의 증강 버전

여기에 이미지 설명을 입력하십시오

다른 기술

이것들은 조명과 같은 다른 이미지 속성을 다루며 이미 간단한 전처리 단계와 같은 주요 알고리즘과 관련이 있습니다. UFLDL Tutorial 에서 전체 목록을 확인하십시오.


1
색상은 또한 데이터 확대를 위해 가치가 있습니다.
David C. Bishop

회전 및 전단 등의 코드를 공유 할 수 있습니까 ?? @wacax
아스날

데이터 보강을 위해 keras와 같은 패키지를 사용할 수 있습니다.
Ricardo Cruz

2
scipy.misc 모듈 가져 오기에 문제가있는 사람 당신은해야합니다 import scipy.misc. stackoverflow.com/questions/13581593/…
eleijonmarck 2016 년

이미지 크기 조정과 관련하여 ImageNet에서 사용되는 것과 같은 최신 방법에서 일반적으로 사용되는 방법은 무엇입니까?
HelloGoodbye

2

wacax의 답변은 완전하고 설명이 필요하지만 누군가 가이 답변에 걸려 넘어 질 경우를 대비하여 몇 가지 사항을 추가하고 싶습니다.

우선, 대부분의 scipy.misc이미지 관련 기능 ( imread, imsave, imresizeERC)는 하나의 찬성되지되었다 ImageIO에서 또는 skimage .

둘째, 확장 작업에 파이썬 라이브러리 imgaug 를 강력히 권장합니다 . 사용하기가 정말 쉽고 거의 모든 기능 보강 기술이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.