在本系列上一篇文章中,我们为大家展示了如何通过 OpenCV 调用 CSI/USB 摄像头,在本篇文章中,我们将向大家介绍如何执行常见机器视觉应用。
在上一篇文章中,已经简单说明了图像处理与计算机视觉的差异,并且在 Jetson Nano 2GB 上,结合 CSI 摄像头与 JetPack 所提供的 OpenCV 4.1.1 版本,实现了三种最基础的应用。每个 Python 代码都只需要 10+ 行就可以,让大家轻松感受到 Jetson Nano 2GB 的开发便利性。
本篇内容主要是在 Jetson Nano 2GB 上运用 OpenCV,执行三个有特色的计算机视觉应用,这部分会很频繁的运用到色彩空间(color space)转换技巧,在 OpenCV 上只需要一道“cv2.cvtColor()”指令就可以实现,非常简单。
接下来就开始本文的实验内容。
追踪特定颜色物件
本范例追踪“绿色”物体,执行步骤如下:
先找出“绿色”的 HSV 颜色范围,本处定在[50,100,100]至[70,255,255]
将读入的图像(frame)透过 cv2.cvtColor() 转成 HSV 格式,存到 hsv 变量
用 cv2.inRange() 函数找出 hsv 的掩码,存到 mask 变量
用 cv2.bitwize_and() 函数将 frame 与 mask 进行 AND 计算,过滤掉“非绿”部分,将结果存到 detect 变量
将原图(frame)、掩码(mask)与结果(detect) 显示在画面上

执行结果如下:

边缘检测(Edge Detection)
执行步骤如下:
这个计算必须将图像转成灰度图像,才能计算出每个物件的边缘线条
将读入的图像(frame)透过 cv2.cvtColor 转成 HSV 灰度图像,存到 hsv 变量
为了降低图形的噪点,因此需要将 HSV 灰度图进行高斯模糊(降噪)处理,直接调用 cv2.GaussianBlur() 函数进行转换,将图像存到 blur 变量中
最后调用 cv2.Canny() 函数为 blur 图像找出边际线条,存入 edges 变量中
为了显示过着中所有图像,因此先将每张图像都调整尺寸为(640,480),然后执行三次 np.concatenate() 函数,将四张图像集成为一张,便于显示。

执行结果如下:

人脸追踪+眼睛追踪
这个代码调用 OpenCV 自带的 HaarCascade 算法分类器,调用方式也很简单,需要指定脸部分类器(classifier)的位置,在 /usr/local/share/opencv4/haarcascades 下面,里面提供将近 20 种分类器,可以按照需求变更。
这个范例也将“眼睛”识别分类器放进去,并且嵌套在脸部识别的循环里面,因为眼睛一定在脸里面,这样可以做的更丰富些。
详细代码如下:

执行结果如下:蓝色框代表找到的“脸”,绿色框表示“眼睛”。

好文章,需要你的鼓励
随着人工智能和高性能计算持续推动需求增长,数据中心设计正以同样惊人的速度演进。曾经的高密度机架已成为标准配置,冷却系统在数月而非数年内完成重新设计,项目在各地区的规模和复杂性不断提升。全球工程设计咨询公司Black & White Engineering指出,液冷成为标准配置、极端机架密度管理、工业化规模交付、电网约束下的电力创新、AI驱动运营设计以及可持续性成为核心设计原则,将成为2026年塑造数据中心设计、建设和运营的六大关键趋势。
这项由ByteDance Seed、香港科技大学等机构联合完成的研究提出了"轨迹场"这一创新的4D视频表示方法。研究团队开发的Trace Anything系统能够在单次前向传递中为视频中的每个像素预测连续的三维轨迹,无需光流估计或迭代优化。通过构建大规模合成数据平台和精心设计的训练方案,该方法在轨迹估计基准上实现了最先进性能,同时推理速度比竞争方法快10倍以上,并展现了运动预测、时空融合等多种涌现能力。
Snowflake本周推送的一次更新导致全球范围内的"重大故障",用户长达13小时无法查询数据、文件导入失败并收到错误信息。初步调查显示,最新版本引入了不向后兼容的数据库架构更新,导致版本不匹配错误。此次故障影响了全球23个区域中的10个,包括美国、欧洲和亚洲多个数据中心。这是Snowflake一周内第二次发生事故。
伊斯法罕大学研究团队通过分析Google Play商店21款AI教育应用的用户评论,发现作业辅导类应用获得超80%正面评价,而语言学习和管理系统类应用表现较差。用户赞赏AI工具的快速响应和个性化指导,但抱怨收费过高、准确性不稳定等问题。研究建议开发者关注自适应个性化,政策制定者建立相关规范,未来发展方向为混合AI-人类模型。