Android/미분류

Android/미분류

안드로이드 Architecture 패턴 예제 코드(MVC, MVP, MVVM, LIVEDATA, KOIN, RXJAVA, DataBinding)

모든 예제 코드는 구글 청사진을 기본으로 구현되었습니다. 모든 프로젝트가 저장되어 있는 저장소입니다 (MVC, MVP, MVVM) Nanamare/android_architecture Simple Android architecture app. Contribute to Nanamare/android_architecture development by creating an account on GitHub. github.com 모든 예제 코드에서 API 비동기 처리 및 Observer 패턴 구현에 RxJava가 사용되었습니다. MVC 적용(RxJava 사용) MVP 적용(RxJava 사용) MVVM 적용(ObservableField + Databinding + RxJava 사용) MVVM 적용(LiveData ..

Android/미분류

텐서플로우, 텐서 플로우 라이트, NCNN 비교해보기.

문서) https://docs.google.com/presentation/d/1IsY-A7oAAbMqX_si5tccmtJEbp0hjHNCQhIj0gf2XtY/edit?usp=sharing Ncnn Mobilenet_V1 (https://github.com/nanamare/ncnn_mobilenet) 텐서 플로우는 구글의 머신러닝 프레임 워크이며, 텐서 플로우 라이트는 임베디드, 모바일 같은 플랫폼에서 사용하기 위해 최적화 되어 있는 구글에서 제공하는 라이브러리 입니다. NCNN 은 모바일 플랫폼에 최적화 된 고성능 신경망 추론 컴퓨팅 프레임 워크입니다. 특이하게도 "NCNN은 휴대 전화 CPU의 모든 알려진 오픈 소스 프레임 워크보다 빠르게 실행됩니다"라고 써져 있어 궁금하기도 하고 NCNN에 관심이 있..

Android/미분류

fire tracking sequence diagram

실시간 카메라나 동영상 데이터를 사용해 트래킹 알고리즘을 구현할때 생각 했던 방법들인데 혹시나 도움이 될까해서 올립니다. 전체적인 시나리오는 같지만 bitmap을 이용하지 않고 바이트버퍼같은 raw data를 주로 사용하였습니다~! 비트맵 사용하면 성능 절대 안나옵니다 ㅠ^ㅠ ​ ​ ​

Android/미분류

Fire detection for mobile

I'm customizing it base on google example. Main algorithm: YCrCb, HSV, RGB color segmentation & histogram & subtract moving fire video frame(차영상) Model: inception v3 Galaxy note 5 이런식으로 인퍼런스에서 가져온 좌표를 크롭하여 다양한 방법으로 활용하고 있다.

Android/미분류

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

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

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에서 이런 것을 검출하는 것이 너무 어려웠기 떄문이다. 그래서 과감히 기존의 알고리즘을 버렸다.(위 사진은 기존의 알고리즘을 버리고 검출된 객체이다) 물체의 특징을 생각하며 어떤식으로 검출이 가능할까 고민해본다. 편지 봉투 검출 (역시나 완벽하지는 않다)하지만 수 많은 테스트를 해보며 물체를 보면서 이건 채..

Nanamare
'Android/미분류' 카테고리의 글 목록