作者:欧新宇(Xinyu OU)
当前版本:Release v1.0
最后更新:2023-01-01
1. 在计算机视觉应用开发中,第一步通常是做什么的?
A. 数据处理
B. 构建神经网络
C. 应用部署
D. 获取数据集
答案及解析:D
视觉是人类认识世界最重要的一种知觉之一,无论是人类视觉还是计算机视觉,数据采集都是视觉分析与处理的前提。
2. 现有一幅分辨率为640×480的RGB彩色图像,则该图像文件的字节大小为()。
A. 900KB
B. 921.6KB
C. 307.2KB
D. 300KB
答案及解析:A
在不特别说明的情况下,一般灰度图都是用8位二进制来表示其256个灰度级,即灰度图的一个像素需要8bits的存储空间。常见的彩色图像的位深包括8位、16位、24位和32位,其中RGB图像默认为24比特,因此,彩色图的一个像素一般需要24bits的存储空间。此外,在计算机中,每个字节为8比特,1KB=1024Byte。所以,对于一个640×480的RGB彩色图像,其文件大小为:(640×480)像素 × 24bit/像素 ÷ 8bit/字节 = 921,600Byte = 900KB。
3. 如果现在需要搭建一个可以识别多种物体的图像识别系统,那么下列选项中最有可能用来训练模型的数据集是()。
A. MNIST
B. MS-COCO
C. PASCAL VOC
D. ImageNet
答案及解析:D
4.(多选)开放图像数据集为我们带来了极大的便利,下列关于图像数据集说法错误的是()
A. CIFAR-10图像的识别难度比MNIST高很多
B. ImageNet数据集都是32×32的彩色图像
C. Cityscapes数据集里包含21841个类别
D. PascalVOC是目标检测数据集
答案及解析:BC
5. 下列关于MNIST数据集的描述正确的是()。
A. MNIST数据集的数据都是32×32的彩色图像
B. 每张图像都进行了边框标注
C. 该数据集全是关于手写字体的图像
D. 该数据集包含60000张训练图像和10000张测试图像
答案及解析:D
MNIST数据集是一个包含分辨率为32×32的灰度图数据集,它包含70000张手写数字图片,其中60000张训练集,10000张测试图像。由于该数据集是分类数据集,因此它使用的是类别标注而不是边框标注。
6. 以下数据集被认为是计算机视觉界的“Hello World”数据集的一个是()。
A. MNIST
B. CIFAR
C. Pascal VOC
D. ImageNet
答案及解析:A
MNIST数据集是最早的深度学习数据集,被认为是计算机视觉届的“Hello World”数据集。ImageNet是经典的分类数据集是这一轮深度学习兴起的标志性数据集。PascalVOC与ImageNet类似,也是这一轮深度学习兴起的标志性数据集,但它更聚焦于目标检测任务。
1.(多选)图像清洗是计算机视觉最重要的操作之一,以下哪一项属于数据清洗的目的()。
A. 消除图像中无关的信息
B. 删除数据集中无法访问的样本
C. 获取更美观的图像
D. 制作训练数据集
答案及解析:AB
数据清洗是指通过对样本中的噪声数据进行识别,实现对坏数据(数据集中无法访问的数据)和脏数据(与任务无关的数据)的删除或标记,或者对重复数据进行去除冗余操作等。选项A和B为正确答案。
2. 数据集信息字典 dataset_info 可以使用如下的json形式进行存储和传输。如果需要通过字典方式来获取类别“其他垃/烟蒂”的值,并修改为“其他垃圾/烟蒂”,下列正确的是:()。
dataset_info = {
"dataset_name":"Garbage",
"num_train":12944,
"num_val":1458,
"num_test":400,
"class_dim":40,
"label_dict":{
"0":"其他垃圾/一次性快餐盒",
"1":"其他垃圾/污损塑料",
"2":"其他垃/烟蒂",
"3":"其他垃圾/牙签",
}
}
A. dataset_info['label_dict']["2"] = '其他垃圾/烟蒂'
B. dataset_info.keys()['label_dict']['2'] = '其他垃圾/烟蒂'
C. dataset_info['label_dict'] = {'2':'其他垃圾/烟蒂'}
D. dataset_info = {'label_dict':{'2':'其他垃/烟蒂'}}
答案及解析:A
选项B都是语法错误,选项C和D为错误设置,不符合题意。
3. OpenCV库常用于图像处理,通过OpenCV读取图片至变量img后,使用img.size函数是设置图像的形状。()
答案及解析:B
函数 img.size() 用于实现获取图像的像素总数。
4. 图像处理技术用于将图像处理为适合进入机器学习模型的输入。()
答案及解析:A
在深度学习的工程实践中,我们得到的数据通常是不能直接使用的。因此,通常需要对数据集进行一些预处理,以确保数据集能够正确、高效地被应用到模型训练和预测中。
5. 数据划分是对数据集进行处理的重要操作,以下数据子集可以在训练过程中用来进行模型评估的包括()。
A. 训练集
B. 验证集
C. 测试集
D. 训练验证集
答案及解析:B
在训练过程中训练集用来训练模型,验证集用来进行超参数的评估和选择,而训练验证集用于最终模型的训练,测试集用于最终模型的评估。
6. 以下计算机视觉任务中,通常使用一个类别标签来进行标识的任务是()。
A. 图像分类
B. 目标检测
C. 图像分割
D. 目标跟踪
答案及解析:A
在计算机视觉的各种不同应用中,根据任务的不同会选择不同的标注方法。其中,图像分类使用分类标签标注,目标检测使用边框标注,图像分割使用区域标注,人脸识别和骨骼识别使用描点标注。
7.(多选)以下描述,属于原始数据样本常见问题的包括()。
A. 样本无法读取
B. 图片尺度不相同
C. 图片颜色通道不一致
D. 样本存在冗余
E. 样本目标倾斜
答案及解析:ACD
选项B和E是图像样本常见的多样性特性,不属于异常。
8. 深度学习的训练过程如以下几点,请将这几点按照正确的顺序进行排序。()
a. 使用训练验证集对模型进行训练
b. 使用训练集对模型进行训练
c. 使用测试集对模型进行评估
d. 使用验证集对模型进行评估
e. 将原始数据集划分为训练集、验证集、测试集和训练验证集
A. eadbc B. ebdac C. ebcad D. eacbd
答案及解析:B
在模型的训练过程中,通常存在一个超参数的选择过程。因此,我们会将数据集划分为训练集、验证集、测试集和训练验证集四个部分。而训练的过程也分两个阶段,第一个阶段是使用训练集和验证集进行模型的初步训练,并确定最有的超参数组合。第二个阶段的训练会利用第一阶段确定的超参数来进行训练,此时的训练集由原来的训练集和验证集合并获得,训练得到的模型称为最终模型。此过程,通常不需要在训练过程中进行评估。最后,再使用测试集数据对最终模型进行最终的评估。
1. OpenCV中默认的色彩空间存储格式是()。
A. RGB
B. HSV
C. BGR
D. HSL
答案及解析:C
在OpenCV中,默认的图像色彩空间为BGR格式,如果需要使用plt进行显示,则需要进行色彩转换,具体方法为:
img_BGR = cv2.imread(path, 1)
img_RGB = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2RGB)
plt.imshow(img_RGB)
2. 通过OpenCV的 cv2.imread() 函数读取指定图片,若要指明OpenCV以灰度图模式读入图像,可以使用下面的()参数。
A. cv2.IMREAD_GRAY
B. cv2.IMREAD_GRAYPIC
C. cv2.IMREAD_GRAYSCALE
D. cv2.IMREAD_GRAYNUMPY
答案及解析:C
选项C为正确答案,其完整形式为:img = cv2.imread(path, cv2.IMREAD_GRAYSCALE),其简化形式为 img = cv2.imread(path, 0)
3. [判断题] readline() 是python的内置函数,使用 readline() 方法可以一行一行地读取文件中的数据。()**
答案及解析:
python的文件读取主要包含三种方法:
4.(多选)OpenCV库常用于图像处理,现通过OpenCV读取图片至变量 img,执行 img.shape 函数后返回的结果是 (300, 600, 3),我们能够得知()。
A. 图像的形状为(300, 600)
B. 图像的通道数为3
C. 图像的行数为300
D. 图像的列数为300
答案及解析:ABC
OpenCV使用numpy数组进行数据存储,对于图像而言,其形态为HWC (Height, Width, Channel)。
5. 对于一个神经网络模型,规定它的输出为28×28的RGB图像,输入张量形状为[8,3,28,28],这里8表示()。
A. batch_size
B. channel
C. height
D. epoch
答案及解析:A
神经网络的输入为一个4D张量,形态为 [NCHW],具体为批量大小、通道数、高度和宽度。
6.(多选)以下描述符合异步数据读取的包括:()。
A. 适合数据量较大、数据读取较慢的场景
B. 数据的读取和模型的训练以串行方式进行
C. 模型直接从缓存队列获取数据
D. 在进行模型训练前需要一次性读取整个数据集的样本
答案及解析:AC
在数据的同步读取模式中,数据的读取与模型的训练是串行进行的。在进行模型训练前,需要一次性读取当前批次的所有数据。在数据读取期间,模型需要一直等待数据读取结束后才能进行训练。这种数据读取模式速度相对较慢,当数据量较大时会影响模型的训练速度。在异步读取模式中,数据的读取与模型的训练是并行进行的。程序对数据的读取不会直接送入模型,而是先保存到缓存的异步队列中,训练时再从缓存的异步队列中获取,这种方法可以有效提高数据读取的速度。
7. 以下函数可以用来实现小批量数据迭代读取的是()。
A. paddle.reader.shuffle
B. paddle.vision.transforms
C. paddle.io.DataLoader
D. cv2.imread
E. paddle.reader.xmap_reader
答案及解析:C
选项C为正确答案,可以用来实例化一个数据迭代读取器。选项A不存在,选项B用来实现多种图像处理,选项D用于从硬盘读取一幅图像,选项E实现多线程数据读取。
8. 在对训练数据和测试数据进行处理的时候,都需要将原始样本Resize到模型要求的固定尺寸(例如224×224)。那么,对于训练集和验证集来说,它们所使用的Resize方法必须保持一致。()
答案及解析:B
在标准的分类模型中,一般都要求将图像Resize成模型规定的尺寸。但对于训练数据和测试数据来说,一般会使用不同的处理方法。对于训练数据我们会像将其压缩成一个稍微大一点的尺寸(例如256像素),然后再从这个图片上进行随机裁剪获得模型需要的尺寸(例如224像素)。对于预测数据,为了保证结果的稳定性,通常是直接压缩成模型需要的尺寸。
9.(多选)在创建小批量数据迭代读取器的时候,通常需要将批次数进行打乱操作,下列哪些数据子集必须执行打乱。()
A. 训练集
B. 验证集
C. 测试集
D. 训练验证集
答案及解析:AD
在训练过程中,为了尽量避免因为数据输入而导致的过度拟合问题,通常都需要对训练数据集进行打乱操作,具体包括训练集和训练验证集。而对于验证集和测试集,是否进行打乱并不影响最终的评估,但为了节约系统资源,一般不做打乱操作。
1. 图像缩放是图像的基本几何变换,那么要改变图像的大小,使用()函数。
A. cv2.resize()
B. cv2.imread()
C. cv2.warpAffine()
D. cv2.getAffineTransform()
答案及解析:A
选项A用于改变图像的大小,选项B用于读取图像,选项C用于应用仿射变换,选项D用于设置仿射变换。
2. 一幅宽度为1024像素,高度为768像素的彩色图像image.jpg
,通过OpenCV读入后获取图像结构,下面代码得到的a,b,c的正确结果是()。
import cv2
img = cv2.imread('image.jpg')
a,b,c = img.shape
A. 1024, 768, 1
B. 768, 1024, 1
C. 1024, 768, 3
D. 768, 1024, 3
答案及解析:D
OpenCV的色彩存储格式为BGR,其形态为HWC。
3. 图像img的宽度为w,高度为h,需要进行缩放,生成高度为500像素,长宽比例不变的图片,下列代码正确的是()。
A. res = cv2.resize(img, (w, 500))
B. res = cv2.resize(img, (500, w))
C. res = cv2.resize(img, (int(500H/W), 500))
D. res = cv2.resize(img, (500, int(500W/H)))
答案及解析:C
OpenCV图像的模型形态为HWC,但函数cv2.resize(src, dsize)中dsize的属性为(dx, dy)。换句话说,在进行Resize操作的时候,目标尺度的第一个值为x方向,即宽度,第二个值为y方向即高度。可以使用如下代码进行测试。
import cv2
img = cv2.imread('testImg.png')
H,W,C = img.shape
res = cv2.resize(img, (int(500*H/W), 500))
res.shape
4. 通过OpenCV读取图片至变量img后,通过OpenCV中的img.size函数,我们可以得到图像的()。
A. 色彩空间
B. 通道数目
C. 数据类型
D. 元素个数
答案及解析:D
5. OpenCV是一种开放源代码的()库。
A. 计算机视觉
B. 自然语言处理
C. 深度学习
D. 数据挖掘
答案及解析:A
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它实现了图像处理和计算机视觉方面的很多通用算法。
6. OpenCV库常用于图像处理,现通过OpenCV读取图片至变量img,再通过函数()可以得到图像的数据类型信息。
A. img.size
B. img.shape
C. img.data
D. img.dtype
答案及解析:D
选项A,属性 img.size 用于获取图像的所包含的像素总数,N=H×W×C;选项B,属性 img.shape 可以获取图像的形态;选项C,属性 img.data 可以获取图像所存储的内存空间的位置;选项D,属性 img.dtype 可以获取图像的数据类型。
7.(多选)HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法。HSV色彩空间的三个坐标分别为()。
A. 色相
B. 饱和度
C. 明度
D. 亮度
答案及解析:ABD
HSV是一种将RGB色彩空间中的点投影到倒六角锥体模型中的颜色表示方法。HSV的三个值分别是色调(Hue)、饱和度(Saturation)、亮度(Value)。
8.(多选)RGB颜色空间以三种基本色为基础,进行不同程度的融合,产生丰富而广泛的颜色,RGB色彩空间的三个基本原色是()。
A. 红
B. 绿
C. 黄
D. 蓝
答案及解析:ABD
在RGB色彩空间中,三原色RGB分别是Red红色,Green绿色,Blue蓝色。
9. OpenCV的默认图像形状为()。
A.(通道,高度,宽度)
B.(宽度,高度,通道)
C.(高度,宽度,通道)
D.(高度,通道,宽度)
答案及解析:C
OpenCV的默认图像形状为HWC,色彩通道为BGR
10. Python的OpenCV库提供了颜色空间转换功能,具体函数名是()。
A. cvtColor()
B. convertColor()
C. setColor()
D. getColor()
答案及解析:A
选项A是OpenCV的色彩空间变换函数,其语法为 Output_img = cvtColor(Input_img, code)
。其中code表示色彩的转换代码,例如cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2RGB, cv2.COLOR_RGB2BGR。选项BCD为错误语法。
11. 计算机显示器的颜色模型为()。
A. CMYK
B. HIS
C. RGB
D. YIQ
答案及解析:C