2021年人工神经网络第四次作业-第五题:危险品识别

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年人工神经网络第四次作业-第五题:危险品识别相关的知识,希望对你有一定的参考价值。

简 介: 通过对于物品X射线数据集合的整理,挑选出15类体积比较大的物品,训练LeNet网络进行识别。

关键词 X射线危险品识别LeNetPaddle

作业准备
文章目录
作业要求
数据库准备
测试数据库
构建网络
构建数据加载函数
训练数据加载
构建LeNet网络
构建训练过程
存储
网络训练
基本训练过程
作业总结
附录
数据库验证程序
LeNet网络
与训练程序

 

§01 业准备


1.1 作业要求

  由 2021年人工神经网络第四次作业 对于第五题的要求:

  ① 构造合适的神经网络,对于数据库中物品X射线图片进行识别分类。可以根据物品不同的大小,在训练网络之前对于图片进行预处理。

  ② 讨论实验结果中,造成识别错误的因素包括哪些。

  ③ 探讨如何利用图频的序列信息完成物品的识别的方法。根据自己的时间和经验,选做是否可以通过LSTM网络来利用图频的不同角度序列信息提高识别的精度。

  ④ 可以根据自己的时间和经验,选做一些目标定位的神经网络:比如YOLO3,SSD等来进行实验。

1.2 数据库准备

1.2.1 原始数据文件下载

  从网络学堂下载第四次作业的附加数据文件“ANN-DATASET”下载到自己电脑本地目录。将ZIP文件加压缩之后,形成如下数据目录:

├─CIFAR-10
├─FORBIDDEN
├─FruitAnimal
│  ├─动物
│  │  └─动物
│  └─水果
│      └─水果
├─MNIST
└─ROTATEDIGIT

  在FORBIDDEN 子目录中存在如下三个MATLAT数据文件。

    xraydata-120-100.mat
    xraydata-240-200.mat
    xraydata-96-80.mat

  这三个数据文件承载的都是相同的常见物品的X射线图片,只是相应的尺寸不同。在文件名称后面的两个数字表示这些数据图片的尺寸分别为:(120,100)、(240,200)、(96,80)。下面介绍对于xraydata-96-80.mat的操作,对于另外两个数据文件操作是相同的。

1.2.2 Studio中加载数据文件

  在AI Studio的 BML CodeLab环境下,领用界面左边管理界面,通过上载文件将xraydata-96-80.mat加载到工程的主目录下。

  注意,只有文件存储在项目主目录(/home/aistudio)下,下次启动的时候,该文件还是存在的。如果将文件存储在 data,work中,这两个目录都是临时目录,下次启动之后,其中的临时文件都会被清除。

▲ 图1.2.1 利用文件上载功能,将数据库文件上传到主目录下

1.2.3 安装mat4py

  根据 在Python中读取MATLAB的数据文件 介绍,通过mat4py 可以读取MATLAB的数据文件。在使用改软件包之前需要在当前的AI Studio中安装mat4py。

  在Notebook中执行下面的命令,安装mat4py软件包。

! pip install mat4py
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting mat4py
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/e8/56/41b3ffd7b5f3eb3056979e0dc37de184c6e5dacd1a353e5de42323e7d138/mat4py-0.5.0-py2.py3-none-any.whl
Installing collected packages: mat4py
Successfully installed mat4py-0.5.0

1.2.4 加载数据

  执行下面代码片段,将xraydata-96-80.mat加载到Notebook环境中。

import sys,os,math,time
import matplotlib.pyplot as plt
from numpy import *
from mat4py                  import loadmat

datazipfile = '/home/aistudio/xraydata-96-80.mat'
data = loadmat(datazipfile)
printf(data.keys())

dict_keys(['images', 'labels', 'labeldir', 'imagesize'])

  在读入的data中包括有四个数据表格:

  • images : 物品X射线数据,个数:6401,数据长度 7680=98×80
  • labels:物品标签,个数:6401
  • labeldir :标签对于的字符形态;
  • imagesize:图片大小:98×80

  将图片数据和标号分别加载到数据 imgdata,labels中。

imgdata = data['images']
labels  = data['labels']

print(type(imgdata), shape(imgdata))
print(type(labels), shape(labels))

<class 'list'> (6401, 7680)
<class 'list'> (6401,)

(1)图片种类

  在 labels 给出了图片的种类。

print(set(labels), "\\n\\n",  'Tatal Item :%d'%len(set(labels)))
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 600, 601, 602, 603, 604, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 500, 501, 502, 503, 504, 505, 506 

 Tatal Item :145

  总共有145个物品的图片。

1.2.5 显示数据图片

(1)随机挑选图片

  随机挑选6401个数据中24图片进行显示。

imgindex = list(range(len(labels)))
random.shuffle(imgindex)

PIC_ROW = 4
PIC_COL = 6

plt.figure(figsize=(12,8))

for j in range(PIC_ROW):
    for i in range(PIC_COL):
        id = i + j*PIC_COL
        img = array(imgdata[imgindex[id]]).reshape(80,96)
        plt.subplot(PIC_ROW, PIC_COL, id+1)
        plt.imshow(img, cmap=plt.cm.gray)

▲ 图1.2.2 数据库中的24个随机挑选图片

(2)显示特定种类物品

itemlabels = list(set(labels))
imgid = where(array(labels) == itemlabels[0])[0]

print(imgid)

PIC_ROW = 7
PIC_COL = 10
plt.figure(figsize=(12,8))
for j in range(PIC_ROW):
    for i in range(PIC_COL):
        id = i + j*PIC_COL
        if id >= len(imgid): break
        
        img = array(imgdata[imgid[

以上是关于2021年人工神经网络第四次作业-第五题:危险品识别的主要内容,如果未能解决你的问题,请参考以下文章

2021年人工神经网络第四次作业要求

2021年人工神经网络第四次作业-第四题:旋转的数字

2021年人工神经网络第四次作业要求:第七题

2021年人工神经网络第四次作业 - 第三题Cifar10

2021年人工神经网络第四次作业 - 第二题MNIST手写体识别

2021年人工神经网络第四次作业-第一题:LeNet对于水果与动物进行分类