FLUTTER with AI tensorflow
How to build a TensorFlow model in Flutter and
tensorflow model convert to tensorflow lite model
This presentation describes how to build an AI app easily.
7. Part 2 AI 모델을 tf lite로 만들기
AI ML DL 정의
1. AI 인공지능(Artificial Intelligence)
○ 인간의 지능을 모방하거나 시뮬레이션하기 위해 컴퓨터 프로그램과 기계를
사용하는 분야를 가리킵니다. 이것은 컴퓨터가 문제 해결, 추론, 학습 및
자율적인 의사 결정을 수행할 수 있는 능력을 향상시키려는 목표를 갖고 있는
기술 입니다.
2. ML 머신러닝(Machine Learning)
○ 머신러닝은 컴퓨터 시스템이 데이터로부터 패턴을 학습하고, 이를 기반으로
예측, 분류, 군집화와 같은 작업을 수행할 수 있게 하는 기술입니다. 이를 위해
알고리즘과 모델을 사용하여 데이터를 분석하고 예측합니다.
3. DL 딥러닝(Deep Learning)
○ 딥러닝은 머신러닝의 한 분야로, 인공 신경망을 사용하여 복잡한 패턴 인식 및
특징(feature)추출 작업을 수행합니다. 여러 개의 은닉층을 가진 신경망 구조를
사용하며, 대량의 데이터에서 자동으로 특징을 추출하고 학습합니다. 주로
이미지 및 음성 인식과 자연어 처리 분야에서 효과적으로 활용됩니다.
딥러닝은 머신러닝의 하위 집합이며, 머신러닝은 인공지능의 하위 집합입니다. 이러한
기술들은 현재 많은 분야에서 사용되고 있으며, 컴퓨터 비전, 자연어 처리, 음성 인식, 추천
시스템, 의료 진단, 자율 주행 자동차, 금융 분석 등 다양한 응용 분야에서 활발하게 연구되고
8. Part 2 AI 모델을 tf lite로 만들기
딥러닝 모델의 종류와 역할https://paperswithcode.com/sota
9. Part 2 AI 모델을 tf lite로 만들기
딥러닝 모델의 종류와 역할
computer vision(CV) CNN
tensorflow 공식 실습 자료
Epoch는 '에포크'라고 읽고
전체 데이터셋을 학습한 횟수를 의미합니다.
10. Part 2 AI 모델을 tf lite로 만들기
Machine learning at the edge
텐서플로우 라이트를 활용하여서 edge 환경에서 쉽게 머신러닝을 디바이스에서 작동하게
해줍니다.
데이터를 서버로 보내는 대신에 아래 4가지 능률이 오르는 장점이 있습니다.
on device machine learing 에서 상승 하는 4가지 요인
1. Latency : 서버와의 레이턴시가 없습니다.
2. Privacy: 자신의 로컬 환경 기계에서 데이터를 다른 곳으로 보내지 않아도
됩니다.
3. Connectivity: 인터넷 연결이 필요가 없습니다.
4. power consumption: 인터넷 연결이 꼭 필요하지 않음으로 에너지가
절약됩니다.
11. Part 2 AI 모델을 tf lite로 만들기
Machine learning at the edge Supported Platforms
13. Part 3 AI 모델을 tf lite로 만들기
tensorflow hub tflite를 활용해 보기
1. tensorflow hub tflite formats 으로된 파일 다운 받아서 적용해 보기
2. 링크 https://tfhub.dev/s?q=metadata
1. mobilenet download link:
https://tfhub.dev/tensorflow/lite-model/mobilenet_v1_0.75_224/1/metadata/1
14. Part 3 AI 모델을 tf lite로 만들기
1. 다운로드후 assets/ml 디렉토리(폴더) 경로를 만들고
1. pubspec.yaml assets에 디렉토리 경로 지정하기
tensorflow hub tflite를 활용해 보기
15. Part 3 AI 모델을 tf lite로 만들기
google_mlkit_image_labeling 다운로드 링크: https://pub.dev/packages/google_mlkit_image_labeling/install
tensorflow hub tflite를 활용해 보기
16. Part 3 AI 모델을 tf lite로 만들기
tflite 라벨링 얻는 방법은 colab을 사용하여서 라벨을 쉽게 얻을수 있습니다.
다운받은 tflite 모델을 colab에서 !unzip 모델이름.tflite 입력을 하시고 실행시키면 labels.txt 파일이 나옵니다.
참고로 모바일넷은 약 1000개의 레이블링이 되어있습니다.
https://colab.research.google.com/drive/12O1aZ6VMlecAwxTrBrqXAxdveoS18wms?usp=sharing
tensorflow hub tflite를 활용해 보기
17. Part 3 AI 모델을 tf lite로 만들기
패키지 안내 pubspec.yaml 아래처럼 같은 버전으로 작성후 flutter pub
get 하시면 자동으로 설치가 됩니다. ^^
assets 등록 안내
tensorflow hub tflite를 활용해 보기
18. Part 3 AI 모델을 tf lite로 만들기
기능별 코드 안내 (처음 선언부)
tensorflow hub tflite를 활용해 보기
19. Part 3 AI 모델을 tf lite로 만들기
카메라 기능을 사용하여 image capture 기능 gallery에서 이미지 선택 기능
tensorflow hub tflite를 활용해 보기
20. Part 3 AI 모델을 tf lite로 만들기
다운 받은 모델 경로 지정 및 옵션
조절
모델 파일 경로 및 읽어오는 기능
tensorflow hub tflite를 활용해 보기
21. Part 2 AI 모델을 tf lite로 만들기
이미지 인식 및 라벨링 기능
tensorflow hub tflite를 활용해 보기
22. Part 3 AI 모델을 tf lite로 만들기
디자인 부분중 버튼을 짧게 누르면 갤러리에서 이미지 선택, 길게 누르면 카메라를 켜서 촬영한 이미지를
선택 하는 부분
tensorflow hub tflite를 활용해 보기
23. Part 3 AI 모델을 tf lite로 만들기
tensorflow hub tflite를 활용해 보기
이제는 다른 모델인 EfficientNet Models을 사용해 보도록 하겠습니다.
링크 https://tfhub.dev/s?q=metadata
EfficientNet download link:
https://tfhub.dev/tensorflow/lite-model/efficientnet/lite4/int8/2
24. Part 3 AI 모델을 tf lite로 만들기
tensorflow hub tflite를 활용해 보기
사진 한 장을 가지고 mobilenet과 EfficientNet 인식률의 차이를 테스트해 보실 수 있습니다.
소스 코드 다운로드 깃허브 링크: https://github.com/sw-woo/Flutter_tflite_classfication_songdo.git
mobilenet EfficientNet
25. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 보기
https://colab.research.google.com/github/googlesamples/mediapipe/blob/mai
n/examples/customization/image_classifier.ipynb#scrollTo=kfr-8r5gtqNh
mediapipe-model-maker 라이브러리는 사용자 정의 데이터세트를 사용하여
TensorFlow Lite 모델 훈련 프로세스를 단순화합니다.
전이 학습(Transfer Learning)을 사용하여 필요한 훈련 데이터의 양을 줄이고
훈련 시간을 단축할 수 있습니다.
mediapipe-model-maker란?
26. Part 3 AI 모델을 tf lite로 만들기
사전에 훈련된 모델(pre-trained model), 전이 학습(Transfer Learning) ?
사전에 훈련된 모델(pre-trained model)이란?
전이 학습(Transfer Learning)이란?
일반적으로 딥러닝 모델을 제대로 훈련시키려면 많은 수의 데이터가 필요합니다.
하지만 현실에서는 충분히 큰 데이터셋을 얻는 것은 어렵습니다. 데이터를 얻는 일은 많은 비용이 발생하고 모든 개인, 기업이 이런
비용을 감당하는 일은 쉽지 않습니다. 또한 모델을 처음부터 학습하는 경우 매우 오랜시간 학습을 해야하는 경우가 많습니다. 이를
극복하기 위해 대규모 학습 데이터 기반으로 사전에 훈련된 모델(pre-trained model)을 활용할 수 있습니다.
전이학습(Transfer Learning)이란, 기존에 사전학습된(pre-trained) 모델을 가져와, 사용하고자 하는 학습 데이터를
학습시켜 이용하는 방법으로, 기존에 비슷한 도메인의 데이터를 학습한 모델을 현재 가진 데이터가 적더라도 좋은
성능을 기대 할 수 있습니다.
27. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 보기
선택 가능한 pretrained model?
28. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 꽃 분류 해보기
1. setup 패키지 설치 및 라이브러리 불러오기
2. prepare data 데이터를 준비 합니다.
3. Review data 준비된 데이터 라벨(정답)과 유무확인해보기
4. create dataset 이미지 경로에서 데이터를 가져와서 train, test, validation data로
나누기
5. set retraing options 트랜스퍼 러닝을 위한 옵션 정하기
6. Run retraining 모델 트레이닝 진행하기
7. model tuning (retraining parameters) 파라미터 옵션 설명 부분
8. Model quantization
모델 훈련 후 양자화는 정확도를 비교적 약간만 낮추면서 모델 크기를 줄이고 예측
속도를 향상시킬 수 있는 모델 수정 기술입니다. 이 접근 방식은 예를 들어 32비트
부동 소수점 숫자(32float)를 8비트 정수(8bit)로 변환하여 모델에서 처리되는
데이터의 크기를 줄입니다.
이 기술은 모델 훈련 프로세스 후에 모델을 더욱 최적화하는 데 널리 사용됩니다.
29. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 꽃 분류 해보기
30. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 꽃 분류 해보기
31. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 꽃 분류 해보기
32. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 꽃 분류 해보기
33. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 꽃 분류 해보기
34. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 꽃 분류 해보기
35. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 꽃 분류 해보기
36. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 꽃 분류 해보기
37. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 꽃 분류 해보기
38. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 꽃 분류 해보기
assets/ml 경로 폴더에 양자화된 flower_int8.tflite 파일을 넣어주고 createLabeler() 비동기 함수 getModelPath(‘assets/ml/flower_int8.tflite’);
파일을 넣어서 적용시켜줍니다.
단, 양자화 (quantization)를 하지않은 tflite모델은 build시 연산 에러가 날수 있습니다. ex) 모델 size or data type [float or unint) etc …
39. Part 3 AI 모델을 tf lite로 만들기
반려동물 안구 질환 인식 모델 만들기
반려동물 안구 질환 인식 모델 만들기
모델 훈련을 위한 데이터 수집
a. ai hub, 반려동물 안구 질환 인식을 위한 데이터셋을 다운로드 받기 :
반려동물 안구 질환 데이터
40. Part 3 AI 모델을 tf lite로 만들기
반려동물 안구 질환 인식 모델 만들기
수집한 데이터 모델에 훈련 시키기
a. 구글드라이브에 다운로드 받은 train 이미지 올리기
반려동물 안구 질환 인식 모델 만들기
41. Part 3 AI 모델을 tf lite로 만들기
train dataset 경로 지정하기
반려동물 안구 질환 인식 모델 만들기
42. Part 3 AI 모델을 tf lite로 만들기
train dataset 인식 확인
반려동물 안구 질환 인식 모델 만들기
43. Part 3 AI 모델을 tf lite로 만들기
dataset 분리 및 모델 학습
반려동물 안구 질환 인식 모델 만들기
44. Part 3 AI 모델을 tf lite로 만들기
dataset 분리 및 모델 학습
반려동물 안구 질환 인식 모델 만들기
45. Part 3 AI 모델을 tf lite로 만들기
학습된 모델 quantization
반려동물 안구 질환 인식 모델 만들기
46. Part 3 AI 모델을 tf lite로 만들기
mediapipe-model-maker를 활용해 강아지 결막염 음성 양성
분류
assets/ml 경로 폴더에 양자화된 dog_conjunctivitis_classfication.tflite 파일을 넣어주고 createLabeler() 비동기 함수
getModelPath(‘assets/ml/dog_conjunctivitis_classfication.tflite’);
파일을 넣어서 적용시켜줍니다.
단, 양자화 (quantization)를 하지않은 tflite모델은 build시 연산 에러가 날수 있습니다. ex) 모델 size or data type [float or unint) etc …