그림으로 보는 안드로이드 객체 추출
객체추출을 위해 Android4Opencv sdk를 공부하였다.
Open Cv가 대부분 파이썬, C++로 짜여져 있는 예가 대부분이라 하나하나 자바로 변환해가며 코딩하였다. (c++로 코딩할껄 ..)
구체적으로 어떤 방식을 통해 구현하였는지 또는 소스코드는 쓰기 어려울 것 같습니다.(미리 양해를..)
일주일 정도 공부했을때 나온 성과이다.
생각외로 잘 나오지 않았는가-? GrabCut이라는 알고리즘을 사용해서 구현했던 걸로 기억한다.
하지만 GrabCut특성상 안드로이드에서 사용하기엔 너무나도 오랜 시간이 걸렸고, 무엇보다 전경과 후경을 구분하기 위한 선이 필요했다.
(논문을 찾아보니 저런 구분을 위한 선을 자동으로 구하는 알고리즘이 있어 써봤지만 그래도 오래걸리거나, 부정확했다.)
다른 방법을 사용하기로 결심하고 여러 방법들을 찾아 해봤지만 저런 드라마틱한 효과를 내기는 어렵다는 것을 깨달았다 ^ㅜ^(하지만 찾아내야한다.)
일단은 어려운 이미지보다는 쉬운 이미지로 검출하기로 결심하고 필자는 항상 단색 바탕위에 물체를 찍게되는 버릇아닌 버릇이 생기게된다..........
역시 단색위에 객체를 검출하는 것은 생각외로 어려운 일은 아니였다. *물론 단색 위에서 만이다.
이때는 단순히 이진화를 통해 물체를 검출해냈던걸로 기억한다.
자신감을 얻고(?) 조금 어려운 이미지에 도전해본다...
역시나 이미지가 조금만 복잡해져도 객체를 추출하는데 어려움이 많아졌다. 위 사진은 정말 객체를 추출하는데 있어,
나에게는 어려운 도전이였다.
어떤 방법을 해도 잘 되지 않았다.
애초에 이미지 자체에 문제가 많아보였다.
GrayScale 에서 이 이미지를 검출하는 것은 불가능에 가까워 보였다.(물론 당시에는 열심히 공부하지 않아서 그렇습니다. 현재 생각해보면 검출할 방법은 넘치고 넘칩니다 ㅠㅠㅠㅠ)
하지만 결과적으로 grayscale에서 검출하는 것을 성공했다.
현재 생각해보면 HSV나 YCrCb 색공간을 사용했다면 단숨에 검출 되었을텐데..
당시에는 지식이 짧아 엄청난 전처리 과정을 통해 성공하였다.(가우시안블러, 침식, 팽창, 평준화, 엣지 보존 필터 등등)
그래서 더욱더 어려운 이미지 검출에 도전 해보기로 한다.
'Android > 미분류' 카테고리의 다른 글
안드로이드 객체 추출 삼주일차 (0) | 2017.08.14 |
---|---|
안드로이드 객체 추출 이주일차 (0) | 2017.08.14 |
이벤트 버스 대신 혼날 각오하고 RxJava를 사용하여 실제 프로젝트에 녹여보기 (0) | 2017.05.14 |
EventBus , RxJava로 대체 해보자! (0) | 2017.05.12 |
RxJava를 이용한 Reactive Programming (0) | 2017.05.01 |