病虫害检测APP,Android应用.
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
├── android
├── lib
├── my_predict_plugin # 封装有pytroch进行模型推理的插件
│ ├── android # 安卓的原生代码,包括pytroch的java推理代码
│ ├── assets # 资源文件夹,安卓原生代码所需要的资源文件夹,这里放模型pt文件
│ ├── example # my_predict_plugin插件使用的简单flutter例子
│ ├── lib # my_predict_plugin的flutter插件的method channel调用原生Android代码的dart封装
│ │ ├── my_predict_plugin.dart
│ │ ├── my_predict_plugin_method_channel.dart
│ │ └── my_predict_plugin_platform_interface.dart
│ ├── pubspec.yaml # my_predict_plugin插件所需要的配置文件
│ └── ... # 其他文件
└── ... # 其他文件
- 使用pytroch进行害模型训练,并将保存模型转换为PyTorch Mobile所需要的模型格式(.pt格式)。
- 使用Android原生java代码对模型进行加载、推理。
- 平台通道介绍:Platform Channel 是一个异步消息通道,消息在发送之前会编码成二进制消息,接收到的二进制消息会解码成 Dart 值,其传递的消息类型只能是对应的解编码器支持的值,所有的解编码器都支持空消息。
- 使用Platform Channel(平台通道)实现flutter的dart代码调用Android原生模型推理的java代码,实现Android原生代码与flutter代码的交互。
- 使用 isolate 创建新线程,用于进行消耗较多资源的模型推理,避开主线程,不干扰UI刷新,避免主进程执行任务过多导致程序崩溃。