Python

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

2019-03-23  本文已影响41人  DKider

我会了,您呢

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

基础不需要,会认字就行。软件: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有多强。一点点人工智能的知识都没用到。

我会了,你呢?

我不想体验您家的课。

上一篇下一篇

猜你喜欢

热点阅读