0

0

基于单字符纹理特征的打印文档溯源认证

P粉084495128

P粉084495128

发布时间:2025-07-17 17:24:44

|

909人浏览过

|

来源于php中文网

原创

该项目为飞桨黑客松武汉科技大学会场的“基于单字符纹理特征的打印文档溯源认证”。背景是打印文档仍广泛使用,存在篡改问题,可通过扫描转化为图像识别问题溯源。数据集经处理划分,用ResNet50模型,经数据增强、加载、训练(250轮等参数),单图和批量预测显示测试集准确率达0.948458221462859。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

基于单字符纹理特征的打印文档溯源认证 - php中文网

【PaddleX - 飞桨黑客松-武汉科技大学会场 】「基于单字符纹理特征的打印文档溯源认证 (¬‿¬)」

一、项目背景

       在过去几十年里,数字文档得到人们的大量使用。然而,安全问题、过渡成本等限制了打印文档到数字文档的完全过渡。这些限制使得许多财务和行政交易中继续使用印刷文件,如协议、契约、商业通信和记录保存。因此,数字文件和印刷文件得以共存。根据lian合国粮食及农业组织提供的2018年全球林产品事实和数据,2018年的印刷和书写纸的产量为9600万吨,自2014年以来一直保持稳定。大量的印刷文件需要快速和准确的数字系统来预测它们的起源和完整性。

        随着印刷设备的大量普及,一种新的违法行为也出现了:使用打印机进行篡改文档。以前不存在的合同条款,儿童色情和nue待动物的照片、威胁生命的信件、非法信件、恐怖主义阴谋、假货币等都随之而来,对社会造成了危害。

       由于印刷文档的特性,其可以被进行溯源调查。用于打印文档的打印机不仅可以帮助刑事调查,还可以保障在法律、行政和其他官方记录中的纸张的安全使用。近年来,使用数字技术对印刷文件的来源归因变得非常重要。传统的方法使用化学或显微镜技术,耗时,昂贵,甚至可能会损坏待测纸张,需要专家审查员。然而,如果对打印文档进行扫描工作,将其转化为涉及特征提取和分类的经典图像识别问题,那么在数字时代里,人们进行源打印机识溯源只需要一个扫描仪和计算机。

二、数据集简介

1. 数据集查看

In [ ]
# 数据集展示import matplotlib.pyplot as pltfrom PIL import Imagefrom random import shuffle
%matplotlib inline
path='work/real_dataset/train_list.txt'sample=dict()
i=0label_set=set()with open(path,'r') as f:
    line=f.readlines()
    shuffle(line)    for l in line: 
        fpath, label = l.strip().split()[0],l.strip().split()[1]        # print(fpath,label)
        if label not in label_set:
            sample[fpath]=label
            label_set.add(label)
            i+=1
            if i >=10:                breakplt.figure(figsize=(10,10))
i=0for k,v in sample.items():
    sample[k]=int(v)for k,v in sample.items():
    plt.subplot(4,3,i+1)
    i+=1
    plt.imshow(Image.open(os.path.join('work/real_dataset',k)))
    plt.title(v)
    plt.axis('off')

基于单字符纹理特征的打印文档溯源认证 - php中文网

图片显示,字母间的主要差异是在字母的边界和内部的一些区域(具有低梯度)。该图像通过卷积梯度纹理过滤器[1]获得。

2. 数据集加载

2.1 解压数据集

In [1]
!unzip -oq data/data122275/real_dataset.zip -d work/

2.2 数据集划分

In [ ]
# 验证集占0.2,测试集占0.1!paddlex --split_dataset --format ImageNet --dataset_dir work/real_dataset --val_value 0.2 --test_value 0.1

三、模型选择与开发

1. ResNet50简介

ResNet50 Backbone部分网络结构

基于单字符纹理特征的打印文档溯源认证 - php中文网

随着网络深度增加,会出现一种退化问题,也就是当网络变得越来越深的时候,训练的准确率会趋于平缓,但是训练误差会变大,这明显不是过拟合造成的,因为过拟合是指网络的训练误差会不断变小,但是测试误差会变大。为了解决这种退化现象,ResNet被提出。

可赞AI
可赞AI

文字一秒可视化,免费AI办公神器

下载

2. 安装依赖

In [ ]
!pip install paddlex==1.3.11
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting paddlex==1.3.11
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/d6/a2/07435f4aa1e51fe22bdf06c95d03bf1b78b7bc6625adbb51e35dc0804cc7/paddlex-1.3.11-py3-none-any.whl (516kB)
     |████████████████████████████████| 522kB 5.6MB/s eta 0:00:01
Requirement already satisfied: psutil in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.11) (5.7.2)
Requirement already satisfied: shapely>=1.7.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.11) (1.8.0)
Requirement already satisfied: sklearn in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.11) (0.0)
Requirement already satisfied: pycocotools; platform_system != "Windows" in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.11) (2.0.3)
Requirement already satisfied: visualdl>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.11) (2.2.2)
Requirement already satisfied: opencv-python in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.11) (4.1.1.26)
Collecting xlwt (from paddlex==1.3.11)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/44/48/def306413b25c3d01753603b1a222a011b8621aed27cd7f89cbc27e6b0f4/xlwt-1.3.0-py2.py3-none-any.whl (99kB)
     |████████████████████████████████| 102kB 33.5MB/s ta 0:00:01
Requirement already satisfied: colorama in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.11) (0.4.4)
Requirement already satisfied: pyyaml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.11) (5.1.2)
Collecting paddleslim==1.1.1 (from paddlex==1.3.11)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/d1/77/e257227bed9a70ff0d35a4a3c4e70ac2d2362c803834c4c52018f7c4b762/paddleslim-1.1.1-py2.py3-none-any.whl (145kB)
     |████████████████████████████████| 153kB 49.6MB/s eta 0:00:01
Requirement already satisfied: flask-cors in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.11) (3.0.8)
Requirement already satisfied: tqdm in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.11) (4.27.0)
Collecting paddlehub==2.1.0 (from paddlex==1.3.11)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/7a/29/3bd0ca43c787181e9c22fe44b944b64d7fcb14ce66d3bf4602d9ad2ac76c/paddlehub-2.1.0-py3-none-any.whl (211kB)
     |████████████████████████████████| 215kB 8.3MB/s eta 0:00:01
Requirement already satisfied: scikit-learn in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from sklearn->paddlex==1.3.11) (0.23.2)
Requirement already satisfied: cython>=0.27.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pycocotools; platform_system != "Windows"->paddlex==1.3.11) (0.29)
Requirement already satisfied: matplotlib>=2.1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pycocotools; platform_system != "Windows"->paddlex==1.3.11) (2.2.3)
Requirement already satisfied: setuptools>=18.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pycocotools; platform_system != "Windows"->paddlex==1.3.11) (41.4.0)
Requirement already satisfied: numpy in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (1.16.4)
Requirement already satisfied: flask>=1.1.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (1.1.1)
Requirement already satisfied: shellcheck-py in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (0.7.1.1)
Requirement already satisfied: Pillow>=7.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (7.1.2)
Requirement already satisfied: six>=1.14.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (1.15.0)
Requirement already satisfied: bce-python-sdk in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (0.8.53)
Requirement already satisfied: flake8>=3.7.9 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (3.8.2)
Requirement already satisfied: Flask-Babel>=1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (1.0.0)
Requirement already satisfied: protobuf>=3.11.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (3.14.0)
Requirement already satisfied: pandas in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (1.1.5)
Requirement already satisfied: pre-commit in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (1.21.0)
Requirement already satisfied: requests in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.11) (2.22.0)
Requirement already satisfied: pyzmq in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddleslim==1.1.1->paddlex==1.3.11) (18.1.1)
Requirement already satisfied: filelock in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.11) (3.0.12)
Collecting paddle2onnx>=0.5.1 (from paddlehub==2.1.0->paddlex==1.3.11)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/db/72/69812b9f56028f6ce46cf4d11540d40d75474b3ac861fcbf439b92877add/paddle2onnx-0.9.0-py3-none-any.whl (84kB)
     |████████████████████████████████| 92kB 7.5MB/s eta 0:00:011
Requirement already satisfied: packaging in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.11) (20.9)
Requirement already satisfied: rarfile in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.11) (3.1)
Requirement already satisfied: gitpython in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.11) (3.1.14)
Requirement already satisfied: easydict in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.11) (1.9)
Requirement already satisfied: gunicorn>=19.10.0; sys_platform != "win32" in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.11) (20.0.4)
Requirement already satisfied: paddlenlp>=2.0.0rc5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.11) (2.1.1)
Requirement already satisfied: colorlog in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.11) (4.1.0)
Requirement already satisfied: scipy>=0.19.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn->sklearn->paddlex==1.3.11) (1.3.0)
Requirement already satisfied: joblib>=0.11 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn->sklearn->paddlex==1.3.11) (0.14.1)
Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn->sklearn->paddlex==1.3.11) (3.0.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools; platform_system != "Windows"->paddlex==1.3.11) (1.1.0)
Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools; platform_system != "Windows"->paddlex==1.3.11) (2.8.0)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools; platform_system != "Windows"->paddlex==1.3.11) (2.4.2)
Requirement already satisfied: pytz in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools; platform_system != "Windows"->paddlex==1.3.11) (2019.3)
Requirement already satisfied: cycler>=0.10 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools; platform_system != "Windows"->paddlex==1.3.11) (0.10.0)
Requirement already satisfied: Jinja2>=2.10.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl>=2.0.0->paddlex==1.3.11) (2.11.0)
Requirement already satisfied: itsdangerous>=0.24 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl>=2.0.0->paddlex==1.3.11) (1.1.0)
Requirement already satisfied: Werkzeug>=0.15 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl>=2.0.0->paddlex==1.3.11) (0.16.0)
Requirement already satisfied: click>=5.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl>=2.0.0->paddlex==1.3.11) (7.0)
Requirement already satisfied: pycryptodome>=3.8.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl>=2.0.0->paddlex==1.3.11) (3.9.9)
Requirement already satisfied: future>=0.6.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl>=2.0.0->paddlex==1.3.11) (0.18.0)
Requirement already satisfied: pycodestyle<2.7.0,>=2.6.0a1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl>=2.0.0->paddlex==1.3.11) (2.6.0)
Requirement already satisfied: importlib-metadata; python_version < "3.8" in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl>=2.0.0->paddlex==1.3.11) (0.23)
Requirement already satisfied: pyflakes<2.3.0,>=2.2.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl>=2.0.0->paddlex==1.3.11) (2.2.0)
Requirement already satisfied: mccabe<0.7.0,>=0.6.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl>=2.0.0->paddlex==1.3.11) (0.6.1)
Requirement already satisfied: Babel>=2.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Flask-Babel>=1.0.0->visualdl>=2.0.0->paddlex==1.3.11) (2.8.0)
Requirement already satisfied: cfgv>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.11) (2.0.1)
Requirement already satisfied: nodeenv>=0.11.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.11) (1.3.4)
Requirement already satisfied: toml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.11) (0.10.0)
Requirement already satisfied: aspy.yaml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.11) (1.3.0)
Requirement already satisfied: virtualenv>=15.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.11) (16.7.9)
Requirement already satisfied: identify>=1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.11) (1.4.10)
Requirement already satisfied: idna<2.9,>=2.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlex==1.3.11) (2.8)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlex==1.3.11) (1.25.6)
Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlex==1.3.11) (2019.9.11)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlex==1.3.11) (3.0.4)
Collecting onnx<=1.9.0 (from paddle2onnx>=0.5.1->paddlehub==2.1.0->paddlex==1.3.11)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/3f/9b/54c950d3256e27f970a83cd0504efb183a24312702deed0179453316dbd0/onnx-1.9.0-cp37-cp37m-manylinux2010_x86_64.whl (12.2MB)
     |████████████████████████████████| 12.2MB 9.8MB/s eta 0:00:01
Requirement already satisfied: gitdb<5,>=4.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from gitpython->paddlehub==2.1.0->paddlex==1.3.11) (4.0.5)
Requirement already satisfied: h5py in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.11) (2.9.0)
Requirement already satisfied: jieba in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.11) (0.42.1)
Requirement already satisfied: multiprocess in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.11) (0.70.11.1)
Requirement already satisfied: seqeval in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.11) (1.2.2)
Requirement already satisfied: paddlefsl==1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.11) (1.0.0)
Requirement already satisfied: MarkupSafe>=0.23 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Jinja2>=2.10.1->flask>=1.1.1->visualdl>=2.0.0->paddlex==1.3.11) (1.1.1)
Requirement already satisfied: zipp>=0.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from importlib-metadata; python_version < "3.8"->flake8>=3.7.9->visualdl>=2.0.0->paddlex==1.3.11) (3.6.0)
Requirement already satisfied: typing-extensions>=3.6.2.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from onnx<=1.9.0->paddle2onnx>=0.5.1->paddlehub==2.1.0->paddlex==1.3.11) (3.10.0.2)
Requirement already satisfied: smmap<4,>=3.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from gitdb<5,>=4.0.1->gitpython->paddlehub==2.1.0->paddlex==1.3.11) (3.0.5)
Requirement already satisfied: dill>=0.3.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from multiprocess->paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.11) (0.3.3)ERROR: onnx 1.9.0 has requirement numpy>=1.16.6, but you'll have numpy 1.16.4 which is incompatible.Installing collected packages: xlwt, paddleslim, onnx, paddle2onnx, paddlehub, paddlex
  Found existing installation: paddleslim 2.2.1
    Uninstalling paddleslim-2.2.1:
      Successfully uninstalled paddleslim-2.2.1
  Found existing installation: paddlehub 2.0.4
    Uninstalling paddlehub-2.0.4:
      Successfully uninstalled paddlehub-2.0.4
  Found existing installation: paddlex 2.1.0
    Uninstalling paddlex-2.1.0:
      Successfully uninstalled paddlex-2.1.0
Successfully installed onnx-1.9.0 paddle2onnx-0.9.0 paddlehub-2.1.0 paddleslim-1.1.1 paddlex-1.3.11 xlwt-1.3.0

3. 模型训练

train.py主要代码

  • 数据增强部分
train_transforms = transforms.Compose([
    transforms.RandomCrop(crop_size=224, lower_scale=0.08, lower_ratio=3. / 4, upper_ratio=4. / 3),  # 随机剪裁
    transforms.RandomHorizontalFlip(prob=0.5),# 随机水平翻转
    transforms.RandomVerticalFlip(prob=0.5),# 随机垂直翻转
    transforms.RandomRotate(rotate_range=30, prob=0.5), # 随机旋转
    transforms.RandomDistort(brightness_range=0.9, brightness_prob=0.5, contrast_range=0.9, contrast_prob=0.5, 
                saturation_range=0.9, saturation_prob=0.5, hue_range=18, hue_prob=0.5), # 以一定的概率对图像进行随机像素内容变换
    transforms.Normalize() # 对图像进行标准化
])

eval_transforms = transforms.Compose([
    transforms.ResizeByShort(short_size=256),
    transforms.CenterCrop(crop_size=224), 
    transforms.Normalize()
])
  • 装载数据集
train_dataset=pdx.datasets.ImageNet(    data_dir='work/real_dataset', 
    file_list='work/real_dataset/train_list.txt',    label_list='work/real_dataset/labels.txt',    transforms=train_transforms,    shuffle=True)

eval_dataset = pdx.datasets.ImageNet(    data_dir='work/real_dataset',    file_list='work/real_dataset/val_list.txt',    label_list='work/real_dataset/labels.txt',    transforms=eval_transforms
)

test_dataset = pdx.datasets.ImageNet(    data_dir='work/real_dataset',    file_list='work/real_dataset/test_list.txt',    label_list='work/real_dataset/labels.txt',    transforms=eval_transforms
)
  • 模型加载
model.train(num_epochs=250,    train_dataset=train_dataset,    train_batch_size=128, 
    lr_decay_epochs = [133,170,210], # 在133,170,210轮学习率衰减    eval_dataset=eval_dataset,    learning_rate=0.0025,
    warmup_steps =9000, # 优化器的warmup步数,学习率将在设定的步数内,线性增长至设定的learning_rate    save_interval_epochs=20,    log_interval_steps=100,    save_dir='output/ResNet50',
    #resume_checkpoint='output/ResNet50/epoch_150')
In [ ]
# 进行训练!python train.py
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/setuptools/depends.py:2: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp
2021-12-19 00:46:53 [INFO]	Starting to read file list from dataset...
2021-12-19 00:46:54 [INFO]	172023 samples in file work/real_dataset/train_list.txt
2021-12-19 00:46:54 [INFO]	Starting to read file list from dataset...
2021-12-19 00:46:55 [INFO]	49142 samples in file work/real_dataset/val_list.txt
2021-12-19 00:46:55 [INFO]	Starting to read file list from dataset...
2021-12-19 00:46:55 [INFO]	24570 samples in file work/real_dataset/test_list.txt
2021-12-19 00:46:57 [INFO]	Downloading DarkNet53_ImageNet1k_pretrained.tar from https://paddle-imagenet-models-name.bj.bcebos.com/DarkNet53_ImageNet1k_pretrained.tar
100%|████████████████████████████████| 162940/162940 [00:03<00:00, 53070.16KB/s]
2021-12-19 00:47:00 [INFO]	Decompressing output/DarkNet53/pretrain/DarkNet53_ImageNet1k_pretrained.tar...2021-12-19 00:47:02 [INFO]	Load pretrain weights from output/DarkNet53/pretrain/DarkNet53_ImageNet1k_pretrained.2021-12-19 00:47:02 [WARNING]	[SKIP] Shape of pretrained weight output/DarkNet53/pretrain/DarkNet53_ImageNet1k_pretrained/fc_weights doesn't match.(Pretrained: (1024, 1000), Actual: (1024, 10))2021-12-19 00:47:02 [WARNING]	[SKIP] Shape of pretrained weight output/DarkNet53/pretrain/DarkNet53_ImageNet1k_pretrained/fc_offset doesn't match.(Pretrained: (1000,), Actual: (10,))2021-12-19 00:47:02 [INFO]	There are 260 varaibles in output/DarkNet53/pretrain/DarkNet53_ImageNet1k_pretrained are loaded.

4.模型测试

4.1 单图预测

In [ ]
### 单图像预测import paddlex as pdx
test_jpg = 'work/real_dataset/B4070/class10110.png'model = pdx.load_model('output/ResNet50_vd_ssld/best_model')
result = model.predict(test_jpg)print("Predict Result: ", result)

预测字符

基于单字符纹理特征的打印文档溯源认证 - php中文网

真实标签ID:0
预测标签ID:0

4.2 批量预测

In [ ]
path='work/real_dataset'txt=path+'/'+'test_list.txt'file=open(txt)
line=file.readline()
right=0all=0while line:
    png=line.strip().split()[0]
    ans=line.strip().split()[1]
    png_path=path+'/'+png
    result = model.predict(png_path)    all+=1
    if ans==str(result[0]['category_id']):
        right+=1
    line=file.readline()
file.close()print(right/all)
代码解释

测试集批量预测准确率:0.948458221462859

相关文章

全能打印神器
全能打印神器

全能打印神器是一款非常好用的打印软件,可以在电脑、手机、平板电脑等设备上使用。支持无线打印和云打印,操作非常简单,使用起来也非常方便,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

28

2026.01.26

edge浏览器怎样设置主页 edge浏览器自定义设置教程
edge浏览器怎样设置主页 edge浏览器自定义设置教程

在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

8

2026.01.26

苹果官方查询网站 苹果手机正品激活查询入口
苹果官方查询网站 苹果手机正品激活查询入口

苹果官方查询网站主要通过 checkcoverage.apple.com/cn/zh/ 进行,可用于查询序列号(SN)对应的保修状态、激活日期及技术支持服务。此外,查找丢失设备请使用 iCloud.com/find,购买信息与物流可访问 Apple (中国大陆) 订单状态页面。

31

2026.01.26

npd人格什么意思 npd人格有什么特征
npd人格什么意思 npd人格有什么特征

NPD(Narcissistic Personality Disorder)即自恋型人格障碍,是一种心理健康问题,特点是极度夸大自我重要性、需要过度赞美与关注,同时极度缺乏共情能力,背后常掩藏着低自尊和不安全感,影响人际关系、工作和生活,通常在青少年时期开始显现,需由专业人士诊断。

3

2026.01.26

windows安全中心怎么关闭 windows安全中心怎么执行操作
windows安全中心怎么关闭 windows安全中心怎么执行操作

关闭Windows安全中心(Windows Defender)可通过系统设置暂时关闭,或使用组策略/注册表永久关闭。最简单的方法是:进入设置 > 隐私和安全性 > Windows安全中心 > 病毒和威胁防护 > 管理设置,将实时保护等选项关闭。

5

2026.01.26

2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】
2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】

铁路12306提供起售时间查询、起售提醒、购票预填、候补购票及误购限时免费退票五项服务,并强调官方渠道唯一性与信息安全。

35

2026.01.26

个人所得税税率表2026 个人所得税率最新税率表
个人所得税税率表2026 个人所得税率最新税率表

以工资薪金所得为例,应纳税额 = 应纳税所得额 × 税率 - 速算扣除数。应纳税所得额 = 月度收入 - 5000 元 - 专项扣除 - 专项附加扣除 - 依法确定的其他扣除。假设某员工月工资 10000 元,专项扣除 1000 元,专项附加扣除 2000 元,当月应纳税所得额为 10000 - 5000 - 1000 - 2000 = 2000 元,对应税率为 3%,速算扣除数为 0,则当月应纳税额为 2000×3% = 60 元。

12

2026.01.26

oppo云服务官网登录入口 oppo云服务登录手机版
oppo云服务官网登录入口 oppo云服务登录手机版

oppo云服务https://cloud.oppo.com/可以在云端安全存储您的照片、视频、联系人、便签等重要数据。当您的手机数据意外丢失或者需要更换手机时,可以随时将这些存储在云端的数据快速恢复到手机中。

40

2026.01.26

抖币充值官方网站 抖币性价比充值链接地址
抖币充值官方网站 抖币性价比充值链接地址

网页端充值步骤:打开浏览器,输入https://www.douyin.com,登录账号;点击右上角头像,选择“钱包”;进入“充值中心”,操作和APP端一致。注意:切勿通过第三方链接、二维码充值,谨防受骗

7

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.9万人学习

Git 教程
Git 教程

共21课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号