Weee!Flutter带我飞
Commands for flutter
flutter devices // see your devices
flutter pub get // pull packages in pubspec.yaml file into your project
ListView是一个建造List widget的机器,如果你告诉他什么是他的itemBuilder,什么是他的padding等等要求,ListView就可以帮你造出一个widget。
itemBuilder会使用两个参数,一个是BuildContext,一个是row iterator,返回的是ListTile。如果你告诉它怎么操作可以返回ListTile,那么ListView就可以建造出一个List widget,从而构建出你的app。
ListTile里边我们可以做很多酷炫的东西,比如点击一个tile,可以用onTap来表示,比如加上一个爱心图标,可以用trailing来表示。如果onTap会setState(),这个会trigger build() method来update整个State object,从而改变程序的界面。
添加页面
Flutter里的页面pages也叫route。Navigator用一个stack来控制整个app的routes。
TFLite
https://www.tensorflow.org/lite/models/image_classification/overview
https://pub.dev/packages/tflite
第一步就是网上找教程,找到最相似的app然后以光速抄袭过来,作为开始创建宇宙混沌初期的捷径。在一番查找搜索以后锁定了这个教程。一个印度的仁兄写的一个可以判断狗和猫的app。app可以让你从已有图片里选择一个图片,然后调用自己训练出来的TFLite来判断这个图片是狗是猫。管它三七二十一,抄过来!
抄来以后,一测试,发现可以运行,但准确率不高。我想做的app是可以识别出在图片里的蔬菜水果,然后给你推荐菜谱。这个TFLite是一个Classification的模型,总是莫名其妙地把所有深棕色的菜都检测为burrito。大哥,burrito对我来说真的没有用啊。我需要一个object detection的模型勒!还有您检测的红酒是从哪来的?红色的就是红酒了啊?

不行不行,得认真分析代码,找出印度仁兄在拿用TFLite检测这些分类的,然后用偷天换日大法给它换个更好的模型。
一番调查研究后发现,Flutter的TFLite库可以支持两种object detection。
第一种: MobileNet SSD model trained on the COCO dataset.
第二种:YOLO model
这两种模型都需要label和tflite两个文件才可以运行,可以在这个中国小伙伴的github上找到这些文件。然后如果要自己训练一个模型的话可爱的TF还提供了一个Tensorflow Object Detection API 让你训练自己的Object Detection模型并转换成TFLite。