## 3 Proposed Method  
Based on the basic theory and its extension introduced in Section 2, a normal single light source scenario can support 3D human skeletonization. In this section, a five-step algorithm is proposed according to the illustrated theory as shown in Figure 5. The procedure of the proposed method is shown in Algorithm 4. Figure 5: The flow chart of skeleton synthesis procedure based on SSSE. ```
Input:\(t_{i}\): time coordinate for each frame; \(Shc_{t_{i}}\):captured human shadow in frame \(t_{i}\); \(P_{t_{i}}\): human pose in frame \(t_{i}\); \(S\): light source position; \(\{Sq_{sub}\}\): the set of sub-blocks on the ground surface plane \(S\) \(\{M_{sub}^{S}\}\): the marker position coordinate sets for sub-block \(Sq_{sub}\) on \(S\); \(\{M_{sub}^{Im}\}\): the pixel coordinates set of \(\{M_{sub}^{S}\}\) on the image coordinate plane. Output:\(Sk_{t_{i}}\):3D human skeleton corresponding to \(Sh_{t_{i}}\) at time coordinate \(t_{i}\)
1 foreach\(Sq_{sub}\)do
2\(A_{sub}=Par(M_{sub}^{S},M_{sub}^{Im})\)
3 end foreach\(A_{mat}=\{A_{sub}\}\). 4 foreach\(P_{t_{i}}\) at \(t_{i}\)do
5\(\overline{D_{t_{i}}}=Pre(P_{t_{i}})\)
6\(\{JP_{t_{i}}^{k}\}=Loc(Sh_{t_{i}},\overline{D_{t_{i}}})\)
7\(C_{t_{i}}=Lab(\{JP_{t_{i}}^{k}\})\)
8\(A_{t_{i}\to j_{k}}=Par(\{JP_{t_{i}}^{k}\},\{JP_{j_{k}}^{k}\})\)
9 end foreach\(Shc_{t_{i}}\) at \(t_{i}\)do
10\(Sh_{t_{i}}=F(Shc_{t_{i}},A_{mat})\)
11\(Sh_{t_{i}}^{t}=F(Sh_{t_{i}},A_{t_{i}\to j_{k}})\)
12\(S_{t_{i}}^{t}=f(S,A_{t_{i}\to j_{k}})\)
13 end foreachPose Category\(C\)do
14\(Sk_{j_{k}}=Sym(\{Sh_{t_{i}}^{\prime}\},\{S_{t_{i}}^{\prime}\})\)
15 end foreach\(t_{i}\)do
16\(Sk_{t_{i}}=T_{j_{k}\to t_{i}}(Sk_{j_{k}})\)
17 end fore
```  
**Algorithm 4**Skeleton synthesis procedure  
Pose Classification  
In a human activity sequence captured under a single light source scenario, frames at different time coordinates are classified based on human poses [8] on the captured frames. For each captured human pose \(P_{t_{i}}\) at time coordinate \(t_{i}\), the denoised distance curve between contour points and the gravity center of \(P_{t_{i}}\) can be extracted based on the method presented in Equation (19). The deployment of the extraction method on the human pose \(P_{t_{i}}\) is presented in Equation (34). \[\overline{D_{t_{i}}}=Pre(P_{t_{i}}) \tag{34}\]  
Based on the method presented in Equation (20), a major peak joint position set \(\{JP_{t_{i}}^{k}\}\) is extracted from the human contour \(P_{t_{i}}\), including the head position \(JP_{t_{i}}^{1}\), the left foot position \(JP_{t_{i}}^{2}\) and right foot position \(JP_{t_{i}}^{3}\). \[\{JP_{t_{i}}^{k}\}=Loc(Sh_{t_{i}},\overline{D_{t_{i}}}) \tag{35}\]  
Based on the normalized peak joint positions, raw frames containing same class human poses \(P_{t_{i}}\) is aggregated to the human pose category \(P_{j}\) based on the automatic unsupervised clustering illustrated in Equation (28). \(C_{t_{i}}\) is the category label of human pose \(P_{t_{i}}\) as shown in Equation (36). \[C_{t_{i}}=Lab(\{JP_{t_{i}}^{k}\}) \tag{36}\]Preprocess  
The preprocess procedure transforms the captured shadow contour pixel coordinates \(Shc_{t_{i}}\) into the real-world coordinates \(Sh_{t_{i}}\). Before the preprocess of the first shadow contour \(Shc_{t_{i}}\), all the \(A_{sub}\in A_{mat}\) are calculated and saved for further preprocess procedures. For each square unit area \(St_{sub}\), the related projection parameter matrices \(A_{sub}\) are calculated based on four real-world coordinates \(\{M_{sub}^{S}\}\) and their corresponding imaging coordinates \(\{M_{sub}^{lm}\}\) based on Equation (12). Based on the calibration matrix set \(A_{mat}=\{A_{sub}\}\), the global projection transformation \(F(Shc_{t_{i}},A_{mat})\) can be figured out. Based on the projection transformation presented in Equation (37), captured human shadow contour pixel coordinates \(Shc_{t_{i}}\) can be extracted from each of the raw frames and transformed into the real-world coordinates \(Sh_{t_{i}}\).