作业日-车辆保险应用
今天这个很迷,没有给具体要求。我百度了一下往期大家的作业,我猜应该是用视觉平台提供的车辆识别服务接口做一些事情。
先放几个往期大佬的文章
车型识别
功能描述
RecognizeVehicleType可以识别图片(完整或部件图片)中汽车的类型,目前主要有小轿车、多用途汽车、SUV等类别。
车牌识别
RecognizeLicensePlate可以准确识别出图像中车牌位置,输出车牌位置坐标、车牌类型、车牌号码、车牌号码置信度、车牌置信度,共5个关键字段信息。
其它
可用的其它功能还有很多,就不一一介绍了,可以去官方文档看
作业
最后,还是选择了比较容易的python实现车辆类型识别及车牌号识别。后续计划利用识别行驶证等功能,增加一些可用性。
参考代码
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"])
# 车牌识别
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)
#车牌信息输出
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.9955769295368473
车子类型:小型汽车
类型可信度:1
W:150
H:56
X:278
Y:165