《人工智能开源硬件与python编程实践》试卷(一)附答案
- 格式:doc
- 大小:40.50 KB
- 文档页数:5
《人工智能开源硬件与python编程实践》试卷一一、单项选择题(每题2分,共20分)1、下列编程语言及工具中,开放源代码的是()A. C++B. JavaC. PythonD. VB2、Python程序中,自定义函数的语句块使用()方式来表示起始和结束。
A. 使用括号{}B. 使用括号[]C. 使用括号()D. 缩进3、OpenAIE硬件中能够运行Python程序是因为MPU芯片中固化有()A. IDE开发环境B. 编译器C. 解释器D. Python库4、如果要利用OpenAIE IDE编程工具辅助进行程序调试,可以利用()中交互的信息。
A. 视频显示区B. 串行终端监视区C. 外部调试文件D. 新建调式窗口5、关于轨迹跟踪与拟合方法,说法错误的是()A. get_regression方法只能处理黑线B. get_regression方法进行线性回归计算C. get_regression方法最小二乘法D. get_regression方法也可以用来对复杂些曲线轨迹进行拟合6、某同学自行采集人脸样本图像进行Haar模型训练,正确的过程包括()A. 每张人脸只选一张照片纳入训练集,选另一张照片纳入测试集B. 选一部分人脸照片作为正样本,选另一部分人脸照片作为负样本C. 对采集的样本照片进行规范化,统一图像格式和宽度比D. 训练后,使用负样本进行模型测试7、下列属于经典卷积神经网络模型的是()A. AlexNetB. PyTorchC. CaffeD. frontface8、手写体数字识别可以使用以下哪种模型?()A. cifar10B. Lenet5C. Haar CascadeD. Smilenet9、下列哪种技术应用在语音识别领域?()A. HMMB. LenetC. HaarD. Canny10、语音识别应用中,常常针对特定应用场景设置命令词及短语列表,这样做的原因是()A. 抗噪声B. 消除相似音影响C. 受声学模型词汇集的限制D. 改善识别性能二、概念解释(每题5分,共20分)1、Hough变换2、二维码3、卷积神经网络4、ASR语音识别三、简答题(每题10分,共30分)1、OpenAIE人工智能硬件中固化了哪些Python编程库?2、简述基于OpenAIE硬件的语音识别应用程序设计过程。
3、简述在OpenAIE硬件中应用CNN类的编程方法四、编程实践题(每题15分,共30分)1、分别写出MicroPython程序中条件结构、for循环和While循环的基本语法格式。
2、利用cifar10卷积神经网络编写运行在OpenAIE硬件上的图像分类程序。
3、综合应用本课程所学习的语音识别、计算机视觉技术,基于OpenAIE人工智能硬件编写Python程序,利用语音识别获取人们发出的指令,实现利用摄像头拍照的功能并保存成文件。
参考答案:一、单项选择题CDCBA CABAD二、概念解释(每题5分,共20分)1、Hough变换霍夫变换(Hough)用来检测图像中的直线,后来扩展到检测矩形、圆和椭圆等任意形状的物体。
霍夫变换是通过直角坐标系和极坐标系之间的变换将图像空间中具有相同特征的直线或者曲线映射到参数空间中的一个点上,然后在参数空间中对点进行描述,使结果更易识别和检测,最后用累加器进行累加,从而把检测图形的问题转化为寻找最大累加值的问题。
2、二维码二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机二进制“0”、“1”逻辑比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。
它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。
同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。
3、卷积神经网络卷积神经网络(CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。
卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类。
卷积神经网络采用局部感知域和权值共享的方法,减少了网络的参数的个数,降低了网络模型的复杂度,缓解了网络模型过拟合的问题。
4、ASR语音识别ASR语音识别技术,也被称为自动语音识别,其目标是将人类的语音中的词汇内容转换为计算机可读的输入。
ASR语音识别的特征是大词汇、非特定人、连续语音识别。
三、简答题(每题10分,共30分)1、OpenAIE人工智能硬件中固化了哪些Python编程库?计算机视觉Python库,包含数字图像处理、机器视觉等功能;语音识别Python库,包括大词汇、非特定人、连续语音识别功能;CNN深度学习Python库,支持Lenet5、Cifar10、Smilenet等卷积神经网络模型;板上硬件资源Python库,包括LED、按键、UART等板上资源的控制。
2、简述基于OpenAIE硬件的语音识别应用程序设计过程。
导入asr类模块;创建语音识别对象实例;初始化语音识别对象;设置工作场景,添加关键词识别列表;启动语音识别;等待语音识别结果;提取语音识别结果。
3、简述在OpenAIE硬件中应用CNN类的编程方法AIE控制板上Python库中提供了Net类,进行神经网络模型的加载和计算处理,包括load、forward 和search 三种方法。
先加载神经网络模型,构造出一个CNN神经网络Net 类,就可以使用forward 和search方法进行网络搜索。
(1)class nn.load(path)方法,用来将神经网络从.network二进制参数文件加载到内存中,构造一个CNN神经网络Net类。
它将预先训练好的神经网络从.network二进制模型参数文件加载到内存中,包括神经网络的层、权值、偏置等参数,返回一个Net对象。
(2)net.forward()方法,用于在图像roi区域上运行指定的神经网络,返回经过神经网络分类计算得出的结果列表。
(3)net.search()方法,以滑动窗口的方式在图像roi区域上运行网络指定的神经网络,返回得出的结果列表。
四、编程实践题(每题15分,共30分)1、分别写出MicroPython程序中条件结构、for循环和While循环的基本语法格式。
条件结构的基本语法格式如下:if <条件>:<语句块>for 循环的基本语法格式如下:for <循环变量> in <序列结构>:<语句块>While循环的基本语法格式如下:while <条件>:<语句块>2、利用cifar10卷积神经网络编写运行在OpenAIE硬件上的图像分类程序。
import sensor, image, time, os, nnsensor.reset()sensor.set_pixformat(sensor.RGB565) #设置像素格式为RGB565sensor.set_framesize(sensor.QVGA) #设置分辨率为QVGA格式;sensor.set_windowing((128, 128)) # 设置128x128窗口;sensor.skip_frames(time=750) # 设置适当的帧捕捉间隔;sensor.set_auto_gain(False)sensor.set_auto_exposure(False)# 加载cifar10网络。
net = nn.load('/cifar10_work')labels = ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']clock = time.clock()while(True):clock.tick()img = sensor.snapshot()for obj in net.search(img, threshold=0.6, min_scale=0.5, scale_mul=0.5, \x_overlap=0.5, y_overlap=0.5, contrast_threshold=0.5):print("Detected %s - Confidence %f%%" % (labels[obj.index()], obj.value()))img.draw_rectangle(obj.rect(), color=(255, 0, 0))print(clock.fps())3、综合应用本课程所学习的语音识别、计算机视觉技术,基于OpenAIE人工智能硬件编写Python程序,利用语音识别获取人们发出的指令,实现利用摄像头拍照的功能并保存成文件。
#引入模块from openaie import *import sensor, image, time#摄像头设置sensor.reset() # Initialize the camera sensor.sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALEsensor.set_framesize(sensor.QVGA) # or sensor.QQVGA (or others)sensor.skip_frames(time=2000) # Let new settings take affect.clock = time.clock()#语音的设置asr.add_cmd("paizhao", 1)#添加关键词“拍照”进行拍照操作asr.run()def asr_test(sel):if sel == 1 :#拍照print("拍照中...")img.draw_string(10, 10, "Taking pictures....", color = (255, 0, 0), scale = 3, mono_space = False)led.red.on()led.green.on()led.blue.on()time.sleep(10)#保存截取到的图片到SD卡sensor.snapshot().save("example.jpg")# or "example.bmp" (or others)print("保存到内存中了")time.sleep(20)led.red.off()led.green.off()led.blue.off()#拍照结束print("拍照结束")img.draw_string(0, 0, "Successful photo", color = (0, 255, 0), scale = 3, mono_space = False)time.sleep(200)while True:clock.tick()img = sensor.snapshot()asr_test(asr.get_res())time.sleep(100)。