计算机视觉识别汽车花草人脸颜值

阅读更多
项目背景
近些年,人工智能技术发展之快,近乎超出所有人的料想,从alphaGo战胜柯洁等一众围棋高手,AI技术被捧上神坛,似乎一夜之间,原来遥不可及的AI走进普通人的视线,这之后,各类基于AI的软硬件在市场上风生水起,基于AI的闲聊的各类机器人,如天猫精灵,亚马逊echo,Google Home,叮咚音响之类的小机器人和智能音箱设备如雨后春笋般冒出;

技术开源方面,以Google为首的TensorFlow斩获10w个star,这个成绩估计可以排进GitHub前10了吧,自带Google光环,第二代智能学习系统,可被用于语音识别和图像识别等机器学习领域;

人工智能和大数据似乎是天然的绝配,以前计算机识别算法即便再精准准确率都很难达到30%以上,比如要识别一只猫,通过人眼和经验是何等简单的事情,让计算机识别并不简单,猫可能是坐着站着躺着,可能品种不同,颜色不同,也可能有障碍物只露出一个头,计算机如何识别,有了大数据,一切就不同了,基于大数据的训练集,加上一系列猫的特征向量,通过自主学习,计算机的视觉技术已经不可同日而语,目前市面上开源的大数据训练集,比如是识别文字的,动物的等,比如ftp://ftp.ics.uci.edu/pub/machine-learning-databases 资源上有各类的训练集,通过大数据训练集,可将机器学习的算法精准度提高到比较满意的程度,本文介绍基于腾讯的AI云平台API,它们可以如何识别花花草草,汽车品种,甚至预测人的年龄,颜值等强大功能;

调用腾讯AI云API
    腾讯AI云API访问网址:http://ai.qq.com/,使用步骤:

使用自己QQ或微信账户申请个开发者账号;

API的调用Demo官方只提供了python版和php版,本文使用Java版;



看了python代码后,我们可以编写一个Java版的调用,关键在于发送post请求时sign的生成,我们可以写一个公共函数,如下:
1        /**
2     * @param url 腾讯post API Restful地址
3     * @param params 接口的请求参数列表,只需要填入API参数即可
4     * @return
5     */
6    public JSONObject post(String url,Map params) {
7        if(!params.containsKey("app_id")) {
8            params.put("app_id", appId);
9        }xiamenkp.blogwo.com
10        if(!params.containsKey("time_stamp")) {
11            long time_stamp = System.currentTimeMillis()/1000;
12            params.put("time_stamp", time_stamp+"");
13        }hangzhoukp.blogwo.com
14        if(!params.containsKey("nonce_str")) {
15            String nonce_str = IdWorker.getInstance().uuid();
16            params.put("nonce_str", nonce_str);
17        }shanghai.blogwo.com
18        if(!params.containsKey("sign") || StrUtil.formatNullStr(params.get("sign")).equals("")) {
19            Map sPara = PayUtil.paraFilter(params);
20            String prestr = PayUtil.createLinkString(sPara);
21            String key = "&app_key="+appKey;
22            String mysign = sign(prestr, key, "utf-8").toUpperCase();
23            params.put("sign", mysign);
24        }szkp.blogwo.com
25        String paramStr = createLinkString(params);
26        Map headers = new HashMap();
27        headers.put("Content-Type", "application/x-www-form-urlencoded");
28        String json = HttpUtils.post(url,null, paramStr,headers);
29        return JSON.parseObject(json);
30    }fuzhou.blogwo.com
1        String url = "https://api.ai.qq.com/fcgi-bin/vision/vision_imgidentify";
2        Map params = new HashMap();
3        String image = ImageUtils.encodeImage(new File(path));
4        params.put("scene", "1");
5        params.put("image", image);
6        JSONObject json = post(url,params);
7        return json;
直接使用Restful API地址即,以识别汽车为例:
1        String url = "http://tianjin.blogwo.com/";
2        Map params = new HashMap();
3        String image = ImageUtils.encodeImage(new File(path));
4        params.put("scene", "1");
5        params.put("image", image);
6        JSONObject json = post(url,params);
7        return json;

你可能感兴趣的:(腾讯,算法,java)