![]() |
OpenCV 4.12.0
开源计算机视觉
|
基于匹配的跟踪算法接口。 更多...
#include <opencv2/tracking/tracking_by_matching.hpp>
公共类型 | |
| using | Descriptor = std::shared_ptr<IImageDescriptor> |
| using | Distance = std::shared_ptr<IDescriptorDistance> |
公有成员函数 | |
| virtual | ~ITrackerByMatching () |
| 跟踪器的析构函数。 | |
| virtual size_t | count () const =0 |
| 返回计数的人数。 | |
| virtual const Descriptor & | descriptorFast () const =0 |
| 快速描述符获取器。 | |
| virtual const Descriptor & | descriptorStrong () const =0 |
| 强描述符获取器。 | |
| virtual const Distance & | distanceFast () const =0 |
| 快速距离获取器。 | |
| virtual const Distance & | distanceStrong () const =0 |
| 强距离获取器。 | |
| virtual cv::Mat | drawActiveTracks (const cv::Mat &frame)=0 |
| 在给定帧上绘制活动轨迹。 | |
| virtual void | dropForgottenTrack (size_t track_id)=0 |
| dropForgottenTrack 检查轨迹是否在很久以前丢失并将其从内存中移除。 | |
| virtual void | dropForgottenTracks ()=0 |
| dropForgottenTracks 从内存中移除很久以前丢失的轨迹。 | |
| virtual std::unordered_map< size_t, std::vector< cv::Point > > | getActiveTracks () const =0 |
| 获取要绘制的活动轨迹。 | |
| virtual bool | isTrackForgotten (size_t id) const =0 |
| isTrackForgotten 如果轨迹被遗忘,则返回 true。 | |
| virtual bool | isTrackValid (size_t track_id) const =0 |
| isTrackValid 检查轨迹是否有效(持续时间 > 阈值)。 | |
| virtual const TrackerParams & | params () const =0 |
| 管道参数获取器。 | |
| virtual void | process (const cv::Mat &frame, const TrackedObjects &detections, uint64_t timestamp)=0 |
| 处理给定帧。 | |
| virtual void | setDescriptorFast (const Descriptor &val)=0 |
| 快速描述符设置器。 | |
| virtual void | setDescriptorStrong (const Descriptor &val)=0 |
| 强描述符设置器。 | |
| virtual void | setDistanceFast (const Distance &val)=0 |
| 快速距离设置器。 | |
| virtual void | setDistanceStrong (const Distance &val)=0 |
| 强距离设置器。 | |
| virtual void | setParams (const TrackerParams ¶ms)=0 |
| 管道参数设置器。 | |
| virtual TrackedObjects | trackedDetections () const =0 |
| 获取已跟踪的检测。 | |
| virtual const std::unordered_map< size_t, Track > & | tracks () const =0 |
| tracks 返回所有轨迹,包括已遗忘的(很久以前丢失的)。 | |
基于匹配的跟踪算法接口。
此类是基于匹配的跟踪系统的实现。它使用两种不同的外观度量来计算边界框之间的亲和度:一种快速描述符和一种强描述符。每次都解决分配问题。在本例中,分配问题是如何在现有轨迹和最近检测到的对象之间建立对应关系。第一步是计算轨迹和检测之间的亲和矩阵。亲和度等于 appearance_affinity * motion_affinity * shape_affinity。其中 appearance 为 1 - distance(tracklet_fast_dscr, detection_fast_dscr)。第二步是使用 Kuhn-Munkres 算法解决分配问题。如果轨迹和检测之间以低置信度(亲和度)建立了对应关系,则使用强描述符来确定轨迹和检测之间是否存在对应关系。
| using cv::detail::tracking::tbm::ITrackerByMatching::Descriptor = std::shared_ptr<IImageDescriptor> |
| using cv::detail::tracking::tbm::ITrackerByMatching::Distance = std::shared_ptr<IDescriptorDistance> |
|
inlinevirtual |
跟踪器的析构函数。
|
纯虚函数 |
返回计数的人数。
|
纯虚函数 |
快速描述符获取器。
|
纯虚函数 |
强描述符获取器。
|
纯虚函数 |
快速距离获取器。
|
纯虚函数 |
强距离获取器。
|
纯虚函数 |
在给定帧上绘制活动轨迹。
| [输入] | frame | 彩色图像 (CV_8UC3)。 |
|
纯虚函数 |
dropForgottenTrack 检查轨迹是否在很久以前丢失并将其从内存中移除。
|
纯虚函数 |
dropForgottenTracks 从内存中移除很久以前丢失的轨迹。
|
纯虚函数 |
获取要绘制的活动轨迹。
|
纯虚函数 |
|
纯虚函数 |
isTrackValid 检查轨迹是否有效(持续时间 > 阈值)。
| 轨迹ID | 被检查轨迹的索引。 |
|
纯虚函数 |
管道参数获取器。
|
纯虚函数 |
处理给定帧。
| [输入] | frame | 彩色图像 (CV_8UC3)。 |
| [输入] | 检测 | 帧上检测到的对象。 |
| [输入] | timestamp | 时间戳必须为正值,并以毫秒为单位 |
|
纯虚函数 |
快速描述符设置器。
| [输入] | val | 管道中使用的快速描述符。 |
|
纯虚函数 |
强描述符设置器。
| [输入] | val | 管道中使用的强描述符。 |
|
纯虚函数 |
快速距离设置器。
| [输入] | val | 管道中使用的快速距离。 |
|
纯虚函数 |
强距离设置器。
| [输入] | val | 管道中使用的强距离。 |
|
纯虚函数 |
管道参数设置器。
| [输入] | params | 管道参数。 |
|
纯虚函数 |
获取已跟踪的检测。
|
纯虚函数 |
tracks 返回所有轨迹,包括已遗忘的(很久以前丢失的)。