每个周末都是探索与创新的时光,对于非程序员的我来说,更是如此。一次偶然的机会,我在公司的电脑上看到了一个关于AI巡检的PPT,它展示了如何通过检测摄像头中的人员或车辆等信息来触发警报。这一应用场景在工业领域中显然十分热门,引起了我极大的兴趣。
我并非专业的程序员,但总是喜欢挑战自己,尝试写一些与众不同的软件。那些日复一日的增删改查操作对我而言,既枯燥又无法带来技术上的提升。于是,我决定利用自己的业余时间,尝试实现一个类似的AI巡检软件。
软件功能亮点:
- 摄像头对接:支持RTSP协议的网络摄像头,如海康、大华等主流品牌。尽管存在1秒的延迟,但这是可以接受的。
- 目标检测:根据用户的设置,软件能够检测摄像头中出现的特定目标对象。
- 视频存储:当目标检测功能开启时,软件会每隔5分钟生成一个视频文件,方便后续分析。
技术实现原理:
为了实现这些功能,我选择了YOLOv5算法进行目标检测,这是一个高效且准确的目标检测模型。同时,为了处理摄像头的视频流和绘制检测结果,我使用了EmguCV(基于OpenCV的.NET封装)。
由于我的电脑没有GPU,所以整个程序使用CPU进行推理。虽然CPU推理速度相对较慢,但在这个项目中,它足以满足我的需求。原本我打算在主画面中实时绘制检测结果,但由于CPU推理的速度问题,视频出现了明显的延迟。为了解决这个问题,我设计了一个小窗体,并使用计时器每隔100毫秒调用一次检测函数。这样,主画面可以保持流畅,而检测结果则在小窗体中显示。
虽然我的电脑性能有限,无法实现更高级的功能(如目标出现在特定区域时触发警报、邮箱推送或声音警报等),但这个项目仍然让我收获颇丰。它不仅锻炼了我的编程能力,还让我对AI技术在实际应用中的挑战有了更深刻的认识。
主界面
设置
存储的视频
转载至:https://www.52pojie.cn/thread-1828994-1-1.html