[Python-modules-commits] [remotecv] 01/07: New upstream version 2.2.1

Marcelo Jorge Vieira metal at moszumanska.debian.org
Fri Sep 8 20:46:25 UTC 2017


This is an automated email from the git hooks/post-receive script.

metal pushed a commit to branch master
in repository remotecv.

commit 7052a75bd0ccd82d9dd2f795ddab6e50ad77775a
Author: Marcelo Jorge Vieira <metal at alucinados.com>
Date:   Fri Sep 8 01:07:31 2017 -0300

    New upstream version 2.2.1
---
 .coveragerc                                        |    17 +
 .gitignore                                         |    15 +
 .travis.yml                                        |    28 +
 MANIFEST.in                                        |     3 +
 Makefile                                           |    11 +
 README.mkd                                         |     1 +
 remotecv/__init__.py                               |     1 +
 remotecv/celery_tasks.py                           |    32 +
 remotecv/detectors/__init__.py                     |    68 +
 remotecv/detectors/complete_detector/__init__.py   |    31 +
 remotecv/detectors/face_detector/__init__.py       |    34 +
 .../face_detector/haarcascade_frontalface_alt.xml  | 24350 +++++
 .../face_detector/haarcascade_frontalface_alt2.xml | 20719 ++++
 .../haarcascade_frontalface_alt_tree.xml           | 96484 +++++++++++++++++++
 .../haarcascade_frontalface_default.xml            | 33314 +++++++
 remotecv/detectors/feature_detector/__init__.py    |    29 +
 remotecv/detectors/glasses_detector/__init__.py    |    16 +
 .../haarcascade_eye_tree_eyeglasses.xml            | 22619 +++++
 remotecv/detectors/profile_detector/__init__.py    |    17 +
 .../profile_detector/haarcascade_profileface.xml   | 29690 ++++++
 remotecv/error_handler.py                          |    43 +
 remotecv/http_loader.py                            |     8 +
 remotecv/image.py                                  |    29 +
 remotecv/image_processor.py                        |    34 +
 remotecv/pyres_tasks.py                            |    15 +
 remotecv/result_store/__init__.py                  |    24 +
 remotecv/result_store/memcache_store.py            |    29 +
 remotecv/result_store/redis_store.py               |    20 +
 remotecv/unique_queue.py                           |    54 +
 remotecv/utils.py                                  |    17 +
 remotecv/web.py                                    |    46 +
 remotecv/worker.py                                 |   103 +
 requirements                                       |     2 +
 requirements.txt                                   |     2 +
 setup.py                                           |    66 +
 tests/__init__.py                                  |    11 +
 tests/fixtures/animated.gif                        |   Bin 0 -> 71759 bytes
 tests/fixtures/broken.jpg                          |   Bin 0 -> 51660 bytes
 tests/fixtures/glasses.jpg                         |   Bin 0 -> 246952 bytes
 tests/fixtures/huge_image.jpg                      |   Bin 0 -> 6618976 bytes
 tests/fixtures/multiple_faces_bw.jpg               |   Bin 0 -> 34952 bytes
 tests/fixtures/no_face.jpg                         |   Bin 0 -> 1375 bytes
 tests/fixtures/one_face.gif                        |   Bin 0 -> 182444 bytes
 tests/fixtures/one_face.jpg                        |   Bin 0 -> 106097 bytes
 tests/fixtures/one_face.png                        |   Bin 0 -> 467709 bytes
 tests/fixtures/one_face_cmyk.jpg                   |   Bin 0 -> 673553 bytes
 tests/fixtures/pallete.png                         |   Bin 0 -> 72444 bytes
 tests/fixtures/profile_face.jpg                    |   Bin 0 -> 17515 bytes
 tests/fixtures/white-block.png                     |   Bin 0 -> 109 bytes
 tests/fixtures/why_not_a.psd                       |   Bin 0 -> 772310 bytes
 tests/test_complete_detector.py                    |    17 +
 tests/test_face_detector.py                        |    44 +
 tests/test_feature_detector.py                     |    18 +
 tests/test_glasses_detector.py                     |    22 +
 tests/test_image_processor.py                      |    52 +
 tests/test_images.py                               |    21 +
 tests/test_profile_detector.py                     |    22 +
 tests/test_pyres_tasks.py                          |    27 +
 58 files changed, 228205 insertions(+)

diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 0000000..4fa484e
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,17 @@
+[run]
+omit =
+    test_*.py
+branch = True
+source =
+    remotecv
+
+[report]
+exclude_lines =
+    pragma: no cover
+    def __repr__
+    raise NotImplementedError
+    if __name__ == .__main__.:
+    from urllib.parse import parse_qs
+    except ImportError:
+    from nose_focus import focus
+    @focus
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3cfaabd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,15 @@
+*.pyc
+.DS_Store
+*.swp
+dist/
+*.egg-info
+.project
+.pydevprojectthumbor/tests/visual_test/img
+.coverage
+tests/visual_test/img/
+*.swo
+*.swm
+*.swn
+tests/visual_test/build
+build
+*.so
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..fe7e708
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,28 @@
+language: python
+python:
+  - 2.7_with_system_site_packages
+  - '3.2'
+  - pypy
+cache:
+  directories:
+    - $HOME/.cache/pip
+sudo: false
+matrix:
+  fast_finish: true
+  allow_failures:
+    - python: '3.2'
+    - python: pypy
+addons:
+  apt:
+    packages:
+    - libjpeg-dev
+    - python-opencv
+
+install:
+  - pip install coveralls
+  - make setup
+
+script:
+  - make test
+after_success:
+  coveralls
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..c6e0f1b
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,3 @@
+prune dist
+prune build
+recursive-include remotecv *.xml
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..33193c0
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,11 @@
+setup:
+	@pip install -Ue.\[tests\]
+
+test:
+	@coverage run --branch `which nosetests` -v --with-yanc -s tests/
+
+coverage:
+	@coverage report -m --fail-under=30
+
+focus:
+	@coverage run --branch `which nosetests` -vv --with-yanc --logging-level=WARNING --with-focus -i -s tests/
diff --git a/README.mkd b/README.mkd
new file mode 100644
index 0000000..9c07f63
--- /dev/null
+++ b/README.mkd
@@ -0,0 +1 @@
+[![Build Status](https://travis-ci.org/thumbor/remotecv.svg?branch=master)](https://travis-ci.org/thumbor/remotecv) [![Coverage Status](https://coveralls.io/repos/thumbor/remotecv/badge.svg?branch=master&service=github)](https://coveralls.io/github/thumbor/remotecv?branch=master)
diff --git a/remotecv/__init__.py b/remotecv/__init__.py
new file mode 100644
index 0000000..36a511e
--- /dev/null
+++ b/remotecv/__init__.py
@@ -0,0 +1 @@
+__version__ = '2.2.1'
diff --git a/remotecv/celery_tasks.py b/remotecv/celery_tasks.py
new file mode 100644
index 0000000..ee6d6f7
--- /dev/null
+++ b/remotecv/celery_tasks.py
@@ -0,0 +1,32 @@
+from celery import Celery
+from pyres_tasks import DetectTask
+
+
+class CeleryTasks:
+
+    def __init__(self, key_id, key_secret, region, timeout=None, polling_interval=None):
+        self.celery = Celery(broker='sqs://%s:%s@' % (key_id, key_secret))
+
+        self.celery.conf.update(
+            BROKER_TRANSPORT_OPTIONS = {
+                'region': region,
+                'visibility_timeout': timeout or 120,
+                'polling_interval': polling_interval or 20,
+                'queue_name_prefix': 'celery-remotecv-'
+            }
+        )
+
+    def get_detect_task(self):
+        @self.celery.task(ignore_result=True, acks_late=True)
+        def detect_task(detection_type, image_path, key):
+            DetectTask.perform(detection_type, image_path, key)
+
+        return detect_task
+
+    def run_commands(self, args, log_level=None):
+        # We have to init the task so it can be found by the worker later
+        self.get_detect_task()
+
+        if log_level:
+            self.celery.conf.update(CELERYD_LOG_LEVEL=log_level)
+        self.celery.start(args)
diff --git a/remotecv/detectors/__init__.py b/remotecv/detectors/__init__.py
new file mode 100644
index 0000000..bd37c64
--- /dev/null
+++ b/remotecv/detectors/__init__.py
@@ -0,0 +1,68 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# thumbor imaging service
+# https://github.com/globocom/thumbor/wiki
+
+# Licensed under the MIT license:
+# http://www.opensource.org/licenses/mit-license
+# Copyright (c) 2011 globo.com timehome at corp.globo.com
+
+from os.path import join, dirname, abspath
+
+import cv2
+import numpy as np
+
+
+class BaseDetector(object):
+    def get_np_img(self, image):
+        return np.array(image)
+
+    def detect(self, context):
+        raise NotImplementedError()
+
+
+class CascadeLoaderDetector(BaseDetector):
+
+    def load_cascade_file(self, module_path, cascade_file_path):
+        cascade_file = join(abspath(dirname(module_path)), cascade_file_path)
+        self.__class__.cascade = cv2.CascadeClassifier(cascade_file)
+
+    def get_min_size_for(self, size):
+        ratio = int(min(size[0], size[1]) / 15)
+        ratio = max(20, ratio)
+        return (ratio, ratio)
+
+    def get_features(self, image):
+        img = self.get_np_img(image)
+
+        faces = self.__class__.cascade.detectMultiScale(
+            img,
+            1.2,
+            4,
+            minSize=self.get_min_size_for(image.size)
+        )
+        faces_scaled = []
+
+        for (x, y, w, h) in faces:
+            faces_scaled.append(
+                (
+                    (
+                        x.item(),
+                        y.item(),
+                        w.item(),
+                        h.item()
+                    ), 0)
+            )
+
+        return faces_scaled
+
+    def detect(self, image):
+        features = self.get_features(image)
+
+        if features:
+            points = [[left, top, width, height] for (left, top, width, height), neighbors in features]
+        else:
+            points = []
+
+        return points
diff --git a/remotecv/detectors/complete_detector/__init__.py b/remotecv/detectors/complete_detector/__init__.py
new file mode 100644
index 0000000..ee2408e
--- /dev/null
+++ b/remotecv/detectors/complete_detector/__init__.py
@@ -0,0 +1,31 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# thumbor imaging service
+# https://github.com/globocom/thumbor/wiki
+
+# Licensed under the MIT license:
+# http://www.opensource.org/licenses/mit-license
+# Copyright (c) 2011 globo.com timehome at corp.globo.com
+
+from remotecv.detectors import CascadeLoaderDetector
+from remotecv.detectors.face_detector import FaceDetector
+from remotecv.detectors.glasses_detector import GlassesDetector
+from remotecv.detectors.profile_detector import ProfileDetector
+from remotecv.detectors.feature_detector import FeatureDetector
+
+
+class CompleteDetector(CascadeLoaderDetector):
+
+    def detect(self, image):
+        face_detector = FaceDetector()
+        glasses_detector = GlassesDetector()
+        profile_detector = ProfileDetector()
+        feature_detector = FeatureDetector()
+
+        face_points = face_detector.detect(image) or []
+        glasses_points = glasses_detector.detect(image) or []
+        profile_points = profile_detector.detect(image) or []
+        feature_points = feature_detector.detect(image) or []
+
+        return face_points + glasses_points + profile_points + feature_points
diff --git a/remotecv/detectors/face_detector/__init__.py b/remotecv/detectors/face_detector/__init__.py
new file mode 100644
index 0000000..bb4bda9
--- /dev/null
+++ b/remotecv/detectors/face_detector/__init__.py
@@ -0,0 +1,34 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# thumbor imaging service
+# https://github.com/globocom/thumbor/wiki
+
+# Licensed under the MIT license:
+# http://www.opensource.org/licenses/mit-license
+# Copyright (c) 2011 globo.com timehome at corp.globo.com
+
+from remotecv.detectors import CascadeLoaderDetector
+
+HAIR_OFFSET = 0.12
+
+
+class FaceDetector(CascadeLoaderDetector):
+
+    def __init__(self):
+        self.load_cascade_file(__file__, 'haarcascade_frontalface_alt.xml')
+
+    def __add_hair_offset(self, top, height):
+        top = max(0, top - height * HAIR_OFFSET)
+        return top
+
+    def detect(self, image):
+        features = self.get_features(image)
+
+        points = []
+        if features:
+            for (left, top, width, height), neighbors in features:
+                top = self.__add_hair_offset(top, height)
+                points.append([left, top, width, height])
+
+        return points
diff --git a/remotecv/detectors/face_detector/haarcascade_frontalface_alt.xml b/remotecv/detectors/face_detector/haarcascade_frontalface_alt.xml
new file mode 100644
index 0000000..ade4b21
--- /dev/null
+++ b/remotecv/detectors/face_detector/haarcascade_frontalface_alt.xml
@@ -0,0 +1,24350 @@
+<?xml version="1.0"?>
+<!--
+    Stump-based 20x20 gentle 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>
+<cascade type_id="opencv-cascade-classifier"><stageType>BOOST</stageType>
+  <featureType>HAAR</featureType>
+  <height>20</height>
+  <width>20</width>
+  <stageParams>
+    <maxWeakCount>213</maxWeakCount></stageParams>
+  <featureParams>
+    <maxCatCount>0</maxCatCount></featureParams>
+  <stageNum>22</stageNum>
+  <stages>
+    <_>
+      <maxWeakCount>3</maxWeakCount>
+      <stageThreshold>8.2268941402435303e-01</stageThreshold>
+      <weakClassifiers>
+        <_>
+          <internalNodes>
+            0 -1 0 4.0141958743333817e-03</internalNodes>
+          <leafValues>
+            3.3794190734624863e-02 8.3781069517135620e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 1 1.5151339583098888e-02</internalNodes>
+          <leafValues>
+            1.5141320228576660e-01 7.4888122081756592e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 2 4.2109931819140911e-03</internalNodes>
+          <leafValues>
+            9.0049281716346741e-02 6.3748198747634888e-01</leafValues></_></weakClassifiers></_>
+    <_>
+      <maxWeakCount>16</maxWeakCount>
+      <stageThreshold>6.9566087722778320e+00</stageThreshold>
+      <weakClassifiers>
+        <_>
+          <internalNodes>
+            0 -1 3 1.6227109590545297e-03</internalNodes>
+          <leafValues>
+            6.9308586418628693e-02 7.1109461784362793e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 4 2.2906649392098188e-03</internalNodes>
+          <leafValues>
+            1.7958030104637146e-01 6.6686922311782837e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 5 5.0025708042085171e-03</internalNodes>
+          <leafValues>
+            1.6936729848384857e-01 6.5540069341659546e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 6 7.9659894108772278e-03</internalNodes>
+          <leafValues>
+            5.8663320541381836e-01 9.1414518654346466e-02</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 7 -3.5227010957896709e-03</internalNodes>
+          <leafValues>
+            1.4131669700145721e-01 6.0318958759307861e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 8 3.6667689681053162e-02</internalNodes>
+          <leafValues>
+            3.6756721138954163e-01 7.9203182458877563e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 9 9.3361474573612213e-03</internalNodes>
+          <leafValues>
+            6.1613857746124268e-01 2.0885099470615387e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 10 8.6961314082145691e-03</internalNodes>
+          <leafValues>
+            2.8362309932708740e-01 6.3602739572525024e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 11 1.1488880263641477e-03</internalNodes>
+          <leafValues>
+            2.2235809266567230e-01 5.8007007837295532e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 12 -2.1484689787030220e-03</internalNodes>
+          <leafValues>
+            2.4064640700817108e-01 5.7870548963546753e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 13 2.1219060290604830e-03</internalNodes>
+          <leafValues>
+            5.5596548318862915e-01 1.3622370362281799e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 14 -9.3949146568775177e-02</internalNodes>
+          <leafValues>
+            8.5027372837066650e-01 4.7177401185035706e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 15 1.3777789426967502e-03</internalNodes>
+          <leafValues>
+            5.9936738014221191e-01 2.8345298767089844e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 16 7.3063157498836517e-02</internalNodes>
+          <leafValues>
+            4.3418860435485840e-01 7.0600342750549316e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 17 3.6767389974556863e-04</internalNodes>
+          <leafValues>
+            3.0278879404067993e-01 6.0515749454498291e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 18 -6.0479710809886456e-03</internalNodes>
+          <leafValues>
+            1.7984339594841003e-01 5.6752568483352661e-01</leafValues></_></weakClassifiers></_>
+    <_>
+      <maxWeakCount>21</maxWeakCount>
+      <stageThreshold>9.4985427856445312e+00</stageThreshold>
+      <weakClassifiers>
+        <_>
+          <internalNodes>
+            0 -1 19 -1.6510689631104469e-02</internalNodes>
+          <leafValues>
+            6.6442251205444336e-01 1.4248579740524292e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 20 2.7052499353885651e-03</internalNodes>
+          <leafValues>
+            6.3253521919250488e-01 1.2884770333766937e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 21 2.8069869149476290e-03</internalNodes>
+          <leafValues>
+            1.2402880191802979e-01 6.1931931972503662e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 22 -1.5402400167658925e-03</internalNodes>
+          <leafValues>
+            1.4321430027484894e-01 5.6700158119201660e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 23 -5.6386279175058007e-04</internalNodes>
+          <leafValues>
+            1.6574330627918243e-01 5.9052079916000366e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 24 1.9253729842603207e-03</internalNodes>
+          <leafValues>
+            2.6955071091651917e-01 5.7388240098953247e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 25 -5.0214841030538082e-03</internalNodes>
+          <leafValues>
+            1.8935389816761017e-01 5.7827740907669067e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 26 2.6365420781075954e-03</internalNodes>
+          <leafValues>
+            2.3093290627002716e-01 5.6954258680343628e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 27 -1.5127769438549876e-03</internalNodes>
+          <leafValues>
+            2.7596020698547363e-01 5.9566420316696167e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 28 -1.0157439857721329e-02</internalNodes>
+          <leafValues>
+            1.7325380444526672e-01 5.5220472812652588e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 29 -1.1953660286962986e-02</internalNodes>
+          <leafValues>
+            1.3394099473953247e-01 5.5590140819549561e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 30 4.8859491944313049e-03</internalNodes>
+          <leafValues>
+            3.6287039518356323e-01 6.1888492107391357e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 31 -8.0132916569709778e-02</internalNodes>
+          <leafValues>
+            9.1211050748825073e-02 5.4759448766708374e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 32 1.0643280111253262e-03</internalNodes>
+          <leafValues>
+            3.7151429057121277e-01 5.7113999128341675e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 33 -1.3419450260698795e-03</internalNodes>
+          <leafValues>
+            5.9533137083053589e-01 3.3180978894233704e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 34 -5.4601140320301056e-02</internalNodes>
+          <leafValues>
+            1.8440659344196320e-01 5.6028461456298828e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 35 2.9071690514683723e-03</internalNodes>
+          <leafValues>
+            3.5942441225051880e-01 6.1317151784896851e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 36 7.4718717951327562e-04</internalNodes>
+          <leafValues>
+            5.9943532943725586e-01 3.4595629572868347e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 37 4.3013808317482471e-03</internalNodes>
+          <leafValues>
+            4.1726520657539368e-01 6.9908452033996582e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 38 4.5017572119832039e-03</internalNodes>
+          <leafValues>
+            4.5097151398658752e-01 7.8014570474624634e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 39 2.4138500913977623e-02</internalNodes>
+          <leafValues>
+            5.4382127523422241e-01 1.3198269903659821e-01</leafValues></_></weakClassifiers></_>
+    <_>
+      <maxWeakCount>39</maxWeakCount>
+      <stageThreshold>1.8412969589233398e+01</stageThreshold>
+      <weakClassifiers>
+        <_>
+          <internalNodes>
+            0 -1 40 1.9212230108678341e-03</internalNodes>
+          <leafValues>
+            1.4152669906616211e-01 6.1998707056045532e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 41 -1.2748669541906565e-04</internalNodes>
+          <leafValues>
+            6.1910742521286011e-01 1.8849289417266846e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 42 5.1409931620582938e-04</internalNodes>
+          <leafValues>
+            1.4873969554901123e-01 5.8579277992248535e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 43 4.1878609918057919e-03</internalNodes>
+          <leafValues>
+            2.7469098567962646e-01 6.3592398166656494e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 44 5.1015717908740044e-03</internalNodes>
+          <leafValues>
+            5.8708512783050537e-01 2.1756289899349213e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 45 -2.1448440384119749e-03</internalNodes>
+          <leafValues>
+            5.8809447288513184e-01 2.9795908927917480e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 46 -2.8977119363844395e-03</internalNodes>
+          <leafValues>
+            2.3733270168304443e-01 5.8766472339630127e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 47 -2.1610679104924202e-02</internalNodes>
+          <leafValues>
+            1.2206549942493439e-01 5.1942020654678345e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 48 -4.6299318782985210e-03</internalNodes>
+          <leafValues>
+            2.6312309503555298e-01 5.8174091577529907e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 49 5.9393711853772402e-04</internalNodes>
+          <leafValues>
+            3.6386200785636902e-01 5.6985449790954590e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 50 5.3878661245107651e-02</internalNodes>
+          <leafValues>
+            4.3035310506820679e-01 7.5593662261962891e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 51 1.8887349870055914e-03</internalNodes>
+          <leafValues>
+            2.1226030588150024e-01 5.6134271621704102e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 52 -2.3635339457541704e-03</internalNodes>
+          <leafValues>
+            5.6318491697311401e-01 2.6427671313285828e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 53 2.4017799645662308e-02</internalNodes>
+          <leafValues>
+            5.7971078157424927e-01 2.7517059445381165e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 54 2.0543030404951423e-04</internalNodes>
+          <leafValues>
+            2.7052420377731323e-01 5.7525688409805298e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 55 8.4790197433903813e-04</internalNodes>
+          <leafValues>
+            5.4356247186660767e-01 2.3348769545555115e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 56 1.4091329649090767e-03</internalNodes>
+          <leafValues>
+            5.3194248676300049e-01 2.0631550252437592e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 57 1.4642629539594054e-03</internalNodes>
+          <leafValues>
+            5.4189807176589966e-01 3.0688610672950745e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 58 1.6352549428120255e-03</internalNodes>
+          <leafValues>
+            3.6953729391098022e-01 6.1128681898117065e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 59 8.3172752056270838e-04</internalNodes>
+          <leafValues>
+            3.5650369524955750e-01 6.0252362489700317e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 60 -2.0998890977352858e-03</internalNodes>
+          <leafValues>
+            1.9139820337295532e-01 5.3628271818161011e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 61 -7.4213981861248612e-04</internalNodes>
+          <leafValues>
+            3.8355550169944763e-01 5.5293101072311401e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 62 3.2655049581080675e-03</internalNodes>
+          <leafValues>
+            4.3128961324691772e-01 7.1018958091735840e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 63 8.9134991867467761e-04</internalNodes>
+          <leafValues>
+            3.9848309755325317e-01 6.3919639587402344e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 64 -1.5284179709851742e-02</internalNodes>
+          <leafValues>
+            2.3667329549789429e-01 5.4337137937545776e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 65 4.8381411470472813e-03</internalNodes>
+          <leafValues>
+            5.8175009489059448e-01 3.2391890883445740e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 66 -9.1093179071322083e-04</internalNodes>
+          <leafValues>
+            5.5405938625335693e-01 2.9118689894676208e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 67 -6.1275060288608074e-03</internalNodes>
+          <leafValues>
+            1.7752550542354584e-01 5.1966291666030884e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 68 -4.4576259097084403e-04</internalNodes>
+          <leafValues>
+            3.0241701006889343e-01 5.5335938930511475e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 69 2.2646540775895119e-02</internalNodes>
+          <leafValues>
+            4.4149309396743774e-01 6.9753772020339966e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 70 -1.8804960418492556e-03</internalNodes>
+          <leafValues>
+            2.7913948893547058e-01 5.4979521036148071e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 71 7.0889107882976532e-03</internalNodes>
+          <leafValues>
+            5.2631992101669312e-01 2.3855470120906830e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 72 1.7318050377070904e-03</internalNodes>
+          <leafValues>
+            4.3193790316581726e-01 6.9836008548736572e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 73 -6.8482700735330582e-03</internalNodes>
+          <leafValues>
+            3.0820429325103760e-01 5.3909200429916382e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 74 -1.5062530110299122e-05</internalNodes>
+          <leafValues>
+            5.5219221115112305e-01 3.1203660368919373e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 75 2.9475569725036621e-02</internalNodes>
+          <leafValues>
+            5.4013228416442871e-01 1.7706030607223511e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 76 8.1387329846620560e-03</internalNodes>
+          <leafValues>
+            5.1786178350448608e-01 1.2110190093517303e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 77 2.0942950621247292e-02</internalNodes>
+          <leafValues>
+            5.2902942895889282e-01 3.3112218976020813e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 78 -9.5665529370307922e-03</internalNodes>
+          <leafValues>
+            7.4719941616058350e-01 4.4519689679145813e-01</leafValues></_></weakClassifiers></_>
+    <_>
+      <maxWeakCount>33</maxWeakCount>
+      <stageThreshold>1.5324139595031738e+01</stageThreshold>
+      <weakClassifiers>
+        <_>
+          <internalNodes>
+            0 -1 79 -2.8206960996612906e-04</internalNodes>
+          <leafValues>
+            2.0640860497951508e-01 6.0767322778701782e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 80 1.6790600493550301e-03</internalNodes>
+          <leafValues>
+            5.8519971370697021e-01 1.2553839385509491e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 81 6.9827912375330925e-04</internalNodes>
+          <leafValues>
+            9.4018429517745972e-02 5.7289612293243408e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 82 7.8959012171253562e-04</internalNodes>
+          <leafValues>
+            1.7819879949092865e-01 5.6943088769912720e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 83 -2.8560499195009470e-03</internalNodes>
+          <leafValues>
+            1.6383990645408630e-01 5.7886648178100586e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 84 -3.8122469559311867e-03</internalNodes>
+          <leafValues>
+            2.0854400098323822e-01 5.5085647106170654e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 85 1.5896620461717248e-03</internalNodes>
+          <leafValues>
+            5.7027608156204224e-01 1.8572150170803070e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 86 1.0078339837491512e-02</internalNodes>
+          <leafValues>
+            5.1169431209564209e-01 2.1897700428962708e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 87 -6.3526302576065063e-02</internalNodes>
+          <leafValues>
+            7.1313798427581787e-01 4.0438130497932434e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 88 -9.1031491756439209e-03</internalNodes>
+          <leafValues>
+            2.5671818852424622e-01 5.4639732837677002e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 89 -2.4035000242292881e-03</internalNodes>
+          <leafValues>
+            1.7006659507751465e-01 5.5909740924835205e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 90 1.5226360410451889e-03</internalNodes>
+          <leafValues>
+            5.4105567932128906e-01 2.6190540194511414e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 91 1.7997439950704575e-02</internalNodes>
+          <leafValues>
+            3.7324368953704834e-01 6.5352207422256470e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 92 -6.4538191072642803e-03</internalNodes>
+          <leafValues>
+            2.6264819502830505e-01 5.5374461412429810e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 93 -1.1880760081112385e-02</internalNodes>
+          <leafValues>
+            2.0037539303302765e-01 5.5447459220886230e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 94 1.2713660253211856e-03</internalNodes>
+          <leafValues>
+            5.5919027328491211e-01 3.0319759249687195e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 95 1.1376109905540943e-03</internalNodes>
+          <leafValues>
+            2.7304071187973022e-01 5.6465089321136475e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 96 -4.2651998810470104e-03</internalNodes>
+          <leafValues>
+            1.4059090614318848e-01 5.4618209600448608e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 97 -2.9602861031889915e-03</internalNodes>
+          <leafValues>
+            1.7950350046157837e-01 5.4592901468276978e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 98 -8.8448226451873779e-03</internalNodes>
+          <leafValues>
+            5.7367831468582153e-01 2.8092199563980103e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 99 -6.6430689767003059e-03</internalNodes>
+          <leafValues>
+            2.3706759512424469e-01 5.5038261413574219e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 100 3.9997808635234833e-03</internalNodes>
+          <leafValues>
+            5.6081998348236084e-01 3.3042821288108826e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 101 -4.1221720166504383e-03</internalNodes>
+          <leafValues>
+            1.6401059925556183e-01 5.3789931535720825e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 102 1.5624909661710262e-02</internalNodes>
+          <leafValues>
+            5.2276492118835449e-01 2.2886039316654205e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 103 -1.0356419719755650e-02</internalNodes>
+          <leafValues>
+            7.0161938667297363e-01 4.2529278993606567e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 104 -8.7960809469223022e-03</internalNodes>
+          <leafValues>
+            2.7673470973968506e-01 5.3558301925659180e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 105 1.6226939857006073e-01</internalNodes>
+          <leafValues>
+            4.3422400951385498e-01 7.4425792694091797e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 106 4.5542530715465546e-03</internalNodes>
+          <leafValues>
+            5.7264858484268188e-01 2.5821250677108765e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 107 -2.1309209987521172e-03</internalNodes>
+          <leafValues>
+            2.1068480610847473e-01 5.3610187768936157e-01</leafValues></_>
+        <_>
+          <internalNodes>
+            0 -1 108 -1.3208420015871525e-02</internalNodes>
+          <leafValues>
+            7.5937908887863159e-01 4.5524680614471436e-01</leafValues></_>
... 227592 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/remotecv.git



More information about the Python-modules-commits mailing list