在上一篇文章中,我们为大家介绍了 Hello AI World 环境安装,本篇文章将会带着大家感受 10 行代码的威力。
要感受这个项目的效果,最好的方式就是先体验一下它能带来的好处。因此一开始我们就为大家提供一个比较经典的范例,只用 10 行的 python 代码,实现对 90 种类别的深度学习物件检测(object detection)识别,在 Jetson Nano 2GB 上达到 10+FPS 性能。
对于不了解深度学习物件识别的初学者来说,可能不会有太多感受,但是稍微了解这个应用的人就会很清楚,即便非常优秀的 YOLOv4 算法或者 SSD-Moblienet 算法,在 Jetson Nano 2GB 上,能做到 4~6FPS 已经不容易了。但是在这里我们不去探索这些算法的内容,因为研究算法需要比较深厚的数学基础才行。
现在我们就来看看 Jetson-inference 这个开源项目是如何做到这个结果的,这里将代码呈现给大家,直接解说每一行的用途。详细的代码如下:
在说明代码之前,建议先把这段代码敲进你的 Jetson Nano 2GB 设备里,当然这个代码也适用于 Jetson 全系列产品,自行取个文件名,例如 “10lines.py” ,可以在设备中的任何一个位置。
这里唯一要先说明的地方就是第二行的蓝色部分,这里演示的摄像头是 CSI,所以蓝色参数部分用 “csi://0”,如果您只用 USB 摄像头,只需把这个地方根据您实际的摄像头编号,改成 “/ dev / video0” 即可。
假如没有 USB 摄像头,还需找到通用格式的视频文件,把参数部分改成视频文件的完整路径名,或者把视频文件复制到这个代码的位置。最简单的视频文件可以在你 Nano 上的 “/ usr / share / visionworks / sources / data ” 下面。
其他地方无需修改。存档后执行以下指令:
第一次执行时,系统会为我们选择的神经网络模型(这里是第 5 行的 “ssd-mobilenet-v2”)去生成对应的 NVIDIA TensorRT 加速引擎,这个过程大约需要 10 分钟的时间,因此并不是当机,还请耐心等候,以后再执行相同模型时,就只需要十多秒就可以了。
如何,是不是很神奇呢?只用 10 行的 Python 代码就能实现这样的功能!
接下来就解密一下这些代码的内容,让大家体会一下 jetson-inference 为大家所打造的一个非常强大的深度学习工作环境,主要包括 “视觉深度神经网络库(Vision DNN Library)” 与 “ 工具库 (Utilities Library)”。
代码第一行 “import jetson.utils” 就是导入工具库模块,接下去透过 videoSource() 建立 input 对象、videoOutput() 建立 output 对象,关于这两部分的细节,将在接下来的文章中进一步说明。
第四行 “import jetson.inference” 就是载入本项目最重要的 “深度学习推理应用” 的模块,然后用 detectNet() 建立 net 对象,处理后面的 “物件检测推理识别” 物件检测推理识别的任务,这部分至少需要给定 “模型代号” 变数以及作为检测最低要求的阈值(threshold)。
本系统最贴心的地方,就是为每个参数值都提供一个预设值,如果你忘记了给定设定值,系统还可以正常执行。
在 while 循环里,第 7 行从数据源读取一帧图像,然后到第 8 行用一个非常简单的 net.Detect(img) 函数,就能把这张图像中满足阈值的物件找出来,存放到 detections 数组中,这是非常亮眼的一个功能。
而让我们觉得更为惊奇的是,这么一道简单指令,在我们看到的地方,已经非常紧密地集成了 NVIDIA 非常强大的 TensroRT 加速引擎,立即将性能提升了数倍以上。
很多熟悉 NVIDIA 深度学习的人,都知道 TensorRT 的性能是多么令人惊羡,但集成过程又是那么地让人揪心,如今在这个项目中,初学者完全不必面对调用 TensroRT 的艰难,却能立即享受到如此优异的性能。
接下来,还有令人惊喜的地方,第 9 行这么简单的 “output.Render(img)” 指令,可以将 detections 数组里所有检测到的物件,包括框 / 颜色、类别名称、置信度这些数据,全部叠加到图像上,并且显示到画面上。
没错,就是这么一道短短的指令,居然做了这么多的事情。如果自己写过代码去将这些数据全部叠加在一起,就非常清楚这个步骤需要花费多少代码去执行。
最后,利用一个 “net.GetNetworkFPS()” 函数就轻松获取这一帧图像的计算性能,然后用 output.SetStatus() 将这些数据在显示框顶上实时更新。
如何,这样一个 10 行 Python 代码是不是很厉害呢?这里先让大家感受一下这个开源项目的厉害之处,后面的文章将带着大家深入学习几个最重要、最常用的函数内容,让读者可以循序渐进地用这些资源,开发出自己专属的应用。
好文章,需要你的鼓励
ServiceNow宣布将以超过10亿美元收购身份安全平台Veza,这是该公司2025年一系列AI和数据重点收购的最新举措。此次收购正值企业加速部署AI代理之际,而如何管理这些非人类身份的访问权限和输出已成为普遍难题。该交易将为ServiceNow的AI控制塔提供关键的身份治理能力,帮助企业建立统一的控制平面来定义上下文相关的权限、监控代理行为并大规模执行最小权限访问策略。
北京大学团队开发的DragMesh系统通过简单拖拽操作实现3D物体的物理真实交互。该系统采用分工合作架构,结合语义理解、几何预测和动画生成三个模块,在保证运动精度的同时将计算开销降至现有方法的五分之一。系统支持实时交互,无需重新训练即可处理新物体,为虚拟现实和游戏开发提供了高效解决方案。
在生成式AI热潮中,只有英伟达和台积电真正赚到钱,其他AI产业链公司要么亏损要么利润被稀释。博通虽然在数据中心网络领域有不错的利润率,但为了不被AI浪潮抛弃,也选择进入AI业务。博通拥有730亿美元的AI积压订单,但被迫成为AI系统集成商,进一步稀释利润。第四季度博通收入180亿美元,同比增长28.2%,AI芯片收入达65亿美元。
达尔豪斯大学研究团队系统性批判了当前AI多智能体模拟的静态框架局限,提出以"动态场景演化、智能体-环境共同演化、生成式智能体架构"为核心的开放式模拟范式。该研究突破传统任务导向模式,强调AI智能体应具备自主探索、社会学习和环境重塑能力,为政策制定、教育创新和社会治理提供前所未有的模拟工具。