반응형
개요
- 저번 글에 이어서 image_picker를 통해 데이터 불러오고 dart:io를 통해서 File 객채에 올려서 이미지 분류까지 마무리 하겠습니다.
- image_picker 설치
flutter pub add image_picker
- 필요 라이브러리 임포트
import 'dart:io'; //FIle 관리용
import 'package:image_picker/image_picker.dart'; //갤러리 접근용
필요 객체 선언
- 모델 객채 선언한곳 아래에 picker와 받아온 이미지를 저장할 file 추론값을 저장랑 pred를 선언해준다
final ImagePicker _picker = ImagePicker();
File? file;
String? _pred;
갤러리에서 이미지 불러오기
- 이미지를 불러올 함수 선언
Future loadImage() async{
final image = await _picker.pickImage(source: ImageSource.gallery);
setState(() {
file = File(image!.path);
predict();
});
이미지 추론(분류) 함수 정의
- 앞서 정의한 모델을 통해서 이미지 분류
Future predict() async {
String prediction = await model.getImagePrediction(file!, 224, 224, "assets/labels.csv");
setState(() {
_pred = prediction;
});
}
추론(분류)한 이미지를 표시할 레이아웃 정의
- 앞서 제작한 레이아웃을 일부 수정하여 표시
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Container(
height: 500,
child: file==null ? const Center(child: Text('no Image')) : Image.file(file!,fit: BoxFit.fitWidth,),
),
SizedBox(child: TextButton(onPressed: (){
loadImage();
}, child: const Text('pick image for predict') // 여기다가 추론 결과 넣어줄꺼임
),
),
_pred==null?const Text(''):Text(_pred!)
],
),
);
}
}
Flutter에서 Tflite를 사용해서 AI를 사용하는 케이스를 많이 봤는데 다소 복잡해 보였고
pytorch를 더 많이 써봤기에 torch를 통해서 이미지 분류하는 앱을 만들어보고자 했다
질문해주시면 확인하는대로 답변 드리겠음.
반응형
'[FrameWork]Flutter' 카테고리의 다른 글
[FireBase] Flutter 프로젝트와 FireBase 연동하기 (0) | 2022.12.06 |
---|---|
[FireBase] 파이어베이스 CLI 설치하기 (0) | 2022.12.06 |
[Flutter]플러터에서 파이토치 사용해서 이미지 분류하기_1(pytorch_mobile) (2) | 2022.12.06 |
[Flutter] Image_picker 갤러리, 카메라에서 사진 선택하고 보여주기. (0) | 2022.12.05 |
[Dart] Flutter에 쓰이는 다트 Dart 언어 (특징,기초) (0) | 2022.09.20 |