5.3.1-3)
- OpenAI를 이용한 프로젝트 개발 개요.
- 자연어처리(Natural Language Processing, NLP)는 인간의 언어를 컴퓨터가 이해하고 처리할 수 있도록 하는 인공지능의 한 분야임(RNN, LSTM 등이 있음).
5.3.4-5)
- 프로젝트 환경설정(필요 패키지들).
5.3.6-11)
- 홈 화면부터 ~ 기타 기능들 구현함.
- 채팅창은 column이 아닌 ListView로 구현함 (메모리 차이 큼).
- ChatGPT API, 기능 구현 리뷰 등 설명.
5.3.12)
- 데이터 모델링 시작함.
- 홈 화면 - 채팅 위젯 - 채팅 화면(애니메이션 적용) - 기능 구현 - 데이터 모델링 - ChatGPT API 적용 - 채팅 기능 개발 순으로 구현함.
5.3.13)
- ChatGPT api 연동. 엄청 상세하진 않아서 조코딩 참고하면 될 듯.
5.3.14-15)
- Future와 Stream으로 챗봇 응답 표현해봄.
--- ML관련 패키지들 쭉 설명해줌
5.4.1-2)
- 구글 ML kit: 모바일 개발자를 위한 머신러닝으로 모바일에 최적화 되어있음. 이 ml kit는 vision api와 natural language api로 두 가지 종류로 구분 가능
- 바코드 스캔, 얼굴 인식, 텍스트 인식, 이미지 라벨 지정, 객체 감지 및 추적, 디지털 잉크 인식, 자세 인식 등이 있음.
- 위의 예시들이 vision API로 원래는 총 아홉 가지 기술이 있고(언급한 거만 다루게 될 예정임), natural language api는 총 네 가지 기술이 있음.
5.4.3)******* 유데미 보강要
- 본격적으로 dart를 사용한 신경망 구현 시작.
- 파이썬에선 보통 NumPy 많이 사용하는데 다트에선 matrix2d로 구현함. Array, list 연산시 도움주는 패키지인 것.
- 기본적으로 neural network를 알고 있는 것을 가정하여 강의해서 개념 보충이 필요함,,,
- 기본 개념을 기반으로 bin/dart_neural_network.dart파일에 기본 연산/신경망 구현함.
- sigmoid 활성화 함수 사용함.
- 결과적으로 뭐 했는지 이해를 거의 못함. 무튼 모든 뉴럴네트워크의 공식은 y = wx + b에서 시작한다는 거 밖에 못알아들음.
- ~27min까지 작성한 절차지향적 신경망을 객체지향화(/클래스화) 하기 위해 새로운 파일에 함수 생성해줌.
5.4.4)
- 머신러닝 개발 라이브러리로 3대장이 TensorFlow, PyTorch, Keras가 있는 듯. TensorFlow2.0에 Keras가 들어가서 파이썬 쓰는 사람들은 TensorFlow 많이 쓴다 함.
- ML kit은 sdk고 처음 firebase 기반의 서비스로 공개되었음.
5.4.5)
- 바코드 스캐닝은 네트워크 연결 없이 인식 가능함 -> apk에 내장되게 된다는 의미이며 당연히 사이즈가 늘어남(2.4MB 정도래).
- Linear와 2D formats 다 지원함.
- 인식 방식은 각 코너와 raw value를 확인하여 인식하게 됨.
5.4.6)
- Text recognition 이론 설명. Text structure는 block, line, element, symbol이 있음.
5.4.7)
- 이미지 라벨링 이론 설명. 사진 속 물체 감지&인식, 공장 및 물품 분류, cctv, auto pilot 등에 쓰임.
- object detection 하는 거 보면 classification confidence가 나옴.
- image labeling과 object detection은 조금 다른데, 전자는 사진 안에 특정 바운더리에 물체가 있다 정도 판단하고, 후자가 어떤 물체인지를 인식하는 것.
- object detector는 객체를 감지하여 트래킹이 가능함.
5.4.8)
- face detection is the api that detects faces, not the people.
- flutter가 하는 일은 좌표계 값을 받아서 화면 ui 단에 그려주는 역할 -> 얼굴을 잘 인식해서 얼굴을 그려주는 것.
- face mesh detection은 필터 씌우는데 사용되는 468개의 포인트를 얼굴 인식하여 씌워줌. 그 위 좌표에 따라 필터를 만드는 원리래.
5.4.9)
- 자세인식은 운동, 의료, 헬스케어, 게임 등에 쓰임. 실시간에도 사용 가능함. 아크탄젠트로 각도 치환도 가능.
- ML kit pose detection produces a full-body 33 point skeletal match.
5.4.10)
- digital ink recognition 이론 설명.
5.4.11-12)
- 프로젝트 생성하는데 이번엔 application이 아닌 empty project로 시작함.
- 관련 패키지들 다 추가함.
5.4.13-15)
- 카메라, 파일 피커, 이미지 피커 패키지 리뷰함. 스마트폰 하드웨어인 카메라를 플러터에서 사용할 수 있도록 하는 게 키포인트임.
5.4.15)
- ML packages review. TensorFlow Lite(tflite), google_ml_kit
- 인풋과 아웃풋 사이를 플랫폼 채널이나 메서드 채널이라 부름.
Q)
- bin, dist, lib folder별 역할?
5.5-11)
- 각 Vision API들을 활용한 기능 구현 실습 보여줌.
- 5.6 Text recognition에 영수증 인식 화면 구현함.
- 에뮬레이터 카메라 활용법.
- 인식 개선하는 법도 알려줌.
- ML kit은 안드로이드 ios 사용 가능한데, 안드로이드는 gradle에서 dependency 관리함.
- 에뮬레이터 돌리는데 연산량이 많으면 멈추기 쉬움. 깡통 맥에어로는 쉽지 않을 듯.
- 결국 TensorFlow Lite모델을 native에서 돌리고 추론하고, 플러터 앱에서 그 output을 받음. 그리고 그 데이터를 주고 받는건 method channel을 통함(ML Kit에 내장된 패키지들 활용).
출처: 패스트캠퍼스
[Flutter] 요약*** 꿀팁들 (0) | 2024.05.10 |
---|---|
[Flutter] 실무 v0.1.0 (0) | 2024.05.08 |
[Flutter] 간단 실시간 퀴즈 앱 (RTDB, StreamBuilder, onValue) (0) | 2024.05.06 |
[Flutter] 간단 배달앱, Firebase 환경설정 및 컬렉션 설계 (+트러블슈팅) (0) | 2024.05.06 |
[Flutter] Testing, Debugging, DevTools (0) | 2024.05.03 |