2021年中级模拟题(理论3)【答案及解析】

编辑者:欧新宇
最后修订:2022年1月2日
本教案仅用于内部教学使用,请勿传播


1. [单选题] 在训练的过程中发现神经网络的损失函数存在大幅度震荡,且训练准确率与验证准确率差距过大,可能是由什么原因造成的?
A. 没有进行图像标准化处理
B. 损失函数使用了均方误差函数
C. 误将验证集放入训练集进行训练
D. 没有进行图像归一化处理

答案及解析:A
选项A,图像标准化可以实现对不同量纲数据的规范化。也就是说,当每个特征的值分布范围差异较大时,会使模型对每个维度的校正互不相同(按比例),从而产生震荡。
选项B,均方误差主要用于回归。
选项C,将验证集放入训练集后,会导致验证集准确率升高,而在实际的测试中并不能达到和训练/验证集同等的效果,也就是说验证集失效。
选项D,图像归一化可以使图像具有一定的抗几何攻击能力。使用没有进行图像归一化的数据进行训练的模型,可能会产生一定的欠拟合问题。
此外,训练集和验证集准确率差距较大,说明模型还产生了一定的过拟合现象。因此选项C是错误的。


2. [单选题] 下面属于cv2.drawMatches()的作用的是().
A. 绘制匹配的点
B. 可以返回K个最佳匹配,其中K由用户指定
C. 可以将两幅图像水平排列
D. 可以在最佳匹配的点之间绘制曲线

答案及解析:D
cv2.drawMatches(imageA, kpsA, imageB, kpsB, matches[:10], None, flags=2) 用于实现两幅图之间关键点匹配连线的绘制。其中imgA和imgB. 表示两幅待绘制的图像,kpsA和kpsB表示关键点,matches表示经过cv2.BFMatcher获得的匹配的索引值及距离。


3. [多选题] 开运算可以从图像中提取表达区域形状的有用图像分量,以下哪些是开运算的作用()。
A. 在纤细点处分离物体
B. 平滑其边界的同时并不明显改变其面积
C. 消除小物体
D. 抑制比结构元小的暗细节

答案及解析:ABC
开运算的基本过程是先腐蚀,再膨胀,可以将看上去细微的连接进行分开。开运算能够除去孤立的小点,毛刺和小桥,而总的位置和形状不便。


4. [多选题] 下面描述正确的是()
A. BFMatcher对象由 cv2.BFMatcher(normType, crossCheck) 创建
B. BFMatcher.match() 返回k个最佳匹配,其中k由用户指定
C. BFMatcher.knnMatch() 返回最佳匹配
D. cv2.drawMatches() 绘制匹配的点,它会将两幅图像先水平排列,然后在给定的最佳匹配点之间绘制直线

答案及解析:AD
选项A,用于定义BFMatcher对象,语法为 bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossChect=True)
选项B,bf.match() 返回最匹配的特征对;
选项C,bf.knnMatch() 返回k个最匹配的特针对,k由用户指定;
值得注意的是 .BFMatcher().drawMatches() 由cv2库进行引入,.match().knnMatch() 由BFMatcher对象进行创建。


5. [多选题] 常见优化器有()
A. 随机梯度下降法
B. 自适应梯度算法
C. 自适应矩估计
D. 交叉熵损失最小

答案及解析:ABC
自适应矩估计(Adam),自适应梯度算法(AdaGrad),随机梯度下降法(SGD)都是优化器算法,交叉熵损失属于损失函数。


6. 深度学习框架的作用有()。
A. 节省撰写大量底层代码的精力
B. 省去了部署和适配环镜的烦恼
C. 模型训练准确
D. 模型泛化能力强

答案及解析:AB
选项C和D与模型本身有关,和框架无关,即无论是使用何种框架,还是自行从底层编码,只要模型是完全一致的,训练的准确率和泛化能力都是相同的。


7. 机器学习是一门涉及计算机科学、脑科学等诸多领域的交叉学科,研究计算机怎样模拟或实现人类的学行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,下列()属于涉及机器学习过程范畴。
A. 数据
B. 经验
C. 归纳
D. 预测

答案及解析:ABD


8. [多选题] 关于图像梯度与Canny边缘检测说法正确的是()。
A. 图像梯度是指图像某像素在x和y两个方向上的变化率(与相邻像素比较),是个n维向量
B. 图像梯度沿x轴的变化是指当前像素右侧(x加1)的像素值减去当前像素左侧(x减1)的像素值
C. Canny算法其目标是找到一个最优的边界检测算法或寻找图像中灰度强度变化最强的位置
D. Canny边缘检测应用中滤波来平滑图像

答案及解析:ABC
选项D,Canny边缘检测应用高斯滤波来平滑图像,目的是去除噪声。


9. [多选题] 关于轮廓操作过程中使用的各种函数,下面解释正确的是()。
A. cv2.findContours(image, mode, method) 返回图像轮廓及轮廓的层次
B. cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 将RGB转换为HSV
C. cv2.drawContours(image, contours, contoursldx, color, thickness) 绘制轮廓
D. cv2.arcLength(cnt, True) 计算得到轮廓面积

答案及解析:AC
选项B,将图像 imgBRG 色彩模式转化为灰度 GRAY模式;
选项D,计算轮廓的周长,方法 cv2.contourArea(cnt, True) 可以实现轮廓面积的计算


10. [多选题] 关于OpenCV视频流说法正确的是()。
A. cv2.VideoWriter() 类可以将帧序列转换为视频文件
B. cv2.VideoWriter_fourcc() 函数可以用来指定视频的编码方式和文件格式
C. cv2.VideoCapture().set 设置类对象的属性
D. cv2.VideoWriter_forcc('X','V','I','D') 将视频保存为flv格式

答案及解析:ABC
cv2.VideoWriter_fourcc('X','V','I','D') 表示MPEG-4编码类型,视频大小为平均值,MPEG4所需要的空间是MPEG1或M-JPEG的1/10,它对运动物体可以保证有良好的清晰度,间/时间/画质具有可调性。文件扩展名.avi。


11. [多选题] OpenCV操作摄像头的说法正确的是()。
A. cv2.VideoCapture(CameraID)用来初始化摄像头
B. cv2.VideoCapture.read()用来捕获视频帧
C. cv2.VideoCapture.get(ParmsID)用来捕获视频帧
D. cv2.waitkey()用来设置等待时间

答案及解析:ABD
选项C,cv2.VideoCapture.get() 用于获取视频的基本信息及属性,包括帧数、帧率、帧高度和宽度、对比度、亮度、饱和度等。


12.[多选题] 关于 Brute Force 特征匹配说法正确的有()。
A. Brute—force匹配是计算图像之间关键点的距离,返回全部距离的关键点
B. BFMatcher.match()返回最佳匹配
C. BFMatcher.knnMatch() 返回最佳匹配
D. cv2.BFMatcher(normType, crossCheck) 创建BFMatchenr对象

答案及解析:BD
Brute-Force匹配通过计算图像之间的关键点的距离来返回最匹配的特征对。该算法,首先使用 bf = cv2.BFMatcher() 创建 BFMatcher 对象,然后使用方法 BFMatcher.match()BFMatcher.knnMatch() 查找两幅图片间,距离最新的特征对,其中 BFMatcher.match() 返回最匹配的特征对, BFMatcher.knnMatch() 返回k个最匹配的特针对,k由用户指定。


13. [单选题] 关于特征检测与提取说法正确的有
A. 提取物品的特征点是为了让计算机做良品检测
B. 物体的良好特性包括尺度不变性与旋转不变性
C. SIFT提取特征的函数为 detectAndCompute()
D. SIFT是一种全局检测的算法

答案及解析:C
SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述。这种描述具有尺度不变性、旋转不变性、平移不变性和光照不变性,可在图像中检测出关键点,是一种局部特征描述子。 选项A和选项B均为不完整描述,其中选项A,良品检测仅仅只是计算机视觉的一种应用;选项B,物品的良好特性还包括很多种。


14. [单选题] Python的OpenCV库中,以下可以用来检测图像中物体的边缘的函数是()。
A. cv2.canny
B. cv2.dilate
C. cv2.erode
D. cv2.drawCortours

答案及解析:A


15. [单选题] 在图像处理中,我们需要判断图片中的动物是"猫"还是"狗"属于()问题
A. 检测
B. 分类
C. 回归
D. 预测

答案及解析:B
识别样本中的物体是什么属于分类任务,找到目标对象在样本中的什么位置并进行类别、属性识别属于检测任务。


16. [多选题] 百度OCR的接口可以通过http的方式调用,也可以通过OCR Python SDK来调用。通过python SDK调用时,下面()说法有误。
A. SDK需要进行安装,可以执行pip install baidu-aip
B. 需要在百度选择具体的应用类型创建应用
C. 应用创建完成后会产生AppID, API Key, Secret Key
D. ApI-OCR是OCR Python SDK客户端,只需要API Key 和 Secet Key两个参数

答案及解析:ABCD


17. [单选题] Python的OpenCV库提供了颜色空间转换功能,具体函数名是()
A. cvtColor()
B. convertColor()
C. setColor()
D. getColor()

答案及解析:ABC
Output_img = cvtColor(Input_img, code),其中code表示色彩转换代码,例如cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2RGB, cv2.COLOR_RGB2BGR; 选项BCD为错误语法,Python-OpenCV不存在这些函数。


18. [多选题] 下列关于VGG模型说法正确的是()。
A. 构筑了16-19层深的卷积神经网络
B. 反复堆叠 2×2 的小型卷积核
C. 反复堆叠 3×3 的平均值池化层
D. VGG16模型其中包含输出层

答案及解析:AD
VGG模型可以认为是AlexNet的升级版,它同样包含了7个模块组,其核心是反复堆叠的 3×3 的卷积核,每个卷积组后面有一个最大池化层(max-pooling),在卷积层后面是2+1个全连接层,其中最后一个用于匹配Softmax分类器实现类别概率的输出。


19. [单选题] 在人工神经网络中,通常以tanh函数作为激活函数,其值域为()。
A. (-1, 0)
B. (-1, 1)
C. (0, 1)
D. (-1, 1)

答案及解析:D
Sigmoid, Tanh, ReLU都是最常见的激活函数,其中Sigmoid的值域为 (0, 1),Tanh的值域为 (-1, 1),ReLU的值域为 [0, 1)。他们的定义域都是整个实数集。


20. [单选题] 在神经网络中最常见的结构是多层感如机,通常以什么函数作为隐含层非线性传递函数()。
A. 线性函数
B. Logistic函数
C. 损失函数
D. 径向基函数

答案及解析:B
Logistic函数,又称为Sigmoid函数(S型函数)是早期神经网络常用的激活函数。对于深度学习模型来说,为了增加特征的强度通常会使用非线性函数或者限制线性函数作为激活函数。


21. [单选题] 下列属于机器学习领域无监督学习方法的是()。
A. 线性回归
B. 聚类
C. 人工神经网络
D. Logistic回归

答案及解析:B
无监督学习算法是指在学习过程中没有标签进行辅助优化,其中聚类算法就属于典型的无监督算法。对于标准的线性回归(逻辑回归)、神经网络都属于有监督算法,但经过精心设计,依然可以实现无监督学习。


22. [单选题] 关于cv2.VideoWriter(filename, fourcc, fps, frameSize, isColor)参数描述错误的是()。
A. filename: 输出目标视频的存放路径和文件名
B. fourcc: 视频编码/解码类型
B. C. frameSize: 帧率
D. fps: 帧速率

答案及解析:C
参数 frameSize 用于设置要保存文件的画面尺寸;参数isColor用于设置画面是彩色还是黑白;其他参数如题所述。


23. [单选题] 设置播放视频每一帧的持续时间的函数是()。
A. cap.release()
B. cv2.waitKey()
C. cv2.destroyAllWindows()
D. cv2.isOpened()

答案及解析:B


24. [多选题] 关于特征提取说法正确的是()。
A. 特征提取可以获得所有的特征点
B. 轮廓检测需要用到所有特征点
C. 当这个物体发生旋转时,照样可以正确地辨认它,这就是所谓的尺度不变性
D. 人类在识别一个物体时,不管这个物体或远或近,都能对它进行正确的辨认,这就是所谓的旋转不变性

答案及解析:AB
选项C,是旋转不变性; 选项D,是尺度不变性。


25. [单选题] cv2.VideoWriter_fourcc( )函数来指定视频的编码格式,表示MPEG-4编码类型的是()。
A. cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')
B. cv2.VideoWriter_fourcc('F', 'L', 'V', 'I')
C. cv2.VideoWriter_fourcc('P', 'I', 'M', '1')
D. cv2.VideoWriter_fourcc('T', 'H', 'E', 'O')

答案及解析:A


26. [多选题] 下面不属于图像膨胀操作的过程的是()。
A. 读取灰度图像
B. 多值化处理图像
C. 声明结构元素
D. 应用膨胀函数

答案及解析:ACD
基于OpenCV的图像膨胀的基本流程包括:

  1. 以灰度模式读取图像
  2. 将图像进行反二值化处理
  3. 定义结构元素(膨胀核心矩阵)
  4. 应用膨胀函数

选项B,应该是反二值化处理,而不是多值化处理


27. [多选题] 关于数学形态学处理,以下说法正确的是()。
A. 先膨胀后腐蚀的运算称为开运算
B. 先腐蚀后膨胀的运算称为闭运算
C. 细化是将一个曲线型物体细化为一条单像素宽的线, 以图形化显示出其拓补性质。
D. 消除连续区域内的小噪声点,可以通过连续多次使用开闭运算

答案及解析:CD
选项A,开运算是先腐蚀后膨胀
选项B,闭运算是先膨胀后腐蚀


28. [单选题] 计算机显示器的颜色模型为()。
A. CMYK
B. HIS
C. RGB
D. YIQ

答案及解析:C