Input: The original training dataset ; |
Predefined parameters , , , and ; |
Output: Decision tree ; |
(1) Build a bootstrap dataset by random sampling from with replacement; |
(2) Create a root node and set its depth to 1, then assign all cuboids in to it; |
(3) Initialize an unsettled node queue and push the root node into ; |
(4) while do |
(5) Pop the first node in ; |
(6) if depth of is larger than or cuboids assigned to belong to the same action and position then |
(7) Label node as a leaf, and then calculate and from cuboids at node ; |
(8) Add a triple into decision tree ; |
(9) else |
(10) Initialize the feature candidate set ; |
(11) if random number then |
(12) Add a set of randomly selected optical flow features to ; |
(13) else |
(14) Add a set of randomly selected HOG3D features to ; |
(15) end if |
(16) if random number then |
(17) Add two-dimensional temporal context features to ; |
(18) end if |
(19) , generate a random number ; |
(20) for each do |
(21) if then |
(22) Search for the corresponding threshold and compute information gain in terms of action labels |
of cuboids arriving at ; |
(23) else |
(24) Search for the corresponding threshold and compute information gain in terms of positions of |
cuboids arriving at ; |
(25) end if |
(26) if then |
(27) ; |
(28) end if |
(29) end for |
(30) Create left children node and right children node , set their depth to , and assign each cuboid |
arriving at to or according to and ; then push node and into ; |
(31) Add a quintuple into decision tree ; |
(32) end if |
(33)end while |
(34)return Decision tree ; |