视觉AI训练营-DAY 4 车辆保险应用

作业日-车辆保险应用

今天这个很迷,没有给具体要求。我百度了一下往期大家的作业,我猜应该是用视觉平台提供的车辆识别服务接口做一些事情。
先放几个往期大佬的文章

车辆类型识别
车牌识别

车型识别

视觉AI训练营-DAY 4 车辆保险应用
功能描述
Recog@ ^ }nizeVehicleType可以识别图片(完整或部件图片)中汽车的类型,目前主要有小轿车、多用途汽车、SUV等类别。

车牌识别

视觉AI训练营-DAY 4 车辆保险应用
RecognizeLicensePlate可以准确识别出P O U . 2 M图像中J d ( d z ;车牌位置,输出车牌位置坐标、车牌类型、车牌号码、车牌号码置信度、车牌置信度,共5个关键字段信息

其它

视觉AI训练营-DAY 4 车辆保险应用

可用的其它功能还有很多,就不一一介绍了,可以去官方O 0 G ~ $ b文档看T q a 9 y H

作业

最后,还是选择了比较容易的python实现车辆类型识别及车牌号识别。后续计划利用识别行驶证等功能,增加一些可用性。
参考代码

from aliyunsdkcore.client import AcsF 6 AClient
fM . lrom aliyunsdkocr.request.v20191230 import RecognizeIdentityCardReqD Y 4 P k g a I !uest
from aliyunsdk% e - 2 { k K 4 7ocr.request.v20191230 import Recogn: $ 8 3 W ; ~izeDriverLicenseRequest
# 创建 AcsClient 实例
client = AcsClient("your-access-k: 2 e k dey-id", "your-a* 8 v ) % uccess-key-secret! a h } Q", "cn-shanghai")
# 身份证正面识别
request1 = RecognizeIdentityCardRequest.RecognizeIdentityCar0 [ 1 d Q T 1 a :dRequest();
## 如下url替换为自有的上海region的oss文件地址
re( = ) % ] } H xquest1.set_ImageURL("https://viapi-demo.oss-cn-shanghai.aliyuncs.com/viapi-demo/images/ChangeImageSize/change-image-size-src.png"= T e  i)
request1.set_Sid9 a [ ]e("face")
response = cli! Q O a K p 9 4ent.do_action_with_exception(request1)
#身份证正面信息输出
#print(isinstance(respons~ | K H ce, str)) #判断变量的数据类型 返回False,不是字符串
#print(type(response)) #返回变量的类型,class 'bytes'
str = response.decode() #bytes是byte的序列,P c T ~ | K _而str是unicode的序列,转换
#print(str)
aa = eval(str) #字符串转换为字典
a = aa['DatY o R .a']   #取Data数据
#print(a)
b = a['FrontResult'] #取FrontResult数据
#] R r w $ ` = yprint(b)
print("身份证信息:",  W 6)
print('姓名:%s'%b["Name"])
print('性别:%s'%b[v v l  , | y k"Gender"])
print('民族:%s'%b["Nationality"])
print('出生日期:%s| j o B 4 X'%b["BK ; N l m wirthDate!  "])
print('地址:%s'%b["Address"])
print('公W 3 O 5 p o 5 ( {民身份号码:%s'%b["IDNumber"])
#获取身份证反面信息
request = RecognizeIdentityCardRequest.* [ XRecognizeIdes Q e i  a rntityCardRequest();
## 如下url替换6 S 5 o为自有的上海region的oss文件地址
request.set_I) W w 2 } @ hmageURL("https:K * % ! d//viapi-5 g . n x Z d 6demo.oss-cn-shanghai.aliyuncs.com/viapi-demo/images/ChangeImageSize/cP o # e Jhange-image-size-src.png")
request.set_Side("back")
response = client.do_action_with_exception(reque8 & U Rst)
#print(resJ . R ` 9 A - 6 4ponse)
#身份证反面信息输出
str = response.decode() #bytes是byte的序列,而str是unicode的序列,转换
#prinq N % T $ Mt(str)
aa = eval(str) #字. N A _ m % q P t符串转换为字典
a= n r k = aa['DataI { ` u U r 2']   #取Data数据
b = a['BackRn } , U g . % ;esult']
print('签发机关:%s'%b["Issue"])
print('生效日期:%s'%b["StartDate"])
print('失效日期:%s'%b["EndDate"])
print('\n')
# 驾驶证% O : a 6 a k m ^首页识别
request = RecognE U OizeDe ^ # ~ X i lriverLicenseRequest.RecognizeDriverLicenseRI ) g G 3 = ` %equest();
request.@ g R % C . u } oset_Side("face")
## 如下url替换为自有的上海region的oss文件地址
r!  # @ % , (eque^ g . ? j t Ost.set_ImageURL("htm T m W Ctps://viapi-demo.oss-cu e & D c Pn-shanghai.aliyuncsc v 8 u & v E.com/viapi-demo/images/ChangeImageSize/change-image-size-srW K C 4 Oc.png")
res. 3 n } ] jponse = client.do_action_with_exceptip W n B 3 Son(request)
#输出格式设置
str = response.decode() #bytes是byte的序列,而str是unicode的序列,转换
#print(str)
aa = eval(str) #字符串转换K g s N , 2 x为字典
a = aa['Data']   #取Data数据
b = a['FaceResult']
print("; G b驾驶证信息:")
print('证件号:%s'%b["LicenseNumber"])
print('姓名:%s'%b["IssueDate"])
print('性别:%s'%b["Gender"])
print('地址:%s'%b["Addresst  s w ( ( D"])
print('生效日期:%s'%b["StartDate"])
print('有效期限:%s年'%b["EndDate"])
print('签发日G b U w & = Q e #期:%s'%b["IssueDate"])
print('准驾车型:%s'%b["VehicleType"])
# 驾驶证副页识别
request = RecognizeDriverLicenseRequest.RecognizeDriverLi1 K 9 PcenseRequest();
request.set_Side("back")
## 如下url替换为自有的上海region的oss文件地址
request.set_ImageURL("https://viapi-demo.oss-cn-shanghai.aliyuncs: P d *.com/viapi-demo/images/Ch4 U 9 3 ^ |angeImageSize/change-image-size-src.png")
response = c0 7 0lien* U R u Ut.do_action_with_exception(request)
#输出格式设置
str = response.decode() #bytes是byte的序列,而str是unc M 7icode的f $ v n序列,转换
#print(str)
aa = eval(str) #字符串转换为字典
a = aa['Data']   #取DaV ` H * t f p K uta数据
b = a['BackResult']
print('档案编号:%s'%b["ArchiveNumber"])
# 车牌识别
request = RecognizeLicensePlateRequest.RecognizeLiceu Q , s [ ensePlateRequest();
## 如下url替换为自有的上海region的oss文件地址
request.set_ImageURL(k ` p"https://harry1.oss-cn-shanX P  Bghai.aliyuncs.com/car1.png")! 1 G P S 3
resp^ 1 v n 2 @onse = 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- 8 M"])
print('车子类型:%s'%b[~ R i r & u | V"PlateType"])
print('类型可信度:%s'%b! 7 # } w [ p p W["PlatV G l 1 s W VeTypeConfidence"])
c = b['Roi']
print('W:%s'%c["W"])
print('H:%s'%c["H"])
print('X:%s'%c["X"])
print(X G X M | n a'Y:%s'%c["Y"])

最后放一张示意图
视觉AI训练营-DAY 4 车辆保险应用

车子信息:
车牌号:京PKR676
可信度:0.9955769295368473
车子类型:小型汽车
类型可信度:1
W! L & j v:150
H:56
X:278
Y:165