1.需求及方案:

近两年用外币进行诈骗的案件很多。例如:2015年12月,一安徽诈骗团伙,用不值1角人民币的50印蒂(intis,秘鲁旧货币,1991年发行新货币后已停止流通,目前无货币价值,仅有"收藏"价值),在豫皖鲁苏四省行骗,却屡屡得手。该团伙今年以来已诈骗20多起,至12月8日,警方已查明落实了6起,骗款达20多万元。

同时随着我国经济的发展,出国旅游的人越来越多,在兑换货币的时候也经常有国人被骗的消息。

能否开发一款方便的应用,借AI的力量,给大家一双慧眼呢?正好现在百度推出了货币识别API(百度货币识别,识别图像中的货币类型,返回货币名称、代码、面值、年份信息,可识别百余种国内外常见货币。),我在这个基础上集成其他API,开发了这个货币估值及防诈骗的应用。

以下为具体方案:

2.平台接入

货币识别接入网址:https://ai.baidu.com/tech/imagerecognition/currency 现在需要进行邀测申请。

具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了:
http://ai.baidu.com/forum/topic/show/943327

3.货币识别调用攻略(Python3)

3.1首先认证授权:

在开始调用任何API之前需要先进行认证授权,具体的说明请参考:

http://ai.baidu.com/docs#/Auth/top

具体Python3代码如下:

# -*- coding: utf-8 -*-
#!/usr/bin/env pythonimport urllib
import base64
import json
#client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id =【百度云应用的AK】
client_secret =【百度云应用的SK】#获取token
def get_token():host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secretrequest = urllib.request.Request(host)request.add_header('Content-Type', 'application/json; charset=UTF-8')response = urllib.request.urlopen(request)token_content = response.read()if token_content:token_info = json.loads(token_content)token_key = token_info['access_token']return token_key

3.2 接口调用:
详细说明请参考:https://ai.baidu.com/docs#/ImageClassify-API/f3c9e21c

接口描述
识别图像中的货币类型,以纸币为主,正反面均可准确识别,接口返回货币的名称、代码、面值、年份信息;可识别各类近代常见货币,如美元、欧元、英镑、法郎、澳大利亚元、俄罗斯卢布、日元、韩元、泰铢、印尼卢比等。

说明的比较清晰,这里就不重复了。

大家需要注意的是:
API访问URL:https://aip.baidubce.com/rest/2.0/image-classify/v1/currency
图片格式:Base64编码字符串,以图片文件形式请求时必填。(支持图片格式:jpg,bmp,png),图片大小不超过4M。最短边至少15px,最长边最大4096px。 注意:图片的base64编码是不包含图片头的

Python3调用代码如下:

#货币识别
#filename:图片名(本地存储包括路径)
def currency(filename):request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/currency"# 二进制方式打开图片文件f = open(filename, 'rb')img = base64.b64encode(f.read())params = dict()params['image'] = imgparams['show'] = 'true'params = urllib.parse.urlencode(params).encode("utf-8")#params = json.dumps(params).encode('utf-8')access_token = get_token()request_url = request_url + "?access_token=" + access_tokenrequest = urllib.request.Request(url=request_url, data=params)request.add_header('Content-Type', 'application/x-www-form-urlencoded')response = urllib.request.urlopen(request)content = response.read()if content:#print(content)content=content.decode('utf-8')#print(content)data = json.loads(content)#print(data)result=data['result']print ('货币名称:',result['currencyName'])print ('货币代码:',result['currencyCode'])print ('货币年份:',result['year'])print ('货币面值:',result['currencyDenomination'])return result['currencyCode'],float(result['currencyDenomination']),result['year']

4.应用方案:

4.1 整体方案:
首先调用货币识别API对货币图片进行识别。
然后对货币年份及该国货币情况对比,判断是否为废币。如果为废币,提出警告。如果是流通货币调用汇率API,给出对应的人民币价值。

4.2 具体实现代码:

# -*- coding: utf-8 -*-
#!/usr/bin/env pythonimport urllib
import base64
import json
#client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id =【百度云应用的AK】
client_secret =【百度云应用的SK】#获取token
def get_token():host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secretrequest = urllib.request.Request(host)request.add_header('Content-Type', 'application/json; charset=UTF-8')response = urllib.request.urlopen(request)token_content = response.read()if token_content:token_info = json.loads(token_content)token_key = token_info['access_token']return token_key#货币识别
#filename:图片名(本地存储包括路径)
def currency(filename):request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/currency"# 二进制方式打开图片文件f = open(filename, 'rb')img = base64.b64encode(f.read())params = dict()params['image'] = imgparams['show'] = 'true'params = urllib.parse.urlencode(params).encode("utf-8")#params = json.dumps(params).encode('utf-8')access_token = get_token()request_url = request_url + "?access_token=" + access_tokenrequest = urllib.request.Request(url=request_url, data=params)request.add_header('Content-Type', 'application/x-www-form-urlencoded')response = urllib.request.urlopen(request)content = response.read()if content:#print(content)content=content.decode('utf-8')#print(content)data = json.loads(content)#print(data)result=data['result']print ('货币名称:',result['currencyName'])print ('货币代码:',result['currencyCode'])print ('货币年份:',result['year'])print ('货币面值:',result['currencyDenomination'])return result['currencyCode'],float(result['currencyDenomination']),result['year']import re
#调用汇率API提取汇率
def get_currency_rate(fromcurrency,tocurrency):fp = urllib.request.urlopen('http://webforex.hermes.hexun.com/forex/quotelist?code=FOREX'+fromcurrency+tocurrency+',&column=code,LastClose,UpdownRate&callback=ongetjsonpforex&_=1451543515359')html = fp.read().decode("utf-8")#print(html)fp.close()s = re.findall("\((.*)\)",str(html))[0]sjson = json.loads(s)rate = sjson["Data"][0][0][1]/10000#print (rate)return rate#货币是否流通判断及对应人民币
def currency_value(filename):code,value,year=currency(filename)#对于旧秘鲁币等停止兑换的货币进行判断#目前只写了秘鲁币的逻辑,后续需要不断的加入其他废币的信息if code=='PEN':if year<='1991年':print ('已经作废不可兑换,谨防诈骗!')returnif code=='DEI':print ('已经作废不可兑换,谨防诈骗!')returnrate=get_currency_rate(code,'CNY')result=round(value*rate,3)print ('汇率(昨收盘):',rate)print ('对应人民币(昨收盘):',result)return resultcurrency_value('bilu1000.jpg')

5 效果测试

5.1 防诈骗

“大娘,您看这个秘鲁币老值钱了”。“大娘别信他,拿来让我看看”:

货币名称: 秘鲁新索尔
货币代码: PEN
货币年份: 1986年
货币面值: 1000
已经作废不可兑换,谨防诈骗!

“大娘,快报警!”

再来个面值更高的:

货币名称: 秘鲁印蒂
货币代码: DEI
货币年份: 1988年
货币面值: 5000
已经作废不可兑换,谨防诈骗!

5.2 正常货币确认价值

货币名称: 澳大利亚元
货币代码: AUD
货币年份: -
货币面值: 100
汇率: 4.7503
对应人民币: 475.03

货币名称: 美元
货币代码: USD
货币年份: 1993年
货币面值: 50
汇率: 6.7332
对应人民币: 336.66

百度AI攻略:货币识别相关推荐

  1. 百度AI攻略:识别火车票的多种方法

    1. 简介 百度OCR提供多种场景下精准的图像文字识别技术服务,让您的应用看图识字,提升输入效率,优化用户体验.现在百度OCR的全系列39款产品,开放使用!希望大家能一起来测试,使用.本篇评测介绍了通 ...

  2. 百度AI攻略:手写文字识别

    1.功能描述: 支持对图片中的手写中文.手写数字进行检测和识别,针对不规则的手写字体进行专项优化,识别准确率可达90%以上 2.平台接入 具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了: ...

  3. 百度AI攻略:驾驶行为识别

    1.功能描述: 针对车载场景,识别驾驶员使用手机.抽烟.不系安全带.双手离开方向盘等动作姿态,分析预警危险驾驶行为,提升行车安全性 2.平台接入 具体接入方式比较简单,可以参考我的另一个帖子,这里就不 ...

  4. 百度AI攻略:人体关键点识别

    第四期[百度大脑新品体验]人体关键点识别 1.功能描述: 检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶.五官.颈部.四肢主要关节部位,支持多人检测.大动作等复杂场景 2.平 ...

  5. 百度AI攻略:行驶证识别

    1.功能描述: 对机动车行驶证主页及副页所有21个字段进行结构化识别,包括号牌号码.车辆类型.所有人.品牌型号.车辆识别代码.发动机号码.核定载人数.质量.检验记录等.可应用于网约车或货车司机身份审查 ...

  6. 百度AI攻略:银行卡识别

    1.功能描述: 支持对主流银行卡的卡号.有效期.发卡行.卡片类型4个关键字段进行结构化识别,识别准确率超过99% 2.平台接入 具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了: http ...

  7. 百度AI攻略:植物识别

    1.功能描述: 该请求用于识别一张图片,即对于输入的一张图片(可正常解码,且长宽比较合适),输出植物识别结果.近期植物识别进行了能力升级--模型升级,Top1准确率绝对值提升11.76%,精度保持业界 ...

  8. 百度AI攻略:红酒识别

    1.功能描述: 现在随着大家生活水准的不断提高,红酒消费也越来越多.不过大家现在对红酒还都不是十分的了解,正好现在红酒识别升级,识别结果增加更丰富的信息,包括:红酒的国家.产区.酒庄.类型.糖分.色泽 ...

  9. 百度AI攻略:地标识别

    1.需求及方案: 在我以前的一个帖子https://ai.baidu.com/forum/topic/show/943365 里面讲了怎么通过图像分割来旅游. 这一次我要说一下怎么通过地标识别+百度百 ...

  10. 百度AI攻略:iOCR财会票据识别

    [使用攻略]+[iOCR财会票据] 1.功能描述: 对各类财务票据.报销单.银行回单.对账单进行自动分类及结构化识别,并支持用户为新票据/单据创建结构化模板和调整分类器.具体包括: 票据.单据识别:结 ...

最新文章

  1. FPGA之道(20)FPGA设计的上板调试与项目总结
  2. golang-china
  3. 百度如何能实时检索到15分钟前新生成的网页?--转
  4. redmine 配置
  5. 《疯狂Java讲义》8
  6. 二维数组m的元素是4个字符组成的串_串、数组和广义表
  7. Django3与Vue3前后端分离搭建
  8. python的整数类型_python基本数据类型
  9. .net ajax 保存文件,.net ajax式上传文件
  10. 网课题库API接口 对接教程
  11. 清华大学 谭浩强c语言课件,C语言课件 清华大学谭浩强版C3
  12. 计算机软件企业的税收,2018年软件企业增值税税收政策梳理
  13. VS code 创建html文件后 !失效的解决
  14. 生成二维码的三种方式
  15. android查看当前手机中的进程
  16. 一键爬取王者荣耀全皮肤高清图片【方法一】
  17. CRT 软件与高亮字体库下载及高亮字体设置方法
  18. 阿里腾讯头条美团等iOS面试总结
  19. 移动平台危机四伏——对12306移动客户端的担忧
  20. python(odoo)验证银行账号的正确性(简易版)

热门文章

  1. 常遇电脑故障应急处理方法(转)
  2. Android的Gallery3D模块介绍
  3. 人的差别在于业余时间——细细品味 ==程序员学习能力提升三要素 ==》程序员学习能力提升三要素 ==编程从业五年的十四条经验,句句朴实
  4. 测试TF card 的读写速度
  5. css鼠标滑过变大,css 鼠标移上去会变大(示例代码)
  6. C++ 鼠标乱动整人代码
  7. FFmpeg获取H264文件的帧率
  8. “冲击波”病毒的症状和解决方案
  9. Processing自画像
  10. 乐易模块V7.62更新日志