垃圾知识分类 图片识别 拍照识别垃圾小程序开发过程中的心得体会

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

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

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

原文地址:https://www.cnblogs.com/xinweiyun/p/11230232.html