전체 글

Never stop acting like the new one on the team
Android/미분류

안드로이드 MVP 패턴에 대해 알아보자.

일단 안드로이드에 대해 기본적인 지식이 있으며, MVP패턴이 어떤 장점들을 가지고 있는지 알고 이 글을 읽는다고 가정하고 어떤 방식으로 프로젝트에서 MVP패턴을 사용하고 있는지 공유하고 피드백 받고싶습니다. 액티비티에서 서버로 부터 요청을 통해 응답받은 것을 화면에 보여주는 시나리오를 통해 예시를 들려고 합니다! * 기본적으로 모든 데이터는 presenter를 통해 이동하고 있으며 모델과 뷰는 서로를 모르고 있습니다. Input은 view를 통해 들어옵니다. 그럼 바로 시작- Presenter를 만들기전 필요한 기능이 있는 인터페이스를 만들어줘야 합니다. 저는 간단하게 이정도로 선언해줬습니다. 여기서도 저희가 사용할 메소드는 requestSendImgApi로 imagePath 파라미터를 제외하고는 Nul..

Daily & Thinking

박근핵닷컴 해커톤 후기(대상 - 300만원)

8월 26~27일 박근핵닷컴 해커톤에 나갔다. 이후에 9월 16~ 17일 하드웨어 해커톤대회에도 나갔으니 해커톤만 9번정도 참여하였던거같다. 게다가 대부분 입상을 했기 때문에 자꾸 나가게 되는거같다. (해커톤 중독자.....) 모르는 사람들과 만나 기획부터 개발, 런칭까지 하는 그 희열이 너무 좋다. 이번 해커톤은 팀을 꾸려 나온 분들이 좀 있으셔서 나와 회사 동기 개발자는 왕따가 되고 말았다. 그래서 남은 분들과 아이디어를 말하고 서로 브레인 스토밍하며, 결국 우리조는 남은 사람들이 몽땅 모였다. 3명의 기획자 3명의 개발자 1명의 디자이너 총 7명! 아이디어를 내고 서비스를 구체화하는 생각외로 많은 시간이 소요되었다. 다음은 우리가 만든 서비스의 소개 문구이다. Critical​ ​Reader​ ​-..

Android/미분류

안드로이드 객체 추출 최종결과

앱의 이름은 PickPic으로 정했다.픽픽! 입에 착 감기지 않는가- (나만 그런가 보다) 앱의 디자인은 같은 동아리의 디자이너님이 해주셨다 (YAPP 디자이너 박주연님 감사합니다.) 다음은 서비스 구성도이다. 1. 사용자가 사진을 찍거나, 앨범에 저장된 사진을 불러온다.2. 이미지내의 색공간, 물체만이 가질 수 있는 특징점, 가중치 등을 통해 객체를 추정한다.3. 정확도를 높이기 위해 추정된 객체만을 서버로 보낸다.4. 서버에서는 텐서플로우를 이용하여 객체와 유사한 이미지등 메타 정보를 내려준다. (총 790개의 카테고리와 32만개의 이미지가 학습되었으며, 학습량은 300만회로 3일가량 걸렸다.)5. 물건을 클릭하여 구매까지 원클릭으로 이어지도록 한다. 간단한 앱의 영상은 youtube에서 볼수 있다...

Android/미분류

안드로이드 객체 추출 사주일차

당시 서버 응답이 이쁘게 와서 캡쳐했었던 사진이다. 지금은 30만이 넘는 데이터가 학습되어 있어 거의 완벽하게 온다. 서버개발자님에게 하트 뿅~! 그리고 항상 도와주시는 차장님에게 하트 뿅b(신기하게도 막힐때면 오셔서 해결해주신다 ㅋㅋ) 개발 도중 심각한 이슈 2개를 겪었다. 이는 open cv를 사용해 카메라를 키기만 하면 10초 뒤에 버퍼가 터져 앱이 에러도 없이 종료되는 이슈와Mat 자료구조의 주소를 전달하는데 있어 jni기법을 사용하여 일어나는 주소값 변화에 있어 대응하지 못하는 이슈를 겪었는데차장님이 옆에 붙어서 해결해 주셨다. 아마 도와주시지 않았으면 이 이슈는 혼자 해결하는데 정말 어려움이 있었을꺼 같다.(쓰면서도 땀 줄줄 후자 이슈는 정말 답답했다. 원인을 찾는데도 오래걸렸다. 둘다 에러로..

Android/미분류

안드로이드 객체 추출 삼주일차

객체 추출 테스트를 하며 아직도 기억에 남는 이미지 몇장 중 나에게 꽤나 오랜 시간을 고민하게 만든 사진이 있다.. 신기하게도 이진화를 하면 반쪽은 하얀색 반쪽은 검은색이였던 이미지이다. 골치아픈 예다. 위의 사진은 빛의 세기 때문에 이진화 하면 흰색 검은색으로 방석이 반반이 이쁘게 나눠진다.(이진화 사진을 넣으려했으나 끔직..) 이 사진때문에 덕분에 나는 알고리즘의 대부분을 작성하고 버렸다. 아마도 차장님이 도와주시지 않았다면 아직도 쩔쩔매고 있을지 모른다. 하지만 결국은 위사진처럼 객체를 추출하는데 성공했다 위 사진은 성공했을 때 당시 사진으로 깔끔하지 못하지만지금은 좀더 깔끔하게 추출할 수 있다. 위 사진도 생각외로 사진 아래 부분 중 왼쪽은 어둡고 오른쪽은 빛이 강하게 들어와나를 괴롭혔다. 하지만..

Android/미분류

안드로이드 객체 추출 이주일차

그렇다. 나는 아주 잘 찾고 있다. 객체를 말이다.....(물론 윗 사진 처럼 개선 알고리즘이 더 좋지 못한 효과를 낼때도 있었다)첫 객체를 가방이라도 단정 짓지는 않았지만 가방 사진이 많은 이유는 주변에 많이 보여서랄까?(하하 쇼피..ㅇ..모..) 요런 것도 찾아 내고 ? 사물이 겹쳐 있어도 어설프게 나마 찾아낸다. 알고리즘을 개선해 나갔지만 어느정도 한계에 부딪히기 시작한다. 그냥 grayscale에서 이런 것을 검출하는 것이 너무 어려웠기 떄문이다. 그래서 과감히 기존의 알고리즘을 버렸다.(위 사진은 기존의 알고리즘을 버리고 검출된 객체이다) 물체의 특징을 생각하며 어떤식으로 검출이 가능할까 고민해본다. 편지 봉투 검출 (역시나 완벽하지는 않다)하지만 수 많은 테스트를 해보며 물체를 보면서 이건 채..

Android/미분류

안드로이드 객체 추출 일주일차

그림으로 보는 안드로이드 객체 추출 객체추출을 위해 Android4Opencv sdk를 공부하였다. Open Cv가 대부분 파이썬, C++로 짜여져 있는 예가 대부분이라 하나하나 자바로 변환해가며 코딩하였다. (c++로 코딩할껄 ..) 구체적으로 어떤 방식을 통해 구현하였는지 또는 소스코드는 쓰기 어려울 것 같습니다.(미리 양해를..) 일주일 정도 공부했을때 나온 성과이다. 생각외로 잘 나오지 않았는가-? GrabCut이라는 알고리즘을 사용해서 구현했던 걸로 기억한다.하지만 GrabCut특성상 안드로이드에서 사용하기엔 너무나도 오랜 시간이 걸렸고, 무엇보다 전경과 후경을 구분하기 위한 선이 필요했다.(논문을 찾아보니 저런 구분을 위한 선을 자동으로 구하는 알고리즘이 있어 써봤지만 그래도 오래걸리거나, 부..

미분류

OpevCV HSV 색공간에 대해 알아보자

HSV 색공간 - 색상 H(hue)값으 빨주노초파남보와 같은 색상을 표현하는 값으로, 육각뿔에서의 각도를 나타내며 0도가 빨간색, 60도가 노란색, 120도가 초록색, 180도가 하늘색 , 240도가 파란색, 300도가 자홍색에 해당한다. - 명도 V(value)값은 밝기 값으로 0이면 검은 색이며 100이면 흰색 빨간색 등을 나타낸다. - 채도인 S(saturation) 값은 특정한 색상의 가장 진한 상태를 100퍼센트로 하였을때 진함의 정도를 나타난대. 채도값 0%는 같은 명도의 무채색을 나타낸다. 색상값은 각도로 표현되며 지정한 색이 원기둥의 수평 단면의 어느 방향에 위치하는지를 지정한다.채도는 반지름에 해당하며 정 중앙에 무채색이 위치하며 원기둥의 겉면은 가장 진한 채도를 갖는다.명도는 높이에 해..

미분류

OpenCV YCbCr 색공간에 대해 알아보자

YCbCr - YCC(약어)는 절대 색공간이 아닌 RGB정보를 인코딩하는 방식이다- Y는 휘도성분 즉, 밝기에 대한 값이며, Cb와 Cr은 색차 성분이다. -영상을 처리하는데 있어, RGB는 세개의 요소가 시각적으로 균일한 정보를 가지고 있는 반면에, YCbCr은 휘도 성분(Y)과 색차 성분(Cr, Cb)을 가지기 때문에 피부, 눈, 입 같은 요소 검출에 많이 사용 된다. *휘도 성분이란 광원의 단위 면적에서 단위 입체각으로 발산하는 빛의 양을 의미한다. - 적은 데이터로 보다 많은 색상을 나타낼 수 있는 장점을 가진다. 어디선가 본 정보에 의하면 HSV 컬러 모델을 이용한 검출보다 YCbCr 컬러 모델을 이용하는 것이 잡음에 강하다고 알려져 있다 (향후 알아볼 계획) Cb는 파란색에서 밝기를 뺀 성분이..

Nanamare
TEAM > SELF