flutter 使用google_mlkit_image_labeling做图片识别

embedded/2025/1/17 18:27:21/

         在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相关的资料太少了,为大家贡献一点绵薄之力,共勉诸君!


http://www.ppmy.cn/embedded/154724.html

相关文章

LVS四层反向代理

这里写自定义目录标题 一、LVS四层反向代理架构的组成部分1. 负载调度器&#xff08;Director/Load Balancer&#xff09;&#xff1a;2. 服务器池&#xff08;Real Server/Server Pool&#xff09;&#xff1a;3. 共享存储&#xff08;Shared Storage&#xff09;&#xff08;…

02、Redis从入门到放弃 之 常用命令和基本数据类型操作

Redis从入门到放弃 之 常用命令和基本数据类型操作 一、Redis通用命令 redis-cli -h 127.0.0.1 -p 6379 redis客户端登录 -h host -p 端口 -a 密码exit 退出当前客户端info 返回redis的一些相关信息&#xff08;包括端口、配置文件等&#xff09;flushdb 清空当前库…

YOLOv8从菜鸟到精通(二):YOLOv8数据标注以及模型训练

数据标注 前期准备 先打开Anaconda Navigator&#xff0c;点击Environment&#xff0c;再点击new(new是我下载anaconda的文件夹名称)&#xff0c;然后点击创建 点击绿色按钮&#xff0c;并点击Open Terminal 输入labelimg便可打开它,labelimg是图像标注工具&#xff0c;在上篇…

Vue API 盲点解析

在了解了一些实用的开发技巧和编码理念后&#xff0c;我们在项目的开发过程中难免也会遇到因为不熟悉 Vue API 而导致的技术问题&#xff0c;而往往就是这样的一些问题消耗了我们大量的开发时间&#xff0c;造成代码可读性下降、功能紊乱甚至 bug 量的增加&#xff0c;其根本原…

MySQL:表的内外连接

目录 1.内连接 2.左外连接和右外连接 178. 分数排名 - 力扣&#xff08;LeetCode&#xff09; 1.内连接 内连接就是两张表做笛卡尔积&#xff0c;再加上一个筛选条件。 这两个sql语句是一样的。 2.左外连接和右外连接 左外连接就是左表必须是完全显示&#xff0c;即使筛选…

ubuntu的截图工具有哪些

在 Ubuntu 上&#xff0c;有多种截图工具可供选择&#xff0c;以下是一些常用的工具及其使用方法&#xff1a; 1. 内置截图工具 Ubuntu 自带了一个简单的截图工具&#xff0c;可以通过快捷键或应用程序启动。 快捷键&#xff1a; 全屏截图&#xff1a;Print Screen&#xff08…

BY组态-低代码web可视化组件

简介 BY组态是贵州华创云科技完全自主研发的集实时数据展示、动态交互等一体的全功能可视化平台。帮助物联网、工业互联网、电力能源、水利工程、智慧农业、智慧医疗、智慧城市等场景快速实现数字孪生、大屏可视化、Web组态、SCADA等解决方案。具有实时监控、多样、变化、动态…

抖音矩阵是什么

抖音矩阵是指在同一品牌或个人IP下&#xff0c;通过创建多个不同定位的抖音账号&#xff08;如主号、副号、子号等&#xff09;&#xff0c;形成一个有机的整体&#xff0c;以实现多维度、多层次的内容覆盖和用户互动。以下是关于抖音矩阵的详细介绍&#xff1a; 抖音矩阵的类…