{
private $appid
private $appKey
private $secretKey
public function __construct(){
$this->appid= config('api.baidu.appid')
$this->appKey = config('api.baidu.apikey')
$this->secretKey = config('api.baidu.secretkey')
}
//百度ai接口--文字识别--车牌号识别
public function getCarNumber($_imgurl,$_img=''){
$_token = $this->getToken()
$_url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate?access_token='.$_token
if($_img){
$_data = [
'image'=>$_img//图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式
]
}else{
$_data = [
'url'=>request()->domain().'/'.$_imgurl
]
}
$_res = json_decode(httpGet($_url,$_data),true)
/庆穗/TODO 此处只返回false没有终止,是因为程序执行流程需要,后期可能要改
if(isset($_res['error_msg'])) return false
return $_res['words_result']['number']
}
//获取token
private function getToken(){
if(cache('baidu_token')){
$_access_token = cache('baidu_token')
}else{
$_url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='.$this->appKey.'&client_secret='.$this->secretKey
$res = json_decode(httpGet($_url),true)
if(isset($res['error']))TApiException($res['error_description'])//终止程序并抛出异常
$_access_token = $res['access_token']
$_expires_in = $res['粗轮expires_in']
cache('baidu_token',$_access_token,($_expires_in-1000))//我喜欢少存1000秒,没有为什么,问就是癖好
}
return $_access_token
}
}
这是ThinkPhp5.1后端封装的百度AI接口类,getToken()获取凭证,getCarNumber()请求$_url 返回识别结果,这个是车牌号码识岩差信别,车型识别等其他接口大部分都一样,就换个请求地址$_url就行
//接口:
public function getImgCarNum(){
$_number = (new BaiDuAiBaseController())->getCarNumber(false,request()->param('img'))
return self::myShow('申请成功',['carNum'=>$_number])
}
小程序端正常request请求上面的接口就行,下面是微信小程序拍照识别功能
//拍照
goImgSearch(){
uni.chooseImage({
count:1,
sizeType: ['compressed'],//original 原图,compressed 压缩图
sourceType: ['album','camera'],//camera 相机 album相册
success:(r)=>{
console.log(r)
//执行识别车牌号码
this.img = r.tempFilePaths[0]
this.urlTobase64(r.tempFilePaths[0])
}
})
},
//识别车牌号码
urlTobase64(url){
uni.showLoading({
title:'拼命识别车牌中..'
})
//#ifdef MP-WEIXIN
uni.getFileSystemManager().readFile({
filePath: url, //选择图片时返回的路径
encoding: "base64",//这个是很重要的
success: res =>{ //成功的回调
//返回base64格式
let base64 = 'data:image/jpegbase64,' + res.data
//发送请求,识别车牌号码
this.$H.post('/getImgCarNum',{
img:base64 //图片数据
},{
token:true //必须登录
}).then((res)=>{
console.log(res.carNum)
if(!res.carNum){
uni.hideLoading()
return uni.showModal({
title:'识别失败',
content:'没能识别到车牌号码,请拍张清晰的图片再试哦,谢谢',
showCancel:false
})
}
uni.showToast({
title:'识别车牌成功',
icon:'none'
})
this.searchUser = res.carNum
this.userCarNum = res.carNum
uni.hideLoading()
}).catch((e)=>{
uni.hideLoading()
return uni.showModal({
title:'识别失败',
content:'没能识别到车牌号码,请拍张清晰的图片再试哦,谢谢',
showCancel:false
})
})
},
fail:(e)=>{
console.log(e)
}
})
//#endif
},
VIN是英文Vehicle Identification Number的缩写。它包含了车辆的生产厂家、年代、车型、车身型式及代码、发动机代码及组装地点等信息,共有17个字符组成。为避免与数字的1、0混淆,英文字母“I”、“O”、“Q”均不被使用。
17位的车辆识别代码分为三部分:
1-3位是世界制造厂识别代号(WMI):表明车辆是由谁生产的
4-8位是车辆说明部分(VDS):车辆特征,说明汽车种类,车身类型等情况
9-17位是车辆指示部分(VIS):车型年份,装配厂,出厂顺序号等
第一滚则部分:世界制造厂识别代号(WMI)
第1位:表示地理区域(国别)
1 代表 美国 2 代表 加拿大 ;
3 代表 墨西哥 4 代表 美国 ;
6 代表 澳大利亚 9 代表巴西 ;
K 代表 韩国 T 代表 瑞士 ;
J 代表 日本 S 代表 英国 ;
L 代表 中国 V 代表 法国;
R 代表 台湾 W 代表 德国 ;
Y 代表 瑞典
Z 代表 意大利;等等(其中1和4分别代表美国的不同地区)
第2位:汽车制造商代码
第3位:汽车类型代码
通常为制造商内部的部门区别或车辆类型的区别,由制造商自己决定。例如,美国制造的福特车代码为1F,而根据车辆类型的不同,其前三位可能为1FA、1FB等等。美国通用汽车公司制造大祥棚的车辆代码为1G。雪佛兰是通用汽车的下属部门,因此雪佛兰汽车的前三位为1GC。
第二部分:车辆说明部分(VDS)
这一部分可以充分反映一种车辆类型的基本特征
第4~8位:车辆特征:车辆特征 ,轿车:种类、系列、车身类型、发动机类型及约束系统类型等等,这部分代码通常也由制造商决定。
第9位:校验位,在该位置填入1个用来表示车辆识别代号(VIN)书写准确性的“检验数字”(1个数字或1个字母"X")。通过对VIN中的其他位进行一系列计算后即可获得正确的校验位。
第三部分:车辆指示部分(VIS)
第10位:车型年款
这个代码每30年循环一次,就和日常的十二生肖一样计算
第11位:装配厂
第12~17位:生产序列号。每个制造商都采用不同的代码方式,而同一个工厂生产的每辆车都采用自己的生产序列号,因此每宴态辆车都具有唯一的VIN。
(资料来源网络)
了解了这么多,今后看到车辆识别代码,是不是能立刻明白很多信息了
车辆识别代码就是汽车的身份z号,车辆识别代码根据国家车辆管理标准确定,包含了车辆的生产厂家、年代、车型、车身型式及代码、发动机代码及组装地点等信息。新的行驶证在“车架号”一栏一般都打印VIN码。
车辆识别代码(VIN),VIN是英薯帆如文Vehicle Identification Number(车辆识别码)的缩写。因为ASE标准规定:VIN码由17位字符组成,所以俗称十七位码。正确解读VIN码,对于我们正确地识别车型,以致进行正确地诊断和维修都是十分重要的。
扩展资料一、车辆备案
1、编制和标示车辆识别代号的制造厂必须在首次使用车辆识别代号前至少一个月, 向中国汽车技术研究中心数启标准化研究所备案,备案后方可使用。备案时需提供以下列文件:汽车工业司批准 的“世界制造厂识别代号”证书复印件,车辆类型,带有车辆识别代号的标记的型式及图片,车辆识别代号的标示位置或区域说明及图片,对车辆识别代号的解释文件。
2、若已申报过的车辆识别代号的内容/型式/位置等有任何改变,都应在出售第一批有此识别代号的此种车辆前至少一个月,向中国汽车技术研究中心标准化研究所重新备案。
二、管理机构
中华人民共和国工业和信息化部汽车工业司依据国轿磨际代理机构的授权,对中华人民共和国境内的车辆识别代号实行统一管理,负责受理有关“世界制造厂识别代号(WMI)”的申请和对申请的批准。中国汽车技术研究中心标准化研究所经授权负责车辆识别代号的备案。
参考资料来源:百度百科-车辆识别代码
参考资料来源:百度百科-车辆识别号码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)