基于Pytorch的身份证及其他证件检测矫正模型应用

前言

        在做身份证和其他证件识别的时候,图片基本都不是摆正的状态,此时在进行OCR文字识别的提取文字信息的时候会出现很多误差,如何将证件摆正,再进行OCR文字识别就可以大大提高准确率。

准备工作 

1、Python环境,在Python官网下载安装

2、项目代码,下载地址在文章最后

开始

以上准备工作完成后,就可以开始使用

1、下载依赖包
pip install pyaml
pip install torch
pip install opencv-python
2、编写预测代码,cpu中运行
import cv2

from core.infer import CardDetectionCorrection

card_detection_correction = CardDetectionCorrection(
    model_path="./models/card_correction/model.pt",
    config_path="./models/card_correction/config.json",
    device="cpu"
)
img = cv2.imread("images/image3.jpg")
results = card_detection_correction(img)


for i, result in enumerate(results):
    output_img = result["output_img"]
    cv2.imwrite('output/image_' + str(i) + '.jpg', output_img)
3、gpu中运行

默认使用cpu运行,如果需要在gpu中运行,首先要配置GPU环境,可通过这篇文章进行配置【Ubuntu系统配置深度学习环境之nvidia显卡驱动和cuda安装】。

安装完成后,初始化方法改成:

card_detection_correction = CardDetectionCorrection(
    model_path="./models/card_correction/model.pt",
    config_path="./models/card_correction/config.json",
    device="gpu"
)
4、运行结果展示

输入图片:

输出:

实际运行效果非常好

  • 支持任意角度、多证等混贴场景,同时检测输入图像任意角度的多个子图区域
  • 基于真实数据训练,满足身份证等卡证票据的检测矫正需求
  • 支持四方向判断,准确率高达 99%

完毕!!!

模型及代码下载:基于Pytorch的身份证及其他证件检测矫正模型应用代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/324562.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】CentOS stream 上安装 Docker 环境详细指南

文章目录 1. 定义2. 优势3. 安装1)Linux 上安装(强烈推荐)2)Windows 和 MAC 上安装 4. 验证1)查看版本2)运行 Hello World 总结 Docker 是一种轻量级的容器化技术,提供了一种在不同环境中快速、…

Android Framework | AOSP源码下载及编译指南(基于Android13)

Android Framework | AOSP源码下载及编译指南(基于Android13) 引言 AOSP(Android Open Source Project)是Android操作系统的开源项目,通过下载和编译AOSP源码,您可以获得原始的Android系统,并进行定制和开发。本教程…

压缩编码之不同缩放参数对重建图像质量的影响的python实现——JPEG变换编码不同压缩率的模拟

原理 JPEG(Joint Photographic Experts Group)是一种常用的图像压缩标准,它通过采用离散余弦变换(DCT)和量化来实现图像的压缩。 离散余弦变换(DCT): JPEG首先将图像分割成8x8的块…

【Unity实战100例】Unity对Ini格式的配置文件管理和读写

目录 一.编写ini格式配置文件 二.读取解析ini文件 三.调用属性 INI 文件以文本形式存储,易于阅读和编辑。这种人可读的格式使得调整配置参数变得更加直观,不需要专门的工具。 INI 文件是一种轻量级的配置文件格式,不需要复杂的解析器或库。它的结构相对简单,适用于小到

LLM论文:ALCE (Enabling Large Language Models to Generate Text with Citations)

这是一篇RAG领域的文章,原文在这:https://aclanthology.org/2023.emnlp-main.398.pdf 时间[Submitted on 24 May 2023 (v1), last revised 31 Oct 2023 (this version, v2)]背景LLM在信息搜索、生成带引用的文本时存在幻觉问题,即事实准确性…

03 顺序表

目录 线性表顺序表练习 线性表(Linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串。。。 线性表在逻辑上时线性结构,是连续的一条直线。但在物理结…

前端框架前置课Node.js学习(1) fs,path,模块化,CommonJS标准,ECMAScript标准,包

目录 什么是Node.js 定义 作用: 什么是前端工程化 Node.js为何能执行Js fs模块-读写文件 模块 语法: 1.加载fs模块对象 2.写入文件内容 3.读取文件内容 Path模块-路径处理 为什么要使用path模块 语法 URL中的端口号 http模块-创建Web服务 需求 步骤: 案例:浏…

Detection-friendly dehazing: object detection in real-world hazy scenes

Detection-friendly dehazing: object detection in real-world hazy scenes 摘要 提出了一种联合架构BAD-Net,将去雾模块和检测模块连接成一个端到端的方法。另外,设计了了两个分支结构,用注意力融合模块来充分结合有雾和去雾特征&#xf…

【python】11.文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于文件系统的知识,但是这里我们并不浪费笔墨介绍这个概念,请大…

Python展示 RGB立方体的二维切面视图

代码实现 import numpy as np import matplotlib.pyplot as plt# 生成 24-bit 全彩 RGB 立方体 def generate_rgb_cube():# 初始化一个 256x256x256 的三维数组rgb_cube np.zeros((256, 256, 256, 3), dtypenp.uint8)# 填充立方体for r in range(256):for g in range(256):fo…

kubectl与 jq的另外一些用法

背景: 在日常运维工作中,我们需要管理和操作大量的配置文件,这在使用 Kubernetes 集群管理应用时尤为常见。Kubernetes 提供了一个名为 ConfigMap 的资源对象,它用于存储应用的配置信息。有时,我们需要查找哪些 Confi…

【WPF.NET开发】OpenType字体

本文内容 OpenType 字体格式变量大写字母连字花体备用项数字样式版式类 本主题概述了 Windows Presentation Foundation (WPF) 中 OpenType 字体技术的一些主要功能。 1、OpenType 字体格式 OpenType 字体格式是 TrueType 字体格式的扩展,增加了对 PostScript 字…

Linux-ARM裸机(十一)-UART串口通信

无论单片机开发还是嵌入式 Linux 开发,串口都是最常用到的外设。可通过串口将开发板与电脑相连,然后在电脑上通过串口调试助手来调试程序。还有很多的模块,比如蓝牙、GPS、 GPRS 等都使用的串口来与主控进行通信的,在嵌入式 Linux…

java如何修改windows计算机本地日期和时间?

本文教程,主要介绍,在java中如何修改windows计算机本地日期和时间。 目录 一、程序代码 二、运行结果 一、程序代码 package com;import java.io.IOException;/**** Roc-xb*/ public class ChangeSystemDate {public static void main(String[] args)…

compose 实验

cd /opt mkdir compose_nginx cd compose_nginx mkdir nginx cd nginx/ 此时顺便将nginx安装包拖进来 vim Dockerfile mkdir /opt/compose_nginx/wwwroot echo "<h1>this is test web</h1>" > /opt/compose_nginx/wwwroot/index.html docker netw…

【Kotlin】协程的字节码原理

前言 协程是Koltin语言最重要的特性之一&#xff0c;也是最难理解的特性。网上关于kotlin协程的描述也是五花八门&#xff0c;有人说它是轻量级线程&#xff0c;有人说它是无阻塞式挂起&#xff0c;有人说它是一个异步框架等等&#xff0c;众说纷芸。甚至还有人出了书籍专门介…

HTML--CSS--浮动布局及定位布局

正常文档布局 块元素独占一行 行内元素在有多个的时候&#xff0c;就是从左到右排在一行 块元素包括&#xff1a;div,p,hr 行内元素&#xff1a;span,i,img 浮动布局 float 属性&#xff1a; left 向左 right 向右 作用我目前看起来就是浮动元素的宽度是由内容决定的&#x…

MySQL面试题 | 10.精选MySQL面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

LLM之幻觉(二):大语言模型LLM幻觉缓减技术综述

LLM幻觉缓减技术分为两大主流&#xff0c;梯度方法和非梯度方法。梯度方法是指对基本LLM进行微调&#xff1b;而非梯度方法主要是在推理时使用Prompt工程技术。LLM幻觉缓减技术&#xff0c;如下图所示&#xff1a; LLM幻觉缓减技术值得注意的是&#xff1a; 检索增强生成&…

pytorch集智-5手写数字识别器-卷积神经网络

1 简介 简称&#xff1a;CNN&#xff0c;convolutional neural network 应用场景&#xff1a;图像识别与分类&#xff08;CNN&#xff09;&#xff0c;看图说话&#xff08;CNNRNN&#xff09;等 优越性&#xff1a;和多层感知机相比&#xff0c;cnn可以识别独特的模式&…