zoukankan      html  css  js  c++  java
  • 垃圾知识分类 图片识别 拍照识别垃圾小程序开发过程中的心得体会

       最近公司在开发一个垃圾知识分类的小程序,需要用到的一个功能就是,让用户手机拍照即可识别出这个垃圾属于哪个分类,比如是干垃圾还是湿垃圾?

       这个我们用到的识别图片的接口就是百度的图像识别,具体大家可以参考下他的官方文档,我们就直接上代码了,和大家 分享下开发中的一些过程。

    https://ai.baidu.com/docs#/ImageClassify-API/top  这个是百度图像识别接口

       需要注意的是,百度提供的sdk里是使用的图片路径然后解析成base64图片内容,再进行识别。

      但是小程序里是有一个接口可以直接获取图片的base64内容,这样就不需要将图片上传到服务器,然后获取图片路径地址,获取到路径地址以后再解析base64内容。

       直接用微信的接口获取图片的base64内容,然后直接识别,这样速度就可以快很多了。

       具体大家看代码了。

       第一步是自己去百度注册开发者账号,然后填写自己的appid apikey等信息,要注意的是,百度现在提供每天500次的免费识别,超过五百次每天以后才收费。

       

    $client = new AipImageClassify($confset['APP_ID'], $confset['API_KEY'], $confset['SECRET_KEY']);
    
    
    // 如果有可选参数
        $options = array();
        $options["baike_num"] = 5;//返回百科信息的结果数,默认不返回
    // 带参数调用通用物体识别
        if($data['is_base64']==1){//图片已经是base64的 就不需要base64转码了
            $needbase64=0;
            $image = $data['image'];
        }else{//HTTP 协议的图片地址  需要先获取
            $needbase64=1;
            $image = file_get_contents($data['image']);
        }
    
    
    
    $client->advancedGeneral($image, $options,$needbase64)
    
    
    
    
     /**
         * 通用物体识别接口
         *
         * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
         * @param array $options - 可选参数对象,key: value都为string类型
         * @description options列表:
         *   baike_num 返回百科信息的结果数,默认不返回
         * @return array
         */
        public function advancedGeneral($image, $options=array(),$needbase64=1){
    
            $data = array();
            if($needbase64==1){
                $data['image'] = base64_encode($image);
            }else{
                $data['image'] = $image;// 小程序可以直接获取base64 不需要转base64了  2019年7月18日17:06:23秋峰增加的
            }
    
    
            $data = array_merge($data, $options);
    
            return $this->request($this->advancedGeneralUrl, $data);
        }

       好了,大概的方法就是这些,具体大家就根据自己的场景灵活使用了。

    秋峰,phper、java后端开发,javascript前端开发,全栈开发,目前自创业,做项目系统开发,做公众号以及小程序等的开发, 今天就给大家分享到这里,希望对大家有所帮助。欢迎交流 大家相互学习 共同提高 我的 微信号:qiufeng2999

  • 相关阅读:
    149. Max Points on a Line(js)
    148. Sort List(js)
    147. Insertion Sort List(js)
    146. LRU Cache(js)
    145. Binary Tree Postorder Traversal(js)
    144. Binary Tree Preorder Traversal(js)
    143. Reorder List(js)
    142. Linked List Cycle II(js)
    141. Linked List Cycle(js)
    140. Word Break II(js)
  • 原文地址:https://www.cnblogs.com/xinweiyun/p/11230232.html
Copyright © 2011-2022 走看看