Android

Android/미분류

fire tracking sequence diagram

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

Android/Development Tips

안드로이드 프로세스와 스레드

요즘 일하면서 스레드를 정말 많이 사용하는데, 평소에 잘 사용한다고 생각하고 있었는데 Rx에서 제공하는 스레드(AndroidSchedulers.MainThread, Computation.Io 등등 너무 편해요..)를 사용하다보니 예전 기억이 긴가민가해 이번을 기회로 다시 정리 할까 한다. 기본적으로 안드로이드에서의 프로세스와 스레드 개념은 리눅스, 윈도우 등과 같은 운영체제에 배운 것과 크게 차이점이 없다. 하지만 단순히 프로세스와 스레드뿐만 아니라 안드로이드 컴퍼넌트와의 관계까지 함께 이해해야 앱이 어떤식으로 동작하는지 정확히 이해 할 수 있다. 예전에 케이티 하이텔 면접에서 이런 질문을 받았던 것을 기억한다. 혹시 쓰레드와 프로세스의 차이점에 대해 아냐고-그래서 나는 프로세스는 하나의 쓰레드 또는 여..

Android/Development Tips

액티비티와 생명주기

앞선 글에서 액티비티는 사용자와 안드로이드 어플리케이션 간에 인터페이스 역할을 한다고 했었다. 액티비티는 사용자가 보기에는 하나의 화면이지만, 내부적으로는 뷰, 뷰그룹으로 이루어져있다.여기서 뷰란 실제로 사용자에게 보여주는 부분이고, 뷰 그룹은 여러개의 뷰를 묶어 노흔 형태로 보면 된다. 뷰에는 기본적으로 AppcompatImageView, AppcompatTextView, AppcompatEditText 등의 기본적인 화면 구성요소들이 뷰에 포함된다. 또한한 다음 맵, 비디오, 웹 등을 표시하는 고급 구성요소들도 모두 뷰에 포함 된다, 뷰 그룹은 직접적으로 보이지는 않지만 다른 뷰를 담은 컨테이너 역할과 뷰들의 위치를 관리해준다. CoordinatorLayout, ConstrainLayout, Rela..

Android/Development Tips

안드로이드 컴포넌트

실무를 진행하며 안드로이드에 대해 부족한 점이 느껴져 개인 공부를 하며 스스로 중요하다 생각하는 것에 대해서 짧게나마 포스팅 합니다. 안드로이드 컴포넌트는 크게 4가지로 구분됩니다. 1. 액티비티2. 서비스3. 컨텐츠 프로바이더4. 브로드 캐스트/리시버(5. 인텐트를 포함해서 5개로 구분하는 경우도 봤습니다.) 액티비티는 안드로이드를 구성하는 가장 기본적이고, 중요한 컴포넌트로 사용자와 앱 사이의 인터페이스 역할을 담당하고 있습니다.하나의 화면이라고 생각하면 쉽게 이해할 수 있습니다. 앱을 구성하고 있는 "화면" 하나하나가 모두 액티비티라고 볼 수 있습니다. 서비스는 앱을 개발하다보면 가령 사용자의 개입 없이 백그라운드에서 데몬처럼 동작이 필요한 경우가 있는데, 이를 서비스라고 부릅니다.서비스를 설명하는..

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/미분류

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

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

Nanamare
'Android' 카테고리의 글 목록 (10 Page)