📄 activeshapetracker.h_pets2001
字号:
/* This source file is the copyright property of the University of Leeds ('The University'). Permission to use, copy, modify, and distribute this source file for educational, research, and not-for-profit purposes, without fee and without a signed licensing agreement, is hereby granted, provided that the above copyright notice, this paragraph and the following three paragraphs appear in all copies, modifications, and distributions. In no event shall The University be liable to any party for direct, indirect, special, incidental or consequential damages, including lost profits, arising out of the use of this software and its documentation. The software is provided without warranty. The University has no obligation to provide maintenance, support, updates, enhancements, or modifications. This software was written by Adam Baumberg, Vision Group, School of Computer Studies, University of Leeds, U.K. The code and use thereof should be attributed to the author where appropriate (including demonstrations which rely on it's use).*//*************************************************************** * C - C++ Header * * File : ActiveShapeTracker.h * * Module : ActiveShapeTracker * * Author : A M Baumberg (CoMIR) * * Creation Date : Tue Oct 22 13:32:53 1996 * * Comments : High level people tracker without ground plane info * ***************************************************************/#ifndef __ACTIVE_SHAPE_TRACKER_H__#define __ACTIVE_SHAPE_TRACKER_H__#include "OcclusionImage.h"#include "ActiveModel.h"#include "MotionDetector.h"#include "TrackedProfileSet.h"class ActiveShapeTracker{ // configuration variablespublic: static int SMALL_NO_FRAMES;protected: static realno START_FITNESS_THRESHOLD; // nts: was FITNESS_THRESHOLD static realno TRACK_FITNESS_THRESHOLD; // nts: was VERY_POOR_FIT static realno MIN_SIGNIFICANCE; static realno TERMINATION_THRESHOLD; static int TEMPORAL_SKIP; Image *previous_frame; bool detect_new; // used to handle occlusions OcclusionImage *occ_handler; // local image fitting ActiveModel *local_optimiser; // current tracked people ProfileSet *profiles; // static objects/people (not tracked any more) TrackedProfileSet *static_profiles; MotionDetector* detect_motion; // uncertainties for Kalman filtering // relative to the initial object height static realno init_pos_sd; static realno init_vel_sd; static realno noise_vel_sd; static realno noise_acc_sd; static realno init_scale_sd; // the std dev of initial scale estimate static realno noise_scale_sd; // the std dev of scale noise term static realno init_theta_sd; // the std dev of initial theta estimate static realno noise_theta_sd; // the std dev of theta noise term ///// distances between non-people profiles, tags whether objects were matched realno profile_dist[1024][1024]; bool matched_tag [1024];public: ActiveShapeTracker(OcclusionImage*, ActiveModel*, MotionDetector*, ProfileSet* = NULL); ActiveShapeTracker(ImageSource *video_source, char *pca_file = NULL, ProfileSet *profiles_out = NULL, EdgeDetector *edges = NULL, TrackedProfileSet *static_profiles_out = NULL); // tracking loop for each new image void MainLoop (unsigned int max_objects = 32); // get the tracked profiles TrackedProfileSet *get_tracked_profiles() { return (TrackedProfileSet *) profiles; }protected: void predict_profiles(); void track_old_objects(); // nts: changed name from track_all() void track_new_objects(); void initialise_track(TrackedProfile* ); ///// nts: new Sep 11 and 15, 2001 void match_profiles(TrackedProfileSet *old_prf, ProfileSet *new_prf); void combine_close_profiles(ProfileSet *prf, realno max_bbox_dist); void split_wide_profiles(ProfileSet *prf);};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -