flutter 使用google_mlkit_image_labeling做图片识别

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值