ESAP达摩院 思想有多远,我们就能走多远

ESAP4系列教程|打造原生AI识别体验


esap4.0的机器人已经非常强大,而不满足于此的童鞋们又提出是否能直接在工作台也体验AI识别的快感。

本文以NX为例就这个问题展示如果打造原生体验的识别方案。

先看疗效

工作台建立表单插入或复制粘贴图片后,就可以开始点按钮立即识别。

识别步骤

创建AI脚本

把查询模板简化一下,只需要输入需要的字段即可。

示例中,建立sql/api2/bdai.post文件,里面建立下列AI识别sql模板

{{define "aiidcard"}}
{{with $data := post ("bdai" | token | printf "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=%v") (.praw | body | base64 | map "detect_direction" "true" "id_card_side" "front" "image")}}
  select '{{.words_result.公民身份号码.words}}' 号码
        ,'{{.words_result.姓名.words}}' 姓名
        ,'{{.words_result.性别.words}}' 性别
        ,'{{.words_result.民族.words}}' 民族
        ,'{{.words_result.出生.words}}' 出生
        ,'{{.words_result.住址.words}}' 住址  
{{end}}
{{end}}

{{define "aiidcardback"}}
{{with $data := post ("bdai" | token | printf "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=%v") (.praw | body | base64 | map "detect_direction" "true" "id_card_side" "back" "image")}}
  select 签发机关= '{{.words_result.签发机关.words}}'
      ,签发日='{{.words_result.签发日期.words}}'
      ,失效日='{{.words_result.失效日期.words}}'    
{{end}}
{{end}}

{{define "aidriving"}}
{{with $data := post ("bdai" | token | printf "https://aip.baidubce.com/rest/2.0/ocr/v1/driving_license?access_token=%v") (.praw | body | base64 | map "detect_direction" "true" "accuracy" "high" "image")}}
  select '{{.words_result.证号.words}}' 证号
        ,'{{.words_result.姓名.words}}' 姓名
        ,'{{.words_result.准驾车型.words}}' 准驾车型
        ,'{{.words_result.住址.words}}' 住址
        ,'{{.words_result.有效期限.words}}' 有效期限     
{{end}}
{{end}}

{{define "aivehicle"}}
{{with $data := post ("bdai" | token | printf "https://aip.baidubce.com/rest/2.0/ocr/v1/vehicle_license?access_token=%v") (.praw | body | base64 | map "detect_direction" "true" "image")}}
  select '{{.words_result.车辆识别代号.words}}' 车辆识别代号
        ,'{{.words_result.所有人.words}}' 所有人
        ,'{{.words_result.号牌号码.words}}' 号牌号码
        ,'{{.words_result.住址.words}}' 住址
        ,'{{.words_result.注册日期.words}}' 注册日期
        ,'{{.words_result.品牌型号.words}}' 品牌型号
{{end}}
{{end}}

{{define "aiplate"}}
{{with $data := post ("bdai" | token | printf "https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate?access_token=%v") (.praw | body | base64 | map "detect_direction" "true" "image")}}
  select '{{.words_result.number}}' 车牌
        ,'{{.words_result.color}}' 颜色
{{end}}
{{end}}

{{define "aiocr"}}
{{with $data := post ("bdai" | token | printf "https://aip.baidubce.com/rest/2.0/ocr/v1/webimage?access_token=%v") (.praw | body | base64 | map "detect_direction" "true" "image")}}
  select '{{range $v := .words_result}}{{$v.words}},{{end}}' 文字
{{end}}
{{end}}

注册接口

在NX-设计区-外部接口中一一注册这些接口

接口传入,统一为praw,即图片

传出需要先建一个表结构,字段与上面的sql模板输出对应

然后传出这个表结构即可

模板建立提数

采用API提数,传入本表图片字段,传出表一一对应填入本表。

其他效果

身份证正反面同时识别

小结

  • 使用ESAP定义查询API

  • 使用NX的API提数

本文示例应用ESAP4.0.8+支持。

2019-07-18


近似文章