银行业深度学习:哥伦比亚比索纸币检测

本文介绍了一个使用深度学习开发的哥伦比亚比索纸币真伪检测模型,旨在解决银行行业的假钞问题。通过数据预处理、模型构建、训练和评估,最终实现了100%准确率的检测模型,并在本地和云端进行了部署。
摘要由CSDN通过智能技术生成

介绍

假钞很容易成为小型和大型企业的问题。当这些钞票不是真的时,能够识别这些钞票是非常重要的。对于日常与现金打交道的商务人士和个人而言,此过程可能非常耗时。这就需要通过自动化来实现这一目标。

因此,我们认为有必要开发一种自动机器学习假钞检测模型,即使是非专业人士也可以使用它来检测这些钞票的真伪。

本文介绍了一个实际项目,我们在该项目中开发了一个深度学习和图像分类在银行业中的应用的真实原型。目标是使用现实生活中的问题场景完成机器学习演示。我们将从数据采集和深度清理/预处理到简单地部署经过训练的模型。

我们将使用一些合适的评估指标来确保模型的性能及其学习的恰当程度。由于这是一个银行系统,我们希望确保预测准确无误。

目录

  1. 设置环境

  2. 导入依赖项

  3. 读取和加载数据集

  4. 数据转换

  5. 数据可视化

  6. TensorBoard

  7. 模型构建

  8. 可视化预测

  9. 微调卷积网络

  10. 训练和评估

  11. 使用TensorBoard报告学习到的矩阵

  12. 模型测试

  13. 保存训练后的模型工件

  14. 本地部署

  15. 部署到云端(Streamlit Cloud)

问题陈述

如引言所述,大多数人都很难区分假钞和真钞。大多数人在这方面没有任何技能,很容易被骗子用假钞换取他们的真钞。我们将通过使用专业提供的用于研究的哥伦比亚真假银行钞票来解决这个问题的挑战。

960b24da8874f7c64d1c3d6c12236d46.png

完成此项目的先决条件是机器学习模型管道的知识、jupyter notebooks 的基本经验,以及进一步深入学习的兴趣。即使这是你第一次接触图像处理,你也不必担心,因为每一个步骤都易于掌握。

数据集描述

该数据集由 Universidad Militar Nueva Granada 在 CC BY 4.0 许可下于 2020 年提供。该数据集可用于实时检查系统,以检测纸币的面额和伪造品。就大小和图像数量而言,该数据集很大,由专业捕获的假类和真类图像组成。让我们看看下面的亮点:

  • 该数据集包含 20800 张图像,包含 13 个类别,其中 6 个对应于原始钞票,另外 6 个对应于伪造钞票,另外 1 个对应于背景类别。

  • 它包含纸币的照明变化、旋转和局部视图。包含3个文件夹,每个文件夹20800张图片,分别对应ds1、ds2、ds3。

  • 每个文件夹都包含一个包含图像的训练、验证和测试子文件夹。

  • 所有类别的图像数量都是平衡的。

3c1f57bc0d09113f44339708975af307.png

项目管道

除了掌握我们将要涵盖的所有内容之外,我还概述了下面详细开发的模型的各个步骤:

  • 设置环境

  • 导入依赖项

  • 读取并加载数据集

  • 数据转换

  • 数据可视化

  • TensorBoard

  • 模型构建

  • 可视化预测

  • 微调卷积网络

  • 训练和评估

  • 使用 TensorBoard 报告学习矩阵

  • 模型测试

  • 保存训练好的模型工件

  • 本地部署

  • 部署到云端(Streamlit Cloud)

注意:为了跟进练习,我建议你使用 Google Colab 重现这项工作,尤其是当你的计算机上没有本地 GPU 或显卡时。深度学习的一个挑战是计算环境,但感谢提供免费 GPU 的 Google Colab,我将向你展示如何使用它。

第 1 步:设置环境

话不多说,让我们开始写一些代码吧。

我们将使用 Google Colab 作为开发环境。现在你可以轻松地在线搜索 Google Colaboratory 或访问:https://colab.research.google.com/。它具有与 jupyter 相同的界面,因此你只需要一个 google 帐户就可以轻松掌握。主页如下所示:

2c2296e6a2ac333f45ea61b382fa3885.png

现在让我们通过将免费 GPU 添加到运行时来使用它。单击“Runtime”选项卡并选择“Change runtime type”,如下所示。

b0646b5adec2f9a5a7b81a381dbc6e8a.png

在“Hardware accelerator”下,单击下拉菜单并选择“GPU”,如下所示。

7bfbf2db88a011de655d54e23deb57ec.png

现在你已连接 GPU。我们现在可以继续编码了。

在我们开始导入依赖项之前,我们需要做最后一件事情,即使用下面的命令设置matplotlib以便为输出或图形组织提供帮助。

#magic function for matplotlib graphs. Graphs will be included in notebook next to the code. 
%matplotlib inline

第 2 步:导入依赖

#importing dependencies
from __future__ import print_function, division

from datetime import datetime
from PIL import Image
import torch
import torch.nn as nn
import torch.optim as optim
from torch.optim import lr_scheduler
import numpy as np
import torchvision
from torchvision import datasets, models, transforms
from torchvision.datasets import ImageFolder
import torchvision.transforms as T
from torchvision.transforms import ToTensor
import matplotlib.pyplot as plt
import time
import os
import copy

plt.ion()   # interactive mode

第 3 步:加载数据集

你可以在本文末尾或从本文随附的公共 GitHub 存储库中找到指向数据集的链接。下载数据集后,你可以将其上传到你的谷歌驱动器以方便使用。我已经有了数据集,只需加载驱动程序并运行单元格。

from google.colab import drive
drive.mount
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值