1.方案设计
参考链接:1
高空抛物流程很简单,只需要分为两步,第一步为动态目标检测,第二步为动态目标跟踪。
(1)动态目标检测
帧差法,光流法,背景建模。
(2)轨迹跟踪
因为动态目标检测出来的是一个个的目标块,不知道上一帧与下一帧的目标对应关系,因此需要跟踪算法,将目标一一对应起来。我们唯一知道的就是在一帧里面的许多目标框,能不能只依据坐标来跟踪多个目标呢?答案是有,那就是SORT算法,其核心算法是匈牙利算法+卡尔曼滤波。
2.理论研究
(1)卡尔曼滤波
参考链接:2
(2)匈牙利
参考链接:3
3.算法实现
(1)遇到的第一个问题
环境:window+vscode+anaconda+python
问题:创建虚拟环境,一直无法成功激活虚拟环境,如下图所示
解决方法:
参考链接:6
先打开powershell,输入指令初始化
conda init powershell
然后输入指令获得授权
set-ExecutionPolicy RemoteSigned
(2)遇到的第二个问题
问题:无法成功下载opencv的安装包,如下图所示
解决方法:
输入指令
pip install opencv-python
不过这个方法存在一定的运气,需要看网络情况,否则容易下载失败。
(3)遇到的第三个问题
问题:明明有opencv的库,却一直说没有
方法:输入指令替换 run code
Python xx.py
还有一些比较小的问题,最终终于把代码跑起来了。
参考代码:7