基于PIC32MZ EF MCU的驱动视频监控系统

基于PIC32MZ EF MCU的驱动视频监控系统,第1张

  在视频监控方面,设计师和他们的客户长期以来一直被迫满足于效率极低的系统,这些系统依赖于“愚蠢”的批量图像捕获和存档,绝大多数记录的内容是不感兴趣的,而感兴趣的内容假设它已经存档,它本身就很难在存档中查明。然而,现在,功能强大、节能且具有成本效益的处理器、图像传感器和存储设备与日益复杂的软件相结合,为系统开发人员提供了将宝贵的计算机视觉处理能力整合到从消费者监控系统到应用程序的机会。可穿戴的“生活博客”相机。

  智能的、事件驱动的视频监控仅在例如人或其他感兴趣的对象进入画面时记录图像,并且仅在对象留在画面中时才记录图像。这种自主智能在历史上可能仅在政府、军队和其他高端客户使用的昂贵、笨重、耗电的设备中提供,现在它可以以消费者友好的价格提供,电池寿命长,并且以一种形式因素小而轻,足以美观地坐在架子上。

  您可以利用当今视觉处理硬件和软件提供的潜力做些什么?以下是基于消费者监控系统案例研究的一些想法:

  一个基本设计可能会在它感应到帧中的运动时开始记录,并持续一段固定的时间。稍微复杂一点的方法是可变长度记录,直到发现物体运动停止和/或物体从帧中消失。

  然而,这种方法可能会产生大量由吹树叶、经过的车辆等引起的“误报”。因此,如果温血动物是唯一感兴趣的对象,您可能需要在可见光相机上添加红外探测器或其他热传感器。更一般地说,可用算法可以让您微调对象“触发器”的大小、颜色、距离、移动速率和其他阈值参数。

  如果你只关心有洞察力的人怎么办?面部检测功能可以在这方面提供帮助。您甚至可能有兴趣在有人进入画面时触发相机……除非那个人是您自己、您的配偶、您的孩子、邮递员等。为此,您将需要更强大的面部识别设施。

  OpenCV 计算机视觉库

  与典型的一样,该项目从其软件定义和开发计划开始(并且从根本上受其约束)。在过去的几十年里,计算机视觉主要是一个学术研究领域;因此,在这个特定领域还没有一个大型、成熟的行业专业知识库。此外,学术实验往往不能广泛适用于现实世界的实施,例如,环境照明和天气条件可能因一种使用情况而异,以及偏离研究实验室中发现的更受控制的条件。

  幸运的是,像往常一样,开源社区提供了资源帮助。OpenCV(开源计算机视觉)库起源于英特尔的研究部门;公司在 2000 年的 CVPR(IEEE Computer Vision and Pattern RecogniTIon,著名的计算机视觉会议)上正式向公众公开。在前五年的 beta 测试中,OpenCV 在 2006 年获得了 v1.0“黄金”地位,三年后是 v2.0,2015 年年中是 v3.0(截至去年 12 月,v3.1 是最新版本)。

  OpenCV 在 BSD 许可下发布,可免费用于学术和商业用途。它采用优化的 C/C++ 编写,具有 C++、C、PythonJava 接口,支持 Windows、Linux、Mac OS、iOSAndroid *** 作系统。值得注意的是,对于这个特定的监控摄像头项目,该库包含 2,500 多种算法,包括可用于识别和跟踪对象、检测和识别人脸以及对人类行为进行分类的算法。

  Microchip Technology 的 PIC32MZ EF 系列 MCU

  然而,值得一提的是使用 OpenCV 的一个潜在缺点。该库以英特尔和 PC 为中心的起源反映在其中包含的许多基础代码都是基于浮点的这一事实,这对于某些仅定点的嵌入式系统设计可能存在问题。说实话,大多数计算机视觉功能甚至不需要浮点精度。因此,一些处理器供应商已经开发了部分或全部 OpenCV 库的架构定制版本,处理代码的浮点到定点转换以及提供其他优化。但是,如果您坚持自己进行转换,那么这项工作可能会因成本和进度而受到限制。

  Microchip 的新型PIC32MZ EF MCU为 OpenCV 浮点问题提供了一种直接的替代解决方案(图 1)。它们的核心是高性能 32 位 MIPS microApTIve 处理器,运行频率高达 200 MHz,能够处理各种计算机视觉功能。此外,为了反映 48 个成员产品系列名称中的“EF”后缀,Microchip 还在整数 CPU 旁边嵌入了一个 32 位和 64 位符合 IEEE 754 的七级 FPU,能够以不变的方式运行浮点 OpenCV 代码并且高速。

基于PIC32MZ EF MCU的驱动视频监控系统,pYYBAGMNecqAbciHAAKus3faHCc663.png,第2张

  图 1:高性能 CPU 与 32 位和 64 位 FPU 协处理器的组合使 Microchip 的 PIC32MZ EF MCU 在使用开源代码时成为引人注目的候选者。(图片由微芯科技提供)

  PIC32MZ EF 的其他有用方面包括其集成的 10/100 Mbit 以太网 MAC 和大量系统接口(品种和数量在某种程度上取决于封装和引脚分配……MCU 系列有多种选择)。MAC 与外部 PHY 相结合,可以直接(如果您选择有线以太网是您选择的网络技术)或通过外部有线到无线以太网桥接间接支持监控摄像机的网络连接需求。或者,您可以通过连接到 PIC32MZ EF USB 2.0 或其他接口端口的外部收发器来实现无线蜂窝和/或以太网连接。

  图像传感器替代品

  前面提到的 MCU 接口多样性不仅有利于提供网络连接多样性,而且有利于图像传感器的灵活性。将相机连接到 PIC32MZ EF 的一种直接方法是在设计中加入 OmniVision Technologies OVM7690 VGA 分辨率相机模块,通过 8 位 I/O 端口连接到MCU(图 2)。这种方法有几个关键原因是有益的;OVM7690 已经包含晶圆级光学元件,例如 64° 视场(对角线)、F/3.0 镜头,因此您无需在设计中添加单独的光学子系统。此外,OVM7690 嵌入了一个专用的图像处理器,从而减轻了 PIC32MZ EF 的图像预处理任务,例如去马赛克、重新缩放、格式转换和曝光控制。

基于PIC32MZ EF MCU的驱动视频监控系统,pYYBAGMNeeGANOMcAAHyuerEM2Y756.png,第3张

  图 2:集成相机模块吹捧设计简单(顶部),但它提供的图像虽然令人赏心悦目,但与传统图像传感器的未处理输出(底部)相比,它可能不太适合计算机视觉处理。(图片分别由 OmniVision Technologies 和 ON Semiconductor 提供)

  但是,存在可能迫使您转而使用传统图像传感器(例如安森美半导体的 VGA 分辨率 NOIL1SM0300A)与您自己设计的镜头并通过其 SPI 端口之一连接到 PIC32MZ EF 的合理情况。首先,人眼喜欢的图像可能反过来被视为对计算机视觉处理算法有害。例如,由图像预处理器自动完成的边缘增强可能会导致将对象与其背景区分开来的任务复杂化。自动曝光控制、黑白电平平衡、色彩校正以及通常由内置在相机模块中的图像协处理器默认完成的类似任务也是如此。

  例如,您可能还需要与传感器模块制造商提供的不同的镜头焦距和/或光圈。但是,无论您使用集成摄像头模块还是独立图像传感器,您都可能会发现具有成本效益的 VGA 分辨率产品选项就足够了;有时,您甚至只需要更便宜的 QVGA 或 CIF 分辨率产品。唯一可能需要超过 3 Mpixels 分辨率的情况是,如果您试图辨别远处的物体,或者在特别恶劣的环境观察条件下,这两种情况都会受益于更大的源图像细节。如果您的目标客户坚持观看“高清”视频,您也可以选择更高分辨率的图像传感器或摄像头,

  本地大容量存储

  回想一下,该项目的基本目标是仅在相机“看到”的感兴趣事件发生时才录制视频,并且仅在该事件持续时才录制。在这样做的过程中,该实施最大限度地减少了设计所需的闪存或其他存储技术的容量(更不用说在此过程中节省宝贵的电池寿命)。尽管如此,虽然 512 KB 到 2 MB 的闪存以及集成在各种 PIC32MZ EF MCU 系列成员中的 128 KB 到 512 KB RAM 可能足以满足非易失性代码存储和瞬态数据存储的目的,但更高容量的外部存储视频剪辑本身仍然是必要的。

  当然,您总是可以使用独立的 NAND 闪存设备(或其中一些),通过 I/O 总线与 MCU 配对。但是,您需要开发自己的媒体管理软件,以处理后台“垃圾收集”清理已填充有效和/或停用视频数据的闪存擦除块,以及磨损级别媒体,以防止某些擦除块与其他擦除块的“热”过度循环。此外,这种媒体管理需要由 MCU 本身处理,从而消耗宝贵的处理器周期,否则这些周期可能会专门用于计算机视觉处理和其他任务。

  相反,请考虑使用包含自己的媒体管理控制器的闪存大容量存储解决方案。选项包括可移动 SD 卡(以及更小的 mini SD 和 micro SD 兄弟),以及Micron Technology 的 BGA 封装 e.MMC NAND 闪存; 这两个选项都通过少引脚 I/O 总线连接到 PIC32MZ EF MCU。例如,根据捕获的帧分辨率、帧速率和压缩格式,美光的 32 GByte e.MMC 应该能够让您存储数十分钟到数小时的视频。此外,通过电子邮件、短信或其他警报,您可以将新视频的捕获状态(连同视频本身的部分或全部)传达给监控系统所有者;视频将保留在摄像机中,以供后续查看、存档和/或删除。

  具有集成媒体管理控制器的闪存大容量存储解决方案既可以释放系统处理器来处理其他任务,又可以简化您的软件开发工作。(图片由美光科技提供)

  结论

  诚然,这个项目描述并不是包罗万象的。例如,仍需要添加 AC/DC 和 DC 步进电源子系统,并且您可能还需要包含麦克风和 ADC,以便将音频与图像一起录制。但是,它涵盖了设计的一些关键部分。每种算法越复杂,组合的越多,最终导致 PIC32MZ EF 的 CPU 和 FPU 的处理潜力超载的可能性就越大。话虽如此,用于对象识别的新兴卷积神经网络深度学习”技术等新算法以及对现有算法的优化一直在出现。

基于PIC32MZ EF MCU的驱动视频监控系统,poYBAGMNefSAdSIpAAE6u07Wdyk416.png,第4张

  图 :卷积神经网络 (CNN) 和其他“深度学习”方法一旦使用一系列参考图像进行训练,就可以在大量处理和内存需求的权衡下提供令人印象深刻的对象识别结果。(图片由维基百科提供)

  强烈建议在生产前进行大量现场测试;不可避免地,您会遇到在产品开发过程中没有考虑到的环境条件和使用场景,这将需要对算法进行微调。除了实现上的细微差别之外,运行 OpenCV 等开源软件的 PIC32MZ EF MCU 等经济高效的处理器与传感器或相机模块捕获的图像、存储到常驻闪存并通过网络连接传输的图像相结合,创造了所有各种有趣的应用:现有产品的增强和全新的产品类别。稍后我们将有更多关于 CNN 的内容。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2998508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-26
下一篇 2022-09-26

发表评论

登录后才能评论

评论列表(0条)

保存