├── config ├── __init__.py ├── config.pyc ├── __init__.pyc └── config.py ├── detection ├── __init__.py ├── nms.pyc ├── demoy.pyc ├── __init__.pyc ├── demo │ ├── detect_131.jpg │ └── detect_2889686_134437546000_2.jpg ├── calc_regionratio.py ├── demoy.py ├── objdetect.py ├── producePostxt.py ├── create_annotation.py ├── make_annotations.py ├── train_cascade.py └── nms.py ├── data ├── image │ └── pos │ │ ├── pos_1.jpg │ │ ├── pos_2.jpg │ │ ├── pos_3.jpg │ │ ├── pos_4.jpg │ │ └── pos_5.jpg └── model │ ├── params.xml │ ├── stage0.xml │ ├── stage1.xml │ ├── stage2.xml │ ├── stage3.xml │ ├── stage4.xml │ ├── stage5.xml │ ├── stage6.xml │ ├── stage7.xml │ ├── stage8.xml │ ├── stage10.xml │ ├── stage9.xml │ ├── stage11.xml │ ├── stage13.xml │ ├── stage12.xml │ ├── stage15.xml │ ├── stage14.xml │ └── cascade.xml ├── .idea ├── misc.xml ├── inspectionProfiles │ └── profiles_settings.xml ├── modules.xml ├── lantern.iml └── workspace.xml └── ReadMe.md /config/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /detection/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /config/config.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/config/config.pyc -------------------------------------------------------------------------------- /detection/nms.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/detection/nms.pyc -------------------------------------------------------------------------------- /config/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/config/__init__.pyc -------------------------------------------------------------------------------- /detection/demoy.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/detection/demoy.pyc -------------------------------------------------------------------------------- /config/config.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | # 设置项目的绝对路径 3 | pro_path = '/home/gongxijun/data/lantern' 4 | -------------------------------------------------------------------------------- /detection/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/detection/__init__.pyc -------------------------------------------------------------------------------- /data/image/pos/pos_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/data/image/pos/pos_1.jpg -------------------------------------------------------------------------------- /data/image/pos/pos_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/data/image/pos/pos_2.jpg -------------------------------------------------------------------------------- /data/image/pos/pos_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/data/image/pos/pos_3.jpg -------------------------------------------------------------------------------- /data/image/pos/pos_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/data/image/pos/pos_4.jpg -------------------------------------------------------------------------------- /data/image/pos/pos_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/data/image/pos/pos_5.jpg -------------------------------------------------------------------------------- /detection/demo/detect_131.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/detection/demo/detect_131.jpg -------------------------------------------------------------------------------- /detection/demo/detect_2889686_134437546000_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongxijun/lantern/HEAD/detection/demo/detect_2889686_134437546000_2.jpg -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/lantern.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | -------------------------------------------------------------------------------- /data/model/params.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | BOOST 5 | LBP 6 | 128 7 | 90 8 | 9 | GAB 10 | 9.9500000476837158e-01 11 | 5.0000000000000000e-01 12 | 9.4999999999999996e-01 13 | 1 14 | 100 15 | 16 | 256 17 | 1 18 | 19 | -------------------------------------------------------------------------------- /detection/calc_regionratio.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import argparse 5 | import os 6 | import sqlite3 7 | import sys 8 | from pprint import pprint 9 | 10 | import numpy as np 11 | 12 | 13 | def connectdb(dbname): 14 | if os.path.exists(dbname): 15 | db = sqlite3.connect(dbname) 16 | db.row_factory = sqlite3.Row 17 | else: 18 | print('cannnot open %s' % (dbname,)) 19 | return None 20 | return db 21 | 22 | 23 | def calcratio(db): 24 | try: 25 | sql = 'SELECT width, height FROM samples WHERE status=200' 26 | rv = db.execute(sql) 27 | ratio = [] 28 | for r in rv: 29 | ratio.append(float(r['width']) / float(r['height'])) 30 | arr = np.array(ratio) 31 | print(np.mean(arr), np.amax(arr), np.amin(arr), np.median(arr)) 32 | except sqlite3.OperationalError as e: 33 | print(e) 34 | sys.exit(-1) 35 | 36 | 37 | if __name__ == '__main__': 38 | dbname = 'db/samples.db' 39 | db = connectdb(dbname) 40 | calcratio(db) 41 | -------------------------------------------------------------------------------- /data/model/stage0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 5 | -1.4431272745132446e+00 6 | 7 | <_> 8 | 9 | 0 -1 1259 -137363506 -33559597 1376111494 2002213727 -305401665 10 | 1408209595 1298137071 1946153983 11 | 12 | -6.8031120300292969e-01 4.7004294395446777e-01 13 | <_> 14 | 15 | 0 -1 3616514 -805634081 -1537 -787057 502661087 266919855 16 | -411905 -1049633 1610088447 17 | 18 | -5.0030064582824707e-01 4.8760640621185303e-01 19 | <_> 20 | 21 | 0 -1 3428315 -596164589 -73796737 -494004739 -11489 -27377664 22 | -11588897 -356856098 -252784641 23 | 24 | -5.0489288568496704e-01 4.8167842626571655e-01 25 | <_> 26 | 27 | 0 -1 81577 -1935416414 -1345689632 -237247665 -2886448 -35918885 28 | 1871677057 2070641663 -605554699 29 | 30 | -5.2462232112884521e-01 4.2182406783103943e-01 31 | <_> 32 | 33 | 0 -1 587 -621488658 -791228766 -2051455591 1280726020 34 | -1827710378 -770813393 1464601382 1602180199 35 | 36 | -5.5705660581588745e-01 3.5474479198455811e-01 37 | <_> 38 | 39 | 0 -1 3613807 1190461311 -1073884369 -102908653 221567747 40 | 1257699815 -88382477 -1052898 183762943 41 | 42 | -5.2202731370925903e-01 3.3614942431449890e-01 43 | 44 | -------------------------------------------------------------------------------- /detection/demoy.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import argparse 5 | import os 6 | import re 7 | import sys 8 | import cv2 as cv 9 | from nms import nms 10 | import numpy as np 11 | 12 | cnt = 0; 13 | 14 | 15 | def parsearguments(): 16 | parser = argparse.ArgumentParser(description='object detection using cascade classifier') 17 | parser.add_argument('-i', '--image', help='image file name', default='/home/gongxijun/data') 18 | parser.add_argument('-c', '--cascade', dest='cascadefilename', help='cascade file name', 19 | default='/home/gongxijun/data/lantern/data/model/cascade.xml') 20 | parser.add_argument('-s', '--scalefactor', dest='scalefactor', type=float, default=1.1) 21 | parser.add_argument('-m', '--minneighbors', dest='minneighbors', type=int, default=3) 22 | parser.add_argument('-o', '--output', dest='output', 23 | default='box/detect.jpg') 24 | return parser.parse_args() 25 | 26 | 27 | def detect(img, cascadefilename, scalefactor, minneighbors): 28 | global cnt 29 | srcimg = img 30 | if srcimg is None: 31 | print('cannot load image') 32 | sys.exit(-1) 33 | cascade = cv.CascadeClassifier(cascadefilename) 34 | # print cascade 35 | objects = cascade.detectMultiScale(srcimg, scalefactor, minneighbors) 36 | _num_status = True 37 | while _num_status and len(objects) > 0: 38 | objects, _num_status = nms(list(objects), 0.6) 39 | count = len(objects) 40 | if count > 0: 41 | cnt += 1; 42 | print('detection count: %s' % (count,)) 43 | # print (objects) 44 | for (x, y, w, h) in (objects): 45 | # print(x, y, w, h) 46 | cv.rectangle(srcimg, (x, y), (x + w, y + h), (0, 0, 255), 2) 47 | return srcimg 48 | 49 | 50 | args = parsearguments() 51 | print('cascade file: %s' % (args.cascadefilename,)) 52 | 53 | def showImage(img): 54 | result=detect(img, args.cascadefilename, 55 | args.scalefactor, args.minneighbors) 56 | return result 57 | -------------------------------------------------------------------------------- /data/model/stage1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 5 | -1.2098675966262817e+00 6 | 7 | <_> 8 | 9 | 0 -1 9869 -137625650 -212639453 323744174 -251138257 -766531073 10 | 325006251 1155125195 1465883311 11 | 12 | -6.9039869308471680e-01 2.6776158809661865e-01 13 | <_> 14 | 15 | 0 -1 227 713206688 -1885148288 -794307628 -202389760 -606112769 16 | -1153187597 -593497477 -69212203 17 | 18 | -6.7114043235778809e-01 3.0477219820022583e-01 19 | <_> 20 | 21 | 0 -1 3522329 -46997248 -1593577139 -1589460794 690676171 22 | -2137997280 -1039548407 -1467289087 -1490290689 23 | 24 | -5.0339454412460327e-01 3.6862725019454956e-01 25 | <_> 26 | 27 | 0 -1 3613806 1070645231 -43033 1984942019 164666813 1306582671 28 | -1847001378 -6300147 267647407 29 | 30 | -5.3666716814041138e-01 3.5385552048683167e-01 31 | <_> 32 | 33 | 0 -1 3372945 -564278194 -671109025 -2077848990 1356715391 34 | -629477376 -1308589933 -889200514 -789317905 35 | 36 | -4.5275869965553284e-01 3.8935306668281555e-01 37 | <_> 38 | 39 | 0 -1 78011 -11862066 -546581842 1870249358 -32717362 1159434716 40 | 21604953 -873477188 -539194412 41 | 42 | -4.9909380078315735e-01 3.6912557482719421e-01 43 | <_> 44 | 45 | 0 -1 3616513 -269090881 -2305569 -275306719 529595703 46 | -1897612293 -135398977 -67113010 267567039 47 | 48 | -4.4046744704246521e-01 3.8484367728233337e-01 49 | 50 | -------------------------------------------------------------------------------- /ReadMe.md: -------------------------------------------------------------------------------- 1 | 使用opencv中的haar+adaboost进行物体检测,文件目录如下,目录介绍:   2 | . 3 | ├── config 4 | │   ├── config.py 5 | │   ├── config.pyc 6 | │   ├── __init__.py 7 | │   └── __init__.pyc 8 | ├── data 9 | │   ├── image 10 | │   │   ├── neg-->负样本 11 | │   │   │   ├── neg_1.jpg 12 | │   │   │   ├── neg_2.jpg 13 | │   │   │   ├── neg_3.jpg 14 | │   │   │   ├── neg_4.jpg 15 | │   │   │   └── neg_5.jpg 16 | │   │   ├── neg.txt-->负样本文件目录 17 | │   │   ├── pos-->正样本 18 | │   │   │   ├── pos_1.jpg 19 | │   │   │   ├── pos_2.jpg 20 | │   │   │   ├── pos_3.jpg 21 | │   │   │   ├── pos_4.jpg 22 | │   │   │   └── pos_5.jpg 23 | │   │   └── pos.txt-->正样本文件目录 24 | │   └── model 25 | │   ├── cascade.xml 26 | │   ├── params.xml 27 | │   ├── stage0.xml 28 | │   ├── stage10.xml 29 | │   ├── stage11.xml 30 | │   ├── stage12.xml 31 | │   ├── stage13.xml 32 | │   ├── stage14.xml 33 | │   ├── stage15.xml 34 | │   ├── stage1.xml 35 | │   ├── stage2.xml 36 | │   ├── stage3.xml 37 | │   ├── stage4.xml 38 | │   ├── stage5.xml 39 | │   ├── stage6.xml 40 | │   ├── stage7.xml 41 | │   ├── stage8.xml 42 | │   └── stage9.xml 43 | ├── detection 44 | │   ├── calc_regionratio.py 45 | │   ├── create_annotation.py 46 | │   ├── demo 47 | │   │   ├── detect_01300000115459120894838850378.jpg 48 | │   │   ├── detect_01300000180919124256698376723.jpg 49 | │   │   ├── detect_01300000314631128246170511243.jpg 50 | │   │   ├── detect_131.jpg 51 | │   │   ├── detect_19300001287046131622747012866.jpg 52 | │   │   ├── detect_20071014171857166_2.jpg 53 | │   │   ├── detect_20081016103122407_2.jpg 54 | │   │   ├── detect_2889686_134437546000_2.jpg 55 | │   │   ├── detect_5451374_173506368112_2.jpg 56 | │   │   ├── detect_5736135_094819032909_2.jpg 57 | │   │   ├── detect_7953837_193544583114_2.jpg 58 | │   │   └── detect_th.jpg 59 | │   ├── demoy.py 60 | │   ├── demoy.pyc 61 | │   ├── __init__.py 62 | │   ├── __init__.pyc 63 | │   ├── make_annotations.py 64 | │   ├── nms.py 65 | │   ├── nms.pyc 66 | │   ├── objdetect.py 67 | │   ├── producePostxt.py  -->产生样本文件. 68 | │   ├── train_cascade.py  -->训练 69 | │   └── vec 70 | │   └── pos.txt.vec 71 | └── ReadMe.md 72 | 73 | 效果图: 74 | -------------------------------------------------------------------------------- /detection/objdetect.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import argparse 5 | import os 6 | import re 7 | import sys 8 | import cv2 as cv 9 | from nms import nms 10 | import numpy as np 11 | 12 | cnt = 0; 13 | 14 | 15 | def parsearguments(): 16 | parser = argparse.ArgumentParser(description='object detection using cascade classifier') 17 | parser.add_argument('-i', '--image', help='image file name', default='/home/gongxijun/data') 18 | parser.add_argument('-c', '--cascade', dest='cascadefilename', help='cascade file name', 19 | default='/home/gongxijun/data/lantern/data/model/cascade.xml') 20 | parser.add_argument('-s', '--scalefactor', dest='scalefactor', type=float, default=1.1) 21 | parser.add_argument('-m', '--minneighbors', dest='minneighbors', type=int, default=3) 22 | parser.add_argument('-o', '--output', dest='output', 23 | default='box/detect.jpg') 24 | return parser.parse_args() 25 | 26 | 27 | def detect(imagefilename, cascadefilename, scalefactor, minneighbors): 28 | global cnt 29 | srcimg = cv.imread(imagefilename) 30 | if srcimg is None: 31 | print('cannot load image') 32 | sys.exit(-1) 33 | cascade = cv.CascadeClassifier(cascadefilename) 34 | # print cascade 35 | objects = cascade.detectMultiScale(srcimg, scalefactor, minneighbors) 36 | _num_status = True 37 | while _num_status and len(objects) > 0: 38 | objects, _num_status = nms(list(objects), 0.6) 39 | count = len(objects) 40 | if count > 0: 41 | cnt += 1; 42 | print('detection count: %s' % (count,)) 43 | # print (objects) 44 | for (x, y, w, h) in (objects): 45 | # print(x, y, w, h) 46 | cv.rectangle(srcimg, (x, y), (x + w, y + h), (0, 0, 255), 2) 47 | return srcimg 48 | 49 | 50 | if __name__ == '__main__': 51 | args = parsearguments() 52 | print('cascade file: %s' % (args.cascadefilename,)) 53 | lists = ['/home/gongxijun/data/dataset/neg', '/home/gongxijun/data/222'] 54 | imagedir = lists[-1] 55 | pattern = re.compile('.*[.](jpg|jpeg|png|bmp|gif)$') 56 | images = [image for image in os.listdir(imagedir) if re.match(pattern, image)] 57 | print('target files: %s' % (len(images),)) 58 | for i, image in enumerate(images): 59 | imagesrc = os.path.join(imagedir, images[i]) 60 | result = detect(imagesrc, args.cascadefilename, 61 | args.scalefactor, args.minneighbors) 62 | dstfilename = './demo/detect_%s' % (images[i],) 63 | cv.imwrite(dstfilename, result) 64 | print '@@@@@@@@@@@@@@@@@@@@@ {}/{}'.format(cnt, i) 65 | -------------------------------------------------------------------------------- /data/model/stage2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 5 | -1.1269989013671875e+00 6 | 7 | <_> 8 | 9 | 0 -1 1226 -69230042 -532993 545300640 1910627319 -204734993 10 | -241329734 1152128751 -237634561 11 | 12 | -6.2409824132919312e-01 2.4164426326751709e-01 13 | <_> 14 | 15 | 0 -1 3616509 -805961809 -76546561 -6425745 -806241321 1240529915 16 | -1057985 -3670173 1542586363 17 | 18 | -4.5240753889083862e-01 4.2520290613174438e-01 19 | <_> 20 | 21 | 0 -1 3427157 -59883497 -144836710 1686755149 1536678807 22 | -353398754 1787435691 -88413526 -254087425 23 | 24 | -4.5018905401229858e-01 3.8418895006179810e-01 25 | <_> 26 | 27 | 0 -1 2511 -411053114 -16551522 285599693 1931949967 -1656369477 28 | -218255288 290399807 870036171 29 | 30 | -4.9687308073043823e-01 3.1973978877067566e-01 31 | <_> 32 | 33 | 0 -1 3614214 1207107583 -70517249 -1120583893 197721567 34 | 160485259 -59053062 -148918421 198328251 35 | 36 | -4.7911062836647034e-01 3.2857897877693176e-01 37 | <_> 38 | 39 | 0 -1 29903 -1566055450 -965852446 -1517588446 2137522068 40 | -219421709 -1376987715 1128902755 -704649401 41 | 42 | -4.4380256533622742e-01 3.3845117688179016e-01 43 | <_> 44 | 45 | 0 -1 3475803 -1305216606 385921792 -1107887311 -279052320 46 | -1397395 656588784 -23339552 -101851175 47 | 48 | -3.4966492652893066e-01 4.0131226181983948e-01 49 | <_> 50 | 51 | 0 -1 60015 -6330272 1511355598 -928586228 206594956 1414414404 52 | 443044726 13256783 -286101922 53 | 54 | -5.1629424095153809e-01 2.6675820350646973e-01 55 | <_> 56 | 57 | 0 -1 3616506 1341521271 -285223425 -36306984 257548101 197156859 58 | -1078263974 -536872162 267632511 59 | 60 | -4.4815850257873535e-01 3.1016173958778381e-01 61 | 62 | -------------------------------------------------------------------------------- /detection/producePostxt.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import argparse 5 | import re 6 | import os 7 | import sqlite3 8 | import sys 9 | import codecs 10 | from config import config as cf 11 | from PIL import Image 12 | from skimage import transform, color 13 | import cv2 as cv 14 | 15 | 16 | def produceNegTxt(filedirpath, imagedir, filename='neg.txt'): 17 | filedirpath = os.path.join(cf.pro_path, filedirpath); 18 | imagedir = os.path.join(cf.pro_path, imagedir); 19 | if not os.path.exists(filedirpath): 20 | os.makedirs(filedirpath) 21 | if not os.path.exists(imagedir): 22 | print 'image dir is not exists ~' 23 | sys.exit(-1) 24 | pattern = re.compile('.*[.](jpg|jpeg|png)$') 25 | images = [image for image in os.listdir(imagedir) if re.match(pattern, image)] 26 | with codecs.open(os.path.join(filedirpath, filename), 'w', encoding='utf-8') as fw: 27 | for i, image in enumerate(images): 28 | try: 29 | imagesrc = os.path.join(imagedir, images[i]) 30 | os.rename(imagesrc, os.path.join(imagedir, 'neg_' + str(i + 1) + '.jpg')) 31 | print(imagesrc) 32 | fw.write('{}\n'.format(os.path.join('/neg', 'neg_' + str(i + 1) + '.jpg'))); # x,y,w,h,status 33 | except Exception, e: 34 | print e 35 | 36 | 37 | def producePosTxt(filedirpath, imagedir, filename='pos.txt'): 38 | filedirpath = os.path.join(cf.pro_path, filedirpath); 39 | imagedir = os.path.join(cf.pro_path, imagedir); 40 | if not os.path.exists(filedirpath): 41 | os.makedirs(filedirpath) 42 | if not os.path.exists(imagedir): 43 | print 'image dir is not exists ~' 44 | sys.exit(-1) 45 | pattern = re.compile('.*[.](jpg|jpeg|png)$') 46 | images = [image for image in os.listdir(imagedir) if re.match(pattern, image)] 47 | with codecs.open(os.path.join(filedirpath, filename), 'w', encoding='utf-8') as fw: 48 | for i, image in enumerate(images): 49 | try: 50 | imagesrc = os.path.join(imagedir, images[i]) 51 | tmp_img = cv.imread(imagesrc) 52 | #tmp_img = transform.resize(tmp_img,(128,90)); 53 | #cv.imwrite(imagesrc,tmp_img*255); 54 | #os.rename(imagesrc, os.path.join(imagedir, 'pos_' + str(i + 1) + '.jpg')) 55 | print(imagesrc) 56 | fw.write('{} {} {} {} {} {}\n'.format(imagesrc, 1, 0, 0, 57 | tmp_img.shape[1], 58 | tmp_img.shape[0], 59 | 1)); # status,x,y,w,h 60 | except Exception, e: 61 | print e 62 | 63 | 64 | if __name__ == '__main__': 65 | # produceNegTxt('data/image', 'data/image/neg') 66 | producePosTxt('data/image', 'data/image/pos') 67 | -------------------------------------------------------------------------------- /data/model/stage3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 5 | -1.5669338703155518e+00 6 | 7 | <_> 8 | 9 | 0 -1 6697 -812912661 -271670334 -440140816 -35914812 -444858373 10 | -337655401 -33564681 -4205577 11 | 12 | -5.3180831670761108e-01 2.8578004240989685e-01 13 | <_> 14 | 15 | 0 -1 3616508 -808255525 -264197 -170690741 223412223 197328831 16 | -524817 -1310917 267647987 17 | 18 | -4.7518107295036316e-01 3.1859636306762695e-01 19 | <_> 20 | 21 | 0 -1 2682506 1018833920 2147150045 -191300584 -54600983 22 | 1827041280 -13899617 751206030 -1602554113 23 | 24 | -6.4279401302337646e-01 2.4397149682044983e-01 25 | <_> 26 | 27 | 0 -1 926099 889696492 864924665 291088396 834116155 -1173583890 28 | 587639147 -1471174266 857715855 29 | 30 | -6.2343305349349976e-01 2.5955408811569214e-01 31 | <_> 32 | 33 | 0 -1 3613849 -957286657 -1275475977 -665104443 231856981 34 | 301329019 -145237033 -100928177 1207295967 35 | 36 | -4.3994808197021484e-01 3.2169348001480103e-01 37 | <_> 38 | 39 | 0 -1 55069 -14691793 1484440454 303752704 -902151630 1731876386 40 | 1651384595 -14484922 -473704665 41 | 42 | -3.9100563526153564e-01 3.7136620283126831e-01 43 | <_> 44 | 45 | 0 -1 1553684 1933386479 1600452575 1440690830 -1612907784 46 | 1202622617 1930176926 1661775766 -9913912 47 | 48 | -3.9102047681808472e-01 3.0988332629203796e-01 49 | <_> 50 | 51 | 0 -1 159686 -380109849 -4393505 2143125001 1741092093 52 | -1261764609 -100849171 -153171201 1777719279 53 | 54 | -3.1870624423027039e-01 3.8334307074546814e-01 55 | <_> 56 | 57 | 0 -1 3561125 -830499838 -548753105 -896037366 12838663 58 | 1801064450 143499289 -1568497074 -150995749 59 | 60 | -3.9560940861701965e-01 3.2942935824394226e-01 61 | <_> 62 | 63 | 0 -1 545024 -1974850528 -1574555118 -1895119404 402100624 64 | -70395406 -1080389141 -1348813316 -582134411 65 | 66 | -5.5045163631439209e-01 2.0038785040378571e-01 67 | 68 | -------------------------------------------------------------------------------- /data/model/stage4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 5 | -1.7335377931594849e+00 6 | 7 | <_> 8 | 9 | 0 -1 81123 -136314913 -134153 -1837057 -3333 -4718593 -589439029 10 | -134217729 2145385471 11 | 12 | -5.8354979753494263e-01 3.2054635882377625e-01 13 | <_> 14 | 15 | 0 -1 393942 -168036694 -208449033 -1802401304 -207749671 16 | -259460164 -190717269 -785818883 1975386047 17 | 18 | -5.4924690723419189e-01 3.0849689245223999e-01 19 | <_> 20 | 21 | 0 -1 2813 -823731068 -931865311 -725400408 1549297728 -570736481 22 | -15939441 -606125089 1597464439 23 | 24 | -5.9341806173324585e-01 2.6302301883697510e-01 25 | <_> 26 | 27 | 0 -1 3478834 1480213504 -14780180 -803268138 1582070862 28 | -208782312 -611657086 -1945567424 -893716577 29 | 30 | -6.1474728584289551e-01 2.3925973474979401e-01 31 | <_> 32 | 33 | 0 -1 6240 -76427025 -705203949 -1823745685 1809011277 -118622324 34 | 898337498 -1079297621 1602211819 35 | 36 | -4.3725883960723877e-01 3.1791627407073975e-01 37 | <_> 38 | 39 | 0 -1 826181 1474033600 1430639435 1104014976 1267717388 40 | -512767138 1997126355 2059395016 2079326092 41 | 42 | -5.2264249324798584e-01 2.6250457763671875e-01 43 | <_> 44 | 45 | 0 -1 37626 -5257309 -450401529 -1124663485 2146021360 -22676501 46 | -1235222561 1150809091 -673187913 47 | 48 | -3.3301791548728943e-01 4.3883842229843140e-01 49 | <_> 50 | 51 | 0 -1 76459 -735068096 -606452970 -568599992 352124367 -90226664 52 | -68955958 992954888 -1612778561 53 | 54 | -3.9259910583496094e-01 3.4787562489509583e-01 55 | <_> 56 | 57 | 0 -1 3616510 1408499677 -608699942 2142744147 259391455 58 | -1483698249 -19203350 -171984303 184023882 59 | 60 | -4.7743609547615051e-01 2.7286788821220398e-01 61 | <_> 62 | 63 | 0 -1 3358214 -1290879064 -1291653080 -845952222 -1222916173 64 | 102675964 562664195 155319268 -1658204255 65 | 66 | -5.1532548666000366e-01 2.7348074316978455e-01 67 | 68 | -------------------------------------------------------------------------------- /detection/create_annotation.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import argparse 5 | import re 6 | import os 7 | import sqlite3 8 | from pprint import pprint 9 | 10 | 11 | def parsearguments(): 12 | parser = argparse.ArgumentParser(description='creates annotation data') 13 | parser.add_argument('-d','--dbname', help='database name', default='catcafe') 14 | parser.add_argument('-p', '--positive', dest='positivefilename', 15 | default='positive.dat') 16 | parser.add_argument('-n', '--negative', dest='negativefilename', 17 | default='negative.dat') 18 | return parser.parse_args() 19 | 20 | 21 | def connectdb(dbname): 22 | if os.path.exists(dbname): 23 | db = sqlite3.connect(dbname) 24 | db.row_factory = sqlite3.Row 25 | else: 26 | print('cannnot open %s' % (dbname,)) 27 | return None 28 | return db 29 | 30 | 31 | def createannotations(db): 32 | annotationdata = '' 33 | sql = 'SELECT filepath, x, y, width, height FROM samples WHERE status=200' 34 | try: 35 | rv = db.execute(sql) 36 | for r in rv: 37 | annotationdata += "%s 1 %d %d %d %d\n" % (r['filepath'], r['x'], r['y'], r['width'], r['height']) 38 | print(annotationdata) 39 | except sqlite3.OperationalError as e: 40 | print(e) 41 | return None 42 | return annotationdata 43 | 44 | 45 | def createnegativefilelist(db): 46 | negativefilelist = '' 47 | sql = 'SELECT filepath FROM samples WHERE status=100' 48 | try: 49 | rv = db.execute(sql) 50 | for r in rv: 51 | negativefilelist += "%s\n" % (r['filepath'],) 52 | print(negativefilelist) 53 | except sqlite3.OperationalError as e: 54 | print(e) 55 | return None 56 | return negativefilelist 57 | 58 | 59 | def appendnegativefilelist(dirpath, dirname): 60 | pattern = re.compile('.*[.](jpg|jpeg|png|bmp|gif)$') 61 | imagedir = os.path.join(dirpath, dirname) 62 | images = [image for image in os.listdir(imagedir) if re.match(pattern, image)] 63 | negativefilelist = '' 64 | for i, image in enumerate(images): 65 | imagesrc = os.path.join(imagedir, images[i]) 66 | negativefilelist += "%s\n" % (imagesrc,) 67 | return negativefilelist 68 | 69 | 70 | if __name__ == '__main__': 71 | args = parsearguments() 72 | dbname = args.dbname 73 | db = connectdb(dbname) 74 | positivefile = open(args.positivefilename, 'wb') 75 | negativefile = open(args.negativefilename, 'wb') 76 | annotationdata = createannotations(db) 77 | 78 | if annotationdata: 79 | positivefile.write(annotationdata) 80 | positivefile.close() 81 | 82 | # negativefilelist = createnegativefilelist(db) 83 | negativefilelist = appendnegativefilelist('static/negative/images', 'other') 84 | 85 | if negativefilelist: 86 | negativefile.write(negativefilelist) 87 | negativefile.close() 88 | 89 | db.close() 90 | -------------------------------------------------------------------------------- /data/model/stage5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 5 | -1.4208899736404419e+00 6 | 7 | <_> 8 | 9 | 0 -1 1303 -9175041 -170002177 -173015331 -1215841 -77856785 10 | -68193077 -269505025 1879045119 11 | 12 | -5.8139532804489136e-01 1.9888663291931152e-01 13 | <_> 14 | 15 | 0 -1 103118 -269485142 -373096918 -873860896 1740864362 16 | -1813532677 -21023137 1431531927 -675809289 17 | 18 | -4.6527159214019775e-01 3.1996092200279236e-01 19 | <_> 20 | 21 | 0 -1 80725 -1085900338 -586370102 2124283386 -1246386 22 | -1678512658 1179556108 -623904274 2147087210 23 | 24 | -4.5869243144989014e-01 2.8388997912406921e-01 25 | <_> 26 | 27 | 0 -1 3142438 -62951856 -581086081 1313340858 1953234399 28 | -401701878 -68232260 -354501974 -1434452081 29 | 30 | -4.3222388625144958e-01 2.8859448432922363e-01 31 | <_> 32 | 33 | 0 -1 81180 -302514177 -33566316 -204908133 -140914485 1070591739 34 | -15745025 -637796417 1237162751 35 | 36 | -3.2840538024902344e-01 3.5959059000015259e-01 37 | <_> 38 | 39 | 0 -1 1740016 -65274636 1565618273 276983863 -1725091641 40 | -865631153 -608447523 424395950 787423318 41 | 42 | -5.1900142431259155e-01 2.6408216357231140e-01 43 | <_> 44 | 45 | 0 -1 73 -2002745008 -1575376510 -2147237230 2083770704 46 | -544222685 -385126845 50549515 -220774397 47 | 48 | -5.2852547168731689e-01 2.1428774297237396e-01 49 | <_> 50 | 51 | 0 -1 3562745 -545265129 116049647 210708590 1077407467 -71406046 52 | -1787333002 -252130054 -999293705 53 | 54 | -3.1097722053527832e-01 3.7170669436454773e-01 55 | <_> 56 | 57 | 0 -1 3616513 -875241601 -548281601 -405377611 196136902 58 | -1947669638 -847511553 -541131152 200342807 59 | 60 | -5.3021776676177979e-01 2.2613856196403503e-01 61 | <_> 62 | 63 | 0 -1 1733743 -940858456 606917441 -83690536 -1148521601 64 | -540678731 -1621390751 533646336 -1230048519 65 | 66 | -4.6793484687805176e-01 2.3651477694511414e-01 67 | <_> 68 | 69 | 0 -1 973 -285216778 -227358541 -1395080324 2010438992 -120069633 70 | -18503660 -1398990087 2075655541 71 | 72 | -3.6179101467132568e-01 2.9109182953834534e-01 73 | 74 | -------------------------------------------------------------------------------- /data/model/stage6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 5 | -1.3258671760559082e+00 6 | 7 | <_> 8 | 9 | 0 -1 1 -102761473 -2622213 -586226987 -175117795 -19931953 10 | -102900573 -6341665 2147483519 11 | 12 | -6.0085785388946533e-01 9.9705509841442108e-02 13 | <_> 14 | 15 | 0 -1 14890 -827326749 -295441174 -203563390 -546310718 16 | -274727961 -19925785 2008938471 -203958345 17 | 18 | -4.3862017989158630e-01 2.7953514456748962e-01 19 | <_> 20 | 21 | 0 -1 3427178 -989678048 2047593185 -536153967 979364799 22 | -2011121632 -68959570 -1364934991 1027599871 23 | 24 | -5.4623425006866455e-01 2.1587164700031281e-01 25 | <_> 26 | 27 | 0 -1 1232 -1258604640 -1147423797 551694369 -170446729 -1608783 28 | -1450923544 -1332022785 1432219614 29 | 30 | -4.5928683876991272e-01 2.4170990288257599e-01 31 | <_> 32 | 33 | 0 -1 3616512 -617545745 -13369362 1536940911 99868155 -961536583 34 | -1397572673 -2245745 264400571 35 | 36 | -4.4457331299781799e-01 2.7112343907356262e-01 37 | <_> 38 | 39 | 0 -1 65396 -102799778 -1195515244 43178052 -603269026 40 | -1073086400 1575575890 1385040490 -236001513 41 | 42 | -4.1125467419624329e-01 2.7592518925666809e-01 43 | <_> 44 | 45 | 0 -1 3166525 -292880768 -1358921048 547656369 -2084181056 46 | 1677514665 -1894780150 162166832 -908079135 47 | 48 | -4.2582458257675171e-01 2.4507157504558563e-01 49 | <_> 50 | 51 | 0 -1 3613848 431007723 -824197633 -547651837 1509059889 52 | 463010746 -1074533202 -70586438 263302043 53 | 54 | -4.7433590888977051e-01 2.1511457860469818e-01 55 | <_> 56 | 57 | 0 -1 56958 1441743847 -685310507 1570363741 -1045248 1155353807 58 | -861385509 -644273940 1336298151 59 | 60 | -4.1037479043006897e-01 2.6458358764648438e-01 61 | <_> 62 | 63 | 0 -1 1456729 1733491118 1425484947 -2096491526 -83265654 64 | -1275085187 1934409921 -553935162 -2020768881 65 | 66 | -3.2530993223190308e-01 3.2269874215126038e-01 67 | <_> 68 | 69 | 0 -1 3558203 -668332962 -690044342 -402065394 -742328710 70 | 1926121802 281976843 -263288662 2082393415 71 | 72 | -4.6887257695198059e-01 2.1346296370029449e-01 73 | <_> 74 | 75 | 0 -1 3286728 -132087616 553660464 1112740418 1352664192 76 | -1002387192 1146096448 42242307 -2129780374 77 | 78 | -4.2727327346801758e-01 2.3190428316593170e-01 79 | 80 | -------------------------------------------------------------------------------- /data/model/stage7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 5 | -1.4888938665390015e+00 6 | 7 | <_> 8 | 9 | 0 -1 80617 -1 -2097697 1427111935 -572523521 -69861649 10 | -610018069 -34865681 2147478431 11 | 12 | -5.4434251785278320e-01 1.9716311991214752e-01 13 | <_> 14 | 15 | 0 -1 3430522 -93332965 -9569185 -92107402 -1325446833 -89993716 16 | 2112850527 -423696226 -226496774 17 | 18 | -3.7605828046798706e-01 3.1678086519241333e-01 19 | <_> 20 | 21 | 0 -1 310 -1431321072 -1956087328 -909973223 159041248 1939856299 22 | -359841660 -204546161 -143166091 23 | 24 | -5.3246909379959106e-01 1.9799698889255524e-01 25 | <_> 26 | 27 | 0 -1 3616475 -806223873 -537660449 1536597255 420536135 28 | -2022070373 1040170685 -6344949 533974923 29 | 30 | -3.7055054306983948e-01 3.0032548308372498e-01 31 | <_> 32 | 33 | 0 -1 74249 -145817914 -687605372 -13899192 -74517138 -288687921 34 | 1464658502 -623127604 2075065285 35 | 36 | -4.8952755331993103e-01 2.2786329686641693e-01 37 | <_> 38 | 39 | 0 -1 7223 -136512430 -787167999 1074938284 493687560 276146851 40 | 589013515 -865656437 1239239771 41 | 42 | -5.3250396251678467e-01 1.9003206491470337e-01 43 | <_> 44 | 45 | 0 -1 38588 -145759958 -821049914 -1078337216 -33608032 46 | 1423538085 -950140963 -162011277 -136845913 47 | 48 | -3.0383500456809998e-01 3.1146323680877686e-01 49 | <_> 50 | 51 | 0 -1 3616514 1139866877 2147483579 -721073 301259775 45154299 52 | -4327429 -269533409 229752671 53 | 54 | -4.5057049393653870e-01 2.0139770209789276e-01 55 | <_> 56 | 57 | 0 -1 77876 -20984736 -4949545 1448263706 920189577 1244448832 58 | 1875771437 -1057342948 -538430483 59 | 60 | -4.0678599476814270e-01 2.2909586131572723e-01 61 | <_> 62 | 63 | 0 -1 3588731 -1702174440 62965896 -1065320304 -1457761656 64 | -326805376 -633110391 -2106828700 -619713015 65 | 66 | -4.4796335697174072e-01 2.1863941848278046e-01 67 | <_> 68 | 69 | 0 -1 1853505 -234889820 -666225189 -1399322265 1964819540 70 | -1249840208 751140889 -1867275363 1896469407 71 | 72 | -3.6860093474388123e-01 2.7174666523933411e-01 73 | <_> 74 | 75 | 0 -1 3061509 -1020590966 -642048879 1325310994 1395630707 76 | -547047934 69222928 1212995731 -80798150 77 | 78 | -2.7938663959503174e-01 3.5098463296890259e-01 79 | <_> 80 | 81 | 0 -1 78987 -1026242332 -1153832753 1292814068 -27099373 82 | 948969215 1050933529 1586010798 2130502223 83 | 84 | -4.3503525853157043e-01 2.4240022897720337e-01 85 | 86 | -------------------------------------------------------------------------------- /detection/make_annotations.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import os 5 | import re 6 | import shutil 7 | import sqlite3 8 | from xml.etree import ElementTree 9 | 10 | 11 | ## ll | egrep 'Abyssinian|Bengal|Birman|Bombay|British|Egyptian|Main|Persian|Ragdoll|Russian|Siamese|Sphynx' | wc -l'' 12 | 13 | def removedogimages(): 14 | imagedir = 'static/oxford/images' 15 | pattern = re.compile('.*[.](jpg|jpeg|png|bmp|gif)$') 16 | images = [image for image in os.listdir(imagedir) if re.match(pattern, image)] 17 | for i, imagefile in enumerate(images): 18 | if imagefile[0].islower(): 19 | imagesrc = os.path.join(imagedir, imagefile) 20 | os.remove(imagesrc) 21 | 22 | 23 | def removedogxmls(): 24 | xmldir = 'static/oxford/annotations/xmls' 25 | pattern = re.compile('.*[.](xml)$') 26 | xmls = [xml for xml in os.listdir(xmldir) if re.match(pattern, xml)] 27 | for i, xml in enumerate(xmls): 28 | if xmls[i][0].islower(): 29 | xmlsrc = os.path.join(xmldir, xmls[i]) 30 | # print(xmlsrc) 31 | os.remove(xmlsrc) 32 | 33 | 34 | def insertannotation(dbname): 35 | db = sqlite3.connect(dbname) 36 | db.row_factory = sqlite3.Row 37 | # sql = "SELECT * FROM samples WHERE filepath LIKE '%Abyssinian%'" 38 | # rv = db.execute(sql) 39 | # for r in rv: 40 | # print(r) 41 | 42 | pattern = re.compile('.*[.](xml)$') 43 | xmldir = 'static/oxford/annotations/xmls' 44 | imgdir = 'static/oxford/images/' 45 | xmls = [xml for xml in os.listdir(xmldir) if re.match(pattern, xml)] 46 | annotationdata = '' 47 | sql = "UPDATE samples SET x=?, y=?, width=?, height=?, status=200 WHERE filepath=?" 48 | for i, xml in enumerate(xmls): 49 | xmlsrc = os.path.join(xmldir, xmls[i]) 50 | tree = ElementTree.parse(xmlsrc) 51 | elem = tree.getroot() 52 | filename = elem.find('.//filename').text 53 | if filename[0].isupper(): 54 | # print(filename) 55 | xmin = elem.find('.//xmin').text 56 | ymin = elem.find('.//ymin').text 57 | xmax = elem.find('.//xmax').text 58 | ymax = elem.find('.//ymax').text 59 | width = int(xmax) - int(xmin) 60 | height = int(ymax) - int(ymin) 61 | # print(xmin,ymin,xmax,ymax) 62 | imgsrc = imgdir + filename 63 | db.execute(sql, (int(xmin), int(ymin), width, height, imgsrc)) 64 | db.commit() 65 | db.close() 66 | 67 | 68 | def createannotationfile(): 69 | f = open('annotation.dat', 'wb') 70 | pattern = re.compile('.*[.](xml)$') 71 | xmldir = 'static/oxford/annotations/xmls' 72 | imgdir = 'static/oxford/images/' 73 | xmls = [xml for xml in os.listdir(xmldir) if re.match(pattern, xml)] 74 | annotationdata = '' 75 | for i, xml in enumerate(xmls): 76 | xmlsrc = os.path.join(xmldir, xmls[i]) 77 | tree = ElementTree.parse(xmlsrc) 78 | elem = tree.getroot() 79 | filename = elem.find('.//filename').text 80 | if filename[0].isupper(): 81 | # print(filename) 82 | xmin = elem.find('.//xmin').text 83 | ymin = elem.find('.//ymin').text 84 | xmax = elem.find('.//xmax').text 85 | ymax = elem.find('.//ymax').text 86 | width = int(xmax) - int(xmin) 87 | height = int(ymax) - int(ymin) 88 | # print(xmin,ymin,xmax,ymax) 89 | imgsrc = imgdir + filename 90 | annotationdata += "%s 1 %d %d %d %d\n" % (imgsrc, int(xmin), int(ymin), width, height) 91 | f.write(annotationdata) 92 | f.close() 93 | 94 | 95 | if __name__ == '__main__': 96 | dbname = 'samples.db' 97 | createannotationfile() 98 | insertannotation(dbname) 99 | removedogimages() 100 | removedogxmls() 101 | -------------------------------------------------------------------------------- /detection/train_cascade.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import argparse 5 | import os 6 | import subprocess 7 | import sys 8 | import time 9 | from pprint import pprint 10 | 11 | 12 | def parsearguments(): 13 | parser = argparse.ArgumentParser(description='run cascade training') 14 | parser.add_argument('-pos', '--positivefilename', type=str, help='positive sample file', 15 | default='/home/gongxijun/data/lantern/data/image/pos.txt') 16 | parser.add_argument('-neg', '--negativefilename', type=str, help='negative sample file', 17 | default='/home/gongxijun/data/lantern/data/image/neg.txt') 18 | parser.add_argument('-m', '--maxfarate', help='max false alarm rate', 19 | type=float, default=0.5) 20 | parser.add_argument('-d', '--dstdir', help='destination directory', 21 | type=str, default='/home/gongxijun/data/lantern/data/model') 22 | parser.add_argument('-f', '--feature', help='feature type', 23 | type=str, default='LBP') 24 | parser.add_argument('-w', '--width', help='width', type=int, default=90) 25 | parser.add_argument('-height', '--height', help='height', type=int, default=128) 26 | return parser.parse_args() 27 | 28 | 29 | def createsamples(positivefile, vecdir='./vec', width=24, height=24): 30 | os.environ['PATH'] = '/bin:/usr/bin:/usr/local/bin' 31 | if not os.path.isdir(vecdir): 32 | os.mkdir(vecdir) 33 | numpos = len(open(positivefile).readlines()) 34 | print('samples: %d' % (numpos,)) 35 | vecfile = vecdir + '/' + positivefile.split('/')[-1] + '.vec' 36 | cmdline = ['opencv_createsamples', '-info', positivefile, 37 | '-vec', vecfile, '-num', str(numpos), '-w', str(width), '-h', str(height)] 38 | print(' '.join(cmdline)) 39 | try: 40 | p = subprocess.Popen(cmdline, cwd='./', shell=False, 41 | stdin=subprocess.PIPE, 42 | stdout=subprocess.PIPE, 43 | stderr=subprocess.STDOUT, close_fds=True) 44 | except OSError as e: 45 | print(e) 46 | sys.exit(-1) 47 | 48 | while True: 49 | line = p.stdout.readline() 50 | if not line: 51 | break 52 | print(line.rstrip()) 53 | ret = p.wait() 54 | print('') 55 | 56 | return (vecfile, numpos) 57 | 58 | 59 | def traincascade(dstdir, vecfile, numpos, negativefilename, featuretype='LBP', maxfarate=0.5, 60 | width=24, height=24): 61 | if not os.path.isdir(dstdir): 62 | os.mkdir(dstdir) 63 | numpos = int(round(numpos * 0.85)) 64 | numneg = len(open(negativefilename).readlines()) 65 | cmdline = [ 66 | 'opencv_traincascade', '-data', dstdir,'-numStages',str(20), '-vec', vecfile, 67 | '-bg', negativefilename, '-numPos', str(numpos), '-numNeg', str(numneg), 68 | '-featureType', featuretype, '-maxFalseAlarmRate', str(maxfarate), 69 | '-w', str(width), '-h', str(height) 70 | ] 71 | print(' '.join(cmdline)) 72 | 73 | try: 74 | print('Start cascade training') 75 | p = subprocess.Popen(cmdline, cwd='./', shell=False, 76 | stdin=subprocess.PIPE, 77 | stdout=subprocess.PIPE, 78 | stderr=subprocess.STDOUT, close_fds=True) 79 | except OSError as e: 80 | print(e) 81 | sys.exit(-1) 82 | 83 | while True: 84 | line = p.stdout.readline() 85 | if not line: 86 | break 87 | print(line.rstrip()) 88 | ret = p.wait() 89 | 90 | 91 | if __name__ == '__main__': 92 | args = parsearguments() 93 | positivefilename = args.positivefilename 94 | negativefilename = args.negativefilename 95 | maxfarate = args.maxfarate 96 | dstdir = args.dstdir 97 | feature = args.feature 98 | width = args.width 99 | (vecfile, numpos) = createsamples(positivefilename, width=width, height=args.height) 100 | ts = time.time() 101 | traincascade(dstdir, vecfile, numpos, negativefilename, feature, maxfarate, width, args.height) 102 | processtime = int(time.time() - ts) 103 | print('process time: %s' % (str(processtime),)) 104 | -------------------------------------------------------------------------------- /detection/nms.py: -------------------------------------------------------------------------------- 1 | def overlapping_area(detection_1, detection_2): 2 | ''' 3 | Function to calculate overlapping area'si 4 | `detection_1` and `detection_2` are 2 detections whose area 5 | of overlap needs to be found out. 6 | Each detection is list in the format -> 7 | [x-top-left, y-top-left, confidence-of-detections, width-of-detection, height-of-detection] 8 | The function returns a value between 0 and 1, 9 | which represents the area of overlap. 10 | 0 is no overlap and 1 is complete overlap. 11 | Area calculated from -> 12 | http://math.stackexchange.com/questions/99565/simplest-way-to-calculate-the-intersect-area-of-two-rectangles 13 | ''' 14 | # Calculate the x-y co-ordinates of the 15 | # rectangles 16 | x1_tl = detection_1[0] 17 | x2_tl = detection_2[0] 18 | x1_br = detection_1[0] + detection_1[2] 19 | x2_br = detection_2[0] + detection_2[2] 20 | y1_tl = detection_1[1] 21 | y2_tl = detection_2[1] 22 | y1_br = detection_1[1] + detection_1[3] 23 | y2_br = detection_2[1] + detection_2[3] 24 | # Calculate the overlapping Area 25 | x_overlap = max(0, min(x1_br, x2_br) - max(x1_tl, x2_tl)) 26 | y_overlap = max(0, min(y1_br, y2_br) - max(y1_tl, y2_tl)) 27 | overlap_area = x_overlap * y_overlap 28 | area_1 = detection_1[2] * detection_1[3] 29 | area_2 = detection_2[2] * detection_2[3] 30 | # print overlap_area, area_1, area_2 31 | return overlap_area / (float(area_2) if (area_1 > area_2) else float(area_1)); 32 | # total_area = area_1 + area_2 - overlap_area 33 | # return overlap_area / float(total_area) 34 | 35 | 36 | def appendRect(detection_1, detection_2): 37 | """ 38 | append the rect. 39 | :return: 40 | """ 41 | _detection = [0] * 4; 42 | x1_tl = detection_1[0] 43 | x2_tl = detection_2[0] 44 | x1_br = detection_1[0] + detection_1[2] 45 | x2_br = detection_2[0] + detection_2[2] 46 | y1_tl = detection_1[1] 47 | y2_tl = detection_2[1] 48 | y1_br = detection_1[1] + detection_1[3] 49 | y2_br = detection_2[1] + detection_2[3] 50 | _detection[0] = min(x1_tl, x2_tl) 51 | _detection[1] = min(y1_tl, y2_tl) 52 | _detection[2] = max(x1_br, x2_br) - _detection[0] 53 | _detection[3] = max(y1_br, y2_br) - _detection[1] 54 | return _detection; 55 | 56 | 57 | def nms(detections, threshold=.5): 58 | ''' 59 | This function performs Non-Maxima Suppression. 60 | `detections` consists of a list of detections. 61 | Each detection is in the format -> 62 | [x-top-left, y-top-left, confidence-of-detections, width-of-detection, height-of-detection] 63 | If the area of overlap is greater than the `threshold`, 64 | the area with the lower confidence score is removed. 65 | The output is a list of detections. 66 | ''' 67 | if len(detections) == 0: 68 | return [] 69 | # Unique detections will be appended to this list 70 | new_detections = [] 71 | # Append the first detection 72 | new_detections.append(detections[0]) 73 | # Remove the detection from the original list 74 | del detections[0] 75 | # For each detection, calculate the overlapping area 76 | # and if area of overlap is less than the threshold set 77 | # for the detections in `new_detections`, append the 78 | # detection to `new_detections`. 79 | # In either case, remove the detection from `detections` list. 80 | change_status=False; 81 | for index, detection in enumerate(detections): 82 | flag = True; 83 | for new_index, new_detection in enumerate(new_detections): 84 | if overlapping_area(detection, new_detection) > threshold: 85 | #print appendRect(detection, new_detection), detection, new_detection 86 | new_detections[new_index] = appendRect(detection, new_detection); 87 | #del detections[index] 88 | flag = False; 89 | change_status=True; 90 | #break 91 | if (flag): 92 | new_detections.append(detection) 93 | #del detections[index] 94 | return new_detections,change_status 95 | 96 | 97 | if __name__ == "__main__": 98 | # Example of how to use the NMS Module 99 | detections = [[31, 31, 10, 10], [31, 31, 10, 10], [100, 34, 10, 10]] 100 | print "Detections before NMS = {}".format(detections) 101 | print "Detections after NMS = {}".format(nms(detections)) 102 | -------------------------------------------------------------------------------- /data/model/stage8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 5 | -1.3324991464614868e+00 6 | 7 | <_> 8 | 9 | 0 -1 392777 -393217 -35925097 -538715729 -33569889 -549716757 10 | -75636018 -124911618 2146434991 11 | 12 | -5.8858078718185425e-01 3.7313431967049837e-03 13 | <_> 14 | 15 | 0 -1 1499008 -1073742028 -706907907 835740020 -48246723 16 | -190385775 -57421159 1951512509 -1392783361 17 | 18 | -3.5835200548171997e-01 3.1568315625190735e-01 19 | <_> 20 | 21 | 0 -1 112050 -8389221 1873804194 817311616 -68703764 -8388633 22 | -543302116 1869064178 -2049 23 | 24 | -2.2720864415168762e-01 4.3911415338516235e-01 25 | <_> 26 | 27 | 0 -1 3616503 -1744830509 -604192813 -84296865 201055063 28 | 2079373168 -638362697 804831039 198426495 29 | 30 | -4.2267248034477234e-01 2.1650552749633789e-01 31 | <_> 32 | 33 | 0 -1 3605690 -138944486 -587763893 1081798272 -253631506 34 | 1755794510 -1603437137 -1999058297 -187960453 35 | 36 | -2.5246855616569519e-01 3.9071065187454224e-01 37 | <_> 38 | 39 | 0 -1 2107212 -649057790 2024933448 1109660320 -247848383 40 | -478953408 1277251603 -2074898204 -1022416161 41 | 42 | -2.9787963628768921e-01 2.8947582840919495e-01 43 | <_> 44 | 45 | 0 -1 68621 -429929944 2008538493 1510400223 -1673078113 46 | -938472712 998880138 -128423059 -425787393 47 | 48 | -3.0643260478973389e-01 2.8518235683441162e-01 49 | <_> 50 | 51 | 0 -1 128 1953723543 1602206737 -1717902116 1407573961 -629529669 52 | -1201547070 2091740127 2137253707 53 | 54 | -3.3177146315574646e-01 3.0142271518707275e-01 55 | <_> 56 | 57 | 0 -1 3557239 1715603030 -307897838 -784154361 -1701927145 58 | 1358667850 -70278483 1657701009 -1469059081 59 | 60 | -3.8169708847999573e-01 2.4539253115653992e-01 61 | <_> 62 | 63 | 0 -1 2591660 -39942648 -300109490 -1910906764 -679925452 64 | -686804130 287071328 -1001427712 -1871773632 65 | 66 | -3.1971287727355957e-01 2.7512091398239136e-01 67 | <_> 68 | 69 | 0 -1 4362 -307790410 -891101054 1175246708 2138013828 2141846409 70 | -84492237 1950593857 1609561830 71 | 72 | -4.1018813848495483e-01 2.1113251149654388e-01 73 | <_> 74 | 75 | 0 -1 3535019 -549231094 -221930523 1363937554 -179420886 76 | -417816753 965905362 -610353259 2139749693 77 | 78 | -3.7948682904243469e-01 2.2222946584224701e-01 79 | <_> 80 | 81 | 0 -1 1465824 2145507018 -1083252630 450444878 -500289257 82 | -24117509 -505122490 -337647657 -745789363 83 | 84 | -3.2620692253112793e-01 2.8101593255996704e-01 85 | <_> 86 | 87 | 0 -1 3613806 1976081909 1106346143 -68292734 32542665 227970969 88 | -1078412309 -1492582646 130060267 89 | 90 | -5.4860514402389526e-01 1.7666733264923096e-01 91 | <_> 92 | 93 | 0 -1 2760540 -220417376 -909344589 580790288 -532701084 94 | -1842223962 -434560768 1463875250 -209022580 95 | 96 | -2.8460818529129028e-01 3.2369500398635864e-01 97 | <_> 98 | 99 | 0 -1 3267503 -1284539653 289143843 -1275219141 -1653870081 100 | 1560016127 -1783104385 -831006741 -1060114457 101 | 102 | -2.1446114778518677e-01 4.6036568284034729e-01 103 | 104 | -------------------------------------------------------------------------------- /data/model/stage10.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 5 | -1.3884822130203247e+00 6 | 7 | <_> 8 | 9 | 0 -1 1220 -607271200 1935147249 -1723852702 -671789047 10 | -226437413 -207052660 -1818525250 -204617281 11 | 12 | -6.2747991085052490e-01 -7.0191428065299988e-02 13 | <_> 14 | 15 | 0 -1 153 -1945920512 -544230000 -251604424 -287055600 16 | -1026962981 -1164328941 1225190203 -143163609 17 | 18 | -3.9827862381935120e-01 1.8069170415401459e-01 19 | <_> 20 | 21 | 0 -1 80910 -182718773 -621733223 1098939213 2102245647 22 | -393527569 -1977020318 1394011701 804257421 23 | 24 | -4.1736376285552979e-01 2.0673881471157074e-01 25 | <_> 26 | 27 | 0 -1 2640794 -70794208 -480196478 -868216574 -1383552294 28 | -201622813 1943900867 -527959643 -39978085 29 | 30 | -3.3550849556922913e-01 2.5813558697700500e-01 31 | <_> 32 | 33 | 0 -1 544857 171593216 -83717440 176478704 -1312263552 730040826 34 | -17055653 -507910212 -572566147 35 | 36 | -4.1626146435737610e-01 2.1148639917373657e-01 37 | <_> 38 | 39 | 0 -1 599968 1171227084 -585136862 1529977524 -574739456 40 | 1405341017 1492666635 -1701095013 1493846057 41 | 42 | -4.0453308820724487e-01 2.1123914420604706e-01 43 | <_> 44 | 45 | 0 -1 159925 -57542096 804057084 -10944646 -684097944 -18490375 46 | -579652696 -558678086 1610349835 47 | 48 | -2.4545501172542572e-01 3.5483735799789429e-01 49 | <_> 50 | 51 | 0 -1 3613807 468759447 -797181081 -1622009524 74833829 52 | 1536596567 -1799636819 -68604902 1274227647 53 | 54 | -4.7374603152275085e-01 1.6511726379394531e-01 55 | <_> 56 | 57 | 0 -1 3107 -701312770 1157416084 -467746658 250368205 -15318772 58 | -762361185 104547119 1567737299 59 | 60 | -4.5468455553054810e-01 1.7584757506847382e-01 61 | <_> 62 | 63 | 0 -1 3612981 -1567905630 -2146958674 -758178175 1177918652 64 | 372169968 -1737964092 1029626179 -793785637 65 | 66 | -2.7110403776168823e-01 3.1943660974502563e-01 67 | <_> 68 | 69 | 0 -1 2176889 -1259708912 417304822 1623466508 1422154712 70 | -800694204 -12412391 -1262425560 1042545598 71 | 72 | -4.8283368349075317e-01 1.7239548265933990e-01 73 | <_> 74 | 75 | 0 -1 164674 -554763881 -67930749 1959123278 -278275301 76 | 1551993480 1820346860 1387260927 1058403707 77 | 78 | -4.1570019721984863e-01 1.7588789761066437e-01 79 | <_> 80 | 81 | 0 -1 3491520 -47515518 -1744056278 -877695359 -1026928146 82 | -608198966 111081312 965959060 -2133076085 83 | 84 | -2.8271767497062683e-01 2.8630712628364563e-01 85 | <_> 86 | 87 | 0 -1 1361996 1445951437 1998626789 -1892683777 1325788987 88 | -543817857 -10879185 515419819 -1151213747 89 | 90 | -2.1462906897068024e-01 3.8625234365463257e-01 91 | <_> 92 | 93 | 0 -1 155405 -2075472832 2109366869 -1106919024 -1403223460 94 | -578545592 -930031487 -789264516 1252810196 95 | 96 | -5.7111966609954834e-01 1.3209055364131927e-01 97 | <_> 98 | 99 | 0 -1 2799076 -187408278 -521114968 1120202812 -204939210 100 | 2130544812 1356990444 264828618 -1500539702 101 | 102 | -2.7336806058883667e-01 3.1073382496833801e-01 103 | 104 | -------------------------------------------------------------------------------- /data/model/stage9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 5 | -1.4080969095230103e+00 6 | 7 | <_> 8 | 9 | 0 -1 3226166 -1669476821 -8702406 -1974988202 473841909 10 | -23240692 -17250145 -20252020 -26224161 11 | 12 | -6.3318186998367310e-01 -7.8064709901809692e-02 13 | <_> 14 | 15 | 0 -1 159802 -137764865 -2647102 -716310202 -1082262097 -51140609 16 | -1511262034 -135599329 2013264895 17 | 18 | -3.7738487124443054e-01 2.3634789884090424e-01 19 | <_> 20 | 21 | 0 -1 87476 -1438085200 -293053760 -2029457183 -75239596 22 | -875364944 -68984444 -1148683826 -807403531 23 | 24 | -4.2849510908126831e-01 2.0871226489543915e-01 25 | <_> 26 | 27 | 0 -1 832718 -251941944 -670641631 419486832 -140550913 28 | -821052725 1158529035 -338863137 871992751 29 | 30 | -3.4297850728034973e-01 2.6339864730834961e-01 31 | <_> 32 | 33 | 0 -1 152953 -322517661 -1658913929 -572871171 -541137400 34 | 1123305676 -838022726 -289912610 -805680588 35 | 36 | -2.8967392444610596e-01 3.0354577302932739e-01 37 | <_> 38 | 39 | 0 -1 3616506 266919807 -2229361 -674337841 30596831 251182014 40 | -1088946689 -68482534 133382139 41 | 42 | -4.6696320176124573e-01 1.7979326844215393e-01 43 | <_> 44 | 45 | 0 -1 77354 -604582776 2144210190 -393092544 620654746 46 | -1666463736 2023063592 -37094904 -363432966 47 | 48 | -4.2092955112457275e-01 2.1567739546298981e-01 49 | <_> 50 | 51 | 0 -1 2833320 -1962867584 -2075268566 190584368 -1826324424 52 | -2098088444 1314836 2126276 -1861279096 53 | 54 | -3.9697623252868652e-01 2.0914869010448456e-01 55 | <_> 56 | 57 | 0 -1 2612714 -408226083 -1760443380 1493188893 1025006377 58 | -582419747 687882374 -1404179577 1361837927 59 | 60 | -3.0829593539237976e-01 2.8200924396514893e-01 61 | <_> 62 | 63 | 0 -1 3614135 199278545 1607057219 525819294 1164981023 466651162 64 | -1946358278 -536892898 266457087 65 | 66 | -4.7928825020790100e-01 1.8315021693706512e-01 67 | <_> 68 | 69 | 0 -1 3613087 -533732857 -1288951244 1915442661 -222691350 70 | -54591782 1327415180 1130336156 -134219115 71 | 72 | -2.1007771790027618e-01 4.4798269867897034e-01 73 | <_> 74 | 75 | 0 -1 3455622 -88418238 364595298 812684336 525287528 -452980224 76 | -2127926752 1404229035 -769940597 77 | 78 | -2.7826711535453796e-01 3.1689760088920593e-01 79 | <_> 80 | 81 | 0 -1 22138 -1540472065 399741337 1385423634 561336783 1141949128 82 | -132537717 -1056769 -151939709 83 | 84 | -2.7036780118942261e-01 3.0115363001823425e-01 85 | <_> 86 | 87 | 0 -1 2901956 667798254 -904142769 949348034 -1382192289 88 | 664516095 -712371480 -1945541560 -62925421 89 | 90 | -2.8212517499923706e-01 2.9888752102851868e-01 91 | <_> 92 | 93 | 0 -1 238334 -137429907 -459614156 -1793775993 -346299711 94 | -91021089 -1752343986 -118031572 1901389803 95 | 96 | -4.2887321114540100e-01 2.1851524710655212e-01 97 | <_> 98 | 99 | 0 -1 1898274 -862403456 152698888 1619114568 408180481 100 | -1851522432 119787052 37880402 -2113715114 101 | 102 | -4.0104955434799194e-01 2.1542258560657501e-01 103 | <_> 104 | 105 | 0 -1 53735 -539796229 -1414793729 1485132580 2016934874 106 | -839227704 -1040170042 -582424866 -932000217 107 | 108 | -2.8433001041412354e-01 2.9530119895935059e-01 109 | 110 | -------------------------------------------------------------------------------- /data/model/stage11.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 5 | -1.3655668497085571e+00 6 | 7 | <_> 8 | 9 | 0 -1 80828 -10765377 -164354 -1081618849 -44051471 -917930001 10 | -1615215957 -1473258241 2080358395 11 | 12 | -5.3211462497711182e-01 4.1439477354288101e-03 13 | <_> 14 | 15 | 0 -1 25766 -1926517070 -479922014 -2129240640 -219816974 16 | 1136565202 899271601 1199530275 -134224969 17 | 18 | -4.2864513397216797e-01 2.1311216056346893e-01 19 | <_> 20 | 21 | 0 -1 691432 -287375406 -1831729776 -1722786928 399557074 22 | -643512629 -320874361 -922063904 -621870283 23 | 24 | -2.8680363297462463e-01 2.7817332744598389e-01 25 | <_> 26 | 27 | 0 -1 0 2128280979 -140648413 545506937 -270852663 -372723793 28 | 975374763 -1964442627 1872727899 29 | 30 | -3.7747001647949219e-01 2.0030593872070312e-01 31 | <_> 32 | 33 | 0 -1 3134465 -1501532544 -150941904 -1793965677 -1224573390 34 | 931361729 -1624014461 558127577 -1481245711 35 | 36 | -3.7489697337150574e-01 2.4774743616580963e-01 37 | <_> 38 | 39 | 0 -1 309065 -102841270 -118060954 -361855475 1626971176 40 | -2023945472 925773353 -1543051283 -212342937 41 | 42 | -2.7971762418746948e-01 2.9183325171470642e-01 43 | <_> 44 | 45 | 0 -1 3287817 -358942592 -488935224 -1056366000 -803733242 46 | -496718646 302556193 339792266 -783613765 47 | 48 | -3.0917242169380188e-01 2.5806832313537598e-01 49 | <_> 50 | 51 | 0 -1 2195058 1928700326 407234045 1895794347 -1768514174 52 | -1461804561 306465779 649743150 -1241766106 53 | 54 | -2.9108640551567078e-01 2.7332317829132080e-01 55 | <_> 56 | 57 | 0 -1 3616489 265338827 -671089697 -35741924 483512857 165739435 58 | -1347904578 -473433344 183909241 59 | 60 | -4.8851445317268372e-01 1.6040863096714020e-01 61 | <_> 62 | 63 | 0 -1 241 145001472 189862400 -396996517 611520528 -1809600054 64 | -620158813 -742139337 1400340343 65 | 66 | -6.0025173425674438e-01 1.3193045556545258e-01 67 | <_> 68 | 69 | 0 -1 1853211 -793189588 413286356 -1285132892 -1314930784 70 | -285368652 -273369627 1146477996 -1522125730 71 | 72 | -2.4854384362697601e-01 3.0684912204742432e-01 73 | <_> 74 | 75 | 0 -1 3365966 -939367936 -225694336 1241760819 -1618427264 76 | 848857983 818937877 1482292724 2107422973 77 | 78 | -4.0344029664993286e-01 1.8463221192359924e-01 79 | <_> 80 | 81 | 0 -1 2508608 -502755168 1393078981 317298710 1905864415 82 | 915578936 358122105 -1220436734 -214256662 83 | 84 | -2.5246548652648926e-01 2.9850533604621887e-01 85 | <_> 86 | 87 | 0 -1 159922 -131010640 -349201388 -610897473 -482159490 88 | -198355250 -14761673 -154273384 2141183963 89 | 90 | -2.4565073847770691e-01 3.2475093007087708e-01 91 | <_> 92 | 93 | 0 -1 3527298 -337687032 1983234287 743164116 1611223693 94 | -884563377 -1610370018 1242802604 -252974153 95 | 96 | -3.4235614538192749e-01 2.3409722745418549e-01 97 | <_> 98 | 99 | 0 -1 3613890 51572347 1476319199 -1356912677 113279761 114464707 100 | -289794001 -103040247 265513603 101 | 102 | -5.1250463724136353e-01 1.5956047177314758e-01 103 | <_> 104 | 105 | 0 -1 3219790 -684850496 -898654080 327305835 -712011584 106 | -17824672 1160140998 254337943 -1228252022 107 | 108 | -3.1201598048210144e-01 2.5532919168472290e-01 109 | <_> 110 | 111 | 0 -1 168496 -1906104544 -496793344 1162317824 688191664 112 | 1635920854 -507866480 -351354124 -1114905962 113 | 114 | -4.0636324882507324e-01 1.9466717541217804e-01 115 | 116 | -------------------------------------------------------------------------------- /data/model/stage13.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 5 | -1.4067405462265015e+00 6 | 7 | <_> 8 | 9 | 0 -1 236912 -9437750 -9522930 -1690166236 -538077177 -1886736178 10 | 1293871289 -880686129 -136333649 11 | 12 | -6.3485854864120483e-01 -1.1760808527469635e-02 13 | <_> 14 | 15 | 0 -1 2912600 -1434009522 -1197363077 -637479924 -690699690 16 | 1247443016 -190262552 1355393738 -101193089 17 | 18 | -3.3779525756835938e-01 1.7966012656688690e-01 19 | <_> 20 | 21 | 0 -1 3613932 265334525 -78546441 -1441195665 160465343 22 | -1895777601 -269413 -271130853 66068094 23 | 24 | -4.8599120974540710e-01 1.4508390426635742e-01 25 | <_> 26 | 27 | 0 -1 3611128 201327616 1342276363 -1073725167 67322241 8947725 28 | -2147385344 -1610440506 -1565529483 29 | 30 | -4.8167204856872559e-01 1.8161998689174652e-01 31 | <_> 32 | 33 | 0 -1 2227053 -234882388 -1647734577 -1878761168 1025025312 34 | -1725714204 80578574 -301872728 832933570 35 | 36 | -3.1661325693130493e-01 2.4114367365837097e-01 37 | <_> 38 | 39 | 0 -1 3238040 -1356283392 -117816808 1351838032 -735370624 40 | -2105516024 877986509 -2114481969 -1497691361 41 | 42 | -2.6469996571540833e-01 2.7581912279129028e-01 43 | <_> 44 | 45 | 0 -1 3616507 223407055 -140547911 -954090119 265344435 243731807 46 | 2143280894 -288363912 1877737434 47 | 48 | -3.7576839327812195e-01 1.8540333211421967e-01 49 | <_> 50 | 51 | 0 -1 2762999 -750761814 -570408374 -1656748958 -771192190 52 | -1283244289 1431431367 -493177375 -1191224357 53 | 54 | -3.3389946818351746e-01 2.4287375807762146e-01 55 | <_> 56 | 57 | 0 -1 857986 -1562621378 136057425 1779660869 399971904 182577413 58 | -272332009 2099458311 14994900 59 | 60 | -4.3114915490150452e-01 1.7829462885856628e-01 61 | <_> 62 | 63 | 0 -1 2274 -2030148054 -2136947630 -536598492 1652867536 64 | -1820295313 -486372848 -787444758 1912862861 65 | 66 | -6.0113841295242310e-01 1.0681860148906708e-01 67 | <_> 68 | 69 | 0 -1 55842 -671396777 1474604079 -214721050 -1848705797 70 | 1326913484 113842172 -1341985851 -246223541 71 | 72 | -2.5287953019142151e-01 2.9379209876060486e-01 73 | <_> 74 | 75 | 0 -1 159773 -202356309 1546117141 119652493 -1480642600 76 | -897144580 -357652253 1327299123 2147277759 77 | 78 | -3.7577870488166809e-01 1.9211210310459137e-01 79 | <_> 80 | 81 | 0 -1 2641275 -701322000 600457447 1509985816 2047101992 82 | -88061808 810625041 -492200131 -1084615712 83 | 84 | -2.5967335700988770e-01 3.2390621304512024e-01 85 | <_> 86 | 87 | 0 -1 2996109 -802661248 2041223440 -1971189214 1091063884 88 | -1442209590 310890120 -583462758 -2128858658 89 | 90 | -2.7653399109840393e-01 2.6308131217956543e-01 91 | <_> 92 | 93 | 0 -1 3388810 1227144738 287347110 1073811841 -642510663 47949235 94 | -358549313 -762651789 1067989756 95 | 96 | -3.8721343874931335e-01 1.9796879589557648e-01 97 | <_> 98 | 99 | 0 -1 1615868 -890645530 -76137428 1635407089 -653705103 100 | -222196352 -2135454648 826650799 -546421106 101 | 102 | -2.2893629968166351e-01 3.4883117675781250e-01 103 | <_> 104 | 105 | 0 -1 3614660 115396552 -268602625 -476620085 55125 34911734 106 | -2031601929 -876678966 2159232 107 | 108 | -4.7331467270851135e-01 1.7090183496475220e-01 109 | <_> 110 | 111 | 0 -1 2115458 -960841592 -1438746614 -836757390 -607137650 112 | -1698785238 241330388 -1433414422 -1011887074 113 | 114 | -2.7522462606430054e-01 2.7552169561386108e-01 115 | 116 | -------------------------------------------------------------------------------- /data/model/stage12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 5 | -1.5336408615112305e+00 6 | 7 | <_> 8 | 9 | 0 -1 236912 -336863798 -553209586 -620619738 -135324657 10 | -892668978 1293590973 -873083953 -134499409 11 | 12 | - 6.1397886276245117e-01 -7.1240104734897614e-02 13 | <_> 14 | 15 | 0 -1 3478540 -1875508144 2052317256 -1873107241 -141331829 16 | -1114988824 -341237334 -1609694102 -251724801 17 | 18 | -4.8528671264648438e-01 1.2510317564010620e-01 19 | <_> 20 | 21 | 0 -1 3616438 449902047 -538251777 -929828851 32821026 48525099 22 | -1344866898 -556007637 150437323 23 | 24 | -4.3188530206680298e-01 1.8361768126487732e-01 25 | <_> 26 | 27 | 0 -1 33749 2005703000 -985382642 627490984 1406475789 -938817682 28 | 1212187733 135314349 151769902 29 | 30 | -4.5239022374153137e-01 1.6984583437442780e-01 31 | <_> 32 | 33 | 0 -1 316866 1827387327 414020200 -17654361 -1345455884 34 | -1068827669 -620606885 -1148257446 1865143940 35 | 36 | -3.8339811563491821e-01 1.8901248276233673e-01 37 | <_> 38 | 39 | 0 -1 118511 701233354 -383065810 -90527648 -173474936 445556619 40 | 1210495378 376960674 -676862013 41 | 42 | -2.8135514259338379e-01 2.7980542182922363e-01 43 | <_> 44 | 45 | 0 -1 3323186 -717069790 -541021944 84023824 -8613832 -1450128403 46 | -1786726247 -88167961 798528253 47 | 48 | -3.1612202525138855e-01 2.2330114245414734e-01 49 | <_> 50 | 51 | 0 -1 1145040 -85278558 -108947392 1333559300 1896178512 52 | -1205477184 1041511424 1440064440 -2108013133 53 | 54 | -2.6831141114234924e-01 2.7870228886604309e-01 55 | <_> 56 | 57 | 0 -1 78619 -946746358 -489192681 -536242604 1821266831 58 | 1470349312 1489742619 -1979242231 -1647345043 59 | 60 | -4.0771389007568359e-01 1.8097732961177826e-01 61 | <_> 62 | 63 | 0 -1 3546214 -765539111 1427563215 1351062558 -917258090 64 | -729328356 -669368162 1631635620 2147471569 65 | 66 | -2.7470156550407410e-01 2.8546696901321411e-01 67 | <_> 68 | 69 | 0 -1 2618266 -2056568131 -1321599113 -17514690 -42540430 70 | -1518995979 1207005182 -1932193333 -115133417 71 | 72 | -2.4321371316909790e-01 3.2071539759635925e-01 73 | <_> 74 | 75 | 0 -1 1469699 -612797953 2076095099 -332136981 1639613662 76 | -1880693841 -1418533377 -1497043725 -556085763 77 | 78 | -1.9510571658611298e-01 4.1279569268226624e-01 79 | <_> 80 | 81 | 0 -1 2117016 -783226784 -136002408 -1791264528 -785657383 82 | -1088182184 554708626 -1950633048 -612756534 83 | 84 | -2.1138350665569305e-01 3.3584797382354736e-01 85 | <_> 86 | 87 | 0 -1 3616513 1130405741 -673974529 2138433837 227861198 88 | 1270147631 1056242919 -119734482 198216774 89 | 90 | -5.5799555778503418e-01 1.2907704710960388e-01 91 | <_> 92 | 93 | 0 -1 3605445 1915464262 1352471654 1686091780 310146764 94 | -1730509050 -735590260 -1198297597 -82058041 95 | 96 | -3.0195322632789612e-01 2.6296561956405640e-01 97 | <_> 98 | 99 | 0 -1 2875558 -374789376 1545947638 1374994306 2136319426 100 | 841798819 153226637 -240544398 -67730285 101 | 102 | -2.2869551181793213e-01 3.1952711939811707e-01 103 | <_> 104 | 105 | 0 -1 86113 -38573579 -343433615 79843369 1309924163 -784612355 106 | 1608121114 -831637350 1097198569 107 | 108 | -4.4388818740844727e-01 1.5987017750740051e-01 109 | <_> 110 | 111 | 0 -1 2763351 -97201612 -1813221762 -311021944 468632958 112 | 477110936 -168338444 -959519266 -1296613730 113 | 114 | -2.1842981874942780e-01 3.6191204190254211e-01 115 | 116 | -------------------------------------------------------------------------------- /data/model/stage15.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 5 | -1.3689570426940918e+00 6 | 7 | <_> 8 | 9 | 0 -1 98859 -36701358 -280832356 2103309170 -236891018 26843135 10 | -116273127 1917059063 -69224457 11 | 12 | -5.5105370283126831e-01 -4.4310927391052246e-02 13 | <_> 14 | 15 | 0 -1 155535 -1028666686 745936166 -125368312 -1539558342 16 | 135872516 -1062526765 -465345697 -597242959 17 | 18 | -4.9966827034950256e-01 1.1793278157711029e-01 19 | <_> 20 | 21 | 0 -1 3613973 200449501 -170656417 -1345234140 114421689 22 | 250615905 972788890 -689963768 199352298 23 | 24 | -5.3498733043670654e-01 1.2796100974082947e-01 25 | <_> 26 | 27 | 0 -1 283253 1202662538 1187292162 1170428074 990843281 28 | -954416791 135055400 387233512 89426445 29 | 30 | -5.0721293687820435e-01 1.4385116100311279e-01 31 | <_> 32 | 33 | 0 -1 1436660 -1746732110 2029699007 -1392572784 -1117045386 34 | 1173848317 -1459683329 285152008 -1383071753 35 | 36 | -2.2329494357109070e-01 3.2409512996673584e-01 37 | <_> 38 | 39 | 0 -1 1021470 834127121 1383575339 -83946101 393846682 1736281151 40 | -547946633 -21553549 -1205817745 41 | 42 | -2.3387438058853149e-01 3.1903585791587830e-01 43 | <_> 44 | 45 | 0 -1 81322 774440532 -915800368 -616378076 -33171809 -233963895 46 | -1374764511 -226403926 2078260874 47 | 48 | -4.1622996330261230e-01 1.8736979365348816e-01 49 | <_> 50 | 51 | 0 -1 3616057 -1055130711 -360321109 -1363874348 222892428 52 | 180736922 -1880498501 -1879048560 -1887189077 53 | 54 | -2.0646688342094421e-01 3.8148093223571777e-01 55 | <_> 56 | 57 | 0 -1 2967953 894409648 -564175777 -1533191126 1618136044 58 | -1959444414 1653329327 138897652 -318594346 59 | 60 | -3.0523520708084106e-01 2.2960156202316284e-01 61 | <_> 62 | 63 | 0 -1 3616493 1238957567 324393598 -787874748 493904627 190192530 64 | -290594321 -5779638 263376348 65 | 66 | -4.4184428453445435e-01 1.6045267879962921e-01 67 | <_> 68 | 69 | 0 -1 446437 68701952 2077269914 -783922776 211821062 -902574824 70 | -611596065 1080609482 1084771030 71 | 72 | -4.7513270378112793e-01 1.5158329904079437e-01 73 | <_> 74 | 75 | 0 -1 2509679 -188626806 -261350153 -700062270 1434293215 76 | -1300836214 297252666 1024698508 -136331366 77 | 78 | -2.2492693364620209e-01 3.5218876600265503e-01 79 | <_> 80 | 81 | 0 -1 3387874 2013952002 2013817634 1100055856 -716975342 82 | -934594065 71504203 2026494406 1330548735 83 | 84 | -2.9531002044677734e-01 2.4747686088085175e-01 85 | <_> 86 | 87 | 0 -1 3389730 139996368 -732707941 353552477 2099934171 88 | -120340260 -1442123248 1219285246 -1777143211 89 | 90 | -4.5768079161643982e-01 1.4851477742195129e-01 91 | <_> 92 | 93 | 0 -1 2819731 -1077317029 365094672 -387568106 -1449073820 94 | -726612065 -1477150905 -791247181 -189025069 95 | 96 | -1.9508628547191620e-01 3.7863320112228394e-01 97 | <_> 98 | 99 | 0 -1 244424 845234931 -661447465 1992423922 -371559509 100 | -700779715 -60833734 1754262973 1426807653 101 | 102 | -4.3853098154067993e-01 1.7135840654373169e-01 103 | <_> 104 | 105 | 0 -1 3048129 -1055574768 2070560961 10040890 -427747717 106 | -2044874110 103645768 -1299177046 -127000323 107 | 108 | -2.2444495558738708e-01 3.6070948839187622e-01 109 | <_> 110 | 111 | 0 -1 1529337 -100151524 66763293 -664182890 -495968039 112 | 1663098793 -1685771157 -1730251564 -904330523 113 | 114 | -3.0353170633316040e-01 2.5853526592254639e-01 115 | <_> 116 | 117 | 0 -1 2447453 -1962958294 346599247 823294238 -1717503912 118 | 257536557 -1724122333 -741124088 -1062420608 119 | 120 | -3.3708053827285767e-01 2.1436975896358490e-01 121 | <_> 122 | 123 | 0 -1 70053 -1039743968 1834603520 -2142830471 915031194 124 | -1052768896 -653532661 214229476 1693226919 125 | 126 | -4.5549964904785156e-01 1.6191585361957550e-01 127 | 128 | -------------------------------------------------------------------------------- /data/model/stage14.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 5 | -1.5641496181488037e+00 6 | 7 | <_> 8 | 9 | 0 -1 1487519 -6572097 1997747627 -793797217 -12890101 -640943889 10 | -15222773 -1165915669 -1082131477 11 | 12 | -4.4747370481491089e-01 2.6887279748916626e-01 13 | <_> 14 | 15 | 0 -1 159563 -78893594 -24473120 285594848 -153685586 -1282352145 16 | 1415165953 -7677762 -1089545281 17 | 18 | -3.8248649239540100e-01 1.9512212276458740e-01 19 | <_> 20 | 21 | 0 -1 82488 1719433453 2012860737 -752178198 -270273361 22 | -218071909 1910755545 -634921921 1307917543 23 | 24 | -4.2403382062911987e-01 1.5552417933940887e-01 25 | <_> 26 | 27 | 0 -1 3427103 346440728 475984700 -226479860 -251477414 28 | -376511992 -787840824 -325564392 -205625268 29 | 30 | -3.7190786004066467e-01 2.2409965097904205e-01 31 | <_> 32 | 33 | 0 -1 478 -1470403598 -79514480 -1874230864 1373314288 1889454791 34 | 965380300 111729339 -155757321 35 | 36 | -3.1442776322364807e-01 2.0855370163917542e-01 37 | <_> 38 | 39 | 0 -1 764907 -716056854 -1823908864 -1508796792 1972671498 40 | -519819084 813732008 -258861909 919194255 41 | 42 | -3.7285614013671875e-01 1.9729779660701752e-01 43 | <_> 44 | 45 | 0 -1 691458 1546385595 -1309836939 1857846459 1533215607 46 | -1011184374 -612958225 -1011026448 -1972702825 47 | 48 | -2.0079778134822845e-01 3.6348915100097656e-01 49 | <_> 50 | 51 | 0 -1 3584098 1747340380 -36375818 -796856307 -711095964 52 | -796599288 1355448457 1312861204 2135412121 53 | 54 | -3.7831446528434753e-01 1.9873639941215515e-01 55 | <_> 56 | 57 | 0 -1 1955865 -768751382 2032850956 -1850876814 1943342158 58 | 957253316 -1742859456 -1627655967 -766813953 59 | 60 | -2.5611773133277893e-01 2.8520381450653076e-01 61 | <_> 62 | 63 | 0 -1 2053722 379801908 922931070 -1283810949 -635466228 64 | -1162610393 -2140456651 -394184688 -1741505260 65 | 66 | -3.3258980512619019e-01 2.1983511745929718e-01 67 | <_> 68 | 69 | 0 -1 3614292 30440861 -707084297 -711518476 232846730 261139465 70 | -1980645442 -1919182317 148959131 71 | 72 | -4.8756906390190125e-01 1.4926502108573914e-01 73 | <_> 74 | 75 | 0 -1 1346857 1398517412 1091503627 -603614910 923510340 76 | -2128548510 631054592 -1559732022 632736907 77 | 78 | -4.1774383187294006e-01 1.7141269147396088e-01 79 | <_> 80 | 81 | 0 -1 3607127 -771178448 -1962893312 -532234031 -1719586142 82 | -844250936 -2146992000 -896574679 -68179424 83 | 84 | -3.3771258592605591e-01 2.1925686299800873e-01 85 | <_> 86 | 87 | 0 -1 3616476 80128495 -1999374641 -951464498 197197304 88 | 1016397327 -1154549345 -51535969 1270071291 89 | 90 | -3.6071702837944031e-01 2.2551006078720093e-01 91 | <_> 92 | 93 | 0 -1 2721780 -768637184 -601873136 775882474 -14795161 860007339 94 | 1159612135 1935324398 -67434838 95 | 96 | -2.2254292666912079e-01 3.6101421713829041e-01 97 | <_> 98 | 99 | 0 -1 1671076 -967270537 -1557940680 -1305563177 1064938545 100 | -268444442 -863449123 501218884 -1714608146 101 | 102 | -1.9761918485164642e-01 3.7015640735626221e-01 103 | <_> 104 | 105 | 0 -1 79036 -660996024 1054310782 638698504 -2003507058 106 | -1329406960 -817491890 -1966989796 2078650569 107 | 108 | -4.6312439441680908e-01 1.5169039368629456e-01 109 | <_> 110 | 111 | 0 -1 2661207 -1241645544 1532884908 16482983 -2146608144 112 | -1176828431 -1035746875 831483189 -491344394 113 | 114 | -2.9809227585792542e-01 2.5282818078994751e-01 115 | <_> 116 | 117 | 0 -1 3306969 -157037320 -1059485506 -355562372 352953837 118 | 1829361830 -1314949513 -2104520563 -2006978724 119 | 120 | -2.2160808742046356e-01 3.3625227212905884e-01 121 | <_> 122 | 123 | 0 -1 468629 -413404937 1296781512 1771802975 -273474273 124 | -323960453 -677853017 1511709694 1341778080 125 | 126 | -3.7686330080032349e-01 2.1736514568328857e-01 127 | 128 | -------------------------------------------------------------------------------- /.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 101 | 102 | 103 | 104 | dbname 105 | randomGaussian2dl_26 106 | 100 107 | $PROJECT_DIR$/detection/ 108 | $PROJECT_DIR$/data/image 109 | numStages 110 | [4] 111 | 112 | 113 | file 114 | root_path 115 | [2] 116 | [3] 117 | 118 | 119 | 120 | 141 | 142 | 143 | 144 | 145 | true 146 | DEFINITION_ORDER 147 | 148 | 149 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 175 | 176 | 179 | 180 | 181 | 182 | 185 | 186 | 189 | 190 | 193 | 194 | 195 | 196 | 199 | 200 | 203 | 204 | 207 | 208 | 211 | 212 | 213 | 214 | 217 | 218 | 221 | 222 | 225 | 226 | 227 | 228 | 231 | 232 | 235 | 236 | 239 | 240 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 288 | 289 | 306 | 307 | 324 | 325 | 342 | 343 | 360 | 361 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 403 | 404 | 417 | 418 | 435 | 436 | 448 | 449 | project 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 484 | 485 | 504 | 505 | 526 | 527 | 549 | 550 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 594 | 595 | 596 | 597 | 1490847157483 598 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 631 | 632 | 634 | 635 | 636 | 637 | 638 | file://$PROJECT_DIR$/detection/producePostxt.py 639 | 16 640 | 641 | 642 | file://$PROJECT_DIR$/detection/train_cascade.py 643 | 91 644 | 646 | 647 | file://$PROJECT_DIR$/detection/train_cascade.py 648 | 62 649 | 651 | 652 | file://$PROJECT_DIR$/detection/producePostxt.py 653 | 54 654 | 656 | 657 | file://$PROJECT_DIR$/detection/producePostxt.py 658 | 50 659 | 661 | 662 | file://$PROJECT_DIR$/detection/train_cascade.py 663 | 100 664 | 666 | 667 | file://$PROJECT_DIR$/detection/producePostxt.py 668 | 52 669 | 671 | 672 | file://$PROJECT_DIR$/detection/train_cascade.py 673 | 84 674 | 676 | 677 | file://$PROJECT_DIR$/detection/nms.py 678 | 66 679 | 681 | 682 | file://$PROJECT_DIR$/detection/nms.py 683 | 93 684 | 686 | 687 | file://$PROJECT_DIR$/detection/objdetect.py 688 | 43 689 | 691 | 692 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | -------------------------------------------------------------------------------- /data/model/cascade.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | BOOST 5 | LBP 6 | 128 7 | 90 8 | 9 | GAB 10 | 9.9500000476837158e-01 11 | 5.0000000000000000e-01 12 | 9.4999999999999996e-01 13 | 1 14 | 100 15 | 16 | 256 17 | 1 18 | 15 19 | 20 | 21 | <_> 22 | 6 23 | -1.4431272745132446e+00 24 | 25 | <_> 26 | 27 | 0 -1 14 -137363506 -33559597 1376111494 2002213727 28 | -305401665 1408209595 1298137071 1946153983 29 | 30 | -6.8031120300292969e-01 4.7004294395446777e-01 31 | <_> 32 | 33 | 0 -1 193 -805634081 -1537 -787057 502661087 266919855 34 | -411905 -1049633 1610088447 35 | 36 | -5.0030064582824707e-01 4.8760640621185303e-01 37 | <_> 38 | 39 | 0 -1 148 -596164589 -73796737 -494004739 -11489 -27377664 40 | -11588897 -356856098 -252784641 41 | 42 | -5.0489288568496704e-01 4.8167842626571655e-01 43 | <_> 44 | 45 | 0 -1 53 -1935416414 -1345689632 -237247665 -2886448 46 | -35918885 1871677057 2070641663 -605554699 47 | 48 | -5.2462232112884521e-01 4.2182406783103943e-01 49 | <_> 50 | 51 | 0 -1 9 -621488658 -791228766 -2051455591 1280726020 52 | -1827710378 -770813393 1464601382 1602180199 53 | 54 | -5.5705660581588745e-01 3.5474479198455811e-01 55 | <_> 56 | 57 | 0 -1 172 1190461311 -1073884369 -102908653 221567747 58 | 1257699815 -88382477 -1052898 183762943 59 | 60 | -5.2202731370925903e-01 3.3614942431449890e-01 61 | 62 | <_> 63 | 7 64 | -1.2098675966262817e+00 65 | 66 | <_> 67 | 68 | 0 -1 24 -137625650 -212639453 323744174 -251138257 69 | -766531073 325006251 1155125195 1465883311 70 | 71 | -6.9039869308471680e-01 2.6776158809661865e-01 72 | <_> 73 | 74 | 0 -1 5 713206688 -1885148288 -794307628 -202389760 75 | -606112769 -1153187597 -593497477 -69212203 76 | 77 | -6.7114043235778809e-01 3.0477219820022583e-01 78 | <_> 79 | 80 | 0 -1 155 -46997248 -1593577139 -1589460794 690676171 81 | -2137997280 -1039548407 -1467289087 -1490290689 82 | 83 | -5.0339454412460327e-01 3.6862725019454956e-01 84 | <_> 85 | 86 | 0 -1 171 1070645231 -43033 1984942019 164666813 1306582671 87 | -1847001378 -6300147 267647407 88 | 89 | -5.3666716814041138e-01 3.5385552048683167e-01 90 | <_> 91 | 92 | 0 -1 143 -564278194 -671109025 -2077848990 1356715391 93 | -629477376 -1308589933 -889200514 -789317905 94 | 95 | -4.5275869965553284e-01 3.8935306668281555e-01 96 | <_> 97 | 98 | 0 -1 43 -11862066 -546581842 1870249358 -32717362 1159434716 99 | 21604953 -873477188 -539194412 100 | 101 | -4.9909380078315735e-01 3.6912557482719421e-01 102 | <_> 103 | 104 | 0 -1 192 -269090881 -2305569 -275306719 529595703 105 | -1897612293 -135398977 -67113010 267567039 106 | 107 | -4.4046744704246521e-01 3.8484367728233337e-01 108 | 109 | <_> 110 | 9 111 | -1.1269989013671875e+00 112 | 113 | <_> 114 | 115 | 0 -1 12 -69230042 -532993 545300640 1910627319 -204734993 116 | -241329734 1152128751 -237634561 117 | 118 | -6.2409824132919312e-01 2.4164426326751709e-01 119 | <_> 120 | 121 | 0 -1 189 -805961809 -76546561 -6425745 -806241321 1240529915 122 | -1057985 -3670173 1542586363 123 | 124 | -4.5240753889083862e-01 4.2520290613174438e-01 125 | <_> 126 | 127 | 0 -1 146 -59883497 -144836710 1686755149 1536678807 128 | -353398754 1787435691 -88413526 -254087425 129 | 130 | -4.5018905401229858e-01 3.8418895006179810e-01 131 | <_> 132 | 133 | 0 -1 17 -411053114 -16551522 285599693 1931949967 134 | -1656369477 -218255288 290399807 870036171 135 | 136 | -4.9687308073043823e-01 3.1973978877067566e-01 137 | <_> 138 | 139 | 0 -1 178 1207107583 -70517249 -1120583893 197721567 140 | 160485259 -59053062 -148918421 198328251 141 | 142 | -4.7911062836647034e-01 3.2857897877693176e-01 143 | <_> 144 | 145 | 0 -1 28 -1566055450 -965852446 -1517588446 2137522068 146 | -219421709 -1376987715 1128902755 -704649401 147 | 148 | -4.4380256533622742e-01 3.3845117688179016e-01 149 | <_> 150 | 151 | 0 -1 151 -1305216606 385921792 -1107887311 -279052320 152 | -1397395 656588784 -23339552 -101851175 153 | 154 | -3.4966492652893066e-01 4.0131226181983948e-01 155 | <_> 156 | 157 | 0 -1 36 -6330272 1511355598 -928586228 206594956 1414414404 158 | 443044726 13256783 -286101922 159 | 160 | -5.1629424095153809e-01 2.6675820350646973e-01 161 | <_> 162 | 163 | 0 -1 186 1341521271 -285223425 -36306984 257548101 197156859 164 | -1078263974 -536872162 267632511 165 | 166 | -4.4815850257873535e-01 3.1016173958778381e-01 167 | 168 | <_> 169 | 10 170 | -1.5669338703155518e+00 171 | 172 | <_> 173 | 174 | 0 -1 22 -812912661 -271670334 -440140816 -35914812 175 | -444858373 -337655401 -33564681 -4205577 176 | 177 | -5.3180831670761108e-01 2.8578004240989685e-01 178 | <_> 179 | 180 | 0 -1 188 -808255525 -264197 -170690741 223412223 197328831 181 | -524817 -1310917 267647987 182 | 183 | -4.7518107295036316e-01 3.1859636306762695e-01 184 | <_> 185 | 186 | 0 -1 118 1018833920 2147150045 -191300584 -54600983 187 | 1827041280 -13899617 751206030 -1602554113 188 | 189 | -6.4279401302337646e-01 2.4397149682044983e-01 190 | <_> 191 | 192 | 0 -1 86 889696492 864924665 291088396 834116155 -1173583890 193 | 587639147 -1471174266 857715855 194 | 195 | -6.2343305349349976e-01 2.5955408811569214e-01 196 | <_> 197 | 198 | 0 -1 174 -957286657 -1275475977 -665104443 231856981 199 | 301329019 -145237033 -100928177 1207295967 200 | 201 | -4.3994808197021484e-01 3.2169348001480103e-01 202 | <_> 203 | 204 | 0 -1 33 -14691793 1484440454 303752704 -902151630 1731876386 205 | 1651384595 -14484922 -473704665 206 | 207 | -3.9100563526153564e-01 3.7136620283126831e-01 208 | <_> 209 | 210 | 0 -1 95 1933386479 1600452575 1440690830 -1612907784 211 | 1202622617 1930176926 1661775766 -9913912 212 | 213 | -3.9102047681808472e-01 3.0988332629203796e-01 214 | <_> 215 | 216 | 0 -1 63 -380109849 -4393505 2143125001 1741092093 217 | -1261764609 -100849171 -153171201 1777719279 218 | 219 | -3.1870624423027039e-01 3.8334307074546814e-01 220 | <_> 221 | 222 | 0 -1 161 -830499838 -548753105 -896037366 12838663 223 | 1801064450 143499289 -1568497074 -150995749 224 | 225 | -3.9560940861701965e-01 3.2942935824394226e-01 226 | <_> 227 | 228 | 0 -1 78 -1974850528 -1574555118 -1895119404 402100624 229 | -70395406 -1080389141 -1348813316 -582134411 230 | 231 | -5.5045163631439209e-01 2.0038785040378571e-01 232 | 233 | <_> 234 | 10 235 | -1.7335377931594849e+00 236 | 237 | <_> 238 | 239 | 0 -1 51 -136314913 -134153 -1837057 -3333 -4718593 240 | -589439029 -134217729 2145385471 241 | 242 | -5.8354979753494263e-01 3.2054635882377625e-01 243 | <_> 244 | 245 | 0 -1 75 -168036694 -208449033 -1802401304 -207749671 246 | -259460164 -190717269 -785818883 1975386047 247 | 248 | -5.4924690723419189e-01 3.0849689245223999e-01 249 | <_> 250 | 251 | 0 -1 18 -823731068 -931865311 -725400408 1549297728 252 | -570736481 -15939441 -606125089 1597464439 253 | 254 | -5.9341806173324585e-01 2.6302301883697510e-01 255 | <_> 256 | 257 | 0 -1 153 1480213504 -14780180 -803268138 1582070862 258 | -208782312 -611657086 -1945567424 -893716577 259 | 260 | -6.1474728584289551e-01 2.3925973474979401e-01 261 | <_> 262 | 263 | 0 -1 21 -76427025 -705203949 -1823745685 1809011277 264 | -118622324 898337498 -1079297621 1602211819 265 | 266 | -4.3725883960723877e-01 3.1791627407073975e-01 267 | <_> 268 | 269 | 0 -1 83 1474033600 1430639435 1104014976 1267717388 270 | -512767138 1997126355 2059395016 2079326092 271 | 272 | -5.2264249324798584e-01 2.6250457763671875e-01 273 | <_> 274 | 275 | 0 -1 30 -5257309 -450401529 -1124663485 2146021360 -22676501 276 | -1235222561 1150809091 -673187913 277 | 278 | -3.3301791548728943e-01 4.3883842229843140e-01 279 | <_> 280 | 281 | 0 -1 40 -735068096 -606452970 -568599992 352124367 -90226664 282 | -68955958 992954888 -1612778561 283 | 284 | -3.9259910583496094e-01 3.4787562489509583e-01 285 | <_> 286 | 287 | 0 -1 190 1408499677 -608699942 2142744147 259391455 288 | -1483698249 -19203350 -171984303 184023882 289 | 290 | -4.7743609547615051e-01 2.7286788821220398e-01 291 | <_> 292 | 293 | 0 -1 141 -1290879064 -1291653080 -845952222 -1222916173 294 | 102675964 562664195 155319268 -1658204255 295 | 296 | -5.1532548666000366e-01 2.7348074316978455e-01 297 | 298 | <_> 299 | 11 300 | -1.4208899736404419e+00 301 | 302 | <_> 303 | 304 | 0 -1 15 -9175041 -170002177 -173015331 -1215841 -77856785 305 | -68193077 -269505025 1879045119 306 | 307 | -5.8139532804489136e-01 1.9888663291931152e-01 308 | <_> 309 | 310 | 0 -1 57 -269485142 -373096918 -873860896 1740864362 311 | -1813532677 -21023137 1431531927 -675809289 312 | 313 | -4.6527159214019775e-01 3.1996092200279236e-01 314 | <_> 315 | 316 | 0 -1 48 -1085900338 -586370102 2124283386 -1246386 317 | -1678512658 1179556108 -623904274 2147087210 318 | 319 | -4.5869243144989014e-01 2.8388997912406921e-01 320 | <_> 321 | 322 | 0 -1 131 -62951856 -581086081 1313340858 1953234399 323 | -401701878 -68232260 -354501974 -1434452081 324 | 325 | -4.3222388625144958e-01 2.8859448432922363e-01 326 | <_> 327 | 328 | 0 -1 52 -302514177 -33566316 -204908133 -140914485 329 | 1070591739 -15745025 -637796417 1237162751 330 | 331 | -3.2840538024902344e-01 3.5959059000015259e-01 332 | <_> 333 | 334 | 0 -1 99 -65274636 1565618273 276983863 -1725091641 335 | -865631153 -608447523 424395950 787423318 336 | 337 | -5.1900142431259155e-01 2.6408216357231140e-01 338 | <_> 339 | 340 | 0 -1 2 -2002745008 -1575376510 -2147237230 2083770704 341 | -544222685 -385126845 50549515 -220774397 342 | 343 | -5.2852547168731689e-01 2.1428774297237396e-01 344 | <_> 345 | 346 | 0 -1 162 -545265129 116049647 210708590 1077407467 -71406046 347 | -1787333002 -252130054 -999293705 348 | 349 | -3.1097722053527832e-01 3.7170669436454773e-01 350 | <_> 351 | 352 | 0 -1 192 -875241601 -548281601 -405377611 196136902 353 | -1947669638 -847511553 -541131152 200342807 354 | 355 | -5.3021776676177979e-01 2.2613856196403503e-01 356 | <_> 357 | 358 | 0 -1 98 -940858456 606917441 -83690536 -1148521601 359 | -540678731 -1621390751 533646336 -1230048519 360 | 361 | -4.6793484687805176e-01 2.3651477694511414e-01 362 | <_> 363 | 364 | 0 -1 10 -285216778 -227358541 -1395080324 2010438992 365 | -120069633 -18503660 -1398990087 2075655541 366 | 367 | -3.6179101467132568e-01 2.9109182953834534e-01 368 | 369 | <_> 370 | 12 371 | -1.3258671760559082e+00 372 | 373 | <_> 374 | 375 | 0 -1 1 -102761473 -2622213 -586226987 -175117795 -19931953 376 | -102900573 -6341665 2147483519 377 | 378 | -6.0085785388946533e-01 9.9705509841442108e-02 379 | <_> 380 | 381 | 0 -1 25 -827326749 -295441174 -203563390 -546310718 382 | -274727961 -19925785 2008938471 -203958345 383 | 384 | -4.3862017989158630e-01 2.7953514456748962e-01 385 | <_> 386 | 387 | 0 -1 147 -989678048 2047593185 -536153967 979364799 388 | -2011121632 -68959570 -1364934991 1027599871 389 | 390 | -5.4623425006866455e-01 2.1587164700031281e-01 391 | <_> 392 | 393 | 0 -1 13 -1258604640 -1147423797 551694369 -170446729 394 | -1608783 -1450923544 -1332022785 1432219614 395 | 396 | -4.5928683876991272e-01 2.4170990288257599e-01 397 | <_> 398 | 399 | 0 -1 191 -617545745 -13369362 1536940911 99868155 -961536583 400 | -1397572673 -2245745 264400571 401 | 402 | -4.4457331299781799e-01 2.7112343907356262e-01 403 | <_> 404 | 405 | 0 -1 37 -102799778 -1195515244 43178052 -603269026 406 | -1073086400 1575575890 1385040490 -236001513 407 | 408 | -4.1125467419624329e-01 2.7592518925666809e-01 409 | <_> 410 | 411 | 0 -1 132 -292880768 -1358921048 547656369 -2084181056 412 | 1677514665 -1894780150 162166832 -908079135 413 | 414 | -4.2582458257675171e-01 2.4507157504558563e-01 415 | <_> 416 | 417 | 0 -1 173 431007723 -824197633 -547651837 1509059889 418 | 463010746 -1074533202 -70586438 263302043 419 | 420 | -4.7433590888977051e-01 2.1511457860469818e-01 421 | <_> 422 | 423 | 0 -1 35 1441743847 -685310507 1570363741 -1045248 1155353807 424 | -861385509 -644273940 1336298151 425 | 426 | -4.1037479043006897e-01 2.6458358764648438e-01 427 | <_> 428 | 429 | 0 -1 90 1733491118 1425484947 -2096491526 -83265654 430 | -1275085187 1934409921 -553935162 -2020768881 431 | 432 | -3.2530993223190308e-01 3.2269874215126038e-01 433 | <_> 434 | 435 | 0 -1 160 -668332962 -690044342 -402065394 -742328710 436 | 1926121802 281976843 -263288662 2082393415 437 | 438 | -4.6887257695198059e-01 2.1346296370029449e-01 439 | <_> 440 | 441 | 0 -1 137 -132087616 553660464 1112740418 1352664192 442 | -1002387192 1146096448 42242307 -2129780374 443 | 444 | -4.2727327346801758e-01 2.3190428316593170e-01 445 | 446 | <_> 447 | 13 448 | -1.4888938665390015e+00 449 | 450 | <_> 451 | 452 | 0 -1 47 -1 -2097697 1427111935 -572523521 -69861649 453 | -610018069 -34865681 2147478431 454 | 455 | -5.4434251785278320e-01 1.9716311991214752e-01 456 | <_> 457 | 458 | 0 -1 149 -93332965 -9569185 -92107402 -1325446833 -89993716 459 | 2112850527 -423696226 -226496774 460 | 461 | -3.7605828046798706e-01 3.1678086519241333e-01 462 | <_> 463 | 464 | 0 -1 7 -1431321072 -1956087328 -909973223 159041248 465 | 1939856299 -359841660 -204546161 -143166091 466 | 467 | -5.3246909379959106e-01 1.9799698889255524e-01 468 | <_> 469 | 470 | 0 -1 182 -806223873 -537660449 1536597255 420536135 471 | -2022070373 1040170685 -6344949 533974923 472 | 473 | -3.7055054306983948e-01 3.0032548308372498e-01 474 | <_> 475 | 476 | 0 -1 39 -145817914 -687605372 -13899192 -74517138 -288687921 477 | 1464658502 -623127604 2075065285 478 | 479 | -4.8952755331993103e-01 2.2786329686641693e-01 480 | <_> 481 | 482 | 0 -1 23 -136512430 -787167999 1074938284 493687560 276146851 483 | 589013515 -865656437 1239239771 484 | 485 | -5.3250396251678467e-01 1.9003206491470337e-01 486 | <_> 487 | 488 | 0 -1 31 -145759958 -821049914 -1078337216 -33608032 489 | 1423538085 -950140963 -162011277 -136845913 490 | 491 | -3.0383500456809998e-01 3.1146323680877686e-01 492 | <_> 493 | 494 | 0 -1 193 1139866877 2147483579 -721073 301259775 45154299 495 | -4327429 -269533409 229752671 496 | 497 | -4.5057049393653870e-01 2.0139770209789276e-01 498 | <_> 499 | 500 | 0 -1 42 -20984736 -4949545 1448263706 920189577 1244448832 501 | 1875771437 -1057342948 -538430483 502 | 503 | -4.0678599476814270e-01 2.2909586131572723e-01 504 | <_> 505 | 506 | 0 -1 164 -1702174440 62965896 -1065320304 -1457761656 507 | -326805376 -633110391 -2106828700 -619713015 508 | 509 | -4.4796335697174072e-01 2.1863941848278046e-01 510 | <_> 511 | 512 | 0 -1 101 -234889820 -666225189 -1399322265 1964819540 513 | -1249840208 751140889 -1867275363 1896469407 514 | 515 | -3.6860093474388123e-01 2.7174666523933411e-01 516 | <_> 517 | 518 | 0 -1 129 -1020590966 -642048879 1325310994 1395630707 519 | -547047934 69222928 1212995731 -80798150 520 | 521 | -2.7938663959503174e-01 3.5098463296890259e-01 522 | <_> 523 | 524 | 0 -1 45 -1026242332 -1153832753 1292814068 -27099373 525 | 948969215 1050933529 1586010798 2130502223 526 | 527 | -4.3503525853157043e-01 2.4240022897720337e-01 528 | 529 | <_> 530 | 16 531 | -1.3324991464614868e+00 532 | 533 | <_> 534 | 535 | 0 -1 74 -393217 -35925097 -538715729 -33569889 -549716757 536 | -75636018 -124911618 2146434991 537 | 538 | -5.8858078718185425e-01 3.7313431967049837e-03 539 | <_> 540 | 541 | 0 -1 94 -1073742028 -706907907 835740020 -48246723 542 | -190385775 -57421159 1951512509 -1392783361 543 | 544 | -3.5835200548171997e-01 3.1568315625190735e-01 545 | <_> 546 | 547 | 0 -1 58 -8389221 1873804194 817311616 -68703764 -8388633 548 | -543302116 1869064178 -2049 549 | 550 | -2.2720864415168762e-01 4.3911415338516235e-01 551 | <_> 552 | 553 | 0 -1 185 -1744830509 -604192813 -84296865 201055063 554 | 2079373168 -638362697 804831039 198426495 555 | 556 | -4.2267248034477234e-01 2.1650552749633789e-01 557 | <_> 558 | 559 | 0 -1 166 -138944486 -587763893 1081798272 -253631506 560 | 1755794510 -1603437137 -1999058297 -187960453 561 | 562 | -2.5246855616569519e-01 3.9071065187454224e-01 563 | <_> 564 | 565 | 0 -1 105 -649057790 2024933448 1109660320 -247848383 566 | -478953408 1277251603 -2074898204 -1022416161 567 | 568 | -2.9787963628768921e-01 2.8947582840919495e-01 569 | <_> 570 | 571 | 0 -1 38 -429929944 2008538493 1510400223 -1673078113 572 | -938472712 998880138 -128423059 -425787393 573 | 574 | -3.0643260478973389e-01 2.8518235683441162e-01 575 | <_> 576 | 577 | 0 -1 3 1953723543 1602206737 -1717902116 1407573961 578 | -629529669 -1201547070 2091740127 2137253707 579 | 580 | -3.3177146315574646e-01 3.0142271518707275e-01 581 | <_> 582 | 583 | 0 -1 159 1715603030 -307897838 -784154361 -1701927145 584 | 1358667850 -70278483 1657701009 -1469059081 585 | 586 | -3.8169708847999573e-01 2.4539253115653992e-01 587 | <_> 588 | 589 | 0 -1 112 -39942648 -300109490 -1910906764 -679925452 590 | -686804130 287071328 -1001427712 -1871773632 591 | 592 | -3.1971287727355957e-01 2.7512091398239136e-01 593 | <_> 594 | 595 | 0 -1 20 -307790410 -891101054 1175246708 2138013828 596 | 2141846409 -84492237 1950593857 1609561830 597 | 598 | -4.1018813848495483e-01 2.1113251149654388e-01 599 | <_> 600 | 601 | 0 -1 157 -549231094 -221930523 1363937554 -179420886 602 | -417816753 965905362 -610353259 2139749693 603 | 604 | -3.7948682904243469e-01 2.2222946584224701e-01 605 | <_> 606 | 607 | 0 -1 91 2145507018 -1083252630 450444878 -500289257 608 | -24117509 -505122490 -337647657 -745789363 609 | 610 | -3.2620692253112793e-01 2.8101593255996704e-01 611 | <_> 612 | 613 | 0 -1 171 1976081909 1106346143 -68292734 32542665 227970969 614 | -1078412309 -1492582646 130060267 615 | 616 | -5.4860514402389526e-01 1.7666733264923096e-01 617 | <_> 618 | 619 | 0 -1 120 -220417376 -909344589 580790288 -532701084 620 | -1842223962 -434560768 1463875250 -209022580 621 | 622 | -2.8460818529129028e-01 3.2369500398635864e-01 623 | <_> 624 | 625 | 0 -1 136 -1284539653 289143843 -1275219141 -1653870081 626 | 1560016127 -1783104385 -831006741 -1060114457 627 | 628 | -2.1446114778518677e-01 4.6036568284034729e-01 629 | 630 | <_> 631 | 17 632 | -1.4080969095230103e+00 633 | 634 | <_> 635 | 636 | 0 -1 134 -1669476821 -8702406 -1974988202 473841909 637 | -23240692 -17250145 -20252020 -26224161 638 | 639 | -6.3318186998367310e-01 -7.8064709901809692e-02 640 | <_> 641 | 642 | 0 -1 65 -137764865 -2647102 -716310202 -1082262097 -51140609 643 | -1511262034 -135599329 2013264895 644 | 645 | -3.7738487124443054e-01 2.3634789884090424e-01 646 | <_> 647 | 648 | 0 -1 56 -1438085200 -293053760 -2029457183 -75239596 649 | -875364944 -68984444 -1148683826 -807403531 650 | 651 | -4.2849510908126831e-01 2.0871226489543915e-01 652 | <_> 653 | 654 | 0 -1 84 -251941944 -670641631 419486832 -140550913 655 | -821052725 1158529035 -338863137 871992751 656 | 657 | -3.4297850728034973e-01 2.6339864730834961e-01 658 | <_> 659 | 660 | 0 -1 60 -322517661 -1658913929 -572871171 -541137400 661 | 1123305676 -838022726 -289912610 -805680588 662 | 663 | -2.8967392444610596e-01 3.0354577302932739e-01 664 | <_> 665 | 666 | 0 -1 186 266919807 -2229361 -674337841 30596831 251182014 667 | -1088946689 -68482534 133382139 668 | 669 | -4.6696320176124573e-01 1.7979326844215393e-01 670 | <_> 671 | 672 | 0 -1 41 -604582776 2144210190 -393092544 620654746 673 | -1666463736 2023063592 -37094904 -363432966 674 | 675 | -4.2092955112457275e-01 2.1567739546298981e-01 676 | <_> 677 | 678 | 0 -1 124 -1962867584 -2075268566 190584368 -1826324424 679 | -2098088444 1314836 2126276 -1861279096 680 | 681 | -3.9697623252868652e-01 2.0914869010448456e-01 682 | <_> 683 | 684 | 0 -1 113 -408226083 -1760443380 1493188893 1025006377 685 | -582419747 687882374 -1404179577 1361837927 686 | 687 | -3.0829593539237976e-01 2.8200924396514893e-01 688 | <_> 689 | 690 | 0 -1 177 199278545 1607057219 525819294 1164981023 466651162 691 | -1946358278 -536892898 266457087 692 | 693 | -4.7928825020790100e-01 1.8315021693706512e-01 694 | <_> 695 | 696 | 0 -1 170 -533732857 -1288951244 1915442661 -222691350 697 | -54591782 1327415180 1130336156 -134219115 698 | 699 | -2.1007771790027618e-01 4.4798269867897034e-01 700 | <_> 701 | 702 | 0 -1 150 -88418238 364595298 812684336 525287528 -452980224 703 | -2127926752 1404229035 -769940597 704 | 705 | -2.7826711535453796e-01 3.1689760088920593e-01 706 | <_> 707 | 708 | 0 -1 26 -1540472065 399741337 1385423634 561336783 709 | 1141949128 -132537717 -1056769 -151939709 710 | 711 | -2.7036780118942261e-01 3.0115363001823425e-01 712 | <_> 713 | 714 | 0 -1 126 667798254 -904142769 949348034 -1382192289 715 | 664516095 -712371480 -1945541560 -62925421 716 | 717 | -2.8212517499923706e-01 2.9888752102851868e-01 718 | <_> 719 | 720 | 0 -1 71 -137429907 -459614156 -1793775993 -346299711 721 | -91021089 -1752343986 -118031572 1901389803 722 | 723 | -4.2887321114540100e-01 2.1851524710655212e-01 724 | <_> 725 | 726 | 0 -1 102 -862403456 152698888 1619114568 408180481 727 | -1851522432 119787052 37880402 -2113715114 728 | 729 | -4.0104955434799194e-01 2.1542258560657501e-01 730 | <_> 731 | 732 | 0 -1 32 -539796229 -1414793729 1485132580 2016934874 733 | -839227704 -1040170042 -582424866 -932000217 734 | 735 | -2.8433001041412354e-01 2.9530119895935059e-01 736 | 737 | <_> 738 | 16 739 | -1.3884822130203247e+00 740 | 741 | <_> 742 | 743 | 0 -1 11 -607271200 1935147249 -1723852702 -671789047 744 | -226437413 -207052660 -1818525250 -204617281 745 | 746 | -6.2747991085052490e-01 -7.0191428065299988e-02 747 | <_> 748 | 749 | 0 -1 4 -1945920512 -544230000 -251604424 -287055600 750 | -1026962981 -1164328941 1225190203 -143163609 751 | 752 | -3.9827862381935120e-01 1.8069170415401459e-01 753 | <_> 754 | 755 | 0 -1 50 -182718773 -621733223 1098939213 2102245647 756 | -393527569 -1977020318 1394011701 804257421 757 | 758 | -4.1736376285552979e-01 2.0673881471157074e-01 759 | <_> 760 | 761 | 0 -1 115 -70794208 -480196478 -868216574 -1383552294 762 | -201622813 1943900867 -527959643 -39978085 763 | 764 | -3.3550849556922913e-01 2.5813558697700500e-01 765 | <_> 766 | 767 | 0 -1 77 171593216 -83717440 176478704 -1312263552 730040826 768 | -17055653 -507910212 -572566147 769 | 770 | -4.1626146435737610e-01 2.1148639917373657e-01 771 | <_> 772 | 773 | 0 -1 79 1171227084 -585136862 1529977524 -574739456 774 | 1405341017 1492666635 -1701095013 1493846057 775 | 776 | -4.0453308820724487e-01 2.1123914420604706e-01 777 | <_> 778 | 779 | 0 -1 67 -57542096 804057084 -10944646 -684097944 -18490375 780 | -579652696 -558678086 1610349835 781 | 782 | -2.4545501172542572e-01 3.5483735799789429e-01 783 | <_> 784 | 785 | 0 -1 172 468759447 -797181081 -1622009524 74833829 786 | 1536596567 -1799636819 -68604902 1274227647 787 | 788 | -4.7374603152275085e-01 1.6511726379394531e-01 789 | <_> 790 | 791 | 0 -1 19 -701312770 1157416084 -467746658 250368205 -15318772 792 | -762361185 104547119 1567737299 793 | 794 | -4.5468455553054810e-01 1.7584757506847382e-01 795 | <_> 796 | 797 | 0 -1 169 -1567905630 -2146958674 -758178175 1177918652 798 | 372169968 -1737964092 1029626179 -793785637 799 | 800 | -2.7110403776168823e-01 3.1943660974502563e-01 801 | <_> 802 | 803 | 0 -1 108 -1259708912 417304822 1623466508 1422154712 804 | -800694204 -12412391 -1262425560 1042545598 805 | 806 | -4.8283368349075317e-01 1.7239548265933990e-01 807 | <_> 808 | 809 | 0 -1 68 -554763881 -67930749 1959123278 -278275301 810 | 1551993480 1820346860 1387260927 1058403707 811 | 812 | -4.1570019721984863e-01 1.7588789761066437e-01 813 | <_> 814 | 815 | 0 -1 154 -47515518 -1744056278 -877695359 -1026928146 816 | -608198966 111081312 965959060 -2133076085 817 | 818 | -2.8271767497062683e-01 2.8630712628364563e-01 819 | <_> 820 | 821 | 0 -1 89 1445951437 1998626789 -1892683777 1325788987 822 | -543817857 -10879185 515419819 -1151213747 823 | 824 | -2.1462906897068024e-01 3.8625234365463257e-01 825 | <_> 826 | 827 | 0 -1 61 -2075472832 2109366869 -1106919024 -1403223460 828 | -578545592 -930031487 -789264516 1252810196 829 | 830 | -5.7111966609954834e-01 1.3209055364131927e-01 831 | <_> 832 | 833 | 0 -1 123 -187408278 -521114968 1120202812 -204939210 834 | 2130544812 1356990444 264828618 -1500539702 835 | 836 | -2.7336806058883667e-01 3.1073382496833801e-01 837 | 838 | <_> 839 | 18 840 | -1.3655668497085571e+00 841 | 842 | <_> 843 | 844 | 0 -1 49 -10765377 -164354 -1081618849 -44051471 -917930001 845 | -1615215957 -1473258241 2080358395 846 | 847 | -5.3211462497711182e-01 4.1439477354288101e-03 848 | <_> 849 | 850 | 0 -1 27 -1926517070 -479922014 -2129240640 -219816974 851 | 1136565202 899271601 1199530275 -134224969 852 | 853 | -4.2864513397216797e-01 2.1311216056346893e-01 854 | <_> 855 | 856 | 0 -1 80 -287375406 -1831729776 -1722786928 399557074 857 | -643512629 -320874361 -922063904 -621870283 858 | 859 | -2.8680363297462463e-01 2.7817332744598389e-01 860 | <_> 861 | 862 | 0 -1 0 2128280979 -140648413 545506937 -270852663 -372723793 863 | 975374763 -1964442627 1872727899 864 | 865 | -3.7747001647949219e-01 2.0030593872070312e-01 866 | <_> 867 | 868 | 0 -1 130 -1501532544 -150941904 -1793965677 -1224573390 869 | 931361729 -1624014461 558127577 -1481245711 870 | 871 | -3.7489697337150574e-01 2.4774743616580963e-01 872 | <_> 873 | 874 | 0 -1 72 -102841270 -118060954 -361855475 1626971176 875 | -2023945472 925773353 -1543051283 -212342937 876 | 877 | -2.7971762418746948e-01 2.9183325171470642e-01 878 | <_> 879 | 880 | 0 -1 138 -358942592 -488935224 -1056366000 -803733242 881 | -496718646 302556193 339792266 -783613765 882 | 883 | -3.0917242169380188e-01 2.5806832313537598e-01 884 | <_> 885 | 886 | 0 -1 109 1928700326 407234045 1895794347 -1768514174 887 | -1461804561 306465779 649743150 -1241766106 888 | 889 | -2.9108640551567078e-01 2.7332317829132080e-01 890 | <_> 891 | 892 | 0 -1 184 265338827 -671089697 -35741924 483512857 165739435 893 | -1347904578 -473433344 183909241 894 | 895 | -4.8851445317268372e-01 1.6040863096714020e-01 896 | <_> 897 | 898 | 0 -1 6 145001472 189862400 -396996517 611520528 -1809600054 899 | -620158813 -742139337 1400340343 900 | 901 | -6.0025173425674438e-01 1.3193045556545258e-01 902 | <_> 903 | 904 | 0 -1 100 -793189588 413286356 -1285132892 -1314930784 905 | -285368652 -273369627 1146477996 -1522125730 906 | 907 | -2.4854384362697601e-01 3.0684912204742432e-01 908 | <_> 909 | 910 | 0 -1 142 -939367936 -225694336 1241760819 -1618427264 911 | 848857983 818937877 1482292724 2107422973 912 | 913 | -4.0344029664993286e-01 1.8463221192359924e-01 914 | <_> 915 | 916 | 0 -1 111 -502755168 1393078981 317298710 1905864415 917 | 915578936 358122105 -1220436734 -214256662 918 | 919 | -2.5246548652648926e-01 2.9850533604621887e-01 920 | <_> 921 | 922 | 0 -1 66 -131010640 -349201388 -610897473 -482159490 923 | -198355250 -14761673 -154273384 2141183963 924 | 925 | -2.4565073847770691e-01 3.2475093007087708e-01 926 | <_> 927 | 928 | 0 -1 156 -337687032 1983234287 743164116 1611223693 929 | -884563377 -1610370018 1242802604 -252974153 930 | 931 | -3.4235614538192749e-01 2.3409722745418549e-01 932 | <_> 933 | 934 | 0 -1 175 51572347 1476319199 -1356912677 113279761 114464707 935 | -289794001 -103040247 265513603 936 | 937 | -5.1250463724136353e-01 1.5956047177314758e-01 938 | <_> 939 | 940 | 0 -1 133 -684850496 -898654080 327305835 -712011584 941 | -17824672 1160140998 254337943 -1228252022 942 | 943 | -3.1201598048210144e-01 2.5532919168472290e-01 944 | <_> 945 | 946 | 0 -1 69 -1906104544 -496793344 1162317824 688191664 947 | 1635920854 -507866480 -351354124 -1114905962 948 | 949 | -4.0636324882507324e-01 1.9466717541217804e-01 950 | 951 | <_> 952 | 18 953 | -1.5336408615112305e+00 954 | 955 | <_> 956 | 957 | 0 -1 70 -336863798 -553209586 -620619738 -135324657 958 | -892668978 1293590973 -873083953 -134499409 959 | 960 | 6.1397886276245117e-01 -7.1240104734897614e-02 961 | <_> 962 | 963 | 0 -1 152 -1875508144 2052317256 -1873107241 -141331829 964 | -1114988824 -341237334 -1609694102 -251724801 965 | 966 | -4.8528671264648438e-01 1.2510317564010620e-01 967 | <_> 968 | 969 | 0 -1 181 449902047 -538251777 -929828851 32821026 48525099 970 | -1344866898 -556007637 150437323 971 | 972 | -4.3188530206680298e-01 1.8361768126487732e-01 973 | <_> 974 | 975 | 0 -1 29 2005703000 -985382642 627490984 1406475789 976 | -938817682 1212187733 135314349 151769902 977 | 978 | -4.5239022374153137e-01 1.6984583437442780e-01 979 | <_> 980 | 981 | 0 -1 73 1827387327 414020200 -17654361 -1345455884 982 | -1068827669 -620606885 -1148257446 1865143940 983 | 984 | -3.8339811563491821e-01 1.8901248276233673e-01 985 | <_> 986 | 987 | 0 -1 59 701233354 -383065810 -90527648 -173474936 445556619 988 | 1210495378 376960674 -676862013 989 | 990 | -2.8135514259338379e-01 2.7980542182922363e-01 991 | <_> 992 | 993 | 0 -1 140 -717069790 -541021944 84023824 -8613832 -1450128403 994 | -1786726247 -88167961 798528253 995 | 996 | -3.1612202525138855e-01 2.2330114245414734e-01 997 | <_> 998 | 999 | 0 -1 87 -85278558 -108947392 1333559300 1896178512 1000 | -1205477184 1041511424 1440064440 -2108013133 1001 | 1002 | -2.6831141114234924e-01 2.7870228886604309e-01 1003 | <_> 1004 | 1005 | 0 -1 44 -946746358 -489192681 -536242604 1821266831 1006 | 1470349312 1489742619 -1979242231 -1647345043 1007 | 1008 | -4.0771389007568359e-01 1.8097732961177826e-01 1009 | <_> 1010 | 1011 | 0 -1 158 -765539111 1427563215 1351062558 -917258090 1012 | -729328356 -669368162 1631635620 2147471569 1013 | 1014 | -2.7470156550407410e-01 2.8546696901321411e-01 1015 | <_> 1016 | 1017 | 0 -1 114 -2056568131 -1321599113 -17514690 -42540430 1018 | -1518995979 1207005182 -1932193333 -115133417 1019 | 1020 | -2.4321371316909790e-01 3.2071539759635925e-01 1021 | <_> 1022 | 1023 | 0 -1 92 -612797953 2076095099 -332136981 1639613662 1024 | -1880693841 -1418533377 -1497043725 -556085763 1025 | 1026 | -1.9510571658611298e-01 4.1279569268226624e-01 1027 | <_> 1028 | 1029 | 0 -1 107 -783226784 -136002408 -1791264528 -785657383 1030 | -1088182184 554708626 -1950633048 -612756534 1031 | 1032 | -2.1138350665569305e-01 3.3584797382354736e-01 1033 | <_> 1034 | 1035 | 0 -1 192 1130405741 -673974529 2138433837 227861198 1036 | 1270147631 1056242919 -119734482 198216774 1037 | 1038 | -5.5799555778503418e-01 1.2907704710960388e-01 1039 | <_> 1040 | 1041 | 0 -1 165 1915464262 1352471654 1686091780 310146764 1042 | -1730509050 -735590260 -1198297597 -82058041 1043 | 1044 | -3.0195322632789612e-01 2.6296561956405640e-01 1045 | <_> 1046 | 1047 | 0 -1 125 -374789376 1545947638 1374994306 2136319426 1048 | 841798819 153226637 -240544398 -67730285 1049 | 1050 | -2.2869551181793213e-01 3.1952711939811707e-01 1051 | <_> 1052 | 1053 | 0 -1 55 -38573579 -343433615 79843369 1309924163 -784612355 1054 | 1608121114 -831637350 1097198569 1055 | 1056 | -4.4388818740844727e-01 1.5987017750740051e-01 1057 | <_> 1058 | 1059 | 0 -1 122 -97201612 -1813221762 -311021944 468632958 1060 | 477110936 -168338444 -959519266 -1296613730 1061 | 1062 | -2.1842981874942780e-01 3.6191204190254211e-01 1063 | 1064 | <_> 1065 | 18 1066 | -1.4067405462265015e+00 1067 | 1068 | <_> 1069 | 1070 | 0 -1 70 -9437750 -9522930 -1690166236 -538077177 -1886736178 1071 | 1293871289 -880686129 -136333649 1072 | 1073 | -6.3485854864120483e-01 -1.1760808527469635e-02 1074 | <_> 1075 | 1076 | 0 -1 127 -1434009522 -1197363077 -637479924 -690699690 1077 | 1247443016 -190262552 1355393738 -101193089 1078 | 1079 | -3.3779525756835938e-01 1.7966012656688690e-01 1080 | <_> 1081 | 1082 | 0 -1 176 265334525 -78546441 -1441195665 160465343 1083 | -1895777601 -269413 -271130853 66068094 1084 | 1085 | -4.8599120974540710e-01 1.4508390426635742e-01 1086 | <_> 1087 | 1088 | 0 -1 168 201327616 1342276363 -1073725167 67322241 8947725 1089 | -2147385344 -1610440506 -1565529483 1090 | 1091 | -4.8167204856872559e-01 1.8161998689174652e-01 1092 | <_> 1093 | 1094 | 0 -1 110 -234882388 -1647734577 -1878761168 1025025312 1095 | -1725714204 80578574 -301872728 832933570 1096 | 1097 | -3.1661325693130493e-01 2.4114367365837097e-01 1098 | <_> 1099 | 1100 | 0 -1 135 -1356283392 -117816808 1351838032 -735370624 1101 | -2105516024 877986509 -2114481969 -1497691361 1102 | 1103 | -2.6469996571540833e-01 2.7581912279129028e-01 1104 | <_> 1105 | 1106 | 0 -1 187 223407055 -140547911 -954090119 265344435 243731807 1107 | 2143280894 -288363912 1877737434 1108 | 1109 | -3.7576839327812195e-01 1.8540333211421967e-01 1110 | <_> 1111 | 1112 | 0 -1 121 -750761814 -570408374 -1656748958 -771192190 1113 | -1283244289 1431431367 -493177375 -1191224357 1114 | 1115 | -3.3389946818351746e-01 2.4287375807762146e-01 1116 | <_> 1117 | 1118 | 0 -1 85 -1562621378 136057425 1779660869 399971904 182577413 1119 | -272332009 2099458311 14994900 1120 | 1121 | -4.3114915490150452e-01 1.7829462885856628e-01 1122 | <_> 1123 | 1124 | 0 -1 16 -2030148054 -2136947630 -536598492 1652867536 1125 | -1820295313 -486372848 -787444758 1912862861 1126 | 1127 | -6.0113841295242310e-01 1.0681860148906708e-01 1128 | <_> 1129 | 1130 | 0 -1 34 -671396777 1474604079 -214721050 -1848705797 1131 | 1326913484 113842172 -1341985851 -246223541 1132 | 1133 | -2.5287953019142151e-01 2.9379209876060486e-01 1134 | <_> 1135 | 1136 | 0 -1 64 -202356309 1546117141 119652493 -1480642600 1137 | -897144580 -357652253 1327299123 2147277759 1138 | 1139 | -3.7577870488166809e-01 1.9211210310459137e-01 1140 | <_> 1141 | 1142 | 0 -1 116 -701322000 600457447 1509985816 2047101992 1143 | -88061808 810625041 -492200131 -1084615712 1144 | 1145 | -2.5967335700988770e-01 3.2390621304512024e-01 1146 | <_> 1147 | 1148 | 0 -1 128 -802661248 2041223440 -1971189214 1091063884 1149 | -1442209590 310890120 -583462758 -2128858658 1150 | 1151 | -2.7653399109840393e-01 2.6308131217956543e-01 1152 | <_> 1153 | 1154 | 0 -1 144 1227144738 287347110 1073811841 -642510663 47949235 1155 | -358549313 -762651789 1067989756 1156 | 1157 | -3.8721343874931335e-01 1.9796879589557648e-01 1158 | <_> 1159 | 1160 | 0 -1 96 -890645530 -76137428 1635407089 -653705103 1161 | -222196352 -2135454648 826650799 -546421106 1162 | 1163 | -2.2893629968166351e-01 3.4883117675781250e-01 1164 | <_> 1165 | 1166 | 0 -1 180 115396552 -268602625 -476620085 55125 34911734 1167 | -2031601929 -876678966 2159232 1168 | 1169 | -4.7331467270851135e-01 1.7090183496475220e-01 1170 | <_> 1171 | 1172 | 0 -1 106 -960841592 -1438746614 -836757390 -607137650 1173 | -1698785238 241330388 -1433414422 -1011887074 1174 | 1175 | -2.7522462606430054e-01 2.7552169561386108e-01 1176 | 1177 | <_> 1178 | 20 1179 | -1.5641496181488037e+00 1180 | 1181 | <_> 1182 | 1183 | 0 -1 93 -6572097 1997747627 -793797217 -12890101 -640943889 1184 | -15222773 -1165915669 -1082131477 1185 | 1186 | -4.4747370481491089e-01 2.6887279748916626e-01 1187 | <_> 1188 | 1189 | 0 -1 62 -78893594 -24473120 285594848 -153685586 -1282352145 1190 | 1415165953 -7677762 -1089545281 1191 | 1192 | -3.8248649239540100e-01 1.9512212276458740e-01 1193 | <_> 1194 | 1195 | 0 -1 54 1719433453 2012860737 -752178198 -270273361 1196 | -218071909 1910755545 -634921921 1307917543 1197 | 1198 | -4.2403382062911987e-01 1.5552417933940887e-01 1199 | <_> 1200 | 1201 | 0 -1 145 346440728 475984700 -226479860 -251477414 1202 | -376511992 -787840824 -325564392 -205625268 1203 | 1204 | -3.7190786004066467e-01 2.2409965097904205e-01 1205 | <_> 1206 | 1207 | 0 -1 8 -1470403598 -79514480 -1874230864 1373314288 1208 | 1889454791 965380300 111729339 -155757321 1209 | 1210 | -3.1442776322364807e-01 2.0855370163917542e-01 1211 | <_> 1212 | 1213 | 0 -1 82 -716056854 -1823908864 -1508796792 1972671498 1214 | -519819084 813732008 -258861909 919194255 1215 | 1216 | -3.7285614013671875e-01 1.9729779660701752e-01 1217 | <_> 1218 | 1219 | 0 -1 81 1546385595 -1309836939 1857846459 1533215607 1220 | -1011184374 -612958225 -1011026448 -1972702825 1221 | 1222 | -2.0079778134822845e-01 3.6348915100097656e-01 1223 | <_> 1224 | 1225 | 0 -1 163 1747340380 -36375818 -796856307 -711095964 1226 | -796599288 1355448457 1312861204 2135412121 1227 | 1228 | -3.7831446528434753e-01 1.9873639941215515e-01 1229 | <_> 1230 | 1231 | 0 -1 103 -768751382 2032850956 -1850876814 1943342158 1232 | 957253316 -1742859456 -1627655967 -766813953 1233 | 1234 | -2.5611773133277893e-01 2.8520381450653076e-01 1235 | <_> 1236 | 1237 | 0 -1 104 379801908 922931070 -1283810949 -635466228 1238 | -1162610393 -2140456651 -394184688 -1741505260 1239 | 1240 | -3.3258980512619019e-01 2.1983511745929718e-01 1241 | <_> 1242 | 1243 | 0 -1 179 30440861 -707084297 -711518476 232846730 261139465 1244 | -1980645442 -1919182317 148959131 1245 | 1246 | -4.8756906390190125e-01 1.4926502108573914e-01 1247 | <_> 1248 | 1249 | 0 -1 88 1398517412 1091503627 -603614910 923510340 1250 | -2128548510 631054592 -1559732022 632736907 1251 | 1252 | -4.1774383187294006e-01 1.7141269147396088e-01 1253 | <_> 1254 | 1255 | 0 -1 167 -771178448 -1962893312 -532234031 -1719586142 1256 | -844250936 -2146992000 -896574679 -68179424 1257 | 1258 | -3.3771258592605591e-01 2.1925686299800873e-01 1259 | <_> 1260 | 1261 | 0 -1 183 80128495 -1999374641 -951464498 197197304 1262 | 1016397327 -1154549345 -51535969 1270071291 1263 | 1264 | -3.6071702837944031e-01 2.2551006078720093e-01 1265 | <_> 1266 | 1267 | 0 -1 119 -768637184 -601873136 775882474 -14795161 860007339 1268 | 1159612135 1935324398 -67434838 1269 | 1270 | -2.2254292666912079e-01 3.6101421713829041e-01 1271 | <_> 1272 | 1273 | 0 -1 97 -967270537 -1557940680 -1305563177 1064938545 1274 | -268444442 -863449123 501218884 -1714608146 1275 | 1276 | -1.9761918485164642e-01 3.7015640735626221e-01 1277 | <_> 1278 | 1279 | 0 -1 46 -660996024 1054310782 638698504 -2003507058 1280 | -1329406960 -817491890 -1966989796 2078650569 1281 | 1282 | -4.6312439441680908e-01 1.5169039368629456e-01 1283 | <_> 1284 | 1285 | 0 -1 117 -1241645544 1532884908 16482983 -2146608144 1286 | -1176828431 -1035746875 831483189 -491344394 1287 | 1288 | -2.9809227585792542e-01 2.5282818078994751e-01 1289 | <_> 1290 | 1291 | 0 -1 139 -157037320 -1059485506 -355562372 352953837 1292 | 1829361830 -1314949513 -2104520563 -2006978724 1293 | 1294 | -2.2160808742046356e-01 3.3625227212905884e-01 1295 | <_> 1296 | 1297 | 0 -1 76 -413404937 1296781512 1771802975 -273474273 1298 | -323960453 -677853017 1511709694 1341778080 1299 | 1300 | -3.7686330080032349e-01 2.1736514568328857e-01 1301 | 1302 | <_> 1303 | 1304 | 0 0 1 1 1305 | <_> 1306 | 1307 | 0 0 1 2 1308 | <_> 1309 | 1310 | 0 0 2 32 1311 | <_> 1312 | 1313 | 0 0 4 3 1314 | <_> 1315 | 1316 | 0 0 4 28 1317 | <_> 1318 | 1319 | 0 0 6 18 1320 | <_> 1321 | 1322 | 0 0 6 32 1323 | <_> 1324 | 1325 | 0 0 8 17 1326 | <_> 1327 | 1328 | 0 0 12 17 1329 | <_> 1330 | 1331 | 0 0 14 42 1332 | <_> 1333 | 1334 | 0 0 24 8 1335 | <_> 1336 | 1337 | 0 0 30 3 1338 | <_> 1339 | 1340 | 0 0 30 9 1341 | <_> 1342 | 1343 | 0 0 30 15 1344 | <_> 1345 | 1346 | 0 0 30 42 1347 | <_> 1348 | 1349 | 0 1 2 2 1350 | <_> 1351 | 1352 | 0 1 25 7 1353 | <_> 1354 | 1355 | 0 1 30 34 1356 | <_> 1357 | 1358 | 0 2 7 42 1359 | <_> 1360 | 1361 | 0 2 14 42 1362 | <_> 1363 | 1364 | 0 3 15 9 1365 | <_> 1366 | 1367 | 0 5 1 1 1368 | <_> 1369 | 1370 | 0 5 12 7 1371 | <_> 1372 | 1373 | 0 5 24 41 1374 | <_> 1375 | 1376 | 0 7 30 40 1377 | <_> 1378 | 1379 | 0 12 9 7 1380 | <_> 1381 | 1382 | 0 18 23 17 1383 | <_> 1384 | 1385 | 0 22 5 7 1386 | <_> 1387 | 1388 | 0 26 5 8 1389 | <_> 1390 | 1391 | 0 29 30 33 1392 | <_> 1393 | 1394 | 0 34 3 5 1395 | <_> 1396 | 1397 | 0 35 4 6 1398 | <_> 1399 | 1400 | 0 53 9 16 1401 | <_> 1402 | 1403 | 0 55 4 8 1404 | <_> 1405 | 1406 | 0 56 6 13 1407 | <_> 1408 | 1409 | 0 57 23 23 1410 | <_> 1411 | 1412 | 0 62 9 20 1413 | <_> 1414 | 1415 | 0 71 5 11 1416 | <_> 1417 | 1418 | 0 77 6 17 1419 | <_> 1420 | 1421 | 0 89 30 13 1422 | <_> 1423 | 1424 | 0 96 14 10 1425 | <_> 1426 | 1427 | 0 99 15 9 1428 | <_> 1429 | 1430 | 0 101 13 9 1431 | <_> 1432 | 1433 | 0 101 28 9 1434 | <_> 1435 | 1436 | 0 104 14 6 1437 | <_> 1438 | 1439 | 0 106 4 7 1440 | <_> 1441 | 1442 | 0 106 11 7 1443 | <_> 1444 | 1445 | 0 116 2 4 1446 | <_> 1447 | 1448 | 0 116 29 4 1449 | <_> 1450 | 1451 | 0 118 3 3 1452 | <_> 1453 | 1454 | 0 119 1 1 1455 | <_> 1456 | 1457 | 0 122 2 2 1458 | <_> 1459 | 1460 | 0 123 1 1 1461 | <_> 1462 | 1463 | 1 0 8 14 1464 | <_> 1465 | 1466 | 1 1 1 1 1467 | <_> 1468 | 1469 | 1 4 1 1 1470 | <_> 1471 | 1472 | 1 5 5 11 1473 | <_> 1474 | 1475 | 1 19 6 6 1476 | <_> 1477 | 1478 | 1 28 3 4 1479 | <_> 1480 | 1481 | 1 35 2 4 1482 | <_> 1483 | 1484 | 1 89 22 13 1485 | <_> 1486 | 1487 | 1 97 7 10 1488 | <_> 1489 | 1490 | 1 119 27 3 1491 | <_> 1492 | 1493 | 1 122 1 1 1494 | <_> 1495 | 1496 | 1 124 1 1 1497 | <_> 1498 | 1499 | 1 125 1 1 1500 | <_> 1501 | 1502 | 2 0 3 8 1503 | <_> 1504 | 1505 | 2 0 3 11 1506 | <_> 1507 | 1508 | 2 4 1 1 1509 | <_> 1510 | 1511 | 2 7 8 5 1512 | <_> 1513 | 1514 | 2 109 29 6 1515 | <_> 1516 | 1517 | 2 124 1 1 1518 | <_> 1519 | 1520 | 3 87 3 4 1521 | <_> 1522 | 1523 | 3 123 1 1 1524 | <_> 1525 | 1526 | 4 125 1 1 1527 | <_> 1528 | 1529 | 5 0 28 4 1530 | <_> 1531 | 1532 | 5 125 1 1 1533 | <_> 1534 | 1535 | 7 0 9 13 1536 | <_> 1537 | 1538 | 7 0 13 12 1539 | <_> 1540 | 1541 | 7 64 22 20 1542 | <_> 1543 | 1544 | 9 0 16 8 1545 | <_> 1546 | 1547 | 9 0 16 34 1548 | <_> 1549 | 1550 | 10 0 24 4 1551 | <_> 1552 | 1553 | 10 83 26 15 1554 | <_> 1555 | 1556 | 10 107 24 6 1557 | <_> 1558 | 1559 | 11 23 15 11 1560 | <_> 1561 | 1562 | 12 20 26 36 1563 | <_> 1564 | 1565 | 15 38 1 1 1566 | <_> 1567 | 1568 | 18 45 23 17 1569 | <_> 1570 | 1571 | 18 73 23 18 1572 | <_> 1573 | 1574 | 20 23 15 23 1575 | <_> 1576 | 1577 | 20 35 18 19 1578 | <_> 1579 | 1580 | 20 41 11 14 1581 | <_> 1582 | 1583 | 20 74 23 18 1584 | <_> 1585 | 1586 | 21 0 23 8 1587 | <_> 1588 | 1589 | 21 85 16 14 1590 | <_> 1591 | 1592 | 22 94 1 1 1593 | <_> 1594 | 1595 | 23 79 8 9 1596 | <_> 1597 | 1598 | 24 88 22 13 1599 | <_> 1600 | 1601 | 25 0 20 41 1602 | <_> 1603 | 1604 | 27 0 7 4 1605 | <_> 1606 | 1607 | 27 0 14 4 1608 | <_> 1609 | 1610 | 27 70 1 1 1611 | <_> 1612 | 1613 | 28 78 1 1 1614 | <_> 1615 | 1616 | 30 52 14 13 1617 | <_> 1618 | 1619 | 31 55 1 1 1620 | <_> 1621 | 1622 | 31 76 1 1 1623 | <_> 1624 | 1625 | 31 81 1 1 1626 | <_> 1627 | 1628 | 33 1 19 9 1629 | <_> 1630 | 1631 | 33 27 8 7 1632 | <_> 1633 | 1634 | 34 0 7 4 1635 | <_> 1636 | 1637 | 39 97 1 1 1638 | <_> 1639 | 1640 | 41 79 1 2 1641 | <_> 1642 | 1643 | 42 23 16 35 1644 | <_> 1645 | 1646 | 42 34 10 25 1647 | <_> 1648 | 1649 | 42 113 16 5 1650 | <_> 1651 | 1652 | 43 0 1 1 1653 | <_> 1654 | 1655 | 43 36 8 13 1656 | <_> 1657 | 1658 | 44 0 15 9 1659 | <_> 1660 | 1661 | 44 110 1 1 1662 | <_> 1663 | 1664 | 45 95 1 1 1665 | <_> 1666 | 1667 | 45 118 15 3 1668 | <_> 1669 | 1670 | 46 0 5 4 1671 | <_> 1672 | 1673 | 46 98 1 1 1674 | <_> 1675 | 1676 | 47 78 1 1 1677 | <_> 1678 | 1679 | 48 103 1 1 1680 | <_> 1681 | 1682 | 49 58 11 17 1683 | <_> 1684 | 1685 | 50 0 11 6 1686 | <_> 1687 | 1688 | 52 30 1 1 1689 | <_> 1690 | 1691 | 54 31 1 1 1692 | <_> 1693 | 1694 | 56 73 10 18 1695 | <_> 1696 | 1697 | 57 5 11 10 1698 | <_> 1699 | 1700 | 57 86 11 13 1701 | <_> 1702 | 1703 | 59 79 1 1 1704 | <_> 1705 | 1706 | 60 5 10 8 1707 | <_> 1708 | 1709 | 60 40 1 1 1710 | <_> 1711 | 1712 | 61 55 9 15 1713 | <_> 1714 | 1715 | 62 35 1 1 1716 | <_> 1717 | 1718 | 62 39 1 1 1719 | <_> 1720 | 1721 | 63 21 2 2 1722 | <_> 1723 | 1724 | 63 104 9 8 1725 | <_> 1726 | 1727 | 65 44 8 28 1728 | <_> 1729 | 1730 | 65 95 8 11 1731 | <_> 1732 | 1733 | 66 17 8 8 1734 | <_> 1735 | 1736 | 66 116 7 4 1737 | <_> 1738 | 1739 | 69 0 6 9 1740 | <_> 1741 | 1742 | 69 0 7 21 1743 | <_> 1744 | 1745 | 69 0 7 42 1746 | <_> 1747 | 1748 | 69 4 7 16 1749 | <_> 1750 | 1751 | 69 12 7 8 1752 | <_> 1753 | 1754 | 70 47 1 1 1755 | <_> 1756 | 1757 | 71 76 6 15 1758 | <_> 1759 | 1760 | 72 0 5 17 1761 | <_> 1762 | 1763 | 72 1 6 17 1764 | <_> 1765 | 1766 | 72 71 6 8 1767 | <_> 1768 | 1769 | 75 2 5 42 1770 | <_> 1771 | 1772 | 75 29 5 7 1773 | <_> 1774 | 1775 | 75 110 5 6 1776 | <_> 1777 | 1778 | 77 0 4 8 1779 | <_> 1780 | 1781 | 78 1 4 29 1782 | <_> 1783 | 1784 | 78 7 4 11 1785 | <_> 1786 | 1787 | 78 27 4 6 1788 | <_> 1789 | 1790 | 78 40 4 10 1791 | <_> 1792 | 1793 | 81 0 3 8 1794 | <_> 1795 | 1796 | 81 44 3 28 1797 | <_> 1798 | 1799 | 84 33 2 3 1800 | <_> 1801 | 1802 | 84 37 2 3 1803 | <_> 1804 | 1805 | 84 65 2 21 1806 | <_> 1807 | 1808 | 86 0 1 32 1809 | <_> 1810 | 1811 | 86 57 1 4 1812 | <_> 1813 | 1814 | 86 61 1 19 1815 | <_> 1816 | 1817 | 87 0 1 1 1818 | <_> 1819 | 1820 | 87 0 1 2 1821 | <_> 1822 | 1823 | 87 1 1 1 1824 | <_> 1825 | 1826 | 87 1 1 2 1827 | <_> 1828 | 1829 | 87 2 1 1 1830 | <_> 1831 | 1832 | 87 3 1 1 1833 | <_> 1834 | 1835 | 87 8 1 1 1836 | <_> 1837 | 1838 | 87 10 1 1 1839 | <_> 1840 | 1841 | 87 12 1 1 1842 | <_> 1843 | 1844 | 87 22 1 1 1845 | <_> 1846 | 1847 | 87 106 1 1 1848 | <_> 1849 | 1850 | 87 112 1 1 1851 | <_> 1852 | 1853 | 87 112 1 2 1854 | <_> 1855 | 1856 | 87 115 1 1 1857 | <_> 1858 | 1859 | 87 119 1 1 1860 | <_> 1861 | 1862 | 87 120 1 1 1863 | <_> 1864 | 1865 | 87 120 1 2 1866 | <_> 1867 | 1868 | 87 121 1 1 1869 | <_> 1870 | 1871 | 87 121 1 2 1872 | <_> 1873 | 1874 | 87 122 1 1 1875 | <_> 1876 | 1877 | 87 123 1 1 1878 | <_> 1879 | 1880 | 87 124 1 1 1881 | <_> 1882 | 1883 | 87 125 1 1 1884 | 1885 | --------------------------------------------------------------------------------