OpenCVSharp中的目标跟踪

众所周知,OpenCV提供了8种目标跟踪算法,它们是:

  • BOOSTING
  • MIL
  • KCF
  • TLD
  • MEADIANFLOW
  • GOTURN
  • MOSSE
  • CSRT

而OpenCVSharp (4.5x)中,实现了常用的四种:MIL、KCF、GOTURN、CSRT。

具体而言,它们是在OpenCVSharp.Tracking 命名空间下的 TrackerCSRT, TrackGOTURN, TrackerKCF, TrackerMIL 等类。

这些跟踪器用法几乎是一模一样的,基本上是先用 Create()方法获得一个算法实例、用跟踪目标ROI初始化 Init( ), 然后以视频帧的听像数据更新 Update( ), 获得目标的新位置从而实现对目标的跟踪。

private void button2_Click(object sender, EventArgs e)
{
            play = true;
            if (pictureBox2.Image != null)
            {
                switch (comboBox1.SelectedIndex)
                {
                    case 0:
                    default:
                        tracker = TrackerCSRT.Create();
                        break;
                    case 1:
                        tracker = TrackerGOTURN.Create();
                        break;
                    case 2:
                        tracker = TrackerKCF.Create();
                        break;
                    case 3:
                        tracker = TrackerMIL.Create();
                        break;
                }
                tracker.Init(currentFrame, roi);
            }
}
private void timer1_Tick(object sender, EventArgs e)
 {
      if (play)
      {
                capture.Read(currentFrame);
                if (currentFrame.Empty())
                {
                    play = false;
                    pictureBox1.Image = null;
                    pictureBox2.Image = null;

                    timer1.Enabled = false;
                    return;
                }
                if (pictureBox2.Image != null && tracker != null)
                {
                    tracker.Update(currentFrame, ref roi);
                    Cv2.Rectangle(currentFrame, roi, Scalar.Red);
                }
                pictureBox1.Image = BitmapConverter.ToBitmap(currentFrame);
     }
}

由于GOTURN是基于深度学习模型的算法,所以需要提供训练好的模型文件(放置在运行目录下)。模型文件可以从这里下载:https://github.com/spmallick/goturn-files

为了方便对比几种算法的效果,这里编写了一个带GUI界面的程序。选择好跟踪算法,加载视频文件后,可以用鼠标画出想跟踪的目标,然后播放视频就可以看到目标跟踪的效果。

 (视频播放时也可随时选取,重新播放即可)

 图中这段视频中,衣着差不多的一群人来回地在三岔路口走动,聚集又散开,不断穿插,甚至倒着走,再加上故意设置的周围环境影响(尤其是灯柱),对目标跟踪算法是一个极大的考验。

VS2019工程打包在这里:https://download.csdn.net/download/jimtien/20687207

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值