【阿里云高校计划】视觉Al训练营五天训练第四天

今天的作业是通过前三天学习到的知识合作完成一个项目 - 车辆保险 / 其他有创意的功能。

提示:车辆保险项目可通过身份证识别,驾驶证、车辆识别等接口进行构思

也就是要在前三天的基础上才能完成项目,

安装Python SDK核心库

python的SDK文档 link
cmd里执行pip install aliyun-python-sdk-core命令,安装阿里云SDK核心库,报错。

国内的网络去链接python原版的库,很难连,可能会报错,我们要用国内的镜像。Python pip配置国内源的方法:link
在这里插入图片描述
阿里云和豆瓣是http开头,清华是https开头,多个"s"是加密的意思。豆瓣的源可能会报错,建议使用清华的源:link

-i”的意思就是我要用后面的网址下载这个库
以安装aliyun-python-sdk-core库为例,有下图两种安装方式

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple aliyun-python-sdk-core 
pip install aliyun-python-sdk-core -i https://pypi.tuna.tsinghua.edu.cn/simple 

如下图,安装成功。

C:\Users\22532>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple aliyun-python-sdk-core
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting aliyun-python-sdk-core
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/eb/02/934063402b766b6148930b86e57fabbc88f9ce48cb5c65bc199ede53db13/aliyun-python-sdk-core-2.13.16.tar.gz (434 kB)
     |████████████████████████████████| 434 kB 1.7 MB/s
Collecting jmespath<1.0.0,>=0.9.3
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/07/cb/5f001272b6faeb23c1c9e0acc04d48eaaf5c862c17709d20e3469c6e0139/jmespath-0.10.0-py2.py3-none-any.whl (24 kB)
Building wheels for collected packages: aliyun-python-sdk-core
  Building wheel for aliyun-python-sdk-core (setup.py) ... done
  Created wheel for aliyun-python-sdk-core: filename=aliyun_python_sdk_core-2.13.16-py3-none-any.whl size=526481 sha256=193c00a054f4bd54040de3e3cf18ede66e5ffadca97ad692fed986c5cc025927
  Stored in directory: c:\users\22532\appdata\local\pip\cache\wheels\31\4c\f8\a9903c691592e20f1b7df2f4786c047692dcb96ca3597e6084
Successfully built aliyun-python-sdk-core
Installing collected packages: jmespath, aliyun-python-sdk-core
Successfully installed aliyun-python-sdk-core-2.13.16 jmespath-0.10.0

安装视觉智能API相关服务Python SDK

需要哪类包就安装哪类

  • 使用依赖包工具安装(推荐)。
  • 执行以下命令,安装相应的包。
    人脸人体:pip install aliyun-python-sdk-facebody
    文字识别:pip install aliyun-python-sdk-ocr
    商品理解:pip install aliyun-python-sdk-goodstech
    内容安全:pip install aliyun-python-sdk-imageaudit
    图像识别:pip install aliyun-python-sdk-imagerecog
    图像生产:pip install aliyun-python-sdk-imageenhan
    分割抠图:pip install aliyun-python-sdk-imageseg
    目标检测:pip install aliyun-python-sdk-objectdet
    图像分析处理:pip install aliyun-python-sdk-imageprocess
    视觉搜索:pip install aliyun-python-sdk-imgsearch
    视频理解:pip install aliyun-python-sdk-videorecog
    视频生产:pip install aliyun-python-sdk-videoenhan
    视频分割:pip install aliyun-python-sdk-videoseg
  • 自行下载安装:您可以使用git clone或其它方式下载aliyun-python-sdk-imageenhan并自行添加解决方案。详细下载地址请参见SDK简介。

身份证识别

身份证识别文档
我在Spyder (anaconda3)里安装了相应的库。
把AccessKey和AccessKeySecret输入相应的位置,

# -*- coding: utf8 -*-
from aliyunsdkcore.client import AcsClient
from aliyunsdkocr.request.v20191230 import RecognizeIdentityCardRequest

client = AcsClient("<your-access-key-id>", "<your-access-key-secret>", "cn-shanghai")

# 身份证识别
request = RecognizeIdentityCardRequest.RecognizeIdentityCardRequest();
## 如下url替换为自有的上海region的oss文件地址
request.set_ImageURL("https://hry.oss-cn-shanghai.aliyuncs.com/face.jpg")
request.set_Side("face")
response = client.do_action_with_exception(request)
print(response)

替换自己的url之后,运行结果是我的身份证正面的信息,字符编码有点问题,不是汉字编码,需要转换为汉字

驾驶证识别

驾驶证识别文档

完成了一项识别,其它的识别也差不多,下面是完整python代码:我把AccessKey、AccessKeySecret、图片url改了,你需要改为自己的。

# -*- coding: utf8 -*-
from aliyunsdkcore.client import AcsClient

from aliyunsdkocr.request.v20191230 import RecognizeIdentityCardRequest
from aliyunsdkocr.request.v20191230 import RecognizeDriverLicenseRequest

# 创建 AcsClient 实例
client = AcsClient("your-access-key-id", "your-access-key-secret", "cn-shanghai")

# 身份证正面识别
request1 = RecognizeIdentityCardRequest.RecognizeIdentityCardRequest();
## 如下url替换为自有的上海region的oss文件地址
request1.set_ImageURL("https://viapi-demo.oss-cn-shanghai.aliyuncs.com/viapi-demo/images/ChangeImageSize/change-image-size-src.png")
request1.set_Side("face")
response = client.do_action_with_exception(request1)

#身份证正面信息输出
#print(isinstance(response, str)) #判断变量的数据类型 返回False,不是字符串
#print(type(response)) #返回变量的类型,class 'bytes'
str = response.decode() #bytes是byte的序列,而str是unicode的序列,转换
#print(str)
aa = eval(str) #字符串转换为字典
a = aa['Data']   #取Data数据
#print(a)
b = a['FrontResult'] #取FrontResult数据
#print(b)
print("身份证信息:")
print('姓名:%s'%b["Name"])
print('性别:%s'%b["Gender"])
print('民族:%s'%b["Nationality"])
print('出生日期:%s'%b["BirthDate"])
print('地址:%s'%b["Address"])
print('公民身份号码:%s'%b["IDNumber"])

#获取身份证反面信息
request = RecognizeIdentityCardRequest.RecognizeIdentityCardRequest();
## 如下url替换为自有的上海region的oss文件地址
request.set_ImageURL("https://viapi-demo.oss-cn-shanghai.aliyuncs.com/viapi-demo/images/ChangeImageSize/change-image-size-src.png")
request.set_Side("back")
response = client.do_action_with_exception(request)
#print(response)

#身份证反面信息输出
str = response.decode() #bytes是byte的序列,而str是unicode的序列,转换
#print(str)
aa = eval(str) #字符串转换为字典
a = aa['Data']   #取Data数据
b = a['BackResult'] 
print('签发机关:%s'%b["Issue"])
print('生效日期:%s'%b["StartDate"])
print('失效日期:%s'%b["EndDate"])
print('\n')

# 驾驶证首页识别
request = RecognizeDriverLicenseRequest.RecognizeDriverLicenseRequest();
request.set_Side("face")
## 如下url替换为自有的上海region的oss文件地址
request.set_ImageURL("https://viapi-demo.oss-cn-shanghai.aliyuncs.com/viapi-demo/images/ChangeImageSize/change-image-size-src.png")
response = client.do_action_with_exception(request)

#输出格式设置
str = response.decode() #bytes是byte的序列,而str是unicode的序列,转换
#print(str)
aa = eval(str) #字符串转换为字典
a = aa['Data']   #取Data数据
b = a['FaceResult'] 
print("驾驶证信息:")
print('证件号:%s'%b["LicenseNumber"])
print('姓名:%s'%b["IssueDate"])
print('性别:%s'%b["Gender"])
print('地址:%s'%b["Address"])
print('生效日期:%s'%b["StartDate"])
print('有效期限:%s年'%b["EndDate"])
print('签发日期:%s'%b["IssueDate"])
print('准驾车型:%s'%b["VehicleType"])

# 驾驶证副页识别
request = RecognizeDriverLicenseRequest.RecognizeDriverLicenseRequest();
request.set_Side("back")
## 如下url替换为自有的上海region的oss文件地址
request.set_ImageURL("https://viapi-demo.oss-cn-shanghai.aliyuncs.com/viapi-demo/images/ChangeImageSize/change-image-size-src.png")
response = client.do_action_with_exception(request)


#输出格式设置
str = response.decode() #bytes是byte的序列,而str是unicode的序列,转换
#print(str)
aa = eval(str) #字符串转换为字典
a = aa['Data']   #取Data数据
b = a['BackResult'] 
print('档案编号:%s'%b["ArchiveNumber"])

同一个程序,我运行的时候有时候能运行,有时候会报错

ServerException: HTTP Status: 400 Error:Throttling.User Request was denied due to user flow control. RequestID: DA199402-78C5-45BE-8B86-938924D3BCB6

我猜是阿里云oss的节流设置,这个没关系。

车辆识别

# 车牌识别
request = RecognizeLicensePlateRequest.RecognizeLicensePlateRequest();
## 如下url替换为自有的上海region的oss文件地址
request.set_ImageURL("https://harry1.oss-cn-shanghai.aliyuncs.com/car1.png")
response = client.do_action_with_exception(request)
#print(response)


#车牌信息输出
str = response.decode() #bytes是byte的序列,而str是unicode的序列,转换
#print(str)
aa = eval(str) #字符串转换为字典
a = aa['Data']   #取Data数据
#print(a)
b = a['Plates'] #取FrontResult数据
#print(b[0])
b = b[0]

print("车子信息:")
print('车牌号:%s'%b["PlateNumber"])
print('可信度:%s'%b["Confidence"])
print('车子类型:%s'%b["PlateType"])
print('类型可信度:%s'%b["PlateTypeConfidence"])
c = b['Roi']
print('W:%s'%c["W"])
print('H:%s'%c["H"])
print('X:%s'%c["X"])
print('Y:%s'%c["Y"])

我用到的图片:
在这里插入图片描述
结果如下:

车子信息:
车牌号:京PKR676
可信度:0.9955239295959473
车子类型:小型汽车
类型可信度:1
W152
H55
X283
Y163

先写到这里吧。

欢迎扫码加入阿里云高校计划
阿里云——为了无法计算的价值[-]
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值