美文网首页Python
python爬虫-利用百度api识别照片中的物体

python爬虫-利用百度api识别照片中的物体

作者: DKider | 来源:发表于2019-03-23 22:18 被阅读41次

    我会了,您呢

    开门见山,我直接开始了,这真的只是体验课,不值得我体验一整天的时间,我花了半小时。

    基础不需要,会认字就行。软件:pycharm,py3.x/py2.x,两个都行,我用的3。
    需要自己有百度账号,还需要几张照片。

    好的开始

    浏览器打开:https://login.bce.baidu.com/
    登录百度账号,进入百度云管理中心

    image.png

    鼠标放在右侧产品服务-人工智能-图像识别


    image.png

    单击跳转


    image.png
    点击创建应用
    image.png

    取名字-改类型-填描述---->立即创建---->查看应用详情


    image.png

    看到下面这个页面

    image.png

    然后浏览器新建一个标签
    打开:http://ai.baidu.com/docs#/ImageClassify-API/top
    如下

    image.png

    右侧点击调用方式,找到这里,点击python,新建一个ak.py文件,复制下面代码运行。

    这里注意了,官方文档上用的python2.x,如果你的电脑上安装的是python2.x,直接复制,如果安装的python3.x,则复制我的代码
    image.png

    获取access_token代码:

    import urllib.request
    # client_id 为官网获取的AK, client_secret 为官网获取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&c' \
           'lient_id=【api——key】&client_secret=【secret——key】'
    request = urllib.request.urlopen(host)
    content =request.read()
    if (content):
        print(content)
    

    注意这里的两对中文字符中括号
    这两个key在之前的应用详情页面里:如下

    image.png

    将其值分别复制覆盖中括号,运行,得到如下信息

    b'{"refresh_token":"25.281c3054a294085d32032b800e31c3b6.315360000.1868709707.282335-
    15832577","expires_in":2592000,"session_key":"9mzdAvbmBCQaKrsI1V77Wzskkd
    VS4vCi+c2B0ktXcLwQSWsabRfrg2g7xV062+RlqGCaHfewIsCN4N6W8KzLKQM\\/
    UR3aeQ==","access_token":"24.940a5c7bfa47aae5f6d4628a574a0c56.2592000.15
    55941707.282335-15832577","scope":"public vis-classify_dishes vis-classify_car 
    brain_all_scope vis-classify_animal vis-classify_plant brain_object_detect 
    brain_realtime_logo brain_dish_detect brain_car_detect brain_animal_classify 
    brain_plant_classify brain_ingredient brain_advanced_general_classify 
    brain_custom_dish brain_poi_recognize wise_adapt lebo_resource_base 
    lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian 
    ApsMisTest_Test\\u6743\\u9650 vis-classify_flower lpq_\\u5f00\\u653e 
    cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar 
    oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey 
    smartapp_swanid_verify 
    smartapp_opensource_openapi","session_secret":"37423f4b3990798d7bc75a3268
    035d9b"}\n'
    

    在这堆信息里找到:"access_token":"24.940a5c7bfa47aae5f6d4628a574a0c56.2592000.15 55941707.282335-15832577"
    将值复制,得到access_token。

    然后返回刚才的api文档:
    找到请求示例:


    示例

    同样,新建一个ppppp.py文件,py2.x的同学直接复制,py3.x的复制我的代码:

    # encoding:utf-8
    import base64
    import requests
    import urllib.request
    import urllib.parse
    '''
    通用物体和场景识别
    '''
    request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general"
    # 二进制方式打开图片文件
    f = open('【图片】', 'rb')
    img = base64.b64encode(f.read())
    params = {"image":img,}
    params = urllib.parse.urlencode(params)
    header={'Content-Type':'application/x-www-form-urlencoded'}
    access_token = "【前面复制的access_token】"
    request_url = request_url + "?access_token=" + access_token
    request = requests.post(url=request_url, data=params, headers=header)
    content = request.text
    if content:
        print(content)
    

    一样的把你的图片地址复制到中括号图片位置覆盖,把上一个ak.py得到的access_token放到access_token覆盖。然后运行。
    我放的这张:之前爬下来的海报


    1179738178.jpg

    得到如下信息:

    {"log_id": 2683289035348183863, "result_num": 5, "result": [{"score": 0.918134, 
    "root": "", "keyword": "肖申克的救赎 The Shawshank Redemption"}, {"score": 
    0.719475, "root": "公众人物", "keyword": "摩根·弗里曼"}, {"score": 0.436844, "root": 
    "非自然图像-屏幕截图", "keyword": "屏幕截图"}, {"score": 0.312865, "root": "公众人
    物", "keyword": "蒂姆·罗宾斯"}, {"score": 0.053432, "root": "非自然图像-彩色动漫", 
    "keyword": "卡通动漫人物"}]}
    
    

    可见,百度ai图像识别很厉害!

    好了,非常简单,没有基础都可以,其他的借口:语言,人脸,只要是上面给的借口,你都能拿来直接用,只要你能根据他给出的示例代码做相应的修改就行。

    说实话,做这个,我什么也没学到,就是了解到了百度ai有多强。一点点人工智能的知识都没用到。

    我会了,你呢?

    我不想体验您家的课。

    相关文章

      网友评论

        本文标题:python爬虫-利用百度api识别照片中的物体

        本文链接:https://www.haomeiwen.com/subject/hhyevqtx.html