Showing preview only (1,282K chars total). Download the full file or copy to clipboard to get everything.
Repository: mc-jesus/face_detect_n_track
Branch: master
Commit: c524889e7eb2
Files: 8
Total size: 1.2 MB
Directory structure:
gitextract_0qwnpsa1/
├── CMakeLists.txt
├── LICENSE
├── README.md
├── VideoFaceDetector.cpp
├── VideoFaceDetector.h
├── haarcascade_frontalface_default.xml
├── main.cpp
└── old_main.cpp
================================================
FILE CONTENTS
================================================
================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.6)
project(faceDetectionNTracking)
set(CMAKE_CXX_STANDARD 14)
file(COPY haarcascade_frontalface_default.xml DESTINATION ${PROJECT_BINARY_DIR})
# OpenCV
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
set(SOURCE_FILES main.cpp VideoFaceDetector.cpp VideoFaceDetector.h)
add_executable(demo ${SOURCE_FILES})
target_link_libraries(demo ${OpenCV_LIBS})
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2015 mc-jesus
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
# [Youtube video](https://youtu.be/lkFBWUjwDl8)
# Usage
First you need to create a `VideoCapture` object that you'll use as a source. Then pass the path to your cascade file along with the `VideoCapture` object to the `VideoFaceDetector`.
cv::VideoCapture camera(0);
if (!camera.isOpened()) {
fprintf(stderr, "Error getting camera...\n");
exit(1);
}
VideoFaceDetector detector(CASCADE_FILE, camera);
Now you can use your `VideoFaceDetector` object just like a regular `VideoCapture` object to get frames. It will automatically detect a face in the frame which you can access with `VideoFaceDetector::face()` and `VideoFaceDetector::facePosition()`
cv::Mat frame;
detector >> frame; // same as detector.getFrameAndDetect(frame);
cv::Rect face = detector.face();
cv::Point facePos = detector.facePosition();
You can change the `VideoCapture` object the detector is hooked to with `VideoFaceDetector::setVideoCapture(cv::VideoCapture &videoCapture)` and retrieve it with `VideoFaceDetector::videoCapture()`.
You can change the cascade file with `VideoFaceDetector::setFaceCascade(const std::string cascadeFilePath)` and retrieve the cascade classifier with `VideoFaceDetector::faceCascade()`.
You can change the size to which the detector resizes the frames internally with `VideoFaceDetector::setResizedWidth()` and retrieve it with `VideoFaceDetector::resizedWidth()`. This can speed up the detection but the tradeoff is precision. The default setting is 320px.
You can change the template matching max duration with `VideoFaceDetector::setTemplateMatchingMaxDuration(const double s)` and retrieve it with `VideoFaceDetector::templateMatchingMaxDuration()`. The default value is 3 seconds. This is the max time the algorithm tracks using template matching and after this time the algorithm starts tracking in the whole image again. See algorithm description for more details.
# Head detection and real time tracking
I've recently been woriking on a project which required head tracking. It ran on Android so it had to be efficient in order to run fast and smooth on mobile devices.
I tried to find a reliable and fast face tracking algorithm online but all I found was slow-ih implementations so I decided to make my own algorithm that would run at least 15 fps on mobile devices. I only needed to track the primary user so I used that fact to speed up the algorithm.
# Haar cascades
Haar cascades are currently the fastest face detection algorithm we have. However, the algorithm needs some fine tuning to get really fast and it has one flaw. If the face is at an angle it can't detect it.
# Template matching
Template matching is a technique used to find a smaller image in a larger one. It works by sliding the small image accross the big one and it uses math to calculate which part of the bigger image is most likely to be the small image. This algorithm is nice because it always returns a value, unlike Haar cascades which is returns a position only if it finds a face.
# The algorithm
The algorithm I came up with is a hybrid using Haar cascades with template matching as a fallback when Haar fails. It has two routines for detecting faces using Haar cascades. One routine is used for the inital detection of a face and it's slow and clunky. Once it's found, it's position is remembered and a region of interest is calculated around it. The other routine is used to detect faces in this region of interest. This speeds up the detection significantly. Also it searches for a face +/-20% size of the face from the prior frame. This also boosts the performance of the algorithm.
This makes the algorithm fast but it's still shitty as it fails when you rotate your face at an angle. Template matching to the rescue. If Haar cascades fail, the template matching algorithm calculates the most likely position of face based on the last detected face template. This makes the algorithm reliable and tracks the face pretty good. Template matching continues until one of two things happen. Either Haar cascades redetect a face, or the template matching fails and the tracking windows loses the face. In the face that template matching fails, there is a timer implemented that will turn off template matching after 2 seconds of tracking and reinitialize face tracking with the slower Haar cascades over the complete frame.
I'm not sure any of this made any sense to you so here's this diagram that will make it all really easy to understand... I hope.
[](https://youtu.be/lkFBWUjwDl8)
================================================
FILE: VideoFaceDetector.cpp
================================================
#include "VideoFaceDetector.h"
#include <iostream>
#include <opencv2\imgproc.hpp>
const double VideoFaceDetector::TICK_FREQUENCY = cv::getTickFrequency();
VideoFaceDetector::VideoFaceDetector(const std::string cascadeFilePath, cv::VideoCapture &videoCapture)
{
setFaceCascade(cascadeFilePath);
setVideoCapture(videoCapture);
}
void VideoFaceDetector::setVideoCapture(cv::VideoCapture &videoCapture)
{
m_videoCapture = &videoCapture;
}
cv::VideoCapture *VideoFaceDetector::videoCapture() const
{
return m_videoCapture;
}
void VideoFaceDetector::setFaceCascade(const std::string cascadeFilePath)
{
if (m_faceCascade == NULL) {
m_faceCascade = new cv::CascadeClassifier(cascadeFilePath);
}
else {
m_faceCascade->load(cascadeFilePath);
}
if (m_faceCascade->empty()) {
std::cerr << "Error creating cascade classifier. Make sure the file" << std::endl
<< cascadeFilePath << " exists." << std::endl;
}
}
cv::CascadeClassifier *VideoFaceDetector::faceCascade() const
{
return m_faceCascade;
}
void VideoFaceDetector::setResizedWidth(const int width)
{
m_resizedWidth = std::max(width, 1);
}
int VideoFaceDetector::resizedWidth() const
{
return m_resizedWidth;
}
bool VideoFaceDetector::isFaceFound() const
{
return m_foundFace;
}
cv::Rect VideoFaceDetector::face() const
{
cv::Rect faceRect = m_trackedFace;
faceRect.x = (int)(faceRect.x / m_scale);
faceRect.y = (int)(faceRect.y / m_scale);
faceRect.width = (int)(faceRect.width / m_scale);
faceRect.height = (int)(faceRect.height / m_scale);
return faceRect;
}
cv::Point VideoFaceDetector::facePosition() const
{
cv::Point facePos;
facePos.x = (int)(m_facePosition.x / m_scale);
facePos.y = (int)(m_facePosition.y / m_scale);
return facePos;
}
void VideoFaceDetector::setTemplateMatchingMaxDuration(const double s)
{
m_templateMatchingMaxDuration = s;
}
double VideoFaceDetector::templateMatchingMaxDuration() const
{
return m_templateMatchingMaxDuration;
}
VideoFaceDetector::~VideoFaceDetector()
{
if (m_faceCascade != NULL) {
delete m_faceCascade;
}
}
cv::Rect VideoFaceDetector::doubleRectSize(const cv::Rect &inputRect, const cv::Rect &frameSize) const
{
cv::Rect outputRect;
// Double rect size
outputRect.width = inputRect.width * 2;
outputRect.height = inputRect.height * 2;
// Center rect around original center
outputRect.x = inputRect.x - inputRect.width / 2;
outputRect.y = inputRect.y - inputRect.height / 2;
// Handle edge cases
if (outputRect.x < frameSize.x) {
outputRect.width += outputRect.x;
outputRect.x = frameSize.x;
}
if (outputRect.y < frameSize.y) {
outputRect.height += outputRect.y;
outputRect.y = frameSize.y;
}
if (outputRect.x + outputRect.width > frameSize.width) {
outputRect.width = frameSize.width - outputRect.x;
}
if (outputRect.y + outputRect.height > frameSize.height) {
outputRect.height = frameSize.height - outputRect.y;
}
return outputRect;
}
cv::Point VideoFaceDetector::centerOfRect(const cv::Rect &rect) const
{
return cv::Point(rect.x + rect.width / 2, rect.y + rect.height / 2);
}
cv::Rect VideoFaceDetector::biggestFace(std::vector<cv::Rect> &faces) const
{
assert(!faces.empty());
cv::Rect *biggest = &faces[0];
for (auto &face : faces) {
if (face.area() < biggest->area())
biggest = &face;
}
return *biggest;
}
/*
* Face template is small patch in the middle of detected face.
*/
cv::Mat VideoFaceDetector::getFaceTemplate(const cv::Mat &frame, cv::Rect face)
{
face.x += face.width / 4;
face.y += face.height / 4;
face.width /= 2;
face.height /= 2;
cv::Mat faceTemplate = frame(face).clone();
return faceTemplate;
}
void VideoFaceDetector::detectFaceAllSizes(const cv::Mat &frame)
{
// Minimum face size is 1/5th of screen height
// Maximum face size is 2/3rds of screen height
m_faceCascade->detectMultiScale(frame, m_allFaces, 1.1, 3, 0,
cv::Size(frame.rows / 5, frame.rows / 5),
cv::Size(frame.rows * 2 / 3, frame.rows * 2 / 3));
if (m_allFaces.empty()) return;
m_foundFace = true;
// Locate biggest face
m_trackedFace = biggestFace(m_allFaces);
// Copy face template
m_faceTemplate = getFaceTemplate(frame, m_trackedFace);
// Calculate roi
m_faceRoi = doubleRectSize(m_trackedFace, cv::Rect(0, 0, frame.cols, frame.rows));
// Update face position
m_facePosition = centerOfRect(m_trackedFace);
}
void VideoFaceDetector::detectFaceAroundRoi(const cv::Mat &frame)
{
// Detect faces sized +/-20% off biggest face in previous search
m_faceCascade->detectMultiScale(frame(m_faceRoi), m_allFaces, 1.1, 3, 0,
cv::Size(m_trackedFace.width * 8 / 10, m_trackedFace.height * 8 / 10),
cv::Size(m_trackedFace.width * 12 / 10, m_trackedFace.width * 12 / 10));
if (m_allFaces.empty())
{
// Activate template matching if not already started and start timer
m_templateMatchingRunning = true;
if (m_templateMatchingStartTime == 0)
m_templateMatchingStartTime = cv::getTickCount();
return;
}
// Turn off template matching if running and reset timer
m_templateMatchingRunning = false;
m_templateMatchingCurrentTime = m_templateMatchingStartTime = 0;
// Get detected face
m_trackedFace = biggestFace(m_allFaces);
// Add roi offset to face
m_trackedFace.x += m_faceRoi.x;
m_trackedFace.y += m_faceRoi.y;
// Get face template
m_faceTemplate = getFaceTemplate(frame, m_trackedFace);
// Calculate roi
m_faceRoi = doubleRectSize(m_trackedFace, cv::Rect(0, 0, frame.cols, frame.rows));
// Update face position
m_facePosition = centerOfRect(m_trackedFace);
}
void VideoFaceDetector::detectFacesTemplateMatching(const cv::Mat &frame)
{
// Calculate duration of template matching
m_templateMatchingCurrentTime = cv::getTickCount();
double duration = (double)(m_templateMatchingCurrentTime - m_templateMatchingStartTime) / TICK_FREQUENCY;
// If template matching lasts for more than 2 seconds face is possibly lost
// so disable it and redetect using cascades
if (duration > m_templateMatchingMaxDuration) {
m_foundFace = false;
m_templateMatchingRunning = false;
m_templateMatchingStartTime = m_templateMatchingCurrentTime = 0;
m_facePosition.x = m_facePosition.y = 0;
m_trackedFace.x = m_trackedFace.y = m_trackedFace.width = m_trackedFace.height = 0;
return;
}
// Edge case when face exits frame while
if (m_faceTemplate.rows * m_faceTemplate.cols == 0 || m_faceTemplate.rows <= 1 || m_faceTemplate.cols <= 1) {
m_foundFace = false;
m_templateMatchingRunning = false;
m_templateMatchingStartTime = m_templateMatchingCurrentTime = 0;
m_facePosition.x = m_facePosition.y = 0;
m_trackedFace.x = m_trackedFace.y = m_trackedFace.width = m_trackedFace.height = 0;
return;
}
// Template matching with last known face
//cv::matchTemplate(frame(m_faceRoi), m_faceTemplate, m_matchingResult, CV_TM_CCOEFF);
cv::matchTemplate(frame(m_faceRoi), m_faceTemplate, m_matchingResult, CV_TM_SQDIFF_NORMED);
cv::normalize(m_matchingResult, m_matchingResult, 0, 1, cv::NORM_MINMAX, -1, cv::Mat());
double min, max;
cv::Point minLoc, maxLoc;
cv::minMaxLoc(m_matchingResult, &min, &max, &minLoc, &maxLoc);
// Add roi offset to face position
minLoc.x += m_faceRoi.x;
minLoc.y += m_faceRoi.y;
// Get detected face
//m_trackedFace = cv::Rect(maxLoc.x, maxLoc.y, m_trackedFace.width, m_trackedFace.height);
m_trackedFace = cv::Rect(minLoc.x, minLoc.y, m_faceTemplate.cols, m_faceTemplate.rows);
m_trackedFace = doubleRectSize(m_trackedFace, cv::Rect(0, 0, frame.cols, frame.rows));
// Get new face template
m_faceTemplate = getFaceTemplate(frame, m_trackedFace);
// Calculate face roi
m_faceRoi = doubleRectSize(m_trackedFace, cv::Rect(0, 0, frame.cols, frame.rows));
// Update face position
m_facePosition = centerOfRect(m_trackedFace);
}
cv::Point VideoFaceDetector::getFrameAndDetect(cv::Mat &frame)
{
*m_videoCapture >> frame;
// Downscale frame to m_resizedWidth width - keep aspect ratio
m_scale = (double) std::min(m_resizedWidth, frame.cols) / frame.cols;
cv::Size resizedFrameSize = cv::Size((int)(m_scale*frame.cols), (int)(m_scale*frame.rows));
cv::Mat resizedFrame;
cv::resize(frame, resizedFrame, resizedFrameSize);
if (!m_foundFace)
detectFaceAllSizes(resizedFrame); // Detect using cascades over whole image
else {
detectFaceAroundRoi(resizedFrame); // Detect using cascades only in ROI
if (m_templateMatchingRunning) {
detectFacesTemplateMatching(resizedFrame); // Detect using template matching
}
}
return m_facePosition;
}
cv::Point VideoFaceDetector::operator>>(cv::Mat &frame)
{
return this->getFrameAndDetect(frame);
}
================================================
FILE: VideoFaceDetector.h
================================================
#pragma once
#include <opencv2\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\objdetect\objdetect.hpp>
class VideoFaceDetector
{
public:
VideoFaceDetector(const std::string cascadeFilePath, cv::VideoCapture &videoCapture);
~VideoFaceDetector();
cv::Point getFrameAndDetect(cv::Mat &frame);
cv::Point operator>>(cv::Mat &frame);
void setVideoCapture(cv::VideoCapture &videoCapture);
cv::VideoCapture* videoCapture() const;
void setFaceCascade(const std::string cascadeFilePath);
cv::CascadeClassifier* faceCascade() const;
void setResizedWidth(const int width);
int resizedWidth() const;
bool isFaceFound() const;
cv::Rect face() const;
cv::Point facePosition() const;
void setTemplateMatchingMaxDuration(const double s);
double templateMatchingMaxDuration() const;
private:
static const double TICK_FREQUENCY;
cv::VideoCapture* m_videoCapture = NULL;
cv::CascadeClassifier* m_faceCascade = NULL;
std::vector<cv::Rect> m_allFaces;
cv::Rect m_trackedFace;
cv::Rect m_faceRoi;
cv::Mat m_faceTemplate;
cv::Mat m_matchingResult;
bool m_templateMatchingRunning = false;
int64 m_templateMatchingStartTime = 0;
int64 m_templateMatchingCurrentTime = 0;
bool m_foundFace = false;
double m_scale;
int m_resizedWidth = 320;
cv::Point m_facePosition;
double m_templateMatchingMaxDuration = 3;
cv::Rect doubleRectSize(const cv::Rect &inputRect, const cv::Rect &frameSize) const;
cv::Rect biggestFace(std::vector<cv::Rect> &faces) const;
cv::Point centerOfRect(const cv::Rect &rect) const;
cv::Mat getFaceTemplate(const cv::Mat &frame, cv::Rect face);
void detectFaceAllSizes(const cv::Mat &frame);
void detectFaceAroundRoi(const cv::Mat &frame);
void detectFacesTemplateMatching(const cv::Mat &frame);
};
================================================
FILE: haarcascade_frontalface_default.xml
================================================
<?xml version="1.0"?>
<!--
Stump-based 24x24 discrete(?) adaboost frontal face detector.
Created by Rainer Lienhart.
////////////////////////////////////////////////////////////////////////////////////////
IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
By downloading, copying, installing or using the software you agree to this license.
If you do not agree to this license, do not download, install,
copy or use the software.
Intel License Agreement
For Open Source Computer Vision Library
Copyright (C) 2000, Intel Corporation, all rights reserved.
Third party copyrights are property of their respective owners.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistribution's of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistribution's in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* The name of Intel Corporation may not be used to endorse or promote products
derived from this software without specific prior written permission.
This software is provided by the copyright holders and contributors "as is" and
any express or implied warranties, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose are disclaimed.
In no event shall the Intel Corporation or contributors be liable for any direct,
indirect, incidental, special, exemplary, or consequential damages
(including, but not limited to, procurement of substitute goods or services;
loss of use, data, or profits; or business interruption) however caused
and on any theory of liability, whether in contract, strict liability,
or tort (including negligence or otherwise) arising in any way out of
the use of this software, even if advised of the possibility of such damage.
-->
<opencv_storage>
<haarcascade_frontalface_default type_id="opencv-haar-classifier">
<size>24 24</size>
<stages>
<_>
<!-- stage 0 -->
<trees>
<_>
<!-- tree 0 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 4 12 9 -1.</_>
<_>6 7 12 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0315119996666908</threshold>
<left_val>2.0875380039215088</left_val>
<right_val>-2.2172100543975830</right_val></_></_>
<_>
<!-- tree 1 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 4 12 7 -1.</_>
<_>10 4 4 7 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0123960003256798</threshold>
<left_val>-1.8633940219879150</left_val>
<right_val>1.3272049427032471</right_val></_></_>
<_>
<!-- tree 2 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 9 18 9 -1.</_>
<_>3 12 18 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0219279993325472</threshold>
<left_val>-1.5105249881744385</left_val>
<right_val>1.0625729560852051</right_val></_></_>
<_>
<!-- tree 3 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 18 9 6 -1.</_>
<_>8 20 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>5.7529998011887074e-003</threshold>
<left_val>-0.8746389746665955</left_val>
<right_val>1.1760339736938477</right_val></_></_>
<_>
<!-- tree 4 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 5 4 19 -1.</_>
<_>5 5 2 19 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0150140002369881</threshold>
<left_val>-0.7794569730758667</left_val>
<right_val>1.2608419656753540</right_val></_></_>
<_>
<!-- tree 5 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 5 12 16 -1.</_>
<_>6 13 12 8 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0993710011243820</threshold>
<left_val>0.5575129985809326</left_val>
<right_val>-1.8743000030517578</right_val></_></_>
<_>
<!-- tree 6 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 8 12 6 -1.</_>
<_>5 11 12 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.7340000960975885e-003</threshold>
<left_val>-1.6911929845809937</left_val>
<right_val>0.4400970041751862</right_val></_></_>
<_>
<!-- tree 7 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>11 14 4 10 -1.</_>
<_>11 19 4 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0188590008765459</threshold>
<left_val>-1.4769539833068848</left_val>
<right_val>0.4435009956359863</right_val></_></_>
<_>
<!-- tree 8 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 0 7 6 -1.</_>
<_>4 3 7 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>5.9739998541772366e-003</threshold>
<left_val>-0.8590919971466065</left_val>
<right_val>0.8525559902191162</right_val></_></_></trees>
<stage_threshold>-5.0425500869750977</stage_threshold>
<parent>-1</parent>
<next>-1</next></_>
<_>
<!-- stage 1 -->
<trees>
<_>
<!-- tree 0 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 6 12 6 -1.</_>
<_>6 8 12 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0211100000888109</threshold>
<left_val>1.2435649633407593</left_val>
<right_val>-1.5713009834289551</right_val></_></_>
<_>
<!-- tree 1 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 4 12 7 -1.</_>
<_>10 4 4 7 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0203559994697571</threshold>
<left_val>-1.6204780340194702</left_val>
<right_val>1.1817760467529297</right_val></_></_>
<_>
<!-- tree 2 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 8 19 12 -1.</_>
<_>1 12 19 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0213089995086193</threshold>
<left_val>-1.9415930509567261</left_val>
<right_val>0.7006909847259522</right_val></_></_>
<_>
<!-- tree 3 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 2 24 3 -1.</_>
<_>8 2 8 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0916600003838539</threshold>
<left_val>-0.5567010045051575</left_val>
<right_val>1.7284419536590576</right_val></_></_>
<_>
<!-- tree 4 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 9 6 15 -1.</_>
<_>9 14 6 5 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0362880006432533</threshold>
<left_val>0.2676379978656769</left_val>
<right_val>-2.1831810474395752</right_val></_></_>
<_>
<!-- tree 5 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 6 14 10 -1.</_>
<_>5 11 14 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0191099997609854</threshold>
<left_val>-2.6730210781097412</left_val>
<right_val>0.4567080140113831</right_val></_></_>
<_>
<!-- tree 6 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 0 14 9 -1.</_>
<_>5 3 14 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>8.2539999857544899e-003</threshold>
<left_val>-1.0852910280227661</left_val>
<right_val>0.5356420278549194</right_val></_></_>
<_>
<!-- tree 7 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>13 11 9 6 -1.</_>
<_>16 11 3 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0183550007641315</threshold>
<left_val>-0.3520019948482513</left_val>
<right_val>0.9333919882774353</right_val></_></_>
<_>
<!-- tree 8 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 5 6 10 -1.</_>
<_>9 5 2 10 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-7.0569999516010284e-003</threshold>
<left_val>0.9278209805488586</left_val>
<right_val>-0.6634989976882935</right_val></_></_>
<_>
<!-- tree 9 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 8 6 10 -1.</_>
<_>12 8 2 10 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-9.8770000040531158e-003</threshold>
<left_val>1.1577470302581787</left_val>
<right_val>-0.2977479994297028</right_val></_></_>
<_>
<!-- tree 10 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 5 4 9 -1.</_>
<_>4 5 2 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0158140007406473</threshold>
<left_val>-0.4196060001850128</left_val>
<right_val>1.3576040267944336</right_val></_></_>
<_>
<!-- tree 11 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 0 6 11 -1.</_>
<_>20 0 2 11 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0207000002264977</threshold>
<left_val>1.4590020179748535</left_val>
<right_val>-0.1973939985036850</right_val></_></_>
<_>
<!-- tree 12 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 6 24 13 -1.</_>
<_>8 6 8 13 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.1376080065965653</threshold>
<left_val>1.1186759471893311</left_val>
<right_val>-0.5291550159454346</right_val></_></_>
<_>
<!-- tree 13 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 6 6 9 -1.</_>
<_>11 6 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0143189998343587</threshold>
<left_val>-0.3512719869613648</left_val>
<right_val>1.1440860033035278</right_val></_></_>
<_>
<!-- tree 14 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 18 10 6 -1.</_>
<_>7 20 10 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0102530000731349</threshold>
<left_val>-0.6085060238838196</left_val>
<right_val>0.7709850072860718</right_val></_></_>
<_>
<!-- tree 15 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 7 14 12 -1.</_>
<_>5 13 14 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0915080010890961</threshold>
<left_val>0.3881779909133911</left_val>
<right_val>-1.5122940540313721</right_val></_></_></trees>
<stage_threshold>-4.9842400550842285</stage_threshold>
<parent>0</parent>
<next>-1</next></_>
<_>
<!-- stage 2 -->
<trees>
<_>
<!-- tree 0 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 3 24 3 -1.</_>
<_>8 3 8 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0697470009326935</threshold>
<left_val>-1.0130879878997803</left_val>
<right_val>1.4687349796295166</right_val></_></_>
<_>
<!-- tree 1 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 8 15 6 -1.</_>
<_>5 11 15 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0315029993653297</threshold>
<left_val>-1.6463639736175537</left_val>
<right_val>1.0000629425048828</right_val></_></_>
<_>
<!-- tree 2 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 6 5 14 -1.</_>
<_>9 13 5 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0142609998583794</threshold>
<left_val>0.4648030102252960</left_val>
<right_val>-1.5959889888763428</right_val></_></_>
<_>
<!-- tree 3 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 5 6 10 -1.</_>
<_>11 5 2 10 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0144530003890395</threshold>
<left_val>-0.6551190018653870</left_val>
<right_val>0.8302180171012878</right_val></_></_>
<_>
<!-- tree 4 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 6 3 12 -1.</_>
<_>6 12 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-3.0509999487549067e-003</threshold>
<left_val>-1.3982310295104980</left_val>
<right_val>0.4255059957504273</right_val></_></_>
<_>
<!-- tree 5 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 21 18 3 -1.</_>
<_>9 21 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0327229984104633</threshold>
<left_val>-0.5070260167121887</left_val>
<right_val>1.0526109933853149</right_val></_></_>
<_>
<!-- tree 6 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 6 13 6 -1.</_>
<_>5 8 13 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-7.2960001416504383e-003</threshold>
<left_val>0.3635689914226532</left_val>
<right_val>-1.3464889526367187</right_val></_></_>
<_>
<!-- tree 7 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 1 6 15 -1.</_>
<_>18 1 3 15 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0504250004887581</threshold>
<left_val>-0.3046140074729919</left_val>
<right_val>1.4504129886627197</right_val></_></_>
<_>
<!-- tree 8 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 1 6 15 -1.</_>
<_>4 1 3 15 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0468790009617805</threshold>
<left_val>-0.4028620123863220</left_val>
<right_val>1.2145609855651855</right_val></_></_>
<_>
<!-- tree 9 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 8 24 15 -1.</_>
<_>8 8 8 15 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0693589970469475</threshold>
<left_val>1.0539360046386719</left_val>
<right_val>-0.4571970105171204</right_val></_></_>
<_>
<!-- tree 10 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 6 14 12 -1.</_>
<_>5 6 7 6 2.</_>
<_>12 12 7 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0490339994430542</threshold>
<left_val>-1.6253089904785156</left_val>
<right_val>0.1537899971008301</right_val></_></_>
<_>
<!-- tree 11 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 12 21 12 -1.</_>
<_>2 16 21 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0848279967904091</threshold>
<left_val>0.2840299904346466</left_val>
<right_val>-1.5662059783935547</right_val></_></_>
<_>
<!-- tree 12 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 1 4 10 -1.</_>
<_>10 1 2 10 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-1.7229999648407102e-003</threshold>
<left_val>-1.0147459506988525</left_val>
<right_val>0.2329480051994324</right_val></_></_>
<_>
<!-- tree 13 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 13 20 10 -1.</_>
<_>2 13 10 10 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1156219989061356</threshold>
<left_val>-0.1673289984464645</left_val>
<right_val>1.2804069519042969</right_val></_></_>
<_>
<!-- tree 14 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 1 6 13 -1.</_>
<_>2 1 2 13 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0512799993157387</threshold>
<left_val>1.5162390470504761</left_val>
<right_val>-0.3027110099792481</right_val></_></_>
<_>
<!-- tree 15 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>20 2 4 13 -1.</_>
<_>20 2 2 13 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0427069999277592</threshold>
<left_val>1.7631920576095581</left_val>
<right_val>-0.0518320016562939</right_val></_></_>
<_>
<!-- tree 16 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 5 22 19 -1.</_>
<_>11 5 11 19 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.3717809915542603</threshold>
<left_val>-0.3138920068740845</left_val>
<right_val>1.5357979536056519</right_val></_></_>
<_>
<!-- tree 17 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 4 6 9 -1.</_>
<_>20 4 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0194129999727011</threshold>
<left_val>-0.1001759991049767</left_val>
<right_val>0.9365540146827698</right_val></_></_>
<_>
<!-- tree 18 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 3 6 11 -1.</_>
<_>2 3 2 11 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0174390003085136</threshold>
<left_val>-0.4037989974021912</left_val>
<right_val>0.9629300236701965</right_val></_></_>
<_>
<!-- tree 19 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 1 4 9 -1.</_>
<_>12 1 2 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0396389998495579</threshold>
<left_val>0.1703909933567047</left_val>
<right_val>-2.9602990150451660</right_val></_></_>
<_>
<!-- tree 20 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 6 19 3 -1.</_>
<_>0 7 19 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-9.1469995677471161e-003</threshold>
<left_val>0.8878679871559143</left_val>
<right_val>-0.4381870031356812</right_val></_></_>
<_>
<!-- tree 21 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 1 4 9 -1.</_>
<_>12 1 2 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>1.7219999572262168e-003</threshold>
<left_val>-0.3721860051155090</left_val>
<right_val>0.4001890122890472</right_val></_></_>
<_>
<!-- tree 22 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 1 4 9 -1.</_>
<_>10 1 2 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0302310008555651</threshold>
<left_val>0.0659240037202835</left_val>
<right_val>-2.6469180583953857</right_val></_></_>
<_>
<!-- tree 23 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 5 14 14 -1.</_>
<_>12 5 7 7 2.</_>
<_>5 12 7 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0787959992885590</threshold>
<left_val>-1.7491459846496582</left_val>
<right_val>0.2847529947757721</right_val></_></_>
<_>
<!-- tree 24 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 10 18 2 -1.</_>
<_>1 11 18 1 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.1110000088810921e-003</threshold>
<left_val>-0.9390810132026672</left_val>
<right_val>0.2320519983768463</right_val></_></_>
<_>
<!-- tree 25 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>17 13 4 11 -1.</_>
<_>17 13 2 11 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0270910002291203</threshold>
<left_val>-0.0526640005409718</left_val>
<right_val>1.0756820440292358</right_val></_></_>
<_>
<!-- tree 26 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 4 6 9 -1.</_>
<_>0 7 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0449649989604950</threshold>
<left_val>-1.8294479846954346</left_val>
<right_val>0.0995619967579842</right_val></_></_></trees>
<stage_threshold>-4.6551899909973145</stage_threshold>
<parent>1</parent>
<next>-1</next></_>
<_>
<!-- stage 3 -->
<trees>
<_>
<!-- tree 0 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 4 12 9 -1.</_>
<_>6 7 12 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0657010003924370</threshold>
<left_val>1.1558510065078735</left_val>
<right_val>-1.0716359615325928</right_val></_></_>
<_>
<!-- tree 1 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 5 12 6 -1.</_>
<_>10 5 4 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0158399995416403</threshold>
<left_val>-1.5634720325469971</left_val>
<right_val>0.7687709927558899</right_val></_></_>
<_>
<!-- tree 2 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 1 24 5 -1.</_>
<_>8 1 8 5 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1457089930772781</threshold>
<left_val>-0.5745009779930115</left_val>
<right_val>1.3808720111846924</right_val></_></_>
<_>
<!-- tree 3 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 10 18 6 -1.</_>
<_>4 12 18 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>6.1389999464154243e-003</threshold>
<left_val>-1.4570560455322266</left_val>
<right_val>0.5161030292510986</right_val></_></_>
<_>
<!-- tree 4 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 17 12 6 -1.</_>
<_>2 17 6 3 2.</_>
<_>8 20 6 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>6.7179999314248562e-003</threshold>
<left_val>-0.8353360295295715</left_val>
<right_val>0.5852220058441162</right_val></_></_>
<_>
<!-- tree 5 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>19 3 4 13 -1.</_>
<_>19 3 2 13 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0185180008411407</threshold>
<left_val>-0.3131209909915924</left_val>
<right_val>1.1696679592132568</right_val></_></_>
<_>
<!-- tree 6 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 3 4 13 -1.</_>
<_>3 3 2 13 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0199580006301403</threshold>
<left_val>-0.4344260096549988</left_val>
<right_val>0.9544690251350403</right_val></_></_>
<_>
<!-- tree 7 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 1 24 23 -1.</_>
<_>8 1 8 23 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.2775500118732452</threshold>
<left_val>1.4906179904937744</left_val>
<right_val>-0.1381590068340302</right_val></_></_>
<_>
<!-- tree 8 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 7 8 12 -1.</_>
<_>1 11 8 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>9.1859996318817139e-003</threshold>
<left_val>-0.9636150002479553</left_val>
<right_val>0.2766549885272980</right_val></_></_>
<_>
<!-- tree 9 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 7 3 14 -1.</_>
<_>14 14 3 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0377379991114140</threshold>
<left_val>-2.4464108943939209</left_val>
<right_val>0.2361959964036942</right_val></_></_>
<_>
<!-- tree 10 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 12 16 6 -1.</_>
<_>3 12 8 3 2.</_>
<_>11 15 8 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0184630006551743</threshold>
<left_val>0.1753920018672943</left_val>
<right_val>-1.3423130512237549</right_val></_></_>
<_>
<!-- tree 11 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 6 12 6 -1.</_>
<_>6 8 12 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0111149996519089</threshold>
<left_val>0.4871079921722412</left_val>
<right_val>-0.8985189795494080</right_val></_></_>
<_>
<!-- tree 12 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 7 6 12 -1.</_>
<_>8 13 6 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0339279994368553</threshold>
<left_val>0.1787420064210892</left_val>
<right_val>-1.6342279911041260</right_val></_></_>
<_>
<!-- tree 13 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 15 9 6 -1.</_>
<_>15 17 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0356490015983582</threshold>
<left_val>-1.9607399702072144</left_val>
<right_val>0.1810249984264374</right_val></_></_>
<_>
<!-- tree 14 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 17 18 3 -1.</_>
<_>1 18 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0114380000159144</threshold>
<left_val>0.9901069998741150</left_val>
<right_val>-0.3810319900512695</right_val></_></_>
<_>
<!-- tree 15 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 4 16 12 -1.</_>
<_>4 10 16 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0652360022068024</threshold>
<left_val>-2.5794160366058350</left_val>
<right_val>0.2475360035896301</right_val></_></_>
<_>
<!-- tree 16 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 1 4 20 -1.</_>
<_>2 1 2 20 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0422720015048981</threshold>
<left_val>1.4411840438842773</left_val>
<right_val>-0.2950829863548279</right_val></_></_>
<_>
<!-- tree 17 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 0 18 2 -1.</_>
<_>3 1 18 1 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>1.9219999667257071e-003</threshold>
<left_val>-0.4960860013961792</left_val>
<right_val>0.6317359805107117</right_val></_></_>
<_>
<!-- tree 18 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 5 20 14 -1.</_>
<_>1 5 10 7 2.</_>
<_>11 12 10 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.1292179971933365</threshold>
<left_val>-2.3314270973205566</left_val>
<right_val>0.0544969998300076</right_val></_></_>
<_>
<!-- tree 19 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 8 14 12 -1.</_>
<_>5 12 14 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0229310002177954</threshold>
<left_val>-0.8444709777832031</left_val>
<right_val>0.3873809874057770</right_val></_></_>
<_>
<!-- tree 20 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 14 7 9 -1.</_>
<_>3 17 7 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0341200008988380</threshold>
<left_val>-1.4431500434875488</left_val>
<right_val>0.0984229966998100</right_val></_></_>
<_>
<!-- tree 21 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 15 9 6 -1.</_>
<_>14 17 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0262230001389980</threshold>
<left_val>0.1822309941053391</left_val>
<right_val>-1.2586519718170166</right_val></_></_>
<_>
<!-- tree 22 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 15 9 6 -1.</_>
<_>1 17 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0222369991242886</threshold>
<left_val>0.0698079988360405</left_val>
<right_val>-2.3820950984954834</right_val></_></_>
<_>
<!-- tree 23 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>11 6 8 10 -1.</_>
<_>15 6 4 5 2.</_>
<_>11 11 4 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-5.8240001089870930e-003</threshold>
<left_val>0.3933250010013580</left_val>
<right_val>-0.2754279971122742</right_val></_></_>
<_>
<!-- tree 24 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 5 14 14 -1.</_>
<_>5 5 7 7 2.</_>
<_>12 12 7 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0436530001461506</threshold>
<left_val>0.1483269929885864</left_val>
<right_val>-1.1368780136108398</right_val></_></_>
<_>
<!-- tree 25 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 0 12 5 -1.</_>
<_>10 0 4 5 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0572669990360737</threshold>
<left_val>0.2462809979915619</left_val>
<right_val>-1.2687400579452515</right_val></_></_>
<_>
<!-- tree 26 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 0 6 9 -1.</_>
<_>9 3 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.3409998975694180e-003</threshold>
<left_val>-0.7544890046119690</left_val>
<right_val>0.2716380059719086</right_val></_></_>
<_>
<!-- tree 27 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 6 6 9 -1.</_>
<_>11 6 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0129960002377629</threshold>
<left_val>-0.3639490008354187</left_val>
<right_val>0.7095919847488403</right_val></_></_>
<_>
<!-- tree 28 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 0 6 9 -1.</_>
<_>9 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0265170000493526</threshold>
<left_val>-2.3221859931945801</left_val>
<right_val>0.0357440002262592</right_val></_></_>
<_>
<!-- tree 29 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 6 6 9 -1.</_>
<_>12 6 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-5.8400002308189869e-003</threshold>
<left_val>0.4219430088996887</left_val>
<right_val>-0.0481849983334541</right_val></_></_>
<_>
<!-- tree 30 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 6 6 9 -1.</_>
<_>10 6 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0165689997375011</threshold>
<left_val>1.1099940538406372</left_val>
<right_val>-0.3484970033168793</right_val></_></_>
<_>
<!-- tree 31 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 8 18 4 -1.</_>
<_>9 8 6 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0681570023298264</threshold>
<left_val>-3.3269989490509033</left_val>
<right_val>0.2129900008440018</right_val></_></_></trees>
<stage_threshold>-4.4531588554382324</stage_threshold>
<parent>2</parent>
<next>-1</next></_>
<_>
<!-- stage 4 -->
<trees>
<_>
<!-- tree 0 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 0 12 9 -1.</_>
<_>6 3 12 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0399740003049374</threshold>
<left_val>-1.2173449993133545</left_val>
<right_val>1.0826710462570190</right_val></_></_>
<_>
<!-- tree 1 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 0 24 6 -1.</_>
<_>8 0 8 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1881950050592423</threshold>
<left_val>-0.4828940033912659</left_val>
<right_val>1.4045250415802002</right_val></_></_>
<_>
<!-- tree 2 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 7 16 12 -1.</_>
<_>4 11 16 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0780270025134087</threshold>
<left_val>-1.0782150030136108</left_val>
<right_val>0.7404029965400696</right_val></_></_>
<_>
<!-- tree 3 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>11 6 6 6 -1.</_>
<_>11 6 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>1.1899999663000926e-004</threshold>
<left_val>-1.2019979953765869</left_val>
<right_val>0.3774920105934143</right_val></_></_>
<_>
<!-- tree 4 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 20 24 3 -1.</_>
<_>8 20 8 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0850569978356361</threshold>
<left_val>-0.4393909871578217</left_val>
<right_val>1.2647340297698975</right_val></_></_>
<_>
<!-- tree 5 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>11 6 4 9 -1.</_>
<_>11 6 2 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>8.9720003306865692e-003</threshold>
<left_val>-0.1844049990177155</left_val>
<right_val>0.4572640061378479</right_val></_></_>
<_>
<!-- tree 6 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 13 15 4 -1.</_>
<_>9 13 5 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>8.8120000436902046e-003</threshold>
<left_val>0.3039669990539551</left_val>
<right_val>-0.9599109888076782</right_val></_></_>
<_>
<!-- tree 7 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>11 6 4 9 -1.</_>
<_>11 6 2 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0235079992562532</threshold>
<left_val>1.2487529516220093</left_val>
<right_val>0.0462279990315437</right_val></_></_>
<_>
<!-- tree 8 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 6 4 9 -1.</_>
<_>11 6 2 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>7.0039997808635235e-003</threshold>
<left_val>-0.5944210290908814</left_val>
<right_val>0.5396329760551453</right_val></_></_>
<_>
<!-- tree 9 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 12 6 12 -1.</_>
<_>9 18 6 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0338519997894764</threshold>
<left_val>0.2849609851837158</left_val>
<right_val>-1.4895249605178833</right_val></_></_>
<_>
<!-- tree 10 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 22 18 2 -1.</_>
<_>1 23 18 1 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-3.2530000898987055e-003</threshold>
<left_val>0.4812079966068268</left_val>
<right_val>-0.5271239876747131</right_val></_></_>
<_>
<!-- tree 11 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 7 4 10 -1.</_>
<_>10 12 4 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0290970001369715</threshold>
<left_val>0.2674390077590942</left_val>
<right_val>-1.6007850170135498</right_val></_></_>
<_>
<!-- tree 12 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 7 8 10 -1.</_>
<_>6 12 8 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-8.4790000692009926e-003</threshold>
<left_val>-1.3107639551162720</left_val>
<right_val>0.1524309962987900</right_val></_></_>
<_>
<!-- tree 13 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 6 10 6 -1.</_>
<_>7 8 10 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0107950000092387</threshold>
<left_val>0.4561359882354736</left_val>
<right_val>-0.7205089926719666</right_val></_></_>
<_>
<!-- tree 14 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 14 10 4 -1.</_>
<_>0 16 10 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0246200002729893</threshold>
<left_val>-1.7320619821548462</left_val>
<right_val>0.0683630034327507</right_val></_></_>
<_>
<!-- tree 15 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 18 18 2 -1.</_>
<_>6 19 18 1 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>3.7380000576376915e-003</threshold>
<left_val>-0.1930329948663712</left_val>
<right_val>0.6824349761009216</right_val></_></_>
<_>
<!-- tree 16 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 1 22 3 -1.</_>
<_>1 2 22 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0122640002518892</threshold>
<left_val>-1.6095290184020996</left_val>
<right_val>0.0752680003643036</right_val></_></_>
<_>
<!-- tree 17 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 16 18 3 -1.</_>
<_>6 17 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-4.8670000396668911e-003</threshold>
<left_val>0.7428650259971619</left_val>
<right_val>-0.2151020020246506</right_val></_></_>
<_>
<!-- tree 18 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 4 6 15 -1.</_>
<_>5 4 3 15 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0767259970307350</threshold>
<left_val>-0.2683509886264801</left_val>
<right_val>1.3094140291213989</right_val></_></_>
<_>
<!-- tree 19 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>20 4 4 10 -1.</_>
<_>20 4 2 10 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0285780001431704</threshold>
<left_val>-0.0587930008769035</left_val>
<right_val>1.2196329832077026</right_val></_></_>
<_>
<!-- tree 20 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 4 4 10 -1.</_>
<_>2 4 2 10 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0196940004825592</threshold>
<left_val>-0.3514289855957031</left_val>
<right_val>0.8492699861526489</right_val></_></_>
<_>
<!-- tree 21 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 16 20 6 -1.</_>
<_>12 16 10 3 2.</_>
<_>2 19 10 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0290939994156361</threshold>
<left_val>-1.0507299900054932</left_val>
<right_val>0.2980630099773407</right_val></_></_>
<_>
<!-- tree 22 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 12 8 9 -1.</_>
<_>4 12 4 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0291440002620220</threshold>
<left_val>0.8254780173301697</left_val>
<right_val>-0.3268719911575317</right_val></_></_>
<_>
<!-- tree 23 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 0 6 9 -1.</_>
<_>14 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0197410006076097</threshold>
<left_val>0.2045260071754456</left_val>
<right_val>-0.8376020193099976</right_val></_></_>
<_>
<!-- tree 24 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 10 6 6 -1.</_>
<_>8 10 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>4.3299999088048935e-003</threshold>
<left_val>0.2057790011167526</left_val>
<right_val>-0.6682980060577393</right_val></_></_>
<_>
<!-- tree 25 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>11 8 12 6 -1.</_>
<_>17 8 6 3 2.</_>
<_>11 11 6 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0355009995400906</threshold>
<left_val>-1.2969900369644165</left_val>
<right_val>0.1389749944210053</right_val></_></_>
<_>
<!-- tree 26 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 8 12 6 -1.</_>
<_>0 8 6 3 2.</_>
<_>6 11 6 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0161729995161295</threshold>
<left_val>-1.3110569715499878</left_val>
<right_val>0.0757519975304604</right_val></_></_>
<_>
<!-- tree 27 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 0 6 9 -1.</_>
<_>14 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0221510007977486</threshold>
<left_val>-1.0524389743804932</left_val>
<right_val>0.1924110054969788</right_val></_></_>
<_>
<!-- tree 28 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 0 6 9 -1.</_>
<_>8 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0227070003747940</threshold>
<left_val>-1.3735309839248657</left_val>
<right_val>0.0667809993028641</right_val></_></_>
<_>
<!-- tree 29 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 14 9 6 -1.</_>
<_>8 16 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0166079998016357</threshold>
<left_val>-0.0371359996497631</left_val>
<right_val>0.7784640192985535</right_val></_></_>
<_>
<!-- tree 30 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 16 9 6 -1.</_>
<_>0 18 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0133090000599623</threshold>
<left_val>-0.9985070228576660</left_val>
<right_val>0.1224810034036636</right_val></_></_>
<_>
<!-- tree 31 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 8 6 10 -1.</_>
<_>12 8 2 10 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0337320007383823</threshold>
<left_val>1.4461359977722168</left_val>
<right_val>0.0131519995629787</right_val></_></_>
<_>
<!-- tree 32 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 19 12 3 -1.</_>
<_>9 19 6 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0169350001960993</threshold>
<left_val>-0.3712129890918732</left_val>
<right_val>0.5284219980239868</right_val></_></_>
<_>
<!-- tree 33 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 10 20 2 -1.</_>
<_>2 11 20 1 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>3.3259999472647905e-003</threshold>
<left_val>-0.5756850242614746</left_val>
<right_val>0.3926190137863159</right_val></_></_>
<_>
<!-- tree 34 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 9 18 12 -1.</_>
<_>2 9 9 6 2.</_>
<_>11 15 9 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0836440026760101</threshold>
<left_val>0.0161160007119179</left_val>
<right_val>-2.1173279285430908</right_val></_></_>
<_>
<!-- tree 35 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 0 18 24 -1.</_>
<_>3 0 9 24 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.2578519880771637</threshold>
<left_val>-0.0816090032458305</left_val>
<right_val>0.9878249764442444</right_val></_></_>
<_>
<!-- tree 36 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 6 14 10 -1.</_>
<_>5 6 7 5 2.</_>
<_>12 11 7 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0365669988095760</threshold>
<left_val>-1.1512110233306885</left_val>
<right_val>0.0964590013027191</right_val></_></_>
<_>
<!-- tree 37 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 5 10 12 -1.</_>
<_>14 5 5 6 2.</_>
<_>9 11 5 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0164459999650717</threshold>
<left_val>0.3731549978256226</left_val>
<right_val>-0.1458539962768555</right_val></_></_>
<_>
<!-- tree 38 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 5 12 12 -1.</_>
<_>4 5 6 6 2.</_>
<_>10 11 6 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-3.7519999314099550e-003</threshold>
<left_val>0.2617929875850678</left_val>
<right_val>-0.5815669894218445</right_val></_></_>
<_>
<!-- tree 39 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 14 18 3 -1.</_>
<_>4 15 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-6.3660000450909138e-003</threshold>
<left_val>0.7547739744186401</left_val>
<right_val>-0.1705520004034042</right_val></_></_>
<_>
<!-- tree 40 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 13 8 8 -1.</_>
<_>6 17 8 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-3.8499999791383743e-003</threshold>
<left_val>0.2265399992465973</left_val>
<right_val>-0.6387640237808228</right_val></_></_>
<_>
<!-- tree 41 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 16 18 6 -1.</_>
<_>3 19 18 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0454940013587475</threshold>
<left_val>-1.2640299797058105</left_val>
<right_val>0.2526069879531860</right_val></_></_>
<_>
<!-- tree 42 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 0 6 6 -1.</_>
<_>3 0 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0239410009235144</threshold>
<left_val>0.8706840276718140</left_val>
<right_val>-0.2710469961166382</right_val></_></_>
<_>
<!-- tree 43 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 6 12 18 -1.</_>
<_>10 6 4 18 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0775580033659935</threshold>
<left_val>-1.3901610374450684</left_val>
<right_val>0.2361229956150055</right_val></_></_>
<_>
<!-- tree 44 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 1 4 14 -1.</_>
<_>8 1 2 14 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0236140005290508</threshold>
<left_val>0.0661400035023689</left_val>
<right_val>-1.2645419836044312</right_val></_></_>
<_>
<!-- tree 45 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 2 19 2 -1.</_>
<_>3 3 19 1 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-2.5750000495463610e-003</threshold>
<left_val>-0.5384169816970825</left_val>
<right_val>0.3037909865379334</right_val></_></_>
<_>
<!-- tree 46 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 8 22 13 -1.</_>
<_>12 8 11 13 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1201080009341240</threshold>
<left_val>-0.3534300029277802</left_val>
<right_val>0.5286620259284973</right_val></_></_>
<_>
<!-- tree 47 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 9 11 4 -1.</_>
<_>8 11 11 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.2899999748915434e-003</threshold>
<left_val>-0.5870199799537659</left_val>
<right_val>0.2406100034713745</right_val></_></_>
<_>
<!-- tree 48 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 12 15 10 -1.</_>
<_>5 12 5 10 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0697169974446297</threshold>
<left_val>-0.3334890007972717</left_val>
<right_val>0.5191630125045776</right_val></_></_>
<_>
<!-- tree 49 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 16 12 6 -1.</_>
<_>16 16 4 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0466700010001659</threshold>
<left_val>0.6979539990425110</left_val>
<right_val>-0.0148959998041391</right_val></_></_>
<_>
<!-- tree 50 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 16 12 6 -1.</_>
<_>4 16 4 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0501290000975132</threshold>
<left_val>0.8614619970321655</left_val>
<right_val>-0.2598600089550018</right_val></_></_>
<_>
<!-- tree 51 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>19 1 5 12 -1.</_>
<_>19 5 5 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0301479995250702</threshold>
<left_val>0.1933279931545258</left_val>
<right_val>-0.5913109779357910</right_val></_></_></trees>
<stage_threshold>-4.3864588737487793</stage_threshold>
<parent>3</parent>
<next>-1</next></_>
<_>
<!-- stage 5 -->
<trees>
<_>
<!-- tree 0 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 2 24 4 -1.</_>
<_>8 2 8 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0910850018262863</threshold>
<left_val>-0.8923310041427612</left_val>
<right_val>1.0434230566024780</right_val></_></_>
<_>
<!-- tree 1 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 8 12 4 -1.</_>
<_>6 10 12 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0128189995884895</threshold>
<left_val>-1.2597670555114746</left_val>
<right_val>0.5531709790229797</right_val></_></_>
<_>
<!-- tree 2 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 5 9 6 -1.</_>
<_>10 5 3 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0159319993108511</threshold>
<left_val>-0.8625440001487732</left_val>
<right_val>0.6373180150985718</right_val></_></_>
<_>
<!-- tree 3 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 17 6 6 -1.</_>
<_>9 20 6 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.2780001163482666e-003</threshold>
<left_val>-0.7463920116424561</left_val>
<right_val>0.5315560102462769</right_val></_></_>
<_>
<!-- tree 4 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 7 22 15 -1.</_>
<_>0 12 22 5 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0318409986793995</threshold>
<left_val>-1.2650489807128906</left_val>
<right_val>0.3615390062332153</right_val></_></_>
<_>
<!-- tree 5 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 1 17 9 -1.</_>
<_>4 4 17 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.6960000395774841e-003</threshold>
<left_val>-0.9829040169715881</left_val>
<right_val>0.3601300120353699</right_val></_></_>
<_>
<!-- tree 6 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 5 6 10 -1.</_>
<_>9 5 2 10 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0120550002902746</threshold>
<left_val>0.6406840085983276</left_val>
<right_val>-0.5012500286102295</right_val></_></_>
<_>
<!-- tree 7 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 1 6 8 -1.</_>
<_>18 1 3 8 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0213249996304512</threshold>
<left_val>-0.2403499931097031</left_val>
<right_val>0.8544800281524658</right_val></_></_>
<_>
<!-- tree 8 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 1 6 7 -1.</_>
<_>3 1 3 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0304860007017851</threshold>
<left_val>-0.3427360057830811</left_val>
<right_val>1.1428849697113037</right_val></_></_>
<_>
<!-- tree 9 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 0 6 22 -1.</_>
<_>18 0 3 22 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0450799986720085</threshold>
<left_val>1.0976949930191040</left_val>
<right_val>-0.1797460019588471</right_val></_></_>
<_>
<!-- tree 10 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 0 6 22 -1.</_>
<_>3 0 3 22 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0717009976506233</threshold>
<left_val>1.5735000371932983</left_val>
<right_val>-0.3143349885940552</right_val></_></_>
<_>
<!-- tree 11 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>16 7 8 16 -1.</_>
<_>16 7 4 16 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0592180006206036</threshold>
<left_val>-0.2758240103721619</left_val>
<right_val>1.0448570251464844</right_val></_></_>
<_>
<!-- tree 12 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 10 19 6 -1.</_>
<_>2 12 19 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>6.7010000348091125e-003</threshold>
<left_val>-1.0974019765853882</left_val>
<right_val>0.1980119943618774</right_val></_></_>
<_>
<!-- tree 13 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 9 6 12 -1.</_>
<_>9 13 6 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0410469993948936</threshold>
<left_val>0.3054769933223724</left_val>
<right_val>-1.3287999629974365</right_val></_></_>
<_>
<!-- tree 14 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 15 17 6 -1.</_>
<_>2 17 17 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-8.5499999113380909e-004</threshold>
<left_val>0.2580710053443909</left_val>
<right_val>-0.7005289793014526</right_val></_></_>
<_>
<!-- tree 15 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 7 3 14 -1.</_>
<_>14 14 3 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0303600002080202</threshold>
<left_val>-1.2306419610977173</left_val>
<right_val>0.2260939925909042</right_val></_></_>
<_>
<!-- tree 16 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 6 8 10 -1.</_>
<_>5 6 4 5 2.</_>
<_>9 11 4 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0129300002008677</threshold>
<left_val>0.4075860083103180</left_val>
<right_val>-0.5123450160026550</right_val></_></_>
<_>
<!-- tree 17 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 8 9 11 -1.</_>
<_>18 8 3 11 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0373679995536804</threshold>
<left_val>-0.0947550013661385</left_val>
<right_val>0.6176509857177734</right_val></_></_>
<_>
<!-- tree 18 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 8 9 11 -1.</_>
<_>3 8 3 11 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0244340002536774</threshold>
<left_val>-0.4110060036182404</left_val>
<right_val>0.4763050079345703</right_val></_></_>
<_>
<!-- tree 19 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 6 10 18 -1.</_>
<_>8 15 10 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0570079982280731</threshold>
<left_val>0.2524929940700531</left_val>
<right_val>-0.6866980195045471</right_val></_></_>
<_>
<!-- tree 20 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 7 3 14 -1.</_>
<_>7 14 3 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0163139998912811</threshold>
<left_val>-0.9392840266227722</left_val>
<right_val>0.1144810020923615</right_val></_></_>
<_>
<!-- tree 21 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 14 24 8 -1.</_>
<_>8 14 8 8 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.1764889955520630</threshold>
<left_val>1.2451089620590210</left_val>
<right_val>-0.0565190017223358</right_val></_></_>
<_>
<!-- tree 22 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 10 18 14 -1.</_>
<_>10 10 9 14 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1761460006237030</threshold>
<left_val>-0.3252820074558258</left_val>
<right_val>0.8279150128364563</right_val></_></_>
<_>
<!-- tree 23 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 12 6 6 -1.</_>
<_>14 15 6 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-7.3910001665353775e-003</threshold>
<left_val>0.3478370010852814</left_val>
<right_val>-0.1792909950017929</right_val></_></_>
<_>
<!-- tree 24 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 0 10 16 -1.</_>
<_>7 0 5 8 2.</_>
<_>12 8 5 8 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0608909986913204</threshold>
<left_val>0.0550980009138584</left_val>
<right_val>-1.5480779409408569</right_val></_></_>
<_>
<!-- tree 25 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 0 9 6 -1.</_>
<_>13 0 3 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0291230008006096</threshold>
<left_val>-1.0255639553070068</left_val>
<right_val>0.2410690039396286</right_val></_></_>
<_>
<!-- tree 26 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 3 16 4 -1.</_>
<_>12 3 8 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0456489995121956</threshold>
<left_val>1.0301599502563477</left_val>
<right_val>-0.3167209923267365</right_val></_></_>
<_>
<!-- tree 27 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 0 9 6 -1.</_>
<_>13 0 3 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0373330004513264</threshold>
<left_val>0.2162059992551804</left_val>
<right_val>-0.8258990049362183</right_val></_></_>
<_>
<!-- tree 28 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 1 20 4 -1.</_>
<_>1 1 10 2 2.</_>
<_>11 3 10 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0244110003113747</threshold>
<left_val>-1.5957959890365601</left_val>
<right_val>0.0511390008032322</right_val></_></_>
<_>
<!-- tree 29 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 0 9 6 -1.</_>
<_>13 0 3 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0598069988191128</threshold>
<left_val>-1.0312290191650391</left_val>
<right_val>0.1309230029582977</right_val></_></_>
<_>
<!-- tree 30 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 0 9 6 -1.</_>
<_>8 0 3 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0301060006022453</threshold>
<left_val>-1.4781630039215088</left_val>
<right_val>0.0372119992971420</right_val></_></_>
<_>
<!-- tree 31 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 18 10 6 -1.</_>
<_>8 20 10 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>7.4209999293088913e-003</threshold>
<left_val>-0.2402410060167313</left_val>
<right_val>0.4933399856090546</right_val></_></_>
<_>
<!-- tree 32 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 3 6 9 -1.</_>
<_>8 3 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-2.1909999195486307e-003</threshold>
<left_val>0.2894150018692017</left_val>
<right_val>-0.5725960135459900</right_val></_></_>
<_>
<!-- tree 33 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 3 12 6 -1.</_>
<_>7 5 12 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0208609998226166</threshold>
<left_val>-0.2314839959144592</left_val>
<right_val>0.6376590132713318</right_val></_></_>
<_>
<!-- tree 34 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 10 18 3 -1.</_>
<_>0 11 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-6.6990000195801258e-003</threshold>
<left_val>-1.2107750177383423</left_val>
<right_val>0.0640180036425591</right_val></_></_>
<_>
<!-- tree 35 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 10 22 3 -1.</_>
<_>1 11 22 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0187580008059740</threshold>
<left_val>0.2446130067110062</left_val>
<right_val>-0.9978669881820679</right_val></_></_>
<_>
<!-- tree 36 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 11 8 8 -1.</_>
<_>9 11 4 8 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0443230010569096</threshold>
<left_val>-1.3699189424514771</left_val>
<right_val>0.0360519997775555</right_val></_></_>
<_>
<!-- tree 37 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 11 6 6 -1.</_>
<_>12 11 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0228599999099970</threshold>
<left_val>0.2128839939832687</left_val>
<right_val>-1.0397620201110840</right_val></_></_>
<_>
<!-- tree 38 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 11 6 6 -1.</_>
<_>9 11 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-9.8600005730986595e-004</threshold>
<left_val>0.3244360089302063</left_val>
<right_val>-0.5429180264472961</right_val></_></_>
<_>
<!-- tree 39 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 10 11 6 -1.</_>
<_>7 12 11 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0172390006482601</threshold>
<left_val>-0.2832390069961548</left_val>
<right_val>0.4446820020675659</right_val></_></_>
<_>
<!-- tree 40 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 13 24 4 -1.</_>
<_>0 13 12 2 2.</_>
<_>12 15 12 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0345310010015965</threshold>
<left_val>-2.3107020854949951</left_val>
<right_val>-3.1399999279528856e-003</right_val></_></_>
<_>
<!-- tree 41 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 4 22 12 -1.</_>
<_>13 4 11 6 2.</_>
<_>2 10 11 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0670069977641106</threshold>
<left_val>0.2871569991111755</left_val>
<right_val>-0.6448100209236145</right_val></_></_>
<_>
<!-- tree 42 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 0 20 17 -1.</_>
<_>12 0 10 17 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.2377689927816391</threshold>
<left_val>-0.2717480063438416</left_val>
<right_val>0.8021910190582275</right_val></_></_>
<_>
<!-- tree 43 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 0 2 24 -1.</_>
<_>14 0 1 24 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0129030002281070</threshold>
<left_val>-1.5317620038986206</left_val>
<right_val>0.2142360061407089</right_val></_></_>
<_>
<!-- tree 44 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 0 2 24 -1.</_>
<_>9 0 1 24 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0105149997398257</threshold>
<left_val>0.0770379975438118</left_val>
<right_val>-1.0581140518188477</right_val></_></_>
<_>
<!-- tree 45 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 1 2 22 -1.</_>
<_>14 1 1 22 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0169690009206533</threshold>
<left_val>0.1430670022964478</left_val>
<right_val>-0.8582839965820313</right_val></_></_>
<_>
<!-- tree 46 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 1 2 22 -1.</_>
<_>9 1 1 22 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-7.2460002265870571e-003</threshold>
<left_val>-1.1020129919052124</left_val>
<right_val>0.0649069994688034</right_val></_></_>
<_>
<!-- tree 47 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>17 6 3 18 -1.</_>
<_>18 6 1 18 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0105569995939732</threshold>
<left_val>0.0139640001580119</left_val>
<right_val>0.6360149979591370</right_val></_></_>
<_>
<!-- tree 48 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 14 9 6 -1.</_>
<_>6 16 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>6.1380001716315746e-003</threshold>
<left_val>-0.3454590141773224</left_val>
<right_val>0.5629680156707764</right_val></_></_>
<_>
<!-- tree 49 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>13 14 9 4 -1.</_>
<_>13 16 9 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0131580000743270</threshold>
<left_val>0.1992730051279068</left_val>
<right_val>-1.5040320158004761</right_val></_></_>
<_>
<!-- tree 50 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 18 18 3 -1.</_>
<_>3 19 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>3.1310000922530890e-003</threshold>
<left_val>-0.4090369939804077</left_val>
<right_val>0.3779639899730682</right_val></_></_>
<_>
<!-- tree 51 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 4 8 18 -1.</_>
<_>13 4 4 9 2.</_>
<_>9 13 4 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.1092069968581200</threshold>
<left_val>-2.2227079868316650</left_val>
<right_val>0.1217819973826408</right_val></_></_>
<_>
<!-- tree 52 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 17 18 3 -1.</_>
<_>0 18 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>8.1820003688335419e-003</threshold>
<left_val>-0.2865200042724609</left_val>
<right_val>0.6789079904556274</right_val></_></_></trees>
<stage_threshold>-4.1299300193786621</stage_threshold>
<parent>4</parent>
<next>-1</next></_>
<_>
<!-- stage 6 -->
<trees>
<_>
<!-- tree 0 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 2 12 4 -1.</_>
<_>6 2 6 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0313469991087914</threshold>
<left_val>-0.8888459801673889</left_val>
<right_val>0.9493680000305176</right_val></_></_>
<_>
<!-- tree 1 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 8 14 6 -1.</_>
<_>6 11 14 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0319180004298687</threshold>
<left_val>-1.1146880388259888</left_val>
<right_val>0.4888899922370911</right_val></_></_>
<_>
<!-- tree 2 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 5 6 6 -1.</_>
<_>10 5 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>6.5939999185502529e-003</threshold>
<left_val>-1.0097689628601074</left_val>
<right_val>0.4972380101680756</right_val></_></_>
<_>
<!-- tree 3 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 5 6 16 -1.</_>
<_>10 13 6 8 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0261480007320642</threshold>
<left_val>0.2599129974842072</left_val>
<right_val>-1.2537480592727661</right_val></_></_>
<_>
<!-- tree 4 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 4 9 16 -1.</_>
<_>4 4 3 16 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0128450002521276</threshold>
<left_val>-0.5713859796524048</left_val>
<right_val>0.5965949892997742</right_val></_></_>
<_>
<!-- tree 5 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 0 18 9 -1.</_>
<_>5 3 18 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0263449996709824</threshold>
<left_val>-0.5520319938659668</left_val>
<right_val>0.3021740019321442</right_val></_></_>
<_>
<!-- tree 6 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 15 5 8 -1.</_>
<_>9 19 5 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0150830000638962</threshold>
<left_val>-1.2871240377426147</left_val>
<right_val>0.2235420048236847</right_val></_></_>
<_>
<!-- tree 7 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>20 0 4 9 -1.</_>
<_>20 0 2 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0388870015740395</threshold>
<left_val>1.7425049543380737</left_val>
<right_val>-0.0997470021247864</right_val></_></_>
<_>
<!-- tree 8 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 0 18 3 -1.</_>
<_>2 1 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-5.7029998861253262e-003</threshold>
<left_val>-1.0523240566253662</left_val>
<right_val>0.1836259961128235</right_val></_></_>
<_>
<!-- tree 9 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 22 19 2 -1.</_>
<_>5 23 19 1 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-1.4860000228509307e-003</threshold>
<left_val>0.5678420066833496</left_val>
<right_val>-0.4674200117588043</right_val></_></_>
<_>
<!-- tree 10 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 0 4 9 -1.</_>
<_>2 0 2 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0284860003739595</threshold>
<left_val>1.3082909584045410</left_val>
<right_val>-0.2646090090274811</right_val></_></_>
<_>
<!-- tree 11 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 6 19 18 -1.</_>
<_>5 12 19 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0662249997258186</threshold>
<left_val>-0.4621070027351379</left_val>
<right_val>0.4174959957599640</right_val></_></_>
<_>
<!-- tree 12 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 1 6 9 -1.</_>
<_>2 1 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>8.8569996878504753e-003</threshold>
<left_val>-0.4147489964962006</left_val>
<right_val>0.5920479893684387</right_val></_></_>
<_>
<!-- tree 13 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 5 14 12 -1.</_>
<_>13 5 7 6 2.</_>
<_>6 11 7 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0113559998571873</threshold>
<left_val>0.3610309958457947</left_val>
<right_val>-0.4578120112419128</right_val></_></_>
<_>
<!-- tree 14 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 1 20 2 -1.</_>
<_>0 2 20 1 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-2.7679998893290758e-003</threshold>
<left_val>-0.8923889994621277</left_val>
<right_val>0.1419900059700012</right_val></_></_>
<_>
<!-- tree 15 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 2 22 3 -1.</_>
<_>1 3 22 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0112469997256994</threshold>
<left_val>0.2935340106487274</left_val>
<right_val>-0.9733060002326965</right_val></_></_>
<_>
<!-- tree 16 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 8 7 9 -1.</_>
<_>2 11 7 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>7.1970000863075256e-003</threshold>
<left_val>-0.7933490276336670</left_val>
<right_val>0.1831340044736862</right_val></_></_>
<_>
<!-- tree 17 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 12 22 4 -1.</_>
<_>13 12 11 2 2.</_>
<_>2 14 11 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0317689999938011</threshold>
<left_val>0.1552309989929199</left_val>
<right_val>-1.3245639801025391</right_val></_></_>
<_>
<!-- tree 18 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 12 22 4 -1.</_>
<_>0 12 11 2 2.</_>
<_>11 14 11 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0251739993691444</threshold>
<left_val>0.0342149995267391</left_val>
<right_val>-2.0948131084442139</right_val></_></_>
<_>
<!-- tree 19 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 7 6 11 -1.</_>
<_>11 7 2 11 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>7.5360001064836979e-003</threshold>
<left_val>-0.3945060074329376</left_val>
<right_val>0.5133399963378906</right_val></_></_>
<_>
<!-- tree 20 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 1 9 6 -1.</_>
<_>10 1 3 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0328730009496212</threshold>
<left_val>0.0883729979395866</left_val>
<right_val>-1.2814120054244995</right_val></_></_>
<_>
<!-- tree 21 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>11 2 4 10 -1.</_>
<_>11 7 4 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-2.7379998937249184e-003</threshold>
<left_val>0.5528650283813477</left_val>
<right_val>-0.4638499915599823</right_val></_></_>
<_>
<!-- tree 22 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 4 12 12 -1.</_>
<_>6 10 12 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0380750000476837</threshold>
<left_val>-1.8497270345687866</left_val>
<right_val>0.0459440015256405</right_val></_></_>
<_>
<!-- tree 23 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 1 6 15 -1.</_>
<_>18 6 6 5 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0389840006828308</threshold>
<left_val>-0.4822370111942291</left_val>
<right_val>0.3476060032844544</right_val></_></_>
<_>
<!-- tree 24 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 15 18 3 -1.</_>
<_>3 16 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.8029999230057001e-003</threshold>
<left_val>-0.4515469968318939</left_val>
<right_val>0.4280630052089691</right_val></_></_>
<_>
<!-- tree 25 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 5 6 9 -1.</_>
<_>18 8 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0541459992527962</threshold>
<left_val>-0.8452079892158508</left_val>
<right_val>0.1667490005493164</right_val></_></_>
<_>
<!-- tree 26 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 5 16 6 -1.</_>
<_>1 5 8 3 2.</_>
<_>9 8 8 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-8.3280000835657120e-003</threshold>
<left_val>0.3534829914569855</left_val>
<right_val>-0.4716320037841797</right_val></_></_>
<_>
<!-- tree 27 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>11 0 6 9 -1.</_>
<_>13 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0337780006229877</threshold>
<left_val>0.1846310049295425</left_val>
<right_val>-1.6686669588088989</right_val></_></_>
<_>
<!-- tree 28 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 4 24 14 -1.</_>
<_>0 4 12 7 2.</_>
<_>12 11 12 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.1123809963464737</threshold>
<left_val>-1.2521569728851318</left_val>
<right_val>0.0359920002520084</right_val></_></_>
<_>
<!-- tree 29 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>13 0 4 13 -1.</_>
<_>13 0 2 13 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0104080000892282</threshold>
<left_val>-0.8162040114402771</left_val>
<right_val>0.2342859953641892</right_val></_></_>
<_>
<!-- tree 30 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 0 4 13 -1.</_>
<_>9 0 2 13 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-4.9439999274909496e-003</threshold>
<left_val>-0.9258469939231873</left_val>
<right_val>0.1003480032086372</right_val></_></_>
<_>
<!-- tree 31 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>11 6 6 9 -1.</_>
<_>13 6 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-9.3029998242855072e-003</threshold>
<left_val>0.5649930238723755</left_val>
<right_val>-0.1888190060853958</right_val></_></_>
<_>
<!-- tree 32 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 7 6 9 -1.</_>
<_>10 7 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0117499995976686</threshold>
<left_val>0.8030239939689636</left_val>
<right_val>-0.3827700018882752</right_val></_></_>
<_>
<!-- tree 33 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>13 17 9 6 -1.</_>
<_>13 19 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0232170000672340</threshold>
<left_val>-0.8492699861526489</left_val>
<right_val>0.1967120021581650</right_val></_></_>
<_>
<!-- tree 34 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 18 14 6 -1.</_>
<_>2 18 7 3 2.</_>
<_>9 21 7 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0168660003691912</threshold>
<left_val>-0.4059189856052399</left_val>
<right_val>0.5069530010223389</right_val></_></_>
<_>
<!-- tree 35 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 18 18 4 -1.</_>
<_>12 18 9 2 2.</_>
<_>3 20 9 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0240310002118349</threshold>
<left_val>-1.5297520160675049</left_val>
<right_val>0.2334499955177307</right_val></_></_>
<_>
<!-- tree 36 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 20 15 4 -1.</_>
<_>5 20 5 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0369459986686707</threshold>
<left_val>0.6300770044326782</left_val>
<right_val>-0.3178040087223053</right_val></_></_>
<_>
<!-- tree 37 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 15 15 9 -1.</_>
<_>14 15 5 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0615639984607697</threshold>
<left_val>0.5862789750099182</left_val>
<right_val>-0.0121079999953508</right_val></_></_>
<_>
<!-- tree 38 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 4 16 4 -1.</_>
<_>4 6 16 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0216610003262758</threshold>
<left_val>-0.2562370002269745</left_val>
<right_val>1.0409849882125854</right_val></_></_>
<_>
<!-- tree 39 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 6 10 6 -1.</_>
<_>7 8 10 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-3.6710000131279230e-003</threshold>
<left_val>0.2917110025882721</left_val>
<right_val>-0.8328729867935181</right_val></_></_>
<_>
<!-- tree 40 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 14 15 10 -1.</_>
<_>5 14 5 10 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0448490008711815</threshold>
<left_val>-0.3963319957256317</left_val>
<right_val>0.4566200077533722</right_val></_></_>
<_>
<!-- tree 41 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 9 10 14 -1.</_>
<_>12 9 5 7 2.</_>
<_>7 16 5 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0571950003504753</threshold>
<left_val>0.2102389931678772</left_val>
<right_val>-1.5004800558090210</right_val></_></_>
<_>
<!-- tree 42 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 6 6 9 -1.</_>
<_>9 6 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0113420002162457</threshold>
<left_val>0.4407129883766174</left_val>
<right_val>-0.3865379989147186</right_val></_></_>
<_>
<!-- tree 43 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 6 18 3 -1.</_>
<_>3 7 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0120040001347661</threshold>
<left_val>0.9395459890365601</left_val>
<right_val>-0.1058949977159500</right_val></_></_>
<_>
<!-- tree 44 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 10 18 3 -1.</_>
<_>0 11 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0225159991532564</threshold>
<left_val>9.4480002298951149e-003</left_val>
<right_val>-1.6799509525299072</right_val></_></_>
<_>
<!-- tree 45 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 16 18 4 -1.</_>
<_>12 16 9 2 2.</_>
<_>3 18 9 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0198090001940727</threshold>
<left_val>-1.0133639574050903</left_val>
<right_val>0.2414660006761551</right_val></_></_>
<_>
<!-- tree 46 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 6 14 6 -1.</_>
<_>4 6 7 3 2.</_>
<_>11 9 7 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0158910006284714</threshold>
<left_val>-0.3750759959220886</left_val>
<right_val>0.4661409854888916</right_val></_></_>
<_>
<!-- tree 47 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>13 0 2 18 -1.</_>
<_>13 0 1 18 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-9.1420002281665802e-003</threshold>
<left_val>-0.8048409819602966</left_val>
<right_val>0.1781699955463409</right_val></_></_>
<_>
<!-- tree 48 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 0 2 18 -1.</_>
<_>10 0 1 18 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-4.4740000739693642e-003</threshold>
<left_val>-1.0562069416046143</left_val>
<right_val>0.0733050033450127</right_val></_></_>
<_>
<!-- tree 49 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 7 15 10 -1.</_>
<_>10 7 5 10 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1274250000715256</threshold>
<left_val>0.2016559988260269</left_val>
<right_val>-1.5467929840087891</right_val></_></_>
<_>
<!-- tree 50 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 20 21 4 -1.</_>
<_>8 20 7 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0477030016481876</threshold>
<left_val>-0.3793779909610748</left_val>
<right_val>0.3788599967956543</right_val></_></_>
<_>
<!-- tree 51 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 5 5 18 -1.</_>
<_>10 14 5 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0536080002784729</threshold>
<left_val>0.2122049927711487</left_val>
<right_val>-1.2399710416793823</right_val></_></_>
<_>
<!-- tree 52 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 2 24 6 -1.</_>
<_>0 2 12 3 2.</_>
<_>12 5 12 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0396809987723827</threshold>
<left_val>-1.0257550477981567</left_val>
<right_val>0.0512829981744289</right_val></_></_>
<_>
<!-- tree 53 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 1 22 8 -1.</_>
<_>12 1 11 4 2.</_>
<_>1 5 11 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0673270002007484</threshold>
<left_val>-1.0304750204086304</left_val>
<right_val>0.2300529927015305</right_val></_></_>
<_>
<!-- tree 54 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 0 15 9 -1.</_>
<_>4 3 15 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1333760023117065</threshold>
<left_val>-0.2086900025606155</left_val>
<right_val>1.2272510528564453</right_val></_></_>
<_>
<!-- tree 55 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 0 24 19 -1.</_>
<_>8 0 8 19 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.2091930061578751</threshold>
<left_val>0.8792989850044251</left_val>
<right_val>-0.0442549996078014</right_val></_></_>
<_>
<!-- tree 56 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 21 18 3 -1.</_>
<_>11 21 9 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0655890032649040</threshold>
<left_val>1.0443429946899414</left_val>
<right_val>-0.2168209999799728</right_val></_></_>
<_>
<!-- tree 57 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 7 10 4 -1.</_>
<_>9 7 5 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0618829987943172</threshold>
<left_val>0.1379819959402084</left_val>
<right_val>-1.9009059667587280</right_val></_></_>
<_>
<!-- tree 58 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 7 10 4 -1.</_>
<_>10 7 5 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0255789998918772</threshold>
<left_val>-1.6607600450515747</left_val>
<right_val>5.8439997956156731e-003</right_val></_></_>
<_>
<!-- tree 59 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>17 8 6 16 -1.</_>
<_>20 8 3 8 2.</_>
<_>17 16 3 8 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0348270013928413</threshold>
<left_val>0.7994040250778198</left_val>
<right_val>-0.0824069976806641</right_val></_></_>
<_>
<!-- tree 60 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 15 20 4 -1.</_>
<_>1 15 10 2 2.</_>
<_>11 17 10 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0182099994271994</threshold>
<left_val>-0.9607399702072144</left_val>
<right_val>0.0663200020790100</right_val></_></_>
<_>
<!-- tree 61 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 15 10 6 -1.</_>
<_>14 17 10 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0150709999725223</threshold>
<left_val>0.1989939957857132</left_val>
<right_val>-0.7643300294876099</right_val></_></_></trees>
<stage_threshold>-4.0218091011047363</stage_threshold>
<parent>5</parent>
<next>-1</next></_>
<_>
<!-- stage 7 -->
<trees>
<_>
<!-- tree 0 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 0 16 9 -1.</_>
<_>3 3 16 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0463249981403351</threshold>
<left_val>-1.0362670421600342</left_val>
<right_val>0.8220149874687195</right_val></_></_>
<_>
<!-- tree 1 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 6 7 15 -1.</_>
<_>15 11 7 5 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0154069997370243</threshold>
<left_val>-1.2327589988708496</left_val>
<right_val>0.2964769899845123</right_val></_></_>
<_>
<!-- tree 2 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 1 6 13 -1.</_>
<_>11 1 2 13 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0128089999780059</threshold>
<left_val>-0.7585229873657227</left_val>
<right_val>0.5798550248146057</right_val></_></_>
<_>
<!-- tree 3 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>17 2 6 14 -1.</_>
<_>17 2 3 14 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0491509996354580</threshold>
<left_val>-0.3898389935493469</left_val>
<right_val>0.8968030214309692</right_val></_></_>
<_>
<!-- tree 4 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 14 12 10 -1.</_>
<_>3 14 6 5 2.</_>
<_>9 19 6 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0126210004091263</threshold>
<left_val>-0.7179930210113525</left_val>
<right_val>0.5044090151786804</right_val></_></_>
<_>
<!-- tree 5 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 6 10 6 -1.</_>
<_>7 8 10 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0187689997255802</threshold>
<left_val>0.5514760017395020</left_val>
<right_val>-0.7055540084838867</right_val></_></_>
<_>
<!-- tree 6 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 2 6 14 -1.</_>
<_>4 2 3 14 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0419650003314018</threshold>
<left_val>-0.4478209912776947</left_val>
<right_val>0.7098550200462341</right_val></_></_>
<_>
<!-- tree 7 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 4 5 12 -1.</_>
<_>10 8 5 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0514019988477230</threshold>
<left_val>-1.0932120084762573</left_val>
<right_val>0.2670190036296845</right_val></_></_>
<_>
<!-- tree 8 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 17 24 5 -1.</_>
<_>8 17 8 5 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0709609985351563</threshold>
<left_val>0.8361840248107910</left_val>
<right_val>-0.3831810057163239</right_val></_></_>
<_>
<!-- tree 9 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 7 5 12 -1.</_>
<_>15 11 5 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0167459994554520</threshold>
<left_val>-0.2573310136795044</left_val>
<right_val>0.2596650123596191</right_val></_></_>
<_>
<!-- tree 10 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 1 6 12 -1.</_>
<_>3 1 3 6 2.</_>
<_>6 7 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-6.2400000169873238e-003</threshold>
<left_val>0.3163149952888489</left_val>
<right_val>-0.5879690051078796</right_val></_></_>
<_>
<!-- tree 11 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 13 6 6 -1.</_>
<_>12 16 6 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0393979996442795</threshold>
<left_val>-1.0491210222244263</left_val>
<right_val>0.1682240068912506</right_val></_></_>
<_>
<!-- tree 12 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 13 6 6 -1.</_>
<_>6 16 6 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.</threshold>
<left_val>0.1614419966936112</left_val>
<right_val>-0.8787689805030823</right_val></_></_>
<_>
<!-- tree 13 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 6 3 16 -1.</_>
<_>14 14 3 8 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0223079994320869</threshold>
<left_val>-0.6905350089073181</left_val>
<right_val>0.2360700070858002</right_val></_></_>
<_>
<!-- tree 14 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 12 13 6 -1.</_>
<_>1 14 13 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>1.8919999711215496e-003</threshold>
<left_val>0.2498919963836670</left_val>
<right_val>-0.5658329725265503</right_val></_></_>
<_>
<!-- tree 15 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>13 1 4 9 -1.</_>
<_>13 1 2 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>1.0730000212788582e-003</threshold>
<left_val>-0.5041580200195313</left_val>
<right_val>0.3837450146675110</right_val></_></_>
<_>
<!-- tree 16 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 0 9 6 -1.</_>
<_>10 0 3 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0392309986054897</threshold>
<left_val>0.0426190011203289</left_val>
<right_val>-1.3875889778137207</right_val></_></_>
<_>
<!-- tree 17 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 2 6 9 -1.</_>
<_>12 2 3 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0622380003333092</threshold>
<left_val>0.1411940008401871</left_val>
<right_val>-1.0688860416412354</right_val></_></_>
<_>
<!-- tree 18 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 2 6 9 -1.</_>
<_>9 2 3 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.1399999968707561e-003</threshold>
<left_val>-0.8962240219116211</left_val>
<right_val>0.1979639977216721</right_val></_></_>
<_>
<!-- tree 19 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 18 12 6 -1.</_>
<_>6 20 12 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>9.1800000518560410e-004</threshold>
<left_val>-0.4533729851245880</left_val>
<right_val>0.4353269934654236</right_val></_></_>
<_>
<!-- tree 20 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 6 6 9 -1.</_>
<_>9 6 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-6.9169998168945313e-003</threshold>
<left_val>0.3382279872894287</left_val>
<right_val>-0.4479300081729889</right_val></_></_>
<_>
<!-- tree 21 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 7 12 3 -1.</_>
<_>7 7 6 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0238669998943806</threshold>
<left_val>-0.7890859842300415</left_val>
<right_val>0.2251179963350296</right_val></_></_>
<_>
<!-- tree 22 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 3 8 21 -1.</_>
<_>8 10 8 7 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.1026280000805855</threshold>
<left_val>-2.2831439971923828</left_val>
<right_val>-5.3960001096129417e-003</right_val></_></_>
<_>
<!-- tree 23 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 4 10 12 -1.</_>
<_>7 8 10 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-9.5239998772740364e-003</threshold>
<left_val>0.3934670090675354</left_val>
<right_val>-0.5224220156669617</right_val></_></_>
<_>
<!-- tree 24 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 1 6 9 -1.</_>
<_>0 4 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0398770011961460</threshold>
<left_val>0.0327990017831326</left_val>
<right_val>-1.5079489946365356</right_val></_></_>
<_>
<!-- tree 25 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 2 2 20 -1.</_>
<_>15 2 1 20 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0131449997425079</threshold>
<left_val>-1.0839990377426147</left_val>
<right_val>0.1848240047693253</right_val></_></_>
<_>
<!-- tree 26 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 3 6 9 -1.</_>
<_>0 6 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0505909994244576</threshold>
<left_val>-1.8822289705276489</left_val>
<right_val>-2.2199999075382948e-003</right_val></_></_>
<_>
<!-- tree 27 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 3 2 21 -1.</_>
<_>15 3 1 21 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0249170009046793</threshold>
<left_val>0.1459340006113052</left_val>
<right_val>-2.2196519374847412</right_val></_></_>
<_>
<!-- tree 28 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 0 2 23 -1.</_>
<_>8 0 1 23 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-7.6370001770555973e-003</threshold>
<left_val>-1.0164569616317749</left_val>
<right_val>0.0587970018386841</right_val></_></_>
<_>
<!-- tree 29 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 8 9 4 -1.</_>
<_>15 10 9 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0429119989275932</threshold>
<left_val>0.1544300019741058</left_val>
<right_val>-1.1843889951705933</right_val></_></_>
<_>
<!-- tree 30 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 8 9 4 -1.</_>
<_>0 10 9 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.3000000510364771e-004</threshold>
<left_val>-0.7730579972267151</left_val>
<right_val>0.1218990013003349</right_val></_></_>
<_>
<!-- tree 31 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 14 9 6 -1.</_>
<_>8 16 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>9.0929996222257614e-003</threshold>
<left_val>-0.1145009994506836</left_val>
<right_val>0.7109130024909973</right_val></_></_>
<_>
<!-- tree 32 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 14 9 6 -1.</_>
<_>0 16 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0111450003460050</threshold>
<left_val>0.0700009986758232</left_val>
<right_val>-1.0534820556640625</right_val></_></_>
<_>
<!-- tree 33 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 10 18 4 -1.</_>
<_>9 10 6 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0524530000984669</threshold>
<left_val>-1.7594360113143921</left_val>
<right_val>0.1952379941940308</right_val></_></_>
<_>
<!-- tree 34 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 0 24 19 -1.</_>
<_>8 0 8 19 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.2302069962024689</threshold>
<left_val>0.9584029912948608</left_val>
<right_val>-0.2504569888114929</right_val></_></_>
<_>
<!-- tree 35 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 1 8 12 -1.</_>
<_>9 7 8 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0163659993559122</threshold>
<left_val>0.4673190116882324</left_val>
<right_val>-0.2110839933156967</right_val></_></_>
<_>
<!-- tree 36 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 6 4 10 -1.</_>
<_>12 6 2 10 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0172080006450415</threshold>
<left_val>0.7083569765090942</left_val>
<right_val>-0.2801829874515533</right_val></_></_>
<_>
<!-- tree 37 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 9 10 12 -1.</_>
<_>12 9 5 6 2.</_>
<_>7 15 5 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0366480015218258</threshold>
<left_val>-1.1013339757919312</left_val>
<right_val>0.2434110045433044</right_val></_></_>
<_>
<!-- tree 38 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 0 3 19 -1.</_>
<_>6 0 1 19 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0103049995377660</threshold>
<left_val>-1.0933129787445068</left_val>
<right_val>0.0562589988112450</right_val></_></_>
<_>
<!-- tree 39 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 0 6 10 -1.</_>
<_>16 0 2 10 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0137130003422499</threshold>
<left_val>-0.2643809914588928</left_val>
<right_val>0.1982100009918213</right_val></_></_>
<_>
<!-- tree 40 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 0 6 12 -1.</_>
<_>2 0 3 6 2.</_>
<_>5 6 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0293080005794764</threshold>
<left_val>-0.2214239984750748</left_val>
<right_val>1.0525950193405151</right_val></_></_>
<_>
<!-- tree 41 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 11 24 2 -1.</_>
<_>0 12 24 1 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0240770000964403</threshold>
<left_val>0.1848569959402084</left_val>
<right_val>-1.7203969955444336</right_val></_></_>
<_>
<!-- tree 42 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 9 13 4 -1.</_>
<_>4 11 13 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>6.1280000954866409e-003</threshold>
<left_val>-0.9272149801254273</left_val>
<right_val>0.0587529987096787</right_val></_></_>
<_>
<!-- tree 43 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 8 6 9 -1.</_>
<_>9 11 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0223779994994402</threshold>
<left_val>1.9646559953689575</left_val>
<right_val>0.0277859997004271</right_val></_></_>
<_>
<!-- tree 44 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 12 16 4 -1.</_>
<_>0 14 16 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-7.0440000854432583e-003</threshold>
<left_val>0.2142760008573532</left_val>
<right_val>-0.4840759932994843</right_val></_></_>
<_>
<!-- tree 45 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 12 6 9 -1.</_>
<_>18 15 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0406030006706715</threshold>
<left_val>-1.1754349470138550</left_val>
<right_val>0.1606120020151138</right_val></_></_>
<_>
<!-- tree 46 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 12 6 9 -1.</_>
<_>0 15 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0244660004973412</threshold>
<left_val>-1.1239900588989258</left_val>
<right_val>0.0411100015044212</right_val></_></_>
<_>
<!-- tree 47 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 7 10 4 -1.</_>
<_>8 7 5 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.5309999473392963e-003</threshold>
<left_val>-0.1716970056295395</left_val>
<right_val>0.3217880129814148</right_val></_></_>
<_>
<!-- tree 48 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 7 6 9 -1.</_>
<_>10 7 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0195889994502068</threshold>
<left_val>0.8272020220756531</left_val>
<right_val>-0.2637670040130615</right_val></_></_>
<_>
<!-- tree 49 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>11 0 6 9 -1.</_>
<_>13 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0296359993517399</threshold>
<left_val>-1.1524770259857178</left_val>
<right_val>0.1499930024147034</right_val></_></_>
<_>
<!-- tree 50 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 0 6 9 -1.</_>
<_>9 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0150300003588200</threshold>
<left_val>-1.0491830110549927</left_val>
<right_val>0.0401609987020493</right_val></_></_>
<_>
<!-- tree 51 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 3 6 15 -1.</_>
<_>14 3 2 15 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0607150010764599</threshold>
<left_val>-1.0903840065002441</left_val>
<right_val>0.1533080041408539</right_val></_></_>
<_>
<!-- tree 52 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 3 6 15 -1.</_>
<_>8 3 2 15 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0127900000661612</threshold>
<left_val>0.4224860072135925</left_val>
<right_val>-0.4239920079708099</right_val></_></_>
<_>
<!-- tree 53 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 2 9 4 -1.</_>
<_>15 4 9 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0202479995787144</threshold>
<left_val>-0.9186699986457825</left_val>
<right_val>0.1848569959402084</right_val></_></_>
<_>
<!-- tree 54 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 10 6 7 -1.</_>
<_>8 10 3 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0306839998811483</threshold>
<left_val>-1.5958670377731323</left_val>
<right_val>2.5760000571608543e-003</right_val></_></_>
<_>
<!-- tree 55 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 14 6 10 -1.</_>
<_>9 19 6 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0207180008292198</threshold>
<left_val>-0.6629999876022339</left_val>
<right_val>0.3103719949722290</right_val></_></_>
<_>
<!-- tree 56 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 13 5 8 -1.</_>
<_>7 17 5 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-1.7290000105276704e-003</threshold>
<left_val>0.1918340027332306</left_val>
<right_val>-0.6508499979972839</right_val></_></_>
<_>
<!-- tree 57 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 5 3 16 -1.</_>
<_>14 13 3 8 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0313940010964870</threshold>
<left_val>-0.6364300251007080</left_val>
<right_val>0.1540839970111847</right_val></_></_>
<_>
<!-- tree 58 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 17 18 3 -1.</_>
<_>2 18 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0190030001103878</threshold>
<left_val>-0.1891939938068390</left_val>
<right_val>1.5294510126113892</right_val></_></_>
<_>
<!-- tree 59 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 18 19 3 -1.</_>
<_>5 19 19 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>6.1769997701048851e-003</threshold>
<left_val>-0.1059790030121803</left_val>
<right_val>0.6485959887504578</right_val></_></_>
<_>
<!-- tree 60 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 0 6 9 -1.</_>
<_>11 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0101659996435046</threshold>
<left_val>-1.0802700519561768</left_val>
<right_val>0.0371760018169880</right_val></_></_>
<_>
<!-- tree 61 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 4 3 18 -1.</_>
<_>13 4 1 18 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-1.4169999631121755e-003</threshold>
<left_val>0.3415749967098236</left_val>
<right_val>-0.0977379977703094</right_val></_></_>
<_>
<!-- tree 62 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 4 3 18 -1.</_>
<_>10 4 1 18 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-4.0799998678267002e-003</threshold>
<left_val>0.4762459993362427</left_val>
<right_val>-0.3436630070209503</right_val></_></_>
<_>
<!-- tree 63 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 3 18 9 -1.</_>
<_>9 3 6 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0440969988703728</threshold>
<left_val>0.9763429760932922</left_val>
<right_val>-0.0191730000078678</right_val></_></_>
<_>
<!-- tree 64 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 1 6 14 -1.</_>
<_>8 1 2 14 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0606699995696545</threshold>
<left_val>-2.1752851009368896</left_val>
<right_val>-0.0289259999990463</right_val></_></_>
<_>
<!-- tree 65 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 16 9 6 -1.</_>
<_>12 19 9 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0329319983720779</threshold>
<left_val>-0.6438310146331787</left_val>
<right_val>0.1649409979581833</right_val></_></_>
<_>
<!-- tree 66 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 3 20 16 -1.</_>
<_>1 3 10 8 2.</_>
<_>11 11 10 8 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.1472280025482178</threshold>
<left_val>-1.4745830297470093</left_val>
<right_val>2.5839998852461576e-003</right_val></_></_>
<_>
<!-- tree 67 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 5 6 12 -1.</_>
<_>15 5 3 6 2.</_>
<_>12 11 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0119300000369549</threshold>
<left_val>0.4244140088558197</left_val>
<right_val>-0.1771260052919388</right_val></_></_>
<_>
<!-- tree 68 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 2 22 16 -1.</_>
<_>1 2 11 8 2.</_>
<_>12 10 11 8 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1451790034770966</threshold>
<left_val>0.0254449993371964</left_val>
<right_val>-1.2779400348663330</right_val></_></_>
<_>
<!-- tree 69 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 14 5 10 -1.</_>
<_>10 19 5 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0514479987323284</threshold>
<left_val>0.1567839980125427</left_val>
<right_val>-1.5188430547714233</right_val></_></_>
<_>
<!-- tree 70 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 21 18 3 -1.</_>
<_>3 22 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>3.1479999888688326e-003</threshold>
<left_val>-0.4042440056800842</left_val>
<right_val>0.3242970108985901</right_val></_></_>
<_>
<!-- tree 71 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 14 6 10 -1.</_>
<_>12 14 2 10 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0436000004410744</threshold>
<left_val>-1.9932260513305664</left_val>
<right_val>0.1501860022544861</right_val></_></_></trees>
<stage_threshold>-3.8832089900970459</stage_threshold>
<parent>6</parent>
<next>-1</next></_>
<_>
<!-- stage 8 -->
<trees>
<_>
<!-- tree 0 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 2 24 4 -1.</_>
<_>8 2 8 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1289959996938705</threshold>
<left_val>-0.6216199994087219</left_val>
<right_val>1.1116520166397095</right_val></_></_>
<_>
<!-- tree 1 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 4 12 9 -1.</_>
<_>6 7 12 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0912619978189468</threshold>
<left_val>1.0143059492111206</left_val>
<right_val>-0.6133520007133484</right_val></_></_>
<_>
<!-- tree 2 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 6 12 5 -1.</_>
<_>10 6 4 5 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0142719997093081</threshold>
<left_val>-1.0261659622192383</left_val>
<right_val>0.3977999985218048</right_val></_></_>
<_>
<!-- tree 3 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 8 14 12 -1.</_>
<_>5 12 14 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0328899994492531</threshold>
<left_val>-1.1386079788208008</left_val>
<right_val>0.2869080007076263</right_val></_></_>
<_>
<!-- tree 4 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 14 8 10 -1.</_>
<_>4 14 4 5 2.</_>
<_>8 19 4 5 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0125900004059076</threshold>
<left_val>-0.5664560198783875</left_val>
<right_val>0.4517239928245544</right_val></_></_>
<_>
<!-- tree 5 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>11 6 5 14 -1.</_>
<_>11 13 5 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0146610001102090</threshold>
<left_val>0.3050599992275238</left_val>
<right_val>-0.6812959909439087</right_val></_></_>
<_>
<!-- tree 6 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 6 3 16 -1.</_>
<_>7 14 3 8 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0335559993982315</threshold>
<left_val>-1.7208939790725708</left_val>
<right_val>0.0614390000700951</right_val></_></_>
<_>
<!-- tree 7 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 7 18 8 -1.</_>
<_>9 7 6 8 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1425269991159439</threshold>
<left_val>0.2319220006465912</left_val>
<right_val>-1.7297149896621704</right_val></_></_>
<_>
<!-- tree 8 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 3 20 2 -1.</_>
<_>2 4 20 1 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-6.2079997733235359e-003</threshold>
<left_val>-1.2163300514221191</left_val>
<right_val>0.1216019988059998</right_val></_></_>
<_>
<!-- tree 9 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 12 19 6 -1.</_>
<_>3 14 19 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0181789994239807</threshold>
<left_val>0.3255369961261749</left_val>
<right_val>-0.8100399971008301</right_val></_></_>
<_>
<!-- tree 10 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 6 6 9 -1.</_>
<_>10 6 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0250369999557734</threshold>
<left_val>-0.3169879913330078</left_val>
<right_val>0.6736140251159668</right_val></_></_>
<_>
<!-- tree 11 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>16 6 6 14 -1.</_>
<_>16 6 3 14 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0465609990060329</threshold>
<left_val>-0.1108980029821396</left_val>
<right_val>0.8408250212669373</right_val></_></_>
<_>
<!-- tree 12 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 9 6 12 -1.</_>
<_>9 9 2 12 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-8.9999996125698090e-003</threshold>
<left_val>0.3957450091838837</left_val>
<right_val>-0.4762459993362427</right_val></_></_>
<_>
<!-- tree 13 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 6 6 18 -1.</_>
<_>21 6 3 9 2.</_>
<_>18 15 3 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0408059991896153</threshold>
<left_val>-1.8000000272877514e-004</left_val>
<right_val>0.9457070231437683</right_val></_></_>
<_>
<!-- tree 14 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 6 6 18 -1.</_>
<_>0 6 3 9 2.</_>
<_>3 15 3 9 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0342219993472099</threshold>
<left_val>0.7520629763603210</left_val>
<right_val>-0.3153150081634522</right_val></_></_>
<_>
<!-- tree 15 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 2 6 9 -1.</_>
<_>18 5 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0397160016000271</threshold>
<left_val>-0.8313959836959839</left_val>
<right_val>0.1774439960718155</right_val></_></_>
<_>
<!-- tree 16 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 18 15 6 -1.</_>
<_>3 20 15 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.5170000735670328e-003</threshold>
<left_val>-0.5937799811363220</left_val>
<right_val>0.2465700060129166</right_val></_></_>
<_>
<!-- tree 17 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 2 6 9 -1.</_>
<_>18 5 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0274289995431900</threshold>
<left_val>0.1599839925765991</left_val>
<right_val>-0.4278199970722199</right_val></_></_>
<_>
<!-- tree 18 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 2 6 9 -1.</_>
<_>0 5 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0349860005080700</threshold>
<left_val>0.0350559987127781</left_val>
<right_val>-1.5988600254058838</right_val></_></_>
<_>
<!-- tree 19 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 10 18 2 -1.</_>
<_>5 11 18 1 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>4.4970000162720680e-003</threshold>
<left_val>-0.5203430056571960</left_val>
<right_val>0.3782829940319061</right_val></_></_>
<_>
<!-- tree 20 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 0 12 6 -1.</_>
<_>6 2 12 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.7699999045580626e-003</threshold>
<left_val>-0.5318260192871094</left_val>
<right_val>0.2495100051164627</right_val></_></_>
<_>
<!-- tree 21 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 0 6 9 -1.</_>
<_>12 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0351740010082722</threshold>
<left_val>0.1998340040445328</left_val>
<right_val>-1.4446129798889160</right_val></_></_>
<_>
<!-- tree 22 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 0 6 9 -1.</_>
<_>10 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0259709991514683</threshold>
<left_val>0.0444269999861717</left_val>
<right_val>-1.3622980117797852</right_val></_></_>
<_>
<!-- tree 23 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 12 9 6 -1.</_>
<_>15 14 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0157839991152287</threshold>
<left_val>-0.9102039933204651</left_val>
<right_val>0.2719030082225800</right_val></_></_>
<_>
<!-- tree 24 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 6 13 6 -1.</_>
<_>3 8 13 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-7.5880000367760658e-003</threshold>
<left_val>0.0920649990439415</left_val>
<right_val>-0.8162890076637268</right_val></_></_>
<_>
<!-- tree 25 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 12 9 6 -1.</_>
<_>15 14 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0207540001720190</threshold>
<left_val>0.2118570059537888</left_val>
<right_val>-0.7472900152206421</right_val></_></_>
<_>
<!-- tree 26 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 5 6 15 -1.</_>
<_>5 5 3 15 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0598290003836155</threshold>
<left_val>-0.2730109989643097</left_val>
<right_val>0.8092330098152161</right_val></_></_>
<_>
<!-- tree 27 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 8 9 6 -1.</_>
<_>11 8 3 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0390390008687973</threshold>
<left_val>-0.1043229997158051</left_val>
<right_val>0.8622620105743408</right_val></_></_>
<_>
<!-- tree 28 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 6 3 14 -1.</_>
<_>8 13 3 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0216659996658564</threshold>
<left_val>0.0627090036869049</left_val>
<right_val>-0.9889429807662964</right_val></_></_>
<_>
<!-- tree 29 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 12 9 6 -1.</_>
<_>15 14 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0274969991296530</threshold>
<left_val>-0.9269099831581116</left_val>
<right_val>0.1558630019426346</right_val></_></_>
<_>
<!-- tree 30 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 12 10 4 -1.</_>
<_>9 12 5 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0104620000347495</threshold>
<left_val>0.1341809928417206</left_val>
<right_val>-0.7038639783859253</right_val></_></_>
<_>
<!-- tree 31 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>13 1 4 19 -1.</_>
<_>13 1 2 19 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0248709991574287</threshold>
<left_val>0.1970670074224472</left_val>
<right_val>-0.4026330113410950</right_val></_></_>
<_>
<!-- tree 32 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 1 4 19 -1.</_>
<_>9 1 2 19 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0160360001027584</threshold>
<left_val>-1.1409829854965210</left_val>
<right_val>0.0739979967474937</right_val></_></_>
<_>
<!-- tree 33 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>18 9 6 9 -1.</_>
<_>18 12 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0486270003020763</threshold>
<left_val>0.1699039936065674</left_val>
<right_val>-0.7215219736099243</right_val></_></_>
<_>
<!-- tree 34 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 21 18 3 -1.</_>
<_>1 22 18 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>1.2619999470189214e-003</threshold>
<left_val>-0.4738979935646057</left_val>
<right_val>0.2625499963760376</right_val></_></_>
<_>
<!-- tree 35 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 13 10 9 -1.</_>
<_>14 16 10 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0880350023508072</threshold>
<left_val>-2.1606519222259521</left_val>
<right_val>0.1455480009317398</right_val></_></_>
<_>
<!-- tree 36 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 13 22 4 -1.</_>
<_>1 13 11 2 2.</_>
<_>12 15 11 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0183569993823767</threshold>
<left_val>0.0447509996592999</left_val>
<right_val>-1.0766370296478271</right_val></_></_>
<_>
<!-- tree 37 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 6 16 6 -1.</_>
<_>12 6 8 3 2.</_>
<_>4 9 8 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0352750010788441</threshold>
<left_val>-0.0329190008342266</left_val>
<right_val>1.2153890132904053</right_val></_></_>
<_>
<!-- tree 38 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 0 18 22 -1.</_>
<_>1 0 9 11 2.</_>
<_>10 11 9 11 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.2039290070533752</threshold>
<left_val>-1.3187999725341797</left_val>
<right_val>0.0155039997771382</right_val></_></_>
<_>
<!-- tree 39 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 7 8 14 -1.</_>
<_>14 7 4 7 2.</_>
<_>10 14 4 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0166190005838871</threshold>
<left_val>0.3685019910335541</left_val>
<right_val>-0.1528369933366776</right_val></_></_>
<_>
<!-- tree 40 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 4 6 20 -1.</_>
<_>0 4 3 10 2.</_>
<_>3 14 3 10 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0377390012145042</threshold>
<left_val>-0.2572779953479767</left_val>
<right_val>0.7065529823303223</right_val></_></_>
<_>
<!-- tree 41 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 0 6 9 -1.</_>
<_>17 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>2.2720000706613064e-003</threshold>
<left_val>-0.0776029974222183</left_val>
<right_val>0.3336780071258545</right_val></_></_>
<_>
<!-- tree 42 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 0 6 9 -1.</_>
<_>5 0 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0148029997944832</threshold>
<left_val>-0.7852479815483093</left_val>
<right_val>0.0769340023398399</right_val></_></_>
<_>
<!-- tree 43 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 12 6 12 -1.</_>
<_>18 12 3 6 2.</_>
<_>15 18 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0483190007507801</threshold>
<left_val>1.7022320032119751</left_val>
<right_val>0.0497220009565353</right_val></_></_>
<_>
<!-- tree 44 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 12 6 12 -1.</_>
<_>3 12 3 6 2.</_>
<_>6 18 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0295390002429485</threshold>
<left_val>0.7767069935798645</left_val>
<right_val>-0.2453429996967316</right_val></_></_>
<_>
<!-- tree 45 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 12 9 6 -1.</_>
<_>15 14 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0461690016090870</threshold>
<left_val>-1.4922779798507690</left_val>
<right_val>0.1234000027179718</right_val></_></_>
<_>
<!-- tree 46 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 12 9 6 -1.</_>
<_>0 14 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0280649997293949</threshold>
<left_val>-2.1345369815826416</left_val>
<right_val>-0.0257970001548529</right_val></_></_>
<_>
<!-- tree 47 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 14 19 3 -1.</_>
<_>4 15 19 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-5.7339998893439770e-003</threshold>
<left_val>0.5698260068893433</left_val>
<right_val>-0.1205660030245781</right_val></_></_>
<_>
<!-- tree 48 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 13 19 3 -1.</_>
<_>2 14 19 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0101110003888607</threshold>
<left_val>0.6791139841079712</left_val>
<right_val>-0.2663800120353699</right_val></_></_>
<_>
<!-- tree 49 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 15 10 6 -1.</_>
<_>14 17 10 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0113599998876452</threshold>
<left_val>0.2478979974985123</left_val>
<right_val>-0.6449300050735474</right_val></_></_>
<_>
<!-- tree 50 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 0 10 12 -1.</_>
<_>6 0 5 6 2.</_>
<_>11 6 5 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0518090017139912</threshold>
<left_val>0.0147160002961755</left_val>
<right_val>-1.2395579814910889</right_val></_></_>
<_>
<!-- tree 51 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>17 1 6 12 -1.</_>
<_>20 1 3 6 2.</_>
<_>17 7 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0332919992506504</threshold>
<left_val>-8.2559995353221893e-003</left_val>
<right_val>1.0168470144271851</right_val></_></_>
<_>
<!-- tree 52 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 1 6 12 -1.</_>
<_>1 1 3 6 2.</_>
<_>4 7 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0144940000027418</threshold>
<left_val>0.4506680071353912</left_val>
<right_val>-0.3625099956989288</right_val></_></_>
<_>
<!-- tree 53 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>16 14 6 9 -1.</_>
<_>16 17 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0342219993472099</threshold>
<left_val>-0.9529250264167786</left_val>
<right_val>0.2068459987640381</right_val></_></_>
<_>
<!-- tree 54 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>7 3 9 12 -1.</_>
<_>7 9 9 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0806540027260780</threshold>
<left_val>-2.0139501094818115</left_val>
<right_val>-0.0230849999934435</right_val></_></_>
<_>
<!-- tree 55 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>12 1 4 12 -1.</_>
<_>12 7 4 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-8.9399999706074595e-004</threshold>
<left_val>0.3957200050354004</left_val>
<right_val>-0.2935130000114441</right_val></_></_>
<_>
<!-- tree 56 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 0 14 8 -1.</_>
<_>4 4 14 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0971620008349419</threshold>
<left_val>-0.2498030066490173</left_val>
<right_val>1.0859220027923584</right_val></_></_>
<_>
<!-- tree 57 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 6 6 9 -1.</_>
<_>12 6 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0366140007972717</threshold>
<left_val>-0.0578440017998219</left_val>
<right_val>1.2162159681320190</right_val></_></_>
<_>
<!-- tree 58 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>2 10 18 3 -1.</_>
<_>8 10 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0516939982771873</threshold>
<left_val>0.0430629998445511</left_val>
<right_val>-1.0636160373687744</right_val></_></_>
<_>
<!-- tree 59 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>15 15 9 6 -1.</_>
<_>15 17 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0245570000261068</threshold>
<left_val>-0.4894680082798004</left_val>
<right_val>0.1718290001153946</right_val></_></_>
<_>
<!-- tree 60 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 1 21 23 -1.</_>
<_>7 1 7 23 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.3273679912090302</threshold>
<left_val>-0.2968859970569611</left_val>
<right_val>0.5179830193519592</right_val></_></_>
<_>
<!-- tree 61 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 9 17 4 -1.</_>
<_>6 11 17 2 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>7.6959999278187752e-003</threshold>
<left_val>-0.5980589985847473</left_val>
<right_val>0.2480320036411285</right_val></_></_>
<_>
<!-- tree 62 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 0 11 18 -1.</_>
<_>1 6 11 6 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1617220044136047</threshold>
<left_val>-0.0296139996498823</left_val>
<right_val>-2.3162529468536377</right_val></_></_>
<_>
<!-- tree 63 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 15 13 6 -1.</_>
<_>6 17 13 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-4.7889999113976955e-003</threshold>
<left_val>0.3745790123939514</left_val>
<right_val>-0.3277919888496399</right_val></_></_>
<_>
<!-- tree 64 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 15 9 6 -1.</_>
<_>0 17 9 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0184029992669821</threshold>
<left_val>-0.9969270229339600</left_val>
<right_val>0.0729480013251305</right_val></_></_>
<_>
<!-- tree 65 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 7 15 4 -1.</_>
<_>13 7 5 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0776650011539459</threshold>
<left_val>0.1417569965124130</left_val>
<right_val>-1.7238730192184448</right_val></_></_>
<_>
<!-- tree 66 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 12 6 9 -1.</_>
<_>9 15 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0189210008829832</threshold>
<left_val>-0.2127310037612915</left_val>
<right_val>1.0165189504623413</right_val></_></_>
<_>
<!-- tree 67 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 8 18 3 -1.</_>
<_>12 8 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0793979987502098</threshold>
<left_val>-1.3164349794387817</left_val>
<right_val>0.1498199999332428</right_val></_></_>
<_>
<!-- tree 68 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 14 24 4 -1.</_>
<_>8 14 8 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0680370032787323</threshold>
<left_val>0.4942199885845184</left_val>
<right_val>-0.2909100055694580</right_val></_></_>
<_>
<!-- tree 69 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>16 10 3 12 -1.</_>
<_>16 16 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-6.1010001227259636e-003</threshold>
<left_val>0.4243049919605255</left_val>
<right_val>-0.3389930129051209</right_val></_></_>
<_>
<!-- tree 70 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 3 24 3 -1.</_>
<_>0 4 24 1 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0319270007312298</threshold>
<left_val>-0.0310469996184111</left_val>
<right_val>-2.3459999561309814</right_val></_></_>
<_>
<!-- tree 71 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 17 10 6 -1.</_>
<_>14 19 10 2 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0298439990729094</threshold>
<left_val>-0.7898960113525391</left_val>
<right_val>0.1541769951581955</right_val></_></_>
<_>
<!-- tree 72 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>1 13 18 3 -1.</_>
<_>7 13 6 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0805419981479645</threshold>
<left_val>-2.2509229183197021</left_val>
<right_val>-0.0309069994837046</right_val></_></_>
<_>
<!-- tree 73 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 0 18 9 -1.</_>
<_>5 3 18 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>3.8109999150037766e-003</threshold>
<left_val>-0.2557730078697205</left_val>
<right_val>0.2378550022840500</right_val></_></_>
<_>
<!-- tree 74 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>4 3 16 9 -1.</_>
<_>4 6 16 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0336470007896423</threshold>
<left_val>-0.2254139930009842</left_val>
<right_val>0.9230740070343018</right_val></_></_>
<_>
<!-- tree 75 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>16 5 3 12 -1.</_>
<_>16 11 3 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>8.2809999585151672e-003</threshold>
<left_val>-0.2889620065689087</left_val>
<right_val>0.3104619979858398</right_val></_></_>
<_>
<!-- tree 76 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 7 18 4 -1.</_>
<_>6 7 6 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1010439991950989</threshold>
<left_val>-0.0348640009760857</left_val>
<right_val>-2.7102620601654053</right_val></_></_>
<_>
<!-- tree 77 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>10 6 6 9 -1.</_>
<_>12 6 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0100090000778437</threshold>
<left_val>0.5971540212631226</left_val>
<right_val>-0.0338310003280640</right_val></_></_>
<_>
<!-- tree 78 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 8 6 10 -1.</_>
<_>11 8 2 10 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>7.1919998154044151e-003</threshold>
<left_val>-0.4773800075054169</left_val>
<right_val>0.2268600016832352</right_val></_></_>
<_>
<!-- tree 79 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 15 6 9 -1.</_>
<_>11 15 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0249690003693104</threshold>
<left_val>0.2287770062685013</left_val>
<right_val>-1.0435529947280884</right_val></_></_>
<_>
<!-- tree 80 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 1 18 21 -1.</_>
<_>12 1 9 21 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.2790800034999847</threshold>
<left_val>-0.2581810057163239</left_val>
<right_val>0.7678049802780151</right_val></_></_>
<_>
<!-- tree 81 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 8 12 7 -1.</_>
<_>6 8 6 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0442130006849766</threshold>
<left_val>-0.5979800224304199</left_val>
<right_val>0.2803989946842194</right_val></_></_>
<_>
<!-- tree 82 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 5 6 9 -1.</_>
<_>10 5 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0141369998455048</threshold>
<left_val>0.7098730206489563</left_val>
<right_val>-0.2564519941806793</right_val></_></_></trees>
<stage_threshold>-3.8424909114837646</stage_threshold>
<parent>7</parent>
<next>-1</next></_>
<_>
<!-- stage 9 -->
<trees>
<_>
<!-- tree 0 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 2 24 4 -1.</_>
<_>8 2 8 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.1377120018005371</threshold>
<left_val>-0.5587059855461121</left_val>
<right_val>1.0953769683837891</right_val></_></_>
<_>
<!-- tree 1 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>14 7 5 12 -1.</_>
<_>14 11 5 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0344609990715981</threshold>
<left_val>-0.7117189764976502</left_val>
<right_val>0.5289959907531738</right_val></_></_>
<_>
<!-- tree 2 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>5 7 5 12 -1.</_>
<_>5 11 5 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0185800008475780</threshold>
<left_val>-1.1157519817352295</left_val>
<right_val>0.4059399962425232</right_val></_></_>
<_>
<!-- tree 3 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 6 6 9 -1.</_>
<_>11 6 2 9 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0250419992953539</threshold>
<left_val>-0.4089249968528748</left_val>
<right_val>0.7412999868392944</right_val></_></_>
<_>
<!-- tree 4 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 1 6 17 -1.</_>
<_>3 1 3 17 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0571790002286434</threshold>
<left_val>-0.3805429935455322</left_val>
<right_val>0.7364770174026489</right_val></_></_>
<_>
<!-- tree 5 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 1 19 9 -1.</_>
<_>3 4 19 3 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0149320000782609</threshold>
<left_val>-0.6994550228118897</left_val>
<right_val>0.3795099854469299</right_val></_></_>
<_>
<!-- tree 6 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>3 18 12 6 -1.</_>
<_>3 18 6 3 2.</_>
<_>9 21 6 3 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>8.8900001719594002e-003</threshold>
<left_val>-0.5455859899520874</left_val>
<right_val>0.3633249998092651</right_val></_></_>
<_>
<!-- tree 7 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>20 4 4 19 -1.</_>
<_>20 4 2 19 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0304359998553991</threshold>
<left_val>-0.1012459993362427</left_val>
<right_val>0.7958589792251587</right_val></_></_>
<_>
<!-- tree 8 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>0 16 10 7 -1.</_>
<_>5 16 5 7 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0441600009799004</threshold>
<left_val>0.8441089987754822</left_val>
<right_val>-0.3297640085220337</right_val></_></_>
<_>
<!-- tree 9 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>8 7 10 12 -1.</_>
<_>13 7 5 6 2.</_>
<_>8 13 5 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0184610001742840</threshold>
<left_val>0.2632659971714020</left_val>
<right_val>-0.9673650264739990</right_val></_></_>
<_>
<!-- tree 10 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>6 7 10 12 -1.</_>
<_>6 7 5 6 2.</_>
<_>11 13 5 6 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>0.0106149995699525</threshold>
<left_val>0.1525190025568008</left_val>
<right_val>-1.0589870214462280</right_val></_></_>
<_>
<!-- tree 11 -->
<_>
<!-- root node -->
<feature>
<rects>
<_>9 2 9 6 -1.</_>
<_>12 2 3 6 3.</_></rects>
gitextract_0qwnpsa1/ ├── CMakeLists.txt ├── LICENSE ├── README.md ├── VideoFaceDetector.cpp ├── VideoFaceDetector.h ├── haarcascade_frontalface_default.xml ├── main.cpp └── old_main.cpp
SYMBOL INDEX (12 symbols across 3 files) FILE: VideoFaceDetector.h function class (line 7) | class VideoFaceDetector FILE: main.cpp function main (line 9) | int main(int argc, char** argv) FILE: old_main.cpp function doubleRectSize (line 38) | cv::Rect doubleRectSize(cv::Rect &input_rect, cv::Rect keep_inside) function biggestFace (line 70) | cv::Rect biggestFace(std::vector<cv::Rect> &faces_arr) function startMeasuringTime (line 82) | void startMeasuringTime() function stopMeasuringTime (line 88) | void stopMeasuringTime() function showFrame (line 98) | void showFrame(cv::Mat &frame) function drawRectAroundFace (line 104) | void drawRectAroundFace(cv::Mat &frame) function detectFaceAllSizes (line 109) | void detectFaceAllSizes(cv::Mat &frame) function detectFaceAroundRoi (line 131) | void detectFaceAroundRoi(cv::Mat &frame) function detectFacesTemplateMatching (line 165) | void detectFacesTemplateMatching(cv::Mat &frame) function main (line 201) | int main(int argc, char** argv)
Condensed preview — 8 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,318K chars).
[
{
"path": "CMakeLists.txt",
"chars": 412,
"preview": "cmake_minimum_required(VERSION 3.6)\nproject(faceDetectionNTracking)\n\nset(CMAKE_CXX_STANDARD 14)\n\nfile(COPY haarcascade_f"
},
{
"path": "LICENSE",
"chars": 1076,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2015 mc-jesus\n\nPermission is hereby granted, free of charge, to any person obtainin"
},
{
"path": "README.md",
"chars": 4707,
"preview": "# [Youtube video](https://youtu.be/lkFBWUjwDl8)\n\n# Usage\n\nFirst you need to create a `VideoCapture` object that you'll u"
},
{
"path": "VideoFaceDetector.cpp",
"chars": 9122,
"preview": "#include \"VideoFaceDetector.h\"\n#include <iostream>\n#include <opencv2\\imgproc.hpp>\n\nconst double VideoFaceDetector::TICK_"
},
{
"path": "VideoFaceDetector.h",
"chars": 2298,
"preview": "#pragma once\n\n#include <opencv2\\core.hpp>\n#include <opencv2\\highgui\\highgui.hpp>\n#include <opencv2\\objdetect\\objdetect.h"
},
{
"path": "haarcascade_frontalface_default.xml",
"chars": 1254733,
"preview": "<?xml version=\"1.0\"?>\n<!--\n Stump-based 24x24 discrete(?) adaboost frontal face detector.\n Created by Rainer Lienh"
},
{
"path": "main.cpp",
"chars": 1189,
"preview": "#include <opencv2\\highgui\\highgui.hpp>\n#include <opencv2\\imgproc\\imgproc.hpp>\n\n#include \"VideoFaceDetector.h\"\n\nconst cv:"
},
{
"path": "old_main.cpp",
"chars": 7499,
"preview": "#include <opencv2\\highgui\\highgui.hpp>\n#include <opencv2\\objdetect\\objdetect.hpp>\n#include <opencv2\\imgproc\\imgproc.hpp>"
}
]
About this extraction
This page contains the full source code of the mc-jesus/face_detect_n_track GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 8 files (1.2 MB), approximately 392.6k tokens, and a symbol index with 12 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.