{'fraction_non_alphanumeric': 0.03426819370547389, 'fraction_numerical': 0.011430246189917937, 'mean_word_length': 4.410709929251037, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 3, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Multiple Hypothesis Tracking Algorithm for Multi-Target Multi-Camera Tracking with Disjoint Views

In this study, a multiple hypothesis tracking (MHT) algorithm for multi-target multi-camera tracking (MCT) with disjoint views is proposed. Our method forms track-hypothesis trees, and each branch of them represents a multi-camera track of a target that may move within a camera as well as move across cameras. Furthermore, multi-target tracking within a camera is performed simultaneously with the tree formation by manipulating a status of each track hypothesis. Each status represents three different stages of a multi-camera track: tracking, searching, and end-of-track. The tracking status means targets are tracked by a single camera tracker. In the searching status, the disappeared targets are examined if they reappear in other cameras. The end-of-track status does the target exited the camera network due to its lengthy invisibility. These three status assists MHT to form the track-hypothesis trees for multi-camera tracking. Furthermore, they present a gating technique for eliminating of unlikely observation-to-track association. In the experiments, they evaluate the proposed method using two datasets, DukeMTMC and NLPR-MCT, which demonstrates that the proposed method outperforms the state-of-the-art method in terms of improvement of the accuracy. In addition, they show that the proposed method can operate in real-time and online.


Introduction
A large number of cameras recently have been deployed to cover wide area. Besides, tracking multiple targets in a camera network becomes an important and challenging problem in visual surveillance systems since in-person monitoring wide area is costly and needs a lot of effort. Hence, it is desirable to develop multi-target multi-camera tracking (MTMCT) algorithm. In this paper, our goal is to develop an algorithm that can track multiple targets (especially for pedestrians in this work) in a camera network. The targets may move within a camera or move to another camera and the coverage of each camera does not overlap. To achieve this goal, we need to solve both single camera tracking (SCT) and multi-camera tracking (MCT). There has been great amount of effort made to SCT whereas relatively smaller amount of effort has been done for MCT with disjoint views. Moreover, most MCT approaches [1][2][3] only focus on tracking targets across cameras by assuming solved SCT in advance; thus, jointly tracking multiple targets in both within and across cameras still remains to be explored much further [4].
The proposed MHT algorithm tracks targets across cameras by maintaining the identities of observations which are obtained by solving SCT that tracks targets in within-camera. Thus, our method jointly tracks targets in both within and across cameras. In this work, we adopt the real-time and online method [5] to produce observations by tracking multiple targets in within-camera. These observations obtained from each camera are fed into the proposed MHT algorithm which solves MCT problem. The proposed MHT algorithm forms track-hypothesis trees with obtained observations either by adding a child node to hypothesis tree, which describes the association between an observation and an existing track hypothesis, or by creating a new tree with one root node indicating an observation, which describes the initiation of a new multi-camera track. Each branch in track-hypothesis trees represents different across camera data association result (i.e., a multi-camera track). To work in concert with SCT, every node in track-hypothesis trees designates certain observation and all leaf nodes have a status. There are three statuses for the proposed MHT and each of which represents a different stage of a multi-camera track, tracking, searching, and end-of-track. With the status, the MHT can form the track-hypothesis trees while simultaneously solving SCT to produce observations. Then it selects the best set of track hypotheses as the multi-camera tracks from the track-hypothesis trees. Furthermore, we propose gating mechanism to eliminate unlikely observation-to-track pairing; this also prevents track-hypothesis trees from unnecessary growth. We propose two gating mechanisms, speed gating and temporal gating in order to deal different tracking scenarios (tracking targets on the ground plane or image plane).
For the appearance feature of an observation, we used simple averaged color histogram as an appearance model after Convolutional Pose Machine [6] is applied to an image patch of a person in order to capture the pose variation. The experimental results shows that our method achieves state-of-the-art performance on DukeMTMC dataset and performs comparable to the state-of-theart method on NLPR_MCT dataset. Furthermore, we demonstrate that proposed method is able to operate in real-time with real-time SCT in Section 4.5.
The remainder of this paper organized as follows. In Section 2, we review relevant previous works. The detailed explanation of proposed method is given in Section 3. Section 3.1 describes how the proposed MHT forms track-hypothesis trees while it simultaneously works with SCT. The proposed gating mechanism is explained in Section 3.2. In Section 4, we report experiment results with conducted on DukeMTMC and NLPR_MCT datasets. Finally, we conclude the paper in Section 5.

Related Works
Single camera tracking (SCT), which tracks multiple targets in a single scene, is also called multi-object tracking (MOT). Many approaches have been proposed to improve the MOT. Track-bydetection, which optimizes a global objective function over many frames have emerged as a powerful MOT algorithm in recent years [7]. Network flow-based methods are successful approaches in track-by-detection techniques [8][9][10]. These methods efficiently optimize their objective function using the push-relabel method [9] and successive shortest path algorithms [8,10]. However, the pairwise terms in network flow formulation are restrictive in representing higher-order motion models, e.g., linear motion model and constant velocity model [11]. In contrast, formalizing multi-object tracking with multidimensional assignment (MDA) problem produces more general representations of computed trajectories since MDA can exploit the higher-order information [11,12]. Solutions for MDA are MHT [12][13][14] and Markov Chain Monte Carlo (MCMC) data association [15]. While MCMC data association exploits the stochastic method, MHT searches the solution space deterministic way. Multiple Hypothesis Tracking(MHT) was first presented in [16] and is regarded as one of the earliest successful algorithm for visual tracking. MHT maintains all track hypotheses by building trackhypothesis trees whose branch represent a possible data association result(a track hypothesis). The probability of a track hypothesis is computed by evaluating the quality of data association result the branch had. An ambiguity of data association which occurs due to either short occlusion or missed detection does not usually matter for MHT since the best hypothesis is computed with higher-order data association information and entire track hypotheses. In this paper, we applied MHT to solve the multi-camera tracking problem.
Multi-camera tracking aims to establish target correspondences among observations obtained from multiple cameras so as to achieve consistent target labelling across all cameras in the camera network [4]. Earlier research works in MCT only try to address tracking targets across cameras, assuming solved SCT. However, researchers have argued recently that assumptions of availability of intra-camera tracks are unrealistic [3]. Therefore, solving MCT problem by simultaneously treating problem of SCT seems to address more realistic problem. Y.T Tesfaye et al. [4] proposed a constrained dominant set clustering (CDSC) based framework that utilizes a three layers hierarchical approach, where SCT problem is solved using first two layers, and later in the third layer MCT problem is solved by merging tracks of the same person across different cameras. In this paper, we also solve the problem of across camera data association(MCT) by the proposed MHT while SCT is simultaneously treated by real-time multi-object tracker such as [5,17].
Multi-camera tracking with disjoint views is a challenging problem, since illumination and pose of a camera changes across cameras as well as a track discontinues owing to the blind area of camera network or miss detections. Some MCT methods try to relax the variation in illumination using appearance cue. O. Javed et al. [18] suggested the brightness transfer function to deal with illumination change as a target moves across cameras. B.J. Prosser et al. [19] used Cumulative Brightness Transfer Function that can learn from very sparse training set and A. Gilbert et al. [20] proposed incremental learning method to model the color variations. S. Srivastaba et al. [21] suggested color correction method for MCT in order to achieve color consistency for each target across cameras. Recent methods have used not only the appearance cue but also the spacetime cue to improve the performance of MCT. C. Kuo et al. [22] first learned an appearance model for each target and combined it with space-time information. They show that their proposed combined model improved the performance of across-camera tracking. S. Zhang et al. [23] tracked multiple interacting targets by formulating the problem into network flow problem. They identified the group merge and split events using space-time relationship among targets. In [1], they learn across-camera transfer model using both space-time and appearance cues. They designed space-time transfer model as normal distribution and learned the parameters using cross-correlation function. For appearance transfer model, they used color transfer method to capture color variations across the cameras. Ergys et al.solved SCT [5] by transforming the problem into graph partitioning problem and extending their approach to multicamera tracking with disjoint views. There are some approaches to solve MCT problem using person re-identification [24,25]. L. Chen et al. [24] proposed a deep neural network architecture composed of convolutional neural network (CNN) and recurrent neural network (RNN) that can jointly exploit the spatial and temporal information for the video-based person re-identification. C.W. Wu et al. [25] designed a track-based multi-camera tracking (T-MCT) framework with person re-identification algorithms. Their method found multicamera tracks using re-identification algorithms as both the feature extractor of an object and the distance metric between two object. They also proposed new evaluation metrics for MCT to report the performance of T-MCT with various re-identification algorithms.

Method
For a multi-camera multi-target tracking system with disjoint views, the set S = {sc} c=1:C is the set of all cameras in the camera network, where C is the number of cameras. Let K denote the most recent time. Single camera tracker of each camera generates observations o i so that they form a set of observations O = {o i } i=1:N where N is the total number of observations observed until the most recent time K. An observation contains all the information about the target while it was being tracked by a single camera tracker. Specifically, the i-th observation o i = {A i , X i , π i } consists of the appearance feature A i , the track X i and the camera in which it appears π i ∈ S. The track X i is a collection of all track histories of observation o i observed in π i , i.e. X i = {x l i } l=1:|Xi| where |X i | represents the length of track of o i recorded until time K and refers the l-th track history of o i containing time stamp t l i , position (u l i , v l i ) and size (w l i , h l i ) in image plane of camera π i , and y l i = (x l i , y l i ) is a position on ground plane. Note that depending on the scenario, x l i might not contain y l i . With this observation set, the MCT system outputs a set of multi-camera tracks, T = {T j } j=1:|T | , where |T | is the size of set T and T j = {o Ij } Ij ⊆{1:N } refers to the j-th multi-camera track which consists of observations, i.e. a number of observations(or single observation) which have the same identity composes a multi-camera track. The I j is an index set whose elements indicate elements of set O; hence, o Ij is a subset of O. Here, we introduce a notation {I l j } l=1:|Ij | enumerating the set I j and I l j (the l-th element of I j ) indicates an observation that is also the l-th observation of T j . Thus, we can write T l j = o I l j = o i , which means that the l-th observation of the multicamera track T j is the o i in the set O. Therefore, |I j | is not only the number of elements in I j but also the number of observations that the T j had. Finally, for all observations and all multi-camera tracks there is the constraint that one observation must belong to a unique multi-camera track such that: i.e. all tracks in the set T do not conflict each other.

Multiple Hypothesis Tracking for MCT
In this section, we introduce how a track-hypothesis tree is formed for a multi-camera tracking system. The tree of our method maintains multi-camera tracks by initiating, terminating, updating with new observations. A node of the tree represents an observation that is generated by SCT. All branches of the tree represent all possible hypotheses that originate from a single observation or root node. A key strategy of MHT is to delay data association decisions by keeping multiple hypotheses active until data association ambiguities are resolved [12]. As new observations are received, MHT [26] forms new trees to initiate tracks for each new observation. Then existing tracks are updated with new observations that were within the gate. Moreover, all existing tracks are updated with dummy observations in order to describe the hypothesis that they are not updated with any current observation(missing detection). Consequently, the number of track hypotheses continues to expand and many of the tracks are inconsistent since the same observations are used for more than one track. In the tracking literature, a scan is the time interval and sensor FoV (field of view) where observations are collected [26]. With previous MHT algorithms for vision based target tracking systems [12,13], images were scanned frame-by-frame to gather observations using a feature detector such as person detector [27] and corner  detector [28]. Hence, the depth of their track-hypothesis trees grow with every frame. However, unlike their approach, we gather observations by scanning the entire camera network within a fixed amount of time; consequently, our tree is extended after a scan. Setting an appropriate time interval for one scan is important, because a scan should not contain multi-camera tracks. For example, if the interval is long enough to have observations that could form a multicamera tracks; then the system loses the chance to associate them correctly( Figure 2a). On the other hand, too-short time interval for a scan leads to increased computational overhead as well as deepened track-hypothesis tree due to the frequent update of trees. The amount of time for a scan generally depends on the datasets. Furthermore, to prevent the trees from growing meaninglessly by appending only dummy node to all branches, trees are extended with dummy only when a scan contains new observations ( Figure 2b). This enhances the efficiency of tree formation if pedestrians enter into the camera network sparsely. Now we introduce the three statuses {w 1 , w 2 , w 3 }. Every leaf node of our track-hypothesis trees should have a status in order that a branch, or a track hypothesis, has a status. Note that intermediate nodes have no effect on the status. The first status, w 1 , is tracking status, meaning that the target is being tracked by a single camera tracker. Therefore, all tracks are initiated with status w 1 and the track hypothesis in this status is not updated with new observations. If the target disappears from a camera, the status of leaves which refer to the target changes to searching, w 2 . A leaf node with status w 2 is updated with new observations that satisfy the gating condition. The last status, w 3 , is end-of-track, which means that the target exits the camera network due to its invisibility for a long period of time. A branch with this status will not be updated with new observations except with dummy observations. A leaf with status w 2 changes to status w 3 by checking the elapsed time from when the leaf began status w 2 to most recent time K(refer to Section 3.2). Note that only leaf nodes in status w 2 can be updated with new observations by appending a node referring to a new observation as its children. Otherwise, a leaf node in either status w 1 or w 3 only appends a dummy observation indicating the same observation as its parent after the scan that receives any new observations. Thus, once the status of a track hypothesis has changed to w 3 , it can not revert to either w 1 or w 2 . From here, we explain how we form the tree using the example in Figure 1a. In Figure 1b, after the first scan, a tree(tree 1) with a node indicating observation o 1 is formed to make a track hypothesis that o 1 initiates a new multi-camera track. After the second scan, the status of the leaf node of tree 1 changes to w 2 because o 1 is no longer seen by Camera 1. In the third scan, two new observations, o 2 and o 3 , are received; hence, two trees, tree 2 and tree 3, are newly formed for o 2 and o 3 , respectively. Then, the existing track hypothesis in status w 2 (the root node of tree 1) is associated with new observations by appending nodes referring to o 2 and o 3 , respectively. A dummy node is also added in order to describe the hypothesis that both o 2 and o 3 were not o 1 (Figure 1c). Note that we only consider the temporal gating scheme in this example for simplicity and the gating time of o 1 covers initiation time of both observations, t 1 2 and t 1 3 . After the third scan, because the gating time of o 1 is expired, the status of leaf node referring to o 1 is changed to w 3 (rightmost leaf of tree 1 in Figure 1c). Next, two targets exit from the Camera 2 in the fourth scan. The status of the leaf nodes related to the exited targets is changed. For o 2 , the status of two leaves are changed to w 2 because o 2 occurred twice in the track-hypothesis trees(leftmost leaf node of tree 1 and root node of tree 2 in Figure 1d). This works again for o 3 . Because no new observation is received in this scan, trees are not extended with dummy nodes. Finally, Figure 1e shows the result of track-hypothesis tree formation after the sixth scan. With these track trees, all possible data association hypotheses can be made. The first branch of tree 1 shows a multi-camera track with a hypothesis that describes that the observations o 1 , o 2 , and o 4 have the same identity, while the last branch of tree 1 shows that the multi-camera track consists of only one observation, o 1 (Figure 1e).
To compute the set that satisfy the constraint (1), each track hypothesis should manage the incompatible track lists. For example, in Figure 1e Then the set of best track hypotheses is computed by solving a maximum weighted independent set problem [12] which will be described in the Section 3.5.  An example of short scan time. The existing track hypotheses will be updated with new and dummy observations at k-th and (k + 1)-th scan. Note that the dummy node is not appended at (k − 1)-th scan where no new observation was received. Figure 1a explains the above example.

Gating
Gating is a technique for eliminating unlikely observation-to-track pairings. In [12,13], the spatial distance between the predicted location of an existing track and a newly received observation was used to determine whether to update an existing track with a new observation. They used the velocity of existing tracks to compute the predicted locations. If the distance between the predicted location and observation exceeds a pre-determined threshold, the track is not updated with that observation. However, for multi-camera tracking with disjoint views, predicting the location of re-appearance is very difficult because targets move through blinded areas for a long time. To resolve this problem, distance between observations is used instead of predicting the location. Note that, in this case, the world coordinates of any given track are known. Let o i be the last observation of an existing track and o j be the newly received observation. Then the following inequality checks the speed gating, where y l i = (x l i , y l i ) is the world coordinate of the l-th track of o i on ground plane, G min speed is the minimum speed of a target, and G max speed is the maximum speed of a target. These can either be set by the system designer or learned from training samples. This assumed that a target can not move faster (slower) than the threshold. β is the control parameter of the distance metric between Euclidean and Manhattan distance, 0 ≤ β ≤ 1, which is also set by the system designer. This parameter is beneficial since we do not know what will transpire in blind areas. If an observation-to-track pair does not satisfy the inequality, then that pair will not be associated. A leaf node in status w 2 that refers to observation o i changes status to w 3 if specified time, G end i , has elapsed after when the leaf node began the status Garea is the area of the ground plane of the camera network andẏ i is the estimated speed of o i .
In some situations, it is impossible to locate targets that are in tracking status(w 1 ) due to the absence of calibration information and map information. In this case, we use temporal gating instead of speed gating. First, we estimate entry/exit points for each camera either by learning from training samples or by getting information from the system designer. Let E = {e j } j=1:|E| be the set of entry/exit points, and e j is the j-th entry/exit point, where |E| represents the total number of entry/exit points in the camera network. Then π i of o i has two elements, π en i and π ex i , which represent the entry and exit point of the observation, respectively, i.e. π i = {π en i , π ex i }, and π en i , π ex i ∈ E. After that, we learned the transition matrix between each pairs of entry/exit points as well as the mean and standard deviation of transition time using training samples. Let Φ be the transition matrix, a square matrix with size |E| × |E|. An element Φ i,j , i-th row and j-th column, is set to one if a transition from e i to e j exists. Otherwise, it is set to zero. For all Φ i,j = 1, we learned the mean and standard deviation matrix of transition time with training samples. Then the temporal gating for the existing track whose leaf node designates o i and newly received observation o j checks the followings: where G min time and G max time are the minimum and maximum threshold for temporal gating, and which can be learned from the training samples. Note that middle-term of the inequality is always positive for MCT with disjoint view, otherwise its absolute value is needed. If the mean transition time between π ex i and π en j is µ and its standard deviation is σ, G min time and G max time could be set to µ − α 1 σ and µ + α 2 σ, respectively, where α 1 , α 2 are set by the system designer.
If an observation-to-track pair does not satisfy the check, then that pair will not be associated. A leaf node in status w 2 referring to observation o i changes the status to w 3 if the time gap between last observed time and recent time K is beyond the predetermined gating time, i.e. it will change the state to w 3 if K − t |Xi| i is larger than G end . In this case, G end is used for all observations.

Pruning
Since there is potential for a combinatory explosion in the number of track hypotheses that our MHT system could generate, pruning the track-hypothesis tree is an essential task for MHT. We adopted the standard N -scan pruning technique [12,26]. The standard Nscan pruning algorithm assumes that any ambiguity at K is resolved by time K + N , i.e. it defines the number of frames to look ahead in order to resolve an ambiguity [13]. Note that in our case, N refers not to the number of frames but to the number of scans since our trees grow after the scan where any new observation is received. An example of N -scan pruning is described in Figure 1f, where N = 2. First, finding the best track hypothesis set is needed before pruning the trees. Computing the best track hypothesis set using the track score is described in Section 3.4 and 3.5. After we identify the best hypothesis set, we ascend to the parent node N times from each selected leaf node to find the decision node. At that node, we prune the subtree that diverged from the best track. Consequently, we have a tree of depth N below the decision node, while the tree is degenerated into simple list of assignments above the decision node.

Scoring a track
The evaluation of a track hypothesis should deal all aspects of data association quality that a multi-camera track possess. According to the original formulation [26], we define a likelihood ratio(L) of a track T j = {o Ij } to be where hypotheses H 1 and H 0 are the true target and false alarm hypotheses of given combination of data, i.e. p({o Ij }|H i ) is probability density function evaluated with given data {o Ij } under the pp. 1-10 assumption that H i is correct. The P 0 (H i ) is a prior probability of H i . The conditional probabilities in Equation (4) can be partitioned into a product of two terms, L A and L X , assuming that the appearance and kinematic information of a target are independent each other. Therefore, P0(H0) , the second term and third term in rightmost side are L A (T j ) and L X (T j ), respectively. The Equation (5) can be further factorized by chain-rules: where assuming that received observations are conditionally independent under the false alarm hypothesis. L A (T k j ) and L X (T k j ) are the appearance and kinematic likelihood ratio when the k-th observation is associated with the existing track T k−1 j . For likelihood of the kinematic term, L X , we define two different measures in order to differentiate the tracking scenarios. The first one is for the scenario that tracking targets on the image plane of each camera is only available. In this case, we assumed that transition time across cameras is normally distributed, i.e.
where the mean µ and variance σ 2 would be estimated using training samples which moved from π ex The other kinematic likelihood function is for the scenario where we can locate a target on the ground plane of the camera network; hence, measuring distance between tracks is feasible. Letẏ i be the moving speed of an observation o i and it is estimated by averaging: Then the likelihood function is also assumed to be Gaussian: whered is the estimated travel distance of o I k−1 j , and d (which comes from the Equation (2) Note that although bothd and d are function of X I k j and X I k−1 j we dropped them for the simplicity of notation. The γ is the precision for the Gaussian distribution. For the false alarm hypothesis of kinematic term, p(X I k j , π I k j |H 0 ), we set to constant probability, 0 < C 1 < 1.
To compute the appearance likelihood, we first built an color histogram for the appearance feature Thus,Ā I 1:k j is the averaged feature over k associated observations. This averaging model is used because if the track hypothesis consistently associated the observations which had the same identity then the averaged feature would have the ability to classify correctly than that of inconsistently associated track due to its stable distribution of colors. Then the appearance likelihood is computed by comparing two histogram: (11) where D h is similarity measure between two histograms and it can be any metric such as, Bhattacharyya, histogram intersection, earth mover distance and so on. However, some metrics should be modified in order to use it as the probability (i.e., 0 ≤ D h ≤ 1). The false alarm hypothesis of appearance term, p(A I k j |H 0 ), is the constant probability 0 < C 2 < 1.
Next, we define the log likelihood ratio, or score, for a multicamera track, T j = {o Ij } consists of |I j | observations, which is the sum of |I j | kinematics and |I j | appearance related terms plus the initiation score. That is: where log L 0 is track initiation score and we set it to a constant C 0 . Then the score of a track can be computed recursively [26]: where log L(T . Finally, we introduce the weights, w A and w X , that control contribution of appearance and kinematics to the score, respectively: where w A + w X = 1. The score is continuously updated as long as the track hypothesis is updated with a new observation.

Computing the Best Hypothesis Set
In this section, we describe how the best hypothesis set is computed among all track-hypothesis trees that maintain all the possible multi-camera tracks using all observations. The best hypothesis set is computed every scan if the scan received any new observation, and then tree pruning is performed to avoid exponential growth of trees.  Figure 1e. The red vertices have been selected for the best hypothesis set.
To compute the best hypothesis set, we adopt the approach of [12]. They change the task to the Maximum Weighted Independent Set (MWIS) problem. MWIS [14] is equivalent to the Multi-Dimensional Assignment (MDA) problem in the context of MHT [12]. MDA is used to compute the most probable set of tracks [26,29] and its MDA formulation for MHT was introduced in [26,29].
Let G = (Z, E) be the undirected graph for MWIS, which corresponds to a set of track-hypothesis trees generated by MHT. Then the solution of MWIS can be determined by solving the discrete optimization problem: Each vertex z i ∈ Z is assigned to a track hypothesis T i as well as a vertex z i has weight c i that corresponds to its track score, log L(T i ).
There is an undirected edge, (i, j) ∈ E, linking two vertices z i and z j if the two tracks are incompatible due to shared observations, i.e. if they are violating constraint (1). Therefore, the constraint in Equation (15) is a discretized form of constraint (1). In the graph G, an independence set is a set of vertices no two of which are adjacent, i.e. all tracks in the independence set are compatible. The maximum weighted independence set in G is an independence set with maximum total weight, i.e. a set of compatible tracks of which the total track score is maxima. An example of the MWIS graph is shown in Figure 3. It corresponds to the set of track-hypothesis trees in Figure 1e. Each vertex represents a track hypothesis(each branch of a tree) and the observations used for that track are shown at the vertex with three-digits, where zero denotes a dummy observation. Note that since three scans(first, third and fifth scans) have received observations (among the six scans in Figure 1a) a track can contain at most three observations(Refer to Section 3.1 for more details). The red vertices are selected for the best hypothesis set in the example (Figure 3). We used the Gurobi optimizer to solve the above MWIS problem.

Experiments
We evaluated our method using two datasets: DukeMTMC [30] and NLPR_MCT [31]. These datasets were designed for a multicamera tracking system. The DukeMTMC dataset consists of eight synchronized cameras, which was recorded at 1080p resolution and 60 fps. The dataset contains more than 7,000 single camera trajectories and over 2,000 unique identities over 85 minutes for each camera, a total of more than 10 h. We used ID-Measure [30] with the DukeMTMC dataset to evaluate our multi-camera tracking performance. The NLPR_MCT dataset provides four different videos that are, at most, 25 minutes long, and they all have a resolution of 320 × 240. To measure the performance for this dataset, we used the MCTA metric [31]. Table 1 shows the parameter setting for each dataset in this section. Note that G speed is in meters per second and G time is in seconds. To solve the SCT problem as well as to generate observations that is inputted to the proposed MHT, we used online and real-time MOT [5] for each camera. Utilizing the online and real-time single camera tracker would not affect the online and real-time capability of unified framework. In Section 4.5, we show that our unified framework works in real-time provided that the SCT problem is solved in real-time.

Appearance Modeling
In this subsection, the appearance model for an observation is described. The appearance feature A i is the averaged histogram of observation o i that is learned while under tracking status(w 1 ) of o i . To be more specific, let a l i be the extracted feature from corresponding image location x l i , which is the l-th track histroy of observation i. Then the appearance feature A l i that is computed from start to the l-th track history is: where l ≤ |X i |. Note that to keep the online nature of the proposed method, A l i is used to compute Equation (11) instead of A i . For appearance feature, we use an HSV (hue, saturation, value) color histogram for upper and lower body parts where the bin size is 16, 4 and 4 for Hue, Saturation and Value channels respectively. Furthermore, to capture the pose variations of a person, we use the Convolutional Pose Machine [6] to estimate the pose of a given image patch of a person. The estimated pose of a person is depicted in Figure 4a. To extract the upper body part, four joints(right shoulder, right hip, left shoulder, left hip) are used (Figure 4b). Six joints(right hip, right knee, right ankle, left hip, left knee, left ankle) are used for the bottom part of the body (Figure 4c). Once those body parts are extracted from an image patch, an HSV histogram, a l i , is computed. Even though we have used color histogram as the appearance feature and simple averaging model in this work, other online appearnce model can be applied to proposed MHT method since it is known that MHT can be extended by including online learned discriminative models without difficulty [12].

DukeMTMC dataset
The DukeMTMC is a large, fully-annotated, calibrated dataset that captures the campus of Duke University, and was recorded using eight fixed cameras. The dataset has an RoI (region of interest) area for each camera where an evaluation is made. The topology of the fixed cameras is shown in Figure 5 where there is no field overlap between any pair of cameras (Figure 5b). The cameras used to acquire the dataset were synchronized and recorded at 1080p resolution and 60fps. The dataset contains more than 7,000 single camera pp. 1-10  trajectories and over 2,000 unique identities captures during 85 minutes of recording for each camera, thus, a total of more than 10 h. The video was split into one training/validation set and two test sets, testeasy and test-hard set. The difficulty of the test-easy set is similar to the training/validation set, and it is 25 minutes long. The test-hard set is 10 minute-long videos and contains a group of dozens of people traversing multiple cameras. The evaluation criteria for the DukeMTMC dataset is ID-Measure [30], which measures how well a tracker determine who is where at all times. This criteria has three measures: IDP (Identification precision), IDR (Identification Recall), and IDF1 (Identification F-Score). The IDP (IDR) is the fraction of computed (ground truth) detections that are correctly identified. IDF1 is the ratio of correctly identified detections over the average number of ground-truth and computed detections. This process is different from CLEAR MOT [32], which reports the amount of incorrect decisions made by a tracker. Moreover unlike CLEAR MOT, it can measure not only the single camera tracking results but also the multi-camera tracking results. We reported the single camera tracking performance with both ID-Measure and CLEAR MOT in order to make it clear how much proposed method improved the final tracking performance given these single camera tracks.
We compared the quantitative performance of our method with other multi-target multi-camera tracking methods [4,30] using the DukeMTMC dataset. The results are shown in Table 2 and Table   3. The evaluation on the Test-easy is shown in Table 2, while the performance on the Test-hard is shown in Table 3. In both tables, the last row is for comparison of multi-camera tracking performance and the rest are for comparison of single camera tracking performance. We used public detection responses as the input to our method. The results of single camera tracking between ours and [30] were different, even though we used the public single camera tracker that is published by E. Ristani et al. [5], because we modified the original one to fit our multi-camera tracking method. * The last row of Table 2 shows that the performance of our multi-camera tracking method outperformed the state-of-the-art method [4] on the Test-easy sequence by 5.4% in IDF1, 2.8% in IDP and 7.1% in IDR metrics. In the Test-hard sequence, the proposed method ranked second with difference of 0.8% in IDF1 and 4.9% in IDP metrics, while it was first in IDR metrics (improvement of 1.3%, Table 3). Finally, the proposed MHT algorithm for the multi-camera tracking method outperformed the method of [30] even in the complicated video sequence(Test-hard). Even if the [30]'s average IDF1 over single cameras was higher than ours by 1%, the IDF1 of their multi-camera tracking performance was even lower than ours by 2.8%( Table 3).

NLPR_MCT dataset
The NLPR_MCT dataset consists of four sub-datasets. A sub-dataset is depicted in Figure 6 † . Each sub-dataset includes 3-5 cameras with non-overlapping scenes and recordes different situations according to the number of people (ranging from 14 to 255) and the level of illumination changes and occlusions [31]. The videos contain both real scenes and simulated environments. Each video was nearly 20 minutes long (except Dataset 3), with a rate of 25 fps.
In this dataset, the topological connection information for every pair of entry/exit points for each sub-dataset is provided. We split the π i of an observation o i into π en i and π ex i , that represent the entry point and exit point of observation o i , respectively. Because the  dataset did not provide separate training and test datasets, we learned the parameters for our method as well as the transition matrix, the mean and standard deviation of transition time for each possible transition pair of entry/exit points using first 70 percent of each dataset.
The evaluation criteria used for the NLPR_MCT dataset was MCTA [31], multi-camera object tracking accuracy. It was modified based on CLEAR MOT [32] and can be applied to MCT. The metric contains three terms (detection ability, single camera tracking ability and MCT ability), which are multiplied to produce one measure. In this experiment, we used annotated single camera trajectories by assuming that SCT problem is solved in advance * . We compared the performance of our method with the state-of-the-art methods in Table 4. The last column, Avg. Rank, is the averaged ranking over four sub-datasets, where the rank was decided by the MCTA score. This criterion is also used in MCT challenge to compare the results with others. The first place for each sub-dataset was shown in boldface. As a result, both [33] and our method tied for second place by the Avg. Rank of 3.5. However, it is worth noticing that our method has more stable performance than that of [33] because the rank standard deviation of our method over all sub-datasets is 1 while the standard deviation of [33] is 1.9149. Again, the MCTA standard deviation of our method over all sub-datasets is 0.1320 while that of [33] is 0.1915. * This setting is identical to Experiment 1 of MCT challenge.

N-scan Pruning
In this section, we report how our MHT algorithm is sensitive to the parameter N of N -scan pruning. The N -scan pruning algorithm assumes that any ambiguity at K is resolved by time K + N . The N -scan pruning was utilized in the multi-scan assignment approach to MHT because it solves the data association problems with recent N scans of the data thanks to N -scan pruning [26,29]. We evaluated the ID-Measure for various N , 1 ≤ N ≤ 20, on the Trainval-Mini of the DukeMTMC dataset. The Trainval-Mini is a small part of the training/validation set of the DukeMTMC dataset and is about 18 minutes long sequence. The parameter settings were the same as before except the N . The intersection-over-union is fixed to 0.5 for this experiment. The experimental result is shown in Figure 7. The result demonstrates that our MHT algorithm is negatively affected by N in IDP while it is slightly positively affected in IDR when N is increasing. Therefore, the proposed method has a small sensitivity to N in terms of IDF1 because the IDP and the IDR are negatively correlated with respect to the N . The difference between the minimum(58.02%) and maximum(58.87%) values in IDF1 was 0.85%. The minimum and maximum value of IDP was 64.97% and 66.57%, respectively, while that of IDR was 51.98% and 53.08%, respectively.

Real-time implementation
In this section, a real-time implementation of the proposed method is described. Full implementation of the proposed method was programmed by Matlab with a desktop PC(Intel i7-4790K 4.0 Ghz . For the computation efficiency, we have discarded the Convolutional Pose Machine in the appearance modeling and switched the SCT algorithm from [5] to GM-PHD(Gaussian Mixture Probability Hypothesis Density) filter [17] for real-time implementation. There was no other reasons for switching the SCT algorithm except that we had already implemented the GMPHD in C++. Real-time implementation was developed using Visual C++ with the multi-thread programming and OpenCV in Windows 10 OS. The test hardware environment included a PC with Intel i7-7700K 4.5 Ghz 4-core CPU, 32GB RAM. To test the processing speed, we have generated a new dataset consisting of six videos with 640 × 480 resolution and about 7 minutes long( Figure 8). This dataset, which includes appearance of up to 25 targets, was recorded in the campus of Gwangju Institute of Science and Technology. To detect a person in the dataset, we applied the pedestrian detector [36], which processes every frame of each camera to detect pedestrians. The average processing time (includes the processing time of detection, SCT and MCT) was about 15 frames per second for all videos. Note that each video(camera) was processed in parallel by multi-thread programming. Therefore, this result demonstrates the real-time performance of our method. We used the Gurobi optimizer to solve MWIS problems in this implementations.

Conclusion
In this paper, we applied a multiple hypothesis tracking algorithm to handle the multi-target multi-camera tracking problem with disjoint views. Our method forms track-hypothesis trees whose branch represents a multi-camera track which describes the trajectory of a target that may move within a camera as well as move across cameras. Furthermore, tracking targets within a camera is performed simultaneously with the tree formation by manipulating a status of each track hypothesis. Besides, two gating schemes have been proposed to differentiate the tracking scenarios. The experimental results shows that our method achieves state-of-the-art performance on DukeMTMC dataset and performs comparable to the state-of-theart method on NLPR_MCT dataset. We also show that the proposed method can solve the problem under online and real-time conditions, provided that the single camera tracker solves in such conditions as well. MHT can be extended by including online learned discriminative appearance models for each track hypothesis [12]. Therefore, as for the future work, we will investigate online learning techniques that could learn a model for each hypothesis since we used a simple averaging model for appearance modeling in this work.