我正在做一个名为用户发起的实时对象跟踪系统的项目。这是我希望在项目中发生的事情:
1) 从网络摄像头获取连续流。
2) 用户可以使用鼠标在感兴趣的对象周围绘制一个正方形。
3) 然后从那里开始,正方形随着感兴趣的物体移动。因此,跟踪对象移动的每个位置因此称为对象跟踪。
目前的进展
我使用 dshownet(DirectShow 的 .NET 包装器)从网络摄像头获取输入。我正在将视频分割成帧。我有 4 种方法来做这个项目:
技巧一
- 有一个保存的视频
- 我加载它。
- 当视频正在播放时,我会在特定场景暂停(使用暂停按钮)它并在对象上画一个正方形。
- 当我按下播放按钮时,方 block 将与对象一起移动,没有/5 秒的处理时间 [或] 我会给应用程序一些处理时间(例如 3 分钟),然后它将从那时起播放跟踪发生。
技巧二
- 有一个保存的视频
- 我加载它。
- 当视频正在运行时,我不会暂停它,而是快速在对象上绘制一个正方形(当对象静止在某个点时)。
- 然后将在没有处理时间的情况下跟踪对象。 [或] 使用一些处理时间(延迟 10 秒)使文件播放时间更长一些。
技巧三
- 我从网络摄像头获取 1 分钟的输入。
- 将该视频保存到文件中
- 并执行方式 1 或方式 2
技巧 4 -(显然这看起来更难)
- 持续从网络摄像头获取输入
- 在对象没有任何移动时(例如,当一个人坐在椅子上时),在对象周围画一个正方形,中间不要停顿
- 然后通过移动方 block 和对象来显示跟踪,没有处理时间 [或] 2 秒的轻微处理时间,这样延迟就不会很明显。
要跟踪的对象:-
基本上我可以跟踪任何东西,因为我用鼠标画画
- 我打算使用全身(但如果这很麻烦.. 下一个选项)
- 我会尝试追踪一个人的脸(显然是通过用鼠标绘制区域。)
编码时间: 1 又 1/2 个月
进度: 分割时仍然出现错误。 (有人建议先开始分割保存的视频,我现在正在尝试)
我的问题
1) 我可以在 1 个月和 1/2 个月的时间范围内实现哪种技术(四种中的)?
2) 编码,是 java + 一些 java 框架 还是 C#.net 和 emgucv/AForge。 net/Dshownet [顺便说一句,我在 java 方面的知识 好 而在C#.net]??
提前致谢
最佳答案
您可以使用 Java Media Framework 和 ImageJ 库在 Java 中实现技术 1、2、3。对于技术 4,鉴于时间限制,您最好使用 C++ 或其他非解释性语言来实现。
关于c# - 在 java(一些 java API)或 C#(emgucv、dshownet、Aforge.NET)中进行实时对象跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2911531/