特定区域的动作检测

本文介绍了在小项目中如何实现特定区域的动作检测。作者探讨了两种方法:使用TensorFlow的物体检测API和OpenCV的模板匹配。TensorFlow方案虽然能精确定位物体,但存在文件体积大、内存占用高和速度慢的问题。而OpenCV的模板匹配方案需要预定义模板,但更适用于特定场景。文章详细解析了两种方法的代码实现,并对关键函数如`np.squeeze()`、`zip()`和`np.where()`进行了解释。
摘要由CSDN通过智能技术生成

还是我的小项目,如果把摄像头的每一帧都送到分类器做推理,实在是没必要,只需要把检测到动作的帧送去做推理就好了。这一步的实现参考的是 Adrian Rosebrock的两篇博文Basic motion detection and tracking with Python and OpenCVHome surveillance and motion detection with the Raspberry Pi, Python, OpenCV, and Dropbox。进一步,摄像头的画面范围很大,并不需要检测镜头内的所有动作,我的需求中只需要检测画面中特定物体上有动作改变。为达到这个目的,我需要把这个物体所在的部分裁剪下来作为背景,然后检测这个背景上是否有动作。我尝试了两种方案。一个是利用tensorflow的objective detection API,识别并定位出这个特定的物体,然后裁剪。另一个是利用opencv的图像模板匹配函数matchTemplate()。当然还有第三种方案没来得及试,就是利用opencv的DNN模块。
先说第一种方案。首先,要找到objective detection API是如何物体定位的。在demo里,物体定位是调用下面这个函数。

vis_util.visualize_boxes_and_labels_on_image_array(
        image_np,
        np.squeeze(boxes),
        np.squeeze(classes)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值