Android 4

[Tensorflow Lite] - 객체 탐지(Object Detection Model)만들기_3. 안드로이드에 Tensorflow Lite 모델 삽입

들어가며 지난 시간까지 데이터를 수집하고 Tensorflow Lite 모델을 만드는 과정까지 진행해보았다. 이번에는 이 모델 파일을 Android에 삽입해서 실제 구동까지 진행해보도록 하겠다. TFlite 모델에 메타데이터 추가하기 이 부분 때문에 필자는 몇 시간동안 삽질을 했다. 이전 장에서 만든 .tflite 파일을 그대로 안드로이드에 사용하게 되면 에러가 발생한다:(. 구글링을 하고 stack overflow에 업로드하는 등 여러 노력을 통해서 솔루션을 찾아냈다. 에러의 내용은 tflite모델에 NormalizationOptions이 추가되어 있어야 한다는 뜻이었다. 이는 메타 데이터의 일종인데 이를 삽입하기 위해선 추가적인 작업이 필요했다. 위 코드를 사용하면 필요한 메타 데이터를 추가 할 수 있..

Machine Learning 2021.03.17

[Android] - 라이브러리를 만들고 테스트해보기

들어가며 파이썬, 자바등의 많은 프로젝트에서는 이식성을 위한 코드의 집합인 패키지, 모듈이 있다. 당연히 안드로이드에도 이를 지원하는 AAR(Android Archive)가 존재한다. 공식 사이트에도 설명이 되어있지만 갱신되지 않거나 모호한 부분이 있어 차근차근 모듈을 만들고 테스트하는 방법에 대해서 알아보도록 하자. 안드로이드의 모듈은 코드뿐만 아니라 이미지, 텍스트 등의 데이터를 포함해서 부르기 때문에 여기선 라이브러리와 동일한 의미로 언급한다. 1. 새로운 모듈 만들기 우선 기존의 프로젝트에서 아래의 경로를 통해 새로운 모듈을 만든다. New Module을 클릭하면 여러가지 타입이 나오는데 간단한 AAR을 만들기 위해서 Android Library를 선택하고 next를 클릭한다. 다음에는 모듈이름과..

Android 2021.02.12

[Android] - Notification 알림을 사용해보자

들어가며 안드로이드의 가장 기본적인 알림을 사용해보자. 아마 프로젝트 하다가 어떻게 쓰는지 궁금한 사람들이 검색을 했을 테니 최대한 간결하게 코드를 통해 설명하겠다. 코드를 세세하게 찾아보고 싶은 사람은 android developers의 문서를 참조하기 바란다. 사용방법 1. Notification Channel만들기 각 어플리케이션에서 Notification알림을 실행하려면 우선 채널을 만들어야한다. 아래 코드를 복사해서 MainActivity에 추가하고 onCreate에서 해당 함수를 호출해주자 *채널명과 설명은 본인 어플리케이션에 맞게 설정해주자 private void createNotificationChannel() { // Create the NotificationChannel, but onl..

Android 2021.01.03

[Android] Context란? - 다른 액티비티의 변수,함수 호출

들어가며 안드로이드 코드를 작성하다보면 view를 다룰 때 꼭 한번 context를 parameter로 요청하는 경우가 있다. 그냥 단어만 알고있던 이것에 대해서 한 번 알아보고 어떤 쓸모가 있는지 알아보고 다른 인스턴스에 접근하는 방법을 탐구해보자. ( 인스턴스 접근방법을 알고 싶다면 맨 아래 문단을 참고하기 바랍니다. ) Context의 정의 위는 Android Developers에 게시된 문서의 정의부분이다. 읽어보니 안드로이드의 시스템 요소와 자원에 접근하기 위한 추상 클래스라고 한다. 문서를 조금더 찾아보니 Activity, Application, Service의 base class로 사용된다고 한다. 이를 알고 나니 기본적인 시스템 추상클래스라는 느낌을 알겠다. 용례 어플리케이션의 resour..

Android 2021.01.03