续:香橙派——雕琢智能时代的瑰宝为AI而生(一):https://developer.aliyun.com/article/1532309
4.7 pin 接口GPIO、I2C、UART、SPI 和PWM 测试
开发板40pin接口引脚的功能如下表所示:
图4.10 40pin引脚说明
4.7.1 GPIO测试:
40针接口的GPIO(通用输入输出)配置, 在40针接口中,总共有26个GPIO口,引脚8号和10号默认用于调试串口功能,这些引脚通常与MicroUSB调试串口连接在一起,因此不应用于GPIO或其他功能。这两个引脚通常用于串行通信,如UART(通用异步接收发送器)。
所有的GPIO口的电压都是3.3V。这意味着当你将这些引脚用作输入或输出时,它们将工作在3.3V的逻辑电平上。在使用这些引脚时,确保连接的设备或传感器也兼容3.3V的逻辑电平,以避免损坏设备。
引脚27号和28号只有I2C(Inter-Integrated Circuit)功能,没有GPIO等其他复用功能。I2C是一种常用的串行通信协议,用于在微控制器和各种外围设备之间进行短距离通信。这两个引脚的电压默认都为1.8V。这与大多数其他GPIO引脚的3.3V电压不同。在使用这些引脚时,需要确保连接的设备或传感器也兼容1.8V的逻辑电平。
1. gpio_operate-h命令可以获取gpio_operate工具的帮助信息: 2. 3. gpio_operateget_directiongpio_groupgpio_pin用于查询GPIO管脚方向。 4. 5. GPIO管脚方向,取值为[0,1] 0:输入方向 1:输出方向
比如40pin中的第31号引脚对应的GPIO为GPIO2_20,那么其GPIO 组号为2,GPIO管脚号为20,获取其方向的命令为:gpio_operateget_direction2 20
gpio_operateget_valuegpio_groupgpio_pin命令用于查询GPIO管脚值
gpio_operateset_valuegpio_groupgpio_pinvalue命令用于设置GPIO管脚值为高电平或者低电平,注意设置管脚值前,请确保已将GPIO管脚的方向设置 为输出了
图4.11 此处查询到的电压与电压表测量均为低电平
比如40pin中的第31号引脚对应的GPIO为GPIO2_20,那么其GPIO 组号为2,GPIO管脚号为20,设置其输出为高电平的命令为:gpio_operateset_value2 20 1
图4.12 此处查询到的电压与电压表测量均为高电平
4.7.2 I2C测试:
40pin接口的i2c6或者i2c7引脚上接一个i2c设备。
使用i2cdetect命令如果能检测到连接的i2c设备的地址,就说明i2c能正常使用。
图4.13 接入一个I2C设备后回打印出设备地址
4.7.3 SPI回环测试
SPI是一种高速的,全双工,同步的通信总线,它使用四根信号线进行通信:
MOSI(Master Out Slave In):主设备数据输出,从设备数据输入。
MISO(Master In Slave Out):主设备数据输入,从设备数据输出。
SCK(Serial Clock):时钟信号,由主设备产生。
SS(Slave Select):从设备使能信号,由主设备控制。
短接SPI1的MOSI和MISO:
使用杜邦线将40针接口中的第19号引脚(MOSI)和第21号引脚(MISO)短接。
再次运行`spidev_test`程序,输出显示发送和接收的数据一致。这表明SPI1的回环测试成功,意味着SPI1的硬件连接和软件配置是正确的。
图4.13 数据一致,SPI测试成功
回环测试是一种常用的测试方法,用于验证SPI通信的正确性。通过将MOSI和MISO短接,数据从主设备的MOSI发送出去后,直接通过MISO接收回来,如果发送和接收的数据一致,说明SPI通信链路是通的。
4.7.4 UART测试
开始测试uart接口,先使用杜邦线短接要测试的uart接口的rx和tx引脚。 不同的uart的rx和tx引脚对应的40pin接口中的引脚如下所示
UART接口 |
RX引脚(接收) |
TX引脚(发送) |
UART2 |
40pin的11号引脚 |
40pin的36号引脚 |
UART7 |
40pin的29号引脚 |
40pin的7号引脚 |
图4.14 自发自收的字符串相同
使用serial测试程序可以测试下串口的自收自发。serial程序会打开对应的串口 发送一个字符串——Hello,SerialPort!,然后打印接收到的字符串。自发自收的字符串相同,测试成功。
4.7.5 PWM测试
通过操作寄存器的方式来测试PWM3引脚输出一个波形,运行test.sh脚本即可输出一个50%占空比的方波,这里我们没有专业的示波器,所以只能通过风扇转速快慢进行判断。
图4.15 输出一个50%占空比
4.8 系统配置查看:
arch:显示机器的处理器架构;
uname-m:显示机器的处理器架构;
uname-r:显示正在使用的内核版本;
cat/proc/cpuinfo:显示CPU信息:
cat/proc/version:显示内核版本
图4.16 以上系统配置查询结果
五、AI高级体验测试
5.1 前期配置:
首先登录Linux系统桌面,然后打开终端,再切换到保存AI应用样例的目录下,Jupyter Lab 启动脚本start_notebook.sh,然后执行start_notebook.sh脚本启动 Jupyter Lab,在执行该脚本后,终端会出现如下打印信息,在打印信息中会有登录Jupyter Lab的网址链接。
图5.1 网址链接
打开火狐浏览器将这个网址链接打开:
图5.2 网址页面
5.2 运行目标检测测试
YOLOv5(You Only Look Once version 5)是一种流行的目标检测算法,它属于单阶段检测器,意味着它在单次前向传播中直接预测图像中的物体边界框和类别概率,而不需要像两阶段检测器那样先提出候选区域。YOLOv5因其速度快、准确率高而受到广泛欢迎,尤其是在需要实时处理的应用中。
YOLOv5有多个版本,包括YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x,其中YOLOv5s是最轻量级的版本,它的模型大小和计算复杂度都相对较低,这使得它非常适合在资源受限的边缘设备上部署,如智能手机、嵌入式系统或物联网设备。
YOLOv5s被用来对赛车视频进行实时目标检测。当视频播放时,YOLOv5s会对视频的每一帧进行推理,即对图像进行分析,以识别和定位视频中的赛车。模型会输出边界框(bounding boxes)和类别标签(在这里是“赛车”),这些信息会被用来在视频帧上标注出检测到的赛车,从而让用户能够看到模型识别的结果。
图5.3 运行目标检测效果
这种实时目标检测的能力在许多领域都非常有用,例如自动驾驶、视频监控、体育赛事分析等。通过在边缘设备上部署轻量级模型,可以减少对云端服务器的依赖,降低延迟,提高系统的响应速度和隐私保护。
5.3 运行文字识别测试
检测模型的主要任务是在图像或视频中定位文字的位置。这通常涉及到使用目标检测算法,如YOLO、SSD、Faster R-CNN等,来识别图像中的文字区域,并给出这些区域的边界框(bounding boxes)。在您描述的场景中,检测模型会首先分析图片,找出所有包含文字的区域。
识别模型的任务是将检测到的文字区域中的图像信息转换为可读的文本信息。这通常涉及到使用诸如CRNN(Convolutional Recurrent Neural Network)、ASTER(Attention-based Scene Text Recognizer)等算法,这些算法能够处理不规则形状、不同大小和方向的文字。在您描述的场景中,识别模型会对检测到的文字区域进行分析,并输出相应的文本内容,即“开启开发者之旅”和“从入门到进阶,开启昇腾开发者成长之旅”。
图5.4 运行文字识别效果
在实际应用中,OCR系统通常会结合这两个阶段的结果,以提供准确的文字识别服务。例如,在文档扫描、车牌识别、自动柜员机(ATM)中的支票处理、图书馆数字化、以及各种自动化数据录入任务中,OCR技术都扮演着重要的角色。随着深度学习技术的发展,OCR系统的准确性和鲁棒性也在不断提高,能够更好地处理复杂的自然场景文字。
5.4 运行目标分类测试
ResNet(Residual Network)是一种深度卷积神经网络(CNN),在2015年由微软研究院的Kaiming He等人提出,并在ImageNet竞赛中大放异彩。ResNet通过引入残差学习(residual learning)的概念来解决深层网络中的梯度消失/梯度爆炸问题,使得网络能够加深至数百甚至上千层。
ResNet50是使用的网络版本。ResNet50具有50层深的网络结构,它在保持可训练性的同时能够捕捉到丰富的特征,这使得它在图像分类任务中表现出色。当一张小狗的图片出现在窗口中时,ResNet50模型会对图片进行分析,提取特征,并通过网络层传递和转换这些特征,最终在输出层给出对应的类别预测。
通常,深度学习模型如ResNet50会输出一个概率分布,显示每个类别的置信度。在最后的softmax层,这些置信度被转换成概率分布,从而每个类别都会分配一个概率值。模型通常会提供几个最有可能的类别作为输出,这是根据置信度从高到低排序的。在本例中,模型预测最有可能的类别是“Standard Poodle”,如果这确实是图片中小狗的品种,那就说明模型的预测是准确的。
图5.5 运行目标分类效果
这种类型的深度学习模型是图像识别和其他视觉任务的基础,被广泛应用于各种场景,包括医疗图像分析、自动驾驶车辆的视觉系统、安全监控等。
5.5 运行图像曝光增强测试
HDR(High Dynamic Range)效果增强是一种常用于改善照片质量的技术,特别是在处理光线条件不理想的照片时,如曝光不足或过度曝光的照片。HDR技术通过扩大照片的动态范围,即图像中最亮和最暗部分的差异,使得照片能够更好地反映现实世界的视觉效果。
通过调整图像的亮度和对比度来模拟更合适的曝光效果,使得图像中的细节在亮部和暗部都能得到更好的展现,增加图像的动态范围,使得图像中最亮和最暗的区域之间的细节能够更加清晰可见,通过调整饱和度和色调,进一步提升图像的视觉效果,使得颜色看起来更加丰富和自然。
图5.6 运行图像曝光效果
在现代的图像处理领域,这些模型可以学习大量图像数据中的模式,自动识别图片中需要改善的区域,并对其进行优化处理。对于曝光不足的图片,这意味着模型能够识别出图像中过暗的部分,并适当地增亮这些区域,同时保留图像的细节和质感,从而达到增强HDR效果的目的。
5.6 运行卡通图像生成测试
CartoonGAN(Cartoon Generative Adversarial Networks)是一种特别设计来将常规照片转换成卡通风格图像的生成对抗网络(GAN)。它利用了GAN的框架,其中包括两个主要组成部分:一个生成器(Generator)和一个判别器(Discriminator)。生成器负责产生看起来像卡通的图像,而判别器则尝试区分生成的图像与真实的卡通图像之间的区别。通过这种对抗过程,CartoonGAN能够学习如何将输入的常规图片转换成具有特定卡通风格的图像。
输入是一张常规的风景照片或任何其他类型的图片,生成器接收这张图片并处理它,试图将其转换为卡通风格。这个过程包括改变颜色、线条和纹理等,以符合特定的卡通风格,生成器产生的新图像被送到判别器。判别器评估这张图像,判断它是否足够接近于训练集中的卡通图像,基于判别器的反馈,生成器不断调整其参数,以更好地模仿卡通风格。这个过程通过多次迭代进行,直到生成的图像满意为止。
CartoonGAN对输入的风景照片进行了处理,并生成了一张具有卡通画风格的风景图。这张卡通化的风景图不仅保持了原始风景的基本形状和构成,而且还采用了卡通风格的颜色、线条和纹理,使之看起来像是手绘卡通或动画中的场景。
图5.7 原始图像
图5.8 运行卡通图像生成效果
使用CartoonGAN的优点之一是能够自动化地将任何图片转换成卡通风格,无需人为地进行复杂的图像编辑或绘图。这使得它在创意媒体、游戏设计、动画制作等领域有着广泛的应用潜力。
5.7 运行蛋白质分类评估测试
在生物学和医学研究中,对蛋白质图像进行自动化分类评估是一个重要的任务,它可以帮助研究人员快速识别和分析细胞内的蛋白质分布和功能。使用深度学习模型,如卷积神经网络(CNN),可以有效地处理和分析这些复杂的显微镜图像。
模型对一张蛋白质荧光显微图片进行了自动化分类评估。这种类型的图像通常是通过荧光标记特定的蛋白质,然后在显微镜下观察其分布情况。
模型首先对输入的荧光显微图片进行预处理,包括调整大小、标准化和增强对比度等,以确保图像适合于后续的分析,使用CNN的卷积层,模型从图像中提取有用的特征,如蛋白质的形状、大小和分布模式,提取的特征被送入网络的后续层,这些层负责将特征映射到具体的蛋白质类别。在这个过程中,模型会计算每个类别的置信度,模型输出最有可能的蛋白质类别及其置信度。在您的例子中,模型预测最有可能的类别是“Mitochondria”,置信度为64.23%。
图5.9 运行蛋白质分类评估效果
这种自动化分类评估对于快速筛选和分析大量蛋白质图像非常有用,特别是在进行高通量实验或需要大量数据分析的研究中。通过自动化的图像分析,研究人员可以节省时间,更专注于数据的解释和科学发现。此外,这种技术还可以用于疾病诊断,例如通过分析细胞内特定蛋白质的异常分布来辅助癌症等疾病的诊断。
5.8 运行细胞图像分割测试
图像分割是计算机视觉中的一个重要任务,特别是在生物医学图像分析领域。细胞核分割是指从生物医学图像中识别和分离出细胞核的过程,这对于细胞计数、细胞分类、疾病诊断等多种应用至关重要。
首先对输入的生物医学图像进行预处理,这可能包括去噪、增强对比度、调整亮度和对比度等,以提高图像质量,便于后续的分割任务,使用深度学习模型,如卷积神经网络(CNN),从预处理后的图像中提取有用的特征。这些特征可能包括细胞核的形状、纹理、颜色和边缘信息等,模型利用提取的特征来识别图像中的细胞核。这通常涉及到将图像分割成多个区域,每个区域对应一个细胞核。分割可以通过不同的技术实现,如阈值分割、边缘检测、区域生长或基于深度学习的分割方法,如U-Net,分割后,可能需要进行一些后处理步骤,如去除小的噪声区域、填充细胞核内部的空洞、平滑边界等,以提高分割结果的准确性和视觉效果,最终,模型输出一张分割后的图像,其中细胞核被清晰地标记出来。
图5.10 细胞图像分割原始图像
图5.11 运行细胞图像分割效果
细胞核分割的自动化对于提高生物医学研究的效率和准确性非常重要。它可以帮助研究人员快速准确地分析大量细胞图像,从而在细胞生物学、病理学和药物研发等领域发挥重要作用。
六、测评总结:
OrangePi AIpro套装是一款针对人工智能和机器学习爱好者、开发者及教育者设计的硬件工具包,核心处理器性能十分出色与完善,能够顺畅运行各种AI和机器学习算法,附带的神经网络加速器的计算能力评估。操作系统和软件库的支持,比如很容易安装TensorFlow, PyTorch等常用机器学习框架,外部设备的支持,例如摄像头、传感器等,文档和社区论坛支持的情况很开源也很到位,有足够的教程和案例辅助开发者使用,有足够的GPIO引脚和其他接口来添加额外的硬件模块,能够根据用户需求进行硬件和软件的修改和升级,与同类产品相比的性价比很高,在长时间运行复杂任务时的热管理和稳定性都很好,希望OrangePi AIpro运用到千家万户。