在AI横行的如今,相信大家或多或少都做过跟AI接轨的需求了吧?今天我说的是关于图片识别的需求,flutter的专属图片识别插件google_mlkit_image_labeling。
google_mlkit_image_labeling它是Google旗下的Google Cloud Vision API中分支出来的一部分功能,重要的是它是免费的!
那么google_mlkit_image_labeling它都支持哪些功能呢?下面我们列举一下官方提供API:
视觉API
条形码扫描
人脸检测
人脸网格检测(测试版)
文本识别v2
图片标签
对象检测和跟踪
数字墨水识别
姿态检测(测试版)
自拍分段(测试版)
主题细分(测试版)
文档扫描仪(测试版)
自然语言API
语言识别
设备翻译
智能回复
实体提取(测试版)
而且以上的API基本都同时支持Android和IOS,具体可以去官方查看。
而今天我要讲的是其中一个,图片标签识别。主要用于识别图片都有些啥,概率是多大,是的没错,它不会准确的告诉你这是啥,而是告诉你都有可能是啥,概率多大。具体判断还是由我们人去判断是个什么。下面上图具体看看效果:
现在我们开始讲解怎么接入和使用这个插件,首先我们需要添加插件,在.yaml文件上加入下面语句:
google_mlkit_image_labeling: any
然后更新一下项目,确保插件已经加入项目里面了,然后在需要实现逻辑的代码行下添加如下代码:
onTap: () async {String? text;int? index;data = "";double? confidence;//用于相册选择完图片后返回图片实例final ImagePicker picker = ImagePicker();final XFile? image = await picker.pickImage(source: ImageSource.gallery);///google_mlkit_image_labeling逻辑实现final InputImage inputImage = InputImage.fromFilePath(image!.path);final ImageLabelerOptions options = ImageLabelerOptions(confidenceThreshold: 0.5);final imageLabeler = ImageLabeler(options: options);///通过对InputImage的实例进行分析返回的图像标签集合final List<ImageLabel> labels = await imageLabeler.processImage(inputImage);///对所有标签遍历打印出来for (ImageLabel label in labels) {text = label.label;index = label.index;confidence = label.confidence;data = "${data} ${text}的概率为${confidence}";}///处理完图片后对资源进行释放imageLabeler.close();print( "${data}");setState(() {});}
由于我添加在点击事件上,我直接把我的代码贴上来了,然后这下面两句是用于选择图片的:
final ImagePicker picker = ImagePicker();final XFile? image = await picker.pickImage(source: ImageSource.gallery);
这也是一个选择图片的插件延申出来的代码,这个选择图片的插件为下面这个:
image_picker: any
想要的也可以拿走,然后有啥不懂的可以看我的注释,基本上傻瓜式调用google_mlkit_image_labeling这个插件的代码就会返回我们需要的图像标签。
本次讲课结束,如果有哪里讲错的,请务必联系我修改,只是浅浅应用,因为flutter相关的资料太少了,为大家贡献一点绵薄之力,共勉诸君!