kmu-leeky / crc-research

0 stars 1 forks source link

1. [CRC] 데이터 전처리: 임의의 한 지점을 기준으로 연속적으로 이미지 Crop 모듈 구현하기 #34

Open oryondark opened 5 years ago

oryondark commented 5 years ago

Thinking

  1. 교수님. 모듈 구현하는 것의 대해서 따로 신규 레포지토리로 관리하는 것이 좋지 않을까요?? 현재 구현 중인 모듈을 깃을 따로 관리하는 것이 좋지 않을까 싶어서요. 우선 생각하는 것으론 아래 시나리오대로 진행하면서 클라우드 람다 작업을 위한 초기 입력 모듈을 구현하여 배포하는 것으로 만들고 있습니다.

  2. Crop 패턴은 현재 십자패턴, 대각패턴을 기본적으로 구현 중 입니다. 패턴을 만드는 방법은 입력 모듈에서 각 패턴으로 Crop될 위치를 배열형태로 람다로 전송할 예정입니다.

    {'original' : [box_coordinates],
    'pattern 1' : [box_coordinates],
    'pattern 2' : [box_coordinates],
    'pattern 3' : [box_coordinates],
    'pattern 4' : [box_coordinates]
    }

    box_coordinates는 각각 서로 다른 좌표정보를 가지고 있습니다. 이 정보에 추가로 입력 모듈에서는 padding을 추가해서 다음과 같은 작업이 가능하도록 구현 중 입니다.

    image
  3. 지금 당장 생각하고 있는 시나리오는 아닌대요. 현재 가장 중요할 것으로 보이는 요소로 교수님께서 말씀하셨던 스마트 패턴 추출이며, 이것은 희태씨가 준 모델(?) 등을 이용하여 시프팅 추출을 진행하는 것 입니다. 패턴 하나를 추출하고 패턴 추출 결과 Clean 데이터라면 그대로 추출하고, 그렇지 않을 경우 버리는 형태로 구현할까 합니다.

시나리오

  1. 모듈로 구현
  2. 작업을 클라우드 상에서 수행하도록 구현
  3. 모듈은 입력 모듈과 lambda 모듈로 따로 구현.
image

Users는 입력값을 넣어주는 주체라고 해석하여 원본파일이 있는 버켓 내 /Original 폴더에서 이미지를 람다로 다운로드 합니다. 이후 람다 내에서 시프팅 crop을 수행하여 /Cropped 폴더에 업로드 하도록 합니다.

작업 기간

1주일 예상

oryondark commented 5 years ago

진행 상황:

  1. 입력 모듈 Prototype 구현 완료

    • Cross Crop 기능만 구현된 상태로 구현. 추가적인 기능 구현에는 일정상 지장은 없을 것으로 보입니다.
  2. API gateway 와 Lambda 연동을 통하여, 입력모듈을 사용하는 사람들은 누구든지 Lambda Invoke 요청을 수행할 수 있도록 구현.

  3. 테스트 진행 및 다양한 Crop 기능의 대해 퍼펙트하도록 구현 중.

예제 자료

image

해당 이미지는 십자 형태로 Crop하기위한 Fake URL과 좌표를 외부로부터 입력했을 때, 입력 모듈이 이를 입력받고, Lambda 함수로 호출 했을 때 CloudWatch에서 확인된 이미지 입니다. 이를 바탕으로 다음 람다에서는 버킷에서 URL 좌표에서 키값을 추출하여 이미지를 다운로드 받고, 그 다음 지정한 crop 패턴 형식의 좌표정보로 이루어진 여러 박스로부터 다수의 crop을 진행할 예정입니다.

이 기능의 장점

  1. 입력 모듈을 어디서든 사용할 수 있습니다.
  2. boto 라이브러리를 설치해야 할 필요성이 없으며, 사용하는 사람은 credentials 정보가 불필요 합니다.
  3. 람다의 기능은 단순히 Crop만 하고, 이를 버킷에 업로드하는 단순한 기능만 수행할 수 있도록 할 수 있습니다.

Question

  1. 다수의 Crop 영역이 저장된 Json으로부터 영역의 수에 따라 람다를 동시에 여러개 서로 다른 영역을 Crop하도록 구현하는 것이 좋을까요?
  2. 아니면 하나의 Lambda가 여러 영역을 전부 Crop하도록 구현하는 것이 좋을까요?

1번의 경우 동일한 람다를 연속적으로 동시에 수행이 가능한지 확인하고, 가능할 경우 이를 수행하는 방법입니다.

kmu-leeky commented 5 years ago

만나서 얘기를 하겠지만, 지금은 굳이 클라우드에서 활용하는 방안을 생각하는 단계는 아닐것 같아. 우선 학습데이터를 생성하고 그 데이터로 학습을 진행했을때 정확도가 높아지는 등을 보는게 중요할듯.