什么是计算机视觉?
计算机视觉是人工智能的一个领域,它训练计算机解释和理解视觉世界。使用来自相机和视频的数字图像以及深度学习模型,机器可以准确地识别和分类物体——然后对它们“看到”的东西做出反应。
计算机视觉任务包括获取、处理、分析和理解数字图像的方法
图像处理中的计算机视觉主要专注于处理原始输入图像以增强它们使其做好完成其他任务的准备。计算机视觉专注于从输入图像或视频中提取信息,以正确理解它们,从而像人脑一样预测视觉输入。
目的
该项目的目的是使用计算机视觉检测 PAN 卡的篡改/欺诈。这个项目将帮助不同的组织检测他们的员工或客户或任何人提供给他们的 Id,即 PAN 卡是否是原件。
对于这个项目,我们将计算 PAN 卡原件和用户上传的 PAN 卡的结构相似度——这是这个项目的灵魂,我们将在本博客后面深入讨论。
同样,在这个项目中,借助涉及计算机视觉技术的图像处理,我们将检测 PAN 卡的给定图像是原件还是篡改(假)PAN 卡。
本项目涉及的步骤如下
导入必要的库
从网站上爬取被篡改的pan卡原件
将篡改图像的形状缩小为原始图像
读取原始图像和篡改图像
将图像转换为灰度图像
在两幅图像之间应用结构相似性指数(SSIM)技术
计算阈值和轮廓
体验图像的实时轮廓和阈值
导入必要的包
from skimage.metrics import structural_similarity
import imutils
import cv2
from PIL import Image
import requests
Skimage: Scikit-image,或ski-mage,是一个开源的Python 包,在这个项目中,大部分图像处理技术将通过scikit-image 来使用
imutils: Imutils 是一系列方便的函数,用于使OpenCV 中的平移、旋转、调整大小和显示图像等基本图像处理功能变得更容易。
cv2: OpenCV (开源计算机视觉库)是一个编程函数库。在这个项目中,图像的读取和写入是通过 cv2 完成的。
PIL: PIL (Python 图像库)是 Python 编程语言的免费开源附加库,增加了对打开、操作和保存许多不同图像文件格式的支持。
创建用于存储图像的文件夹和子文件夹,你可以手动创建它(可选)。
!mkdir pan_card_tampering
!mkdir pan_card_tampering/image
从不同来源爬取PAN 卡原件和篡改的 PAN 卡
original = Image.open(requests.get('https://www.thestatesman.com/wp-content/uploads/2019/07/pan-card.jpg', stream=True).raw)
tampered = Image.open(requests.get('https://assets1.cleartax-cdn.com/s/img/20170526124335/Pan4.png', stream=True).raw)
在上面的代码片段中,我们使用requests库对来自不同来源的图像进行