Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'dart:io';
- import 'package:flutter/material.dart';
- import 'package:flutter/services.dart';
- import 'package:path_provider/path_provider.dart';
- import 'package:tflite/tflite.dart';
- import "dart:developer";
- import "package:image_picker/image_picker.dart";
- import 'package:path/path.dart';
- void main() {
- runApp(MyApp());
- }
- const String ssd = "SSD MobileNet";
- const String yolo = "Tiny YOLOv2";
- class MyApp extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- debugShowCheckedModeBanner: false,
- home: TfliteHome(),
- );
- }
- }
- class TfliteHome extends StatefulWidget {
- @override
- _TfliteHomeState createState() => _TfliteHomeState();
- }
- class _TfliteHomeState extends State<TfliteHome> {
- File _image;
- bool _busy = false;
- int _recTime;
- int _numOfPredictions = 10;
- var dbPath;
- List _recognitions;
- @override
- void initState() {
- super.initState();
- _busy = true;
- loadModel().then((val) {
- setState(() {
- _busy = false;
- });
- });
- }
- loadModel() async {
- Tflite.close();
- try {
- String res;
- res = await Tflite.loadModel(
- model: "assets/tflite/mobilenet_v1_1.0_224.tflite",
- labels: "assets/tflite/mobilenet_v1_1.0_224.txt",
- numThreads: 1,
- );
- print(res);
- } on PlatformException {
- print("Failed to load the model");
- }
- }
- Future getImage() async {
- // var image = await ImagePicker.pickImage(source: ImageSource.gallery);
- int startTime = new DateTime.now().millisecondsSinceEpoch;
- for (int i = 0; i < _numOfPredictions; i++)
- await predictImageClassification();
- int endTime = new DateTime.now().millisecondsSinceEpoch;
- print("\n Object Detection took ${endTime - startTime}");
- log("\n Object Detection took ${endTime - startTime}");
- debugPrint("\n Object Detection took ${endTime - startTime}");
- setState(() {
- _recTime = endTime - startTime;
- });
- }
- predictImageClassification() async {
- Directory directory = await getApplicationDocumentsDirectory();
- var dbPath = join(directory.path, "skata.jpg");
- log("\n Path: ${directory.path}");
- var recognitions = await Tflite.runModelOnImage(
- path: dbPath,
- numResults: 6,
- threshold: 0.05,
- imageMean: 127.5,
- imageStd: 127.5,
- );
- setState(() {
- _recognitions = recognitions;
- });
- }
- @override
- Widget build(BuildContext context) {
- Size size = MediaQuery.of(context).size;
- // used to stack boundery boxes on images
- List<Widget> stackChildren = [];
- stackChildren.add(Positioned(
- top: 0.0,
- left: 0.0,
- width: size.width,
- child: _image == null ? Text("No Image Selected") : Image.file(_image),
- ));
- if (_busy) {
- stackChildren.add(Center(
- child: CircularProgressIndicator(),
- ));
- } else if (_recognitions != null){
- stackChildren.add(Center(
- // child: Text("HELLO ${_recognitions.label} : ${_recognitions.confidence}"),
- ));
- }
- return Scaffold(
- appBar: AppBar(
- title: Text("Symaskins appen"),
- ),
- floatingActionButton: FloatingActionButton(
- child: Icon(Icons.image),
- tooltip: "Pick Image from gallery",
- onPressed: getImage,
- ),
- body: Container(
- child: _recTime == null ? Text("hello maybe start first yes???") : Text("HELLO it took ${_recTime}ms (in int not float yes) to finish things! yes path: ")
- ),
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement