在上一篇文章中,我们已经体验了”10行Python代码的威力”,可以明显感觉到 ”Hello AI World”的内容绝非一般应用的“Hello World”那么简单。在本篇文章中,我们将为大家介绍如何更换模型以获得不同的效果。
当然,这个项目有一个特色,那就是它非常有效地利用了“预训练模型”!事实上,在深度学习应用过程中,“训练模型”是需要耗费相当大量的时间与计算资源的,这个过程对于初学者来说难度非常高,因此想要让初学者轻松上手,就必须提供“最简单”、“最有效”的入门方式,“支持预训练模型”就是一种非常好的方法。
看一下上一篇“10lines.py”里的第5行代码:
|
5 |
net = jetson.inference.detectNet("ssd-mobilenet-v2", threshold=0.5) |
我们只要将粗体底线的“ssd-mobilenet-v2”部分进行置换,就能调用不同的预训练模型,去改变您想要检测的类型结果。这些预训练模型的来源主要有二:
在前面“项目安装”一文中,执行过程的“Download Models”部分就是下载这些预训练模型以及所需要的配套文件,下载脚步会将这些文件放置到对应的路径中,并且在C++主代码内已经做好设置。这是本文所要说明的内容。
这个部分由于牵涉更多的设定,因此会在后面的文章中进行说明。本系统已建立的模型列表如下图:

上面的模型,都是由NVIDIA为大家用高性能级别的GPU服务器,耗费数天时间所训练出来的模型,效果与质量都是很好的。前面三种都是以91类的COCO数据集训练出来的物件检测模型,三种模型直接的差异主要在性能与置信度之间。后面7种模型都是“单类”模型,它们均只能识别一种物件,我们可以对同一个视频去改变不同的模型,看看输出的结果如何,就能清楚“更换模型去改变功能”这句话的意思。
上表中与代码有关系的是第二行“CLI argument”,也就是我们只要将前面指令中的粗体底线(“ssd-mobilenet-v2”)进行置换,例如调用ped-100这个模型,就只能检测“pedestrians (行人)”这类物件,请将模型代码部分改成“pednet”,如此第5行内容就变成:
|
5 |
net = jetson.inference.detectNet("pednet", threshold=0.5) |
如果只想检测“dog(狗)”的话,就将模型代号改为“coco-dog”,去调用DetectNet-COCO-Dog这个预训练的模型,代码如下:
|
5 |
net = jetson.inference.detectNet("coco-dog", threshold=0.5) |
这么轻松的方式,就能改变调用的模型,去得到不同的结果。
为了更有效地体验不同模型的识别效果,我们用视频文件作为输入源,就更容易感受到它们之间差异,这里用系统自带的 /usr/share/visionworks/sources/data/pedestrians.mp4作为输入源,以此将10lines.py代码修改成如下:
|
1 2 3
4 5
6 7 8 9 10 |
import jetson.utils input = jetson.utils.videoSource( "/usr/share/visionworks/sources/data/pedestrians.mp4") output = jetson.utils.videoOutput("display://0")
import jetson.inference net = jetson.inference.detectNet("pednet", threshold=0.5)
while output.IsStreaming(): img = input.Capture() detections = net.Detect(img) output.Render(img) output.SetStatus("Performance {:.0f}FPS".format(net.GetNetworkFPS())) |
|
|
|

(使用ped-100模型,只检测出“Pededtrians(行人)”物件)

(使用DetectNet-COCO-Dog模型,只检测出 “Dog(狗)” 物件)
如何,是不是很简单呢?请自行尝试更换其他的模型,当然也可以将输入源改成摄像头,用你周遭的物体来试试效果。
最后,我们来看一个预训练好的模型,以系统预设的SSD-Mobilenet-v2为例,主要文件存放在
~/jetson-inference/data/networks/SSD-Mobilenet-v2里面,浏览一下里面的内容:
|
1 |
|
可以看到以下的列表:

第一个“ssd_coco_labels.txt”存放着这个模型的类别名称,您可以打开看看。
第二个“ssd_mobilenet_v2_coco.uff”就是预训练好的模型文件,附加文件名为.uff的通常是Tensorflow训练的模型,再转换过来的中间格式。
第三个文件的末尾附加名“.GPU.FP16.engine”代表是TensorRT所建立的加速引擎,支持GPU的FP16格式。
如果检查ped-100模型的话,会看到不一样的内容,执行以下指令:
|
1 |
|
可以看到以下的列表,这样的内容肯定就是由Caffe框架训练出来的模型。

好文章,需要你的鼓励
基于与英伟达的持续合作,红帽承诺为英伟达新发布的Vera Rubin平台提供"零日"支持。该企业开源软件公司旨在缩小英伟达硬件平台发布与其支持软件堆栈正式发布之间的时间差。Vera Rubin平台专为降低AI推理成本而设计,基于新的CPU、GPU和数字处理单元构建。红帽将发布定制版RHEL操作系统,支持英伟达GPU驱动和CUDA工具包,预计2026年下半年推出。
德国弗劳恩霍夫研究院提出ViTNT-FIQA人脸质量评估新方法,无需训练即可评估图像质量。该方法基于Vision Transformer层间特征稳定性原理,通过测量图像块在相邻层级间的变化幅度判断质量。在八个国际数据集上的实验显示其性能可媲美现有最先进方法,且计算效率更高,为人脸识别系统提供了即插即用的质量控制解决方案,有望广泛应用于安防监控和身份认证等领域。
谷歌在全国零售联合会会议上宣布推出通用商务协议,这是一个专为AI代理购物设计的开放标准。该协议与Shopify、Target、沃尔玛等公司合作开发,能让AI代理在产品发现到售后支持的整个购买流程中无缝协作。谷歌将在搜索AI模式中应用该协议,用户可直接从美国零售商处结账并使用Google Pay支付。此外,谷歌还推出面向零售商的企业级客户体验套件。
布朗大学联合图宾根大学的研究团队通过系统实验发现,AI医疗助手的角色设定会产生显著的情境依赖效应:医疗专业角色在急诊场景下表现卓越,准确率提升20%,但在普通医疗咨询中反而表现更差。研究揭示了AI角色扮演的"双刃剑"特性,强调需要根据具体应用场景精心设计AI身份,而非简单假设"更专业等于更安全",为AI医疗系统的安全部署提供了重要指导。