This commit is contained in:
louiscklaw
2025-01-31 22:57:47 +08:00
parent b1cd1d4662
commit b3cc8e8323
764 changed files with 722101 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
*.txt
*.vec

View File

@@ -0,0 +1,66 @@
# OPENCV级联分类器训练
## 1.收集样本
### 正样本
- 转化成灰度可用_RGBtoGray.py脚本
- 转化成jpg格式可用_BMP2JPG.py脚本
- 分辨率20X20
- 从0开始按序号命名可用_ReName.py脚本
### 负样本
- 转化成灰度可用_RGBtoGray.py脚本
- 转化成jpg格式可用_BMP2JPG.py脚本
- 分辨率随意
- 需要明显多于正样本
- 从0开始按序号命名可用_ReName.py脚本
## 2.生成txt数据集路径表
- 生成文件可用_GenTXT.py脚本
- 拷贝到项目顶层目录可用_copy.py脚本
## 3.生成正样本数据集(负样本数据在下一步用于训练)
- 编辑step1.py根据自己的样本情况修改参数
- 执行step1.py脚本
## 4.训练
- 编辑step2.py根据自己的样本情况修改参数
- 执行step2.py脚本
## 3.得到模型
- 进入xml文件夹里面就有训练各个层数的模型
## 5.示范
```python
import cv2
# 读取待检测的图像
image = cv2.imread('12.jpg')
# 获取 XML 文件,加载人脸检测器
faceCascade = cv2.CascadeClassifier('cascade.xml')
# 色彩转换,转换为灰度图像
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
# 调用函数 detectMultiScale
faces = faceCascade.detectMultiScale(gray,scaleFactor = 1.15,minNeighbors = 5,minSize = (5,5))
#print(faces)
# 打印输出的测试结果
print("发现{0}个人脸!".format(len(faces)))
# 逐个标注人脸
for(x,y,w,h) in faces:
cv2.rectangle(image,(x,y),(x+w,y+w),(0,255,0),2) #矩形标注
#cv2.circle(image,(int((x+x+w)/2),int((y+y+h)/2)),int(w/2),(0,255,0),2)
# 显示结果
cv2.imshow("dect",image)
# 保存检测结果
cv2.imwrite("re.jpg",image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```

View File

@@ -0,0 +1,6 @@
del neg.txt
del pos.txt
del pos.vec
del .\\xml\\*
del .\\negdata\\neg.txt
del .\\posdata\\pos.txt

View File

@@ -0,0 +1,5 @@
*.jpg
*.png
*.bmp
*.gif
*.webp

View File

@@ -0,0 +1,9 @@
# -*- coding:utf8 -*-
import os
# 生成路径列表文件
os.system("dir /b/s/p/w *.jpg > neg.txt")
os.system("pause")

View File

@@ -0,0 +1,26 @@
import os
from PIL import Image
# 获取指定目录下的所有png图片
def get_all_png_files(dir):
files_list = []
for root, dirs, files in os.walk(dir):
for file in files:
if os.path.splitext(file)[1] == '.png':
files_list.append(os.path.join(root, file))
return files_list
# 批量转换png图片为jpg格式
def png2jpg(files_list):
for file in files_list:
img = Image.open(file)
new_file = os.path.splitext(file)[0] + '.jpg'
img.convert('RGB').save(new_file)
if __name__ == '__main__':
dir = './' #png图片目录
files_list = get_all_png_files(dir)
png2jpg(files_list)

View File

@@ -0,0 +1,26 @@
# -*- coding:utf8 -*-
import cv2
import numpy as np
import os
import re
import shutil
from pathlib2 import Path
# 批量灰度化图片
def GrayPic(srcImgDir):
for item in srcImgDir.rglob("*.jpg"):
# 获取图片名
imgName = item.name
img=cv2.imread(imgName)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imwrite("gray"+imgName,gray)
if __name__ == '__main__':
# 文件路径--跟代码同目录
srcImgPath = Path("./")
GrayPic(srcImgPath)
os.system("pause")

View File

@@ -0,0 +1,27 @@
# -*- coding:utf8 -*-
import os
import re
import shutil
from pathlib2 import Path
# 批量命名图片
def renamePic(srcImgDir):
i=0
for item in srcImgDir.rglob("*.jpg"):
# 获取图片名
imgName = item.name
newName = str(i)+".jpg"
i=i+1
# 重命名
print(f"prepare to rename {imgName}")
item.rename(newName)
if __name__ == '__main__':
# 文件路径--跟代码同目录
srcImgPath = Path("./")
renamePic(srcImgPath)
os.system("pause")

View File

@@ -0,0 +1,8 @@
# -*- coding:utf8 -*-
import os
os.system("copy .\\neg.txt ..\\")
os.system("pause")

View File

@@ -0,0 +1,9 @@
# -*- coding:utf8 -*-
import os
# 生成路径列表文件
# os.system("dir /b/s/p/w *.jpg > neg.txt")
os.system("find " + os.path.abspath(os.curdir) + " -name '*.jpg' > neg.txt")
# os.system("pause")

View File

@@ -0,0 +1,46 @@
# -*- coding:utf8 -*-
import os
import re
import shutil
from pathlib2 import Path
import string
import random
# 批量命名图片
def renamePic(srcImgDir):
i=0
for item in srcImgDir.rglob("*.jpg"):
# 获取图片名
imgName = item.name
newName = str(i)+".jpg"
i=i+1
# 重命名
print(f"prepare to rename {imgName}")
item.rename(newName)
# 批量命名图片
def renamePicWithRandomName(srcImgDir):
for item in srcImgDir.rglob("*.jpg"):
# 获取图片名
imgName = item.name
# 生成随机字符串
random_str = ''.join(random.sample(string.ascii_letters + string.digits, 32))
# 生成随机数字
random_int = str(random.randint(0, 10000))
# 生成新的图片名
newName = random_str + random_int + ".jpg"
# 重命名
print(f"prepare to rename {imgName} to {newName}")
item.rename(newName)
if __name__ == '__main__':
# 文件路径--跟代码同目录
srcImgPath = Path("./")
renamePicWithRandomName(srcImgPath)
renamePic(srcImgPath)

View File

@@ -0,0 +1,8 @@
# -*- coding:utf8 -*-
import os
# os.system("copy .\\neg.txt ..\\")
os.system("cp ./neg.txt ../")
# os.system("pause")

View File

@@ -0,0 +1,8 @@
### vnc
host 192.168.10.21
http://192.168.10.21:6199/
work path
/home/logic/_workspace/task-list/servers/logic-NUC8i5BEH/opencv-workdesk/001_monitor/src/007-test

View File

@@ -0,0 +1,5 @@
*.jpg
*.png
*.bmp
*.gif
*.webp

View File

@@ -0,0 +1,16 @@
import os
from PIL import Image
json_dir = "./"
label_names = os.listdir(json_dir)
label_dir = []
for filename in label_names:
label_dir.append(os.path.join(json_dir,filename))
for i,filename in enumerate(label_dir):
im = Image.open(filename) # open ppm file
newname = label_names[i].split('.')[0] + '.jpg' # new name for png file
im.save(os.path.join(json_dir,newname))

View File

@@ -0,0 +1,9 @@
# -*- coding:utf8 -*-
import os
# 生成路径列表文件
os.system("dir /b/s/p/w *.jpg > pos.txt")
os.system("pause")

View File

@@ -0,0 +1,26 @@
# -*- coding:utf8 -*-
import cv2
import numpy as np
import os
import re
import shutil
from pathlib2 import Path
# 批量灰度化图片
def GrayPic(srcImgDir):
for item in srcImgDir.rglob("*.jpg"):
# 获取图片名
imgName = item.name
img=cv2.imread(imgName)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imwrite("gray"+imgName,gray)
if __name__ == '__main__':
# 文件路径--跟代码同目录
srcImgPath = Path("./")
GrayPic(srcImgPath)
os.system("pause")

View File

@@ -0,0 +1,27 @@
# -*- coding:utf8 -*-
import os
import re
import shutil
from pathlib2 import Path
# 批量命名图片
def renamePic(srcImgDir):
i=0
for item in srcImgDir.rglob("*.jpg"):
# 获取图片名
imgName = item.name
newName = str(i)+".jpg"
i=i+1
# 重命名
print(f"prepare to rename {imgName}")
item.rename(newName)
if __name__ == '__main__':
# 文件路径--跟代码同目录
srcImgPath = Path("./")
renamePic(srcImgPath)
os.system("pause")

View File

@@ -0,0 +1,8 @@
# -*- coding:utf8 -*-
import os
os.system("copy .\\pos.txt ..\\")
os.system("pause")

View File

@@ -0,0 +1,10 @@
# -*- coding:utf8 -*-
import os
# 生成路径列表文件
#
# os.system("dir /b/s/p/w *.jpg > pos.txt")
os.system("find " + os.path.abspath(os.curdir) + " -name '*.jpg' > pos.txt")
# os.system("pause")

View File

@@ -0,0 +1,46 @@
# -*- coding:utf8 -*-
import os
import re
import shutil
from pathlib2 import Path
import string
import random
# 批量命名图片
def renamePicWithRandomName(srcImgDir):
for item in srcImgDir.rglob("*.jpg"):
# 获取图片名
imgName = item.name
# 生成随机字符串
random_str = ''.join(random.sample(string.ascii_letters + string.digits, 32))
# 生成随机数字
random_int = str(random.randint(0, 10000))
# 生成新的图片名
newName = random_str + random_int + ".jpg"
# 重命名
print(f"prepare to rename {imgName} to {newName}")
item.rename(newName)
# 批量命名图片
def renamePic(srcImgDir):
i=0
for item in srcImgDir.rglob("*.jpg"):
# 获取图片名
imgName = item.name
newName = str(i)+".jpg"
i=i+1
# 重命名
print(f"prepare to rename {imgName}")
item.rename(newName)
if __name__ == '__main__':
# 文件路径--跟代码同目录
srcImgPath = Path("./")
renamePicWithRandomName(srcImgPath)
renamePic(srcImgPath)

View File

@@ -0,0 +1,11 @@
# -*- coding:utf8 -*-
import os
import platform
# if platform.system() == "Windows":
# os.system("copy .\\pos.txt ..\\")
# else:
os.system("cp ./pos.txt ../")
# os.system("pause")

View File

@@ -0,0 +1,20 @@
import os
def trim_last_newline(file_path):
with open(file_path, 'r+') as file:
file.seek(0, os.SEEK_END)
file.seek(file.tell() - 1, os.SEEK_SET)
file.truncate()
def process_pos_file():
with open('pos.txt', 'r') as file:
data = file.read()
data = data.replace('.jpg', '.jpg 1 0 0 20 20')
with open('pos.txt', 'w') as file:
file.write(data)
if __name__ == "__main__":
trim_last_newline('neg.txt')
trim_last_newline('pos.txt')
process_pos_file()

View File

@@ -0,0 +1,9 @@
import os
# 处理前要将pos.txt里面每行按"*.jpg 1 0 0 20 20"的格式修改neg.txt不需要改格式
# neg.txt和pos.txt里面末尾的空行要删去
# neg.txt里面图片大小和数量可以不用特别指定也不需要生成vec文件
# os.system("opencv_createsamples.exe -vec pos.vec -info pos.txt -num 100 -w 20 -h 20")
os.system("opencv_createsamples -info pos.txt -vec pos.vec -num 100 -w 20 -h 20")
# os.system("pause")

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -x
rm -rf pos.vec
opencv_createsamples -info pos.txt -vec pos.vec -num 100 -w 20 -h 20

View File

@@ -0,0 +1,15 @@
import os
# numPos和numNeg是训练时每一层的样本数numPos可以小于vec中的数目推荐numNeg可以大于实际数目
# maxFalseAlarmRate是训练时的FA只有小于它才会进入下一层
# 网上推荐numPosnumNeg=13
# 正样本用vec描述负样本用txt指明路径即可
# xml目录需要自己提前创建
# 训练时出现的列表中N训练层数HR命中率FA警告FA<maxFalseAlarmRate进入下一层
# 负样本不用指定图中:目标个数Xmin,Ymin,Xmax,Ymax。训练时会自动resize
# os.system("opencv_traincascade.exe -data xml -vec pos.vec -bg neg.txt -numPos 90 -numNeg 198 -numStages 20 -w 20 -h 20 -maxFalseAlarmRate 0.5 -mode ALL")
os.system(
"opencv_traincascade -data xml -vec pos.vec -bg neg.txt -numPos 90 -numNeg 198 -numStages 20 -w 20 -h 20 -maxFalseAlarmRate 0.5 -mode ALL"
)
os.system("pause")

View File

@@ -0,0 +1,22 @@
#!/usr/bin/env bash
set -x
rm -rf xml_step2_t1/*.xml
echo "clean done"
opencv_traincascade \
-data xml_step2_t1 \
-vec pos.vec \
-bg neg.txt \
-numPos 50 \
-numNeg 198 \
-numStages 15 \
-maxFalseAlarmRate 0.5 \
-w 20 \
-h 20 \
-mode ALL
# i want to check the maxFalseAlarmRate larger, i want to complete the 20 steps

View File

@@ -0,0 +1,594 @@
<?xml version="1.0"?>
<opencv_storage>
<cascade>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams>
<stageNum>12</stageNum>
<stages>
<!-- stage 0 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-2.5608992576599121e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 19 7.4999824166297913e-02</internalNodes>
<leafValues>
-9.1044777631759644e-01 7.4468082189559937e-01</leafValues></_>
<_>
<internalNodes>
0 -1 6 9.9113196134567261e-02</internalNodes>
<leafValues>
-9.2193228006362915e-01 6.5435785055160522e-01</leafValues></_></weakClassifiers></_>
<!-- stage 1 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0775502920150757e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 7 6.4352616667747498e-02</internalNodes>
<leafValues>
-7.8280544281005859e-01 9.2592591047286987e-01</leafValues></_>
<_>
<internalNodes>
0 -1 5 8.6798444390296936e-02</internalNodes>
<leafValues>
-8.2423853874206543e-01 5.4696905612945557e-01</leafValues></_>
<_>
<internalNodes>
0 -1 35 4.9258150160312653e-02</internalNodes>
<leafValues>
-9.4359773397445679e-01 5.2949368953704834e-01</leafValues></_></weakClassifiers></_>
<!-- stage 2 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-5.0766927003860474e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 4 8.1167593598365784e-02</internalNodes>
<leafValues>
-9.2307692766189575e-01 3.0303031206130981e-01</leafValues></_>
<_>
<internalNodes>
0 -1 8 -9.1085352003574371e-02</internalNodes>
<leafValues>
4.3652963638305664e-01 -8.1069958209991455e-01</leafValues></_></weakClassifiers></_>
<!-- stage 3 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0677227973937988e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 24 3.9891637861728668e-02</internalNodes>
<leafValues>
-8.2857143878936768e-01 6.8421053886413574e-01</leafValues></_>
<_>
<internalNodes>
0 -1 27 -8.9151952415704727e-03</internalNodes>
<leafValues>
4.6722087264060974e-01 -9.0501767396926880e-01</leafValues></_>
<_>
<internalNodes>
0 -1 14 -8.2798525691032410e-02</internalNodes>
<leafValues>
6.7119181156158447e-01 -7.0637220144271851e-01</leafValues></_></weakClassifiers></_>
<!-- stage 4 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2176305055618286e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 11 -2.1015079692006111e-02</internalNodes>
<leafValues>
2.8000000119209290e-01 -8.1818181276321411e-01</leafValues></_>
<_>
<internalNodes>
0 -1 23 5.0599854439496994e-02</internalNodes>
<leafValues>
-7.0883417129516602e-01 4.5477023720741272e-01</leafValues></_>
<_>
<internalNodes>
0 -1 13 1.9625321030616760e-02</internalNodes>
<leafValues>
-8.5421890020370483e-01 4.3564090132713318e-01</leafValues></_></weakClassifiers></_>
<!-- stage 5 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.1659464836120605e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 15 -1.4186348766088486e-02</internalNodes>
<leafValues>
2.7586206793785095e-01 -8.6315786838531494e-01</leafValues></_>
<_>
<internalNodes>
0 -1 3 2.5605481117963791e-02</internalNodes>
<leafValues>
-7.2781729698181152e-01 4.0837594866752625e-01</leafValues></_>
<_>
<internalNodes>
0 -1 0 8.1282196333631873e-05</internalNodes>
<leafValues>
-7.1116447448730469e-01 4.8628303408622742e-01</leafValues></_></weakClassifiers></_>
<!-- stage 6 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-1.5175080299377441e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 33 3.3173318952322006e-02</internalNodes>
<leafValues>
-7.8536587953567505e-01 3.0232557654380798e-01</leafValues></_>
<_>
<internalNodes>
0 -1 36 3.3916704356670380e-02</internalNodes>
<leafValues>
-6.2204116582870483e-01 5.9043234586715698e-01</leafValues></_>
<_>
<internalNodes>
0 -1 39 1.6524917446076870e-03</internalNodes>
<leafValues>
-5.8125901222229004e-01 6.3796299695968628e-01</leafValues></_>
<_>
<internalNodes>
0 -1 1 6.9739250466227531e-03</internalNodes>
<leafValues>
-7.7862620353698730e-01 4.7115799784660339e-01</leafValues></_></weakClassifiers></_>
<!-- stage 7 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.1100143194198608e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 31 1.3911767303943634e-01</internalNodes>
<leafValues>
-8.5026735067367554e-01 1.8032786250114441e-01</leafValues></_>
<_>
<internalNodes>
0 -1 16 -5.2807949483394623e-02</internalNodes>
<leafValues>
4.9073439836502075e-01 -7.1471303701400757e-01</leafValues></_>
<_>
<internalNodes>
0 -1 32 2.3795636370778084e-02</internalNodes>
<leafValues>
-5.7562911510467529e-01 6.4792627096176147e-01</leafValues></_></weakClassifiers></_>
<!-- stage 8 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-9.2488884925842285e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 40 3.1490243971347809e-02</internalNodes>
<leafValues>
-8.5142856836318970e-01 1.3698630034923553e-02</leafValues></_>
<_>
<internalNodes>
0 -1 17 6.1922192573547363e-02</internalNodes>
<leafValues>
-6.1463260650634766e-01 3.5422840714454651e-01</leafValues></_>
<_>
<internalNodes>
0 -1 41 -1.0204865830019116e-03</internalNodes>
<leafValues>
3.9455986022949219e-01 -6.3372427225112915e-01</leafValues></_>
<_>
<internalNodes>
0 -1 18 -4.7158692032098770e-02</internalNodes>
<leafValues>
3.7966537475585938e-01 -6.5909165143966675e-01</leafValues></_></weakClassifiers></_>
<!-- stage 9 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.0123676061630249e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 26 1.5428757295012474e-02</internalNodes>
<leafValues>
-7.4193549156188965e-01 4.1935482621192932e-01</leafValues></_>
<_>
<internalNodes>
0 -1 12 2.3843746632337570e-02</internalNodes>
<leafValues>
-6.7536532878875732e-01 3.2841202616691589e-01</leafValues></_>
<_>
<internalNodes>
0 -1 20 3.1366597395390272e-03</internalNodes>
<leafValues>
-6.2584090232849121e-01 4.5511385798454285e-01</leafValues></_>
<_>
<internalNodes>
0 -1 25 6.3378512859344482e-03</internalNodes>
<leafValues>
-5.9743005037307739e-01 5.1810485124588013e-01</leafValues></_>
<_>
<internalNodes>
0 -1 38 1.9073241855949163e-03</internalNodes>
<leafValues>
-4.9110803008079529e-01 6.8654793500900269e-01</leafValues></_></weakClassifiers></_>
<!-- stage 10 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.0622880458831787e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 29 1.3075061142444611e-02</internalNodes>
<leafValues>
-7.0305675268173218e-01 6.8421053886413574e-01</leafValues></_>
<_>
<internalNodes>
0 -1 34 1.3329303264617920e-01</internalNodes>
<leafValues>
-7.6219099760055542e-01 3.1620588898658752e-01</leafValues></_>
<_>
<internalNodes>
0 -1 28 3.8607125170528889e-03</internalNodes>
<leafValues>
-5.5370372533798218e-01 4.7313386201858521e-01</leafValues></_>
<_>
<internalNodes>
0 -1 37 -8.3823483437299728e-03</internalNodes>
<leafValues>
6.8716096878051758e-01 -4.0297099947929382e-01</leafValues></_>
<_>
<internalNodes>
0 -1 2 3.7839706055819988e-03</internalNodes>
<leafValues>
-7.4560004472732544e-01 3.7435856461524963e-01</leafValues></_></weakClassifiers></_>
<!-- stage 11 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-9.6727126836776733e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 30 1.9753053784370422e-02</internalNodes>
<leafValues>
-6.8510639667510986e-01 1.</leafValues></_>
<_>
<internalNodes>
0 -1 22 1.9954916089773178e-02</internalNodes>
<leafValues>
-6.1373251676559448e-01 3.7583196163177490e-01</leafValues></_>
<_>
<internalNodes>
0 -1 21 -2.7106886263936758e-03</internalNodes>
<leafValues>
6.8071520328521729e-01 -3.7513715028762817e-01</leafValues></_>
<_>
<internalNodes>
0 -1 10 1.9645741581916809e-01</internalNodes>
<leafValues>
-8.4338104724884033e-01 4.2020255327224731e-01</leafValues></_>
<_>
<internalNodes>
0 -1 9 1.9025087822228670e-03</internalNodes>
<leafValues>
2.8650224208831787e-01 -9.0300935506820679e-01</leafValues></_></weakClassifiers></_></stages>
<features>
<_>
<rects>
<_>
0 0 1 2 -1.</_>
<_>
0 1 1 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 2 20 -1.</_>
<_>
1 0 1 20 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 6 3 -1.</_>
<_>
3 0 3 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 1 -1.</_>
<_>
5 0 10 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 12 6 -1.</_>
<_>
6 0 6 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 12 7 -1.</_>
<_>
6 0 6 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 4 20 6 -1.</_>
<_>
0 7 20 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 6 8 10 -1.</_>
<_>
2 6 4 10 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 6 10 14 -1.</_>
<_>
0 13 10 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 8 1 4 -1.</_>
<_>
0 9 1 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 0 18 12 -1.</_>
<_>
2 6 18 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 2 18 3 -1.</_>
<_>
2 3 18 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 3 16 1 -1.</_>
<_>
6 3 8 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 4 3 6 -1.</_>
<_>
2 7 3 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 0 8 18 -1.</_>
<_>
3 0 4 9 2.</_>
<_>
7 9 4 9 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 2 15 3 -1.</_>
<_>
3 3 15 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 1 15 6 -1.</_>
<_>
4 3 15 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 11 14 5 -1.</_>
<_>
11 11 7 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 2 8 2 -1.</_>
<_>
5 2 4 2 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
6 0 9 10 -1.</_>
<_>
9 0 3 10 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 0 14 2 -1.</_>
<_>
6 0 7 1 2.</_>
<_>
13 1 7 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 10 2 4 -1.</_>
<_>
6 10 1 2 2.</_>
<_>
7 12 1 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 10 4 4 -1.</_>
<_>
6 10 2 4 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
7 2 6 9 -1.</_>
<_>
9 2 2 9 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 4 9 -1.</_>
<_>
9 3 2 9 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 8 2 3 -1.</_>
<_>
7 8 1 3 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
8 3 3 5 -1.</_>
<_>
9 3 1 5 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 3 10 1 -1.</_>
<_>
13 3 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 8 4 1 -1.</_>
<_>
10 9 2 1 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
9 14 5 3 -1.</_>
<_>
9 15 5 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
10 0 10 2 -1.</_>
<_>
10 0 5 1 2.</_>
<_>
15 1 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
12 5 7 8 -1.</_>
<_>
12 5 7 4 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
12 11 8 5 -1.</_>
<_>
14 11 4 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
12 12 8 7 -1.</_>
<_>
14 12 4 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 0 6 20 -1.</_>
<_>
14 5 6 10 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 3 4 15 -1.</_>
<_>
14 8 4 5 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 3 6 4 -1.</_>
<_>
14 5 6 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 19 6 1 -1.</_>
<_>
17 19 3 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 7 2 2 -1.</_>
<_>
15 7 2 1 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
16 0 1 3 -1.</_>
<_>
16 1 1 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 3 2 8 -1.</_>
<_>
16 7 2 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
18 13 2 4 -1.</_>
<_>
19 13 1 4 2.</_></rects>
<tilted>0</tilted></_></features></cascade>
</opencv_storage>

View File

@@ -0,0 +1,544 @@
<?xml version="1.0"?>
<opencv_storage>
<cascade>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams>
<stageNum>12</stageNum>
<stages>
<!-- stage 0 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-2.0792216528207064e-03</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 23 3.5195697098970413e-02</internalNodes>
<leafValues>
-9.7000002861022949e-01 9.5833331346511841e-01</leafValues></_>
<_>
<internalNodes>
0 -1 32 4.9420498311519623e-02</internalNodes>
<leafValues>
-9.3253821134567261e-01 9.6792078018188477e-01</leafValues></_></weakClassifiers></_>
<!-- stage 1 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2283716201782227e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 6 2.1136376261711121e-01</internalNodes>
<leafValues>
-8.8292682170867920e-01 7.6744186878204346e-01</leafValues></_>
<_>
<internalNodes>
0 -1 27 -3.6786209791898727e-02</internalNodes>
<leafValues>
6.4631646871566772e-01 -8.5865759849548340e-01</leafValues></_>
<_>
<internalNodes>
0 -1 2 8.2553006708621979e-02</internalNodes>
<leafValues>
-9.6414572000503540e-01 5.1321285963058472e-01</leafValues></_></weakClassifiers></_>
<!-- stage 2 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-5.2522403001785278e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 34 -7.0488560013473034e-03</internalNodes>
<leafValues>
4.6428570151329041e-01 -9.0625000000000000e-01</leafValues></_>
<_>
<internalNodes>
0 -1 1 2.0252991467714310e-02</internalNodes>
<leafValues>
-9.2222303152084351e-01 3.8102594017982483e-01</leafValues></_></weakClassifiers></_>
<!-- stage 3 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2258527278900146e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 35 2.7621425688266754e-02</internalNodes>
<leafValues>
-9.3296086788177490e-01 2.7536231279373169e-01</leafValues></_>
<_>
<internalNodes>
0 -1 18 2.4644609540700912e-02</internalNodes>
<leafValues>
-7.8042775392532349e-01 5.6246817111968994e-01</leafValues></_>
<_>
<internalNodes>
0 -1 28 4.4026337563991547e-02</internalNodes>
<leafValues>
-7.2078734636306763e-01 5.9029269218444824e-01</leafValues></_></weakClassifiers></_>
<!-- stage 4 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.1094360351562500e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 13 5.6299664080142975e-02</internalNodes>
<leafValues>
-8.5567009449005127e-01 3.3333334326744080e-01</leafValues></_>
<_>
<internalNodes>
0 -1 10 2.0412717014551163e-02</internalNodes>
<leafValues>
-6.9705963134765625e-01 6.2128168344497681e-01</leafValues></_>
<_>
<internalNodes>
0 -1 26 3.3632911741733551e-02</internalNodes>
<leafValues>
-7.4570971727371216e-01 6.2287092208862305e-01</leafValues></_></weakClassifiers></_>
<!-- stage 5 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-1.0068651437759399e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 14 2.7963671088218689e-01</internalNodes>
<leafValues>
-8.6885243654251099e-01 1.6923077404499054e-01</leafValues></_>
<_>
<internalNodes>
0 -1 25 1.2323195114731789e-02</internalNodes>
<leafValues>
-7.9252362251281738e-01 3.5135197639465332e-01</leafValues></_>
<_>
<internalNodes>
0 -1 29 1.1619093269109726e-01</internalNodes>
<leafValues>
-8.5458588600158691e-01 4.3786722421646118e-01</leafValues></_>
<_>
<internalNodes>
0 -1 16 1.1368356645107269e-02</internalNodes>
<leafValues>
-8.9688044786453247e-01 3.6522126197814941e-01</leafValues></_></weakClassifiers></_>
<!-- stage 6 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.4377774000167847e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 17 2.8343785554170609e-02</internalNodes>
<leafValues>
-7.5813955068588257e-01 4.5454546809196472e-01</leafValues></_>
<_>
<internalNodes>
0 -1 22 -6.7780455574393272e-03</internalNodes>
<leafValues>
6.8800747394561768e-01 -5.7961523532867432e-01</leafValues></_>
<_>
<internalNodes>
0 -1 9 -9.6869543194770813e-03</internalNodes>
<leafValues>
5.2493661642074585e-01 -8.1870794296264648e-01</leafValues></_></weakClassifiers></_>
<!-- stage 7 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-5.8824944496154785e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 8 2.2776421904563904e-01</internalNodes>
<leafValues>
-7.8431373834609985e-01 2.7272728085517883e-01</leafValues></_>
<_>
<internalNodes>
0 -1 4 -1.3495892286300659e-01</internalNodes>
<leafValues>
3.2428205013275146e-01 -8.6097669601440430e-01</leafValues></_></weakClassifiers></_>
<!-- stage 8 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.8578220605850220e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 31 3.1056167557835579e-02</internalNodes>
<leafValues>
-7.7464789152145386e-01 4.8571428656578064e-01</leafValues></_>
<_>
<internalNodes>
0 -1 15 2.3904092609882355e-02</internalNodes>
<leafValues>
-7.8261238336563110e-01 4.7452750802040100e-01</leafValues></_>
<_>
<internalNodes>
0 -1 24 5.9338808059692383e-02</internalNodes>
<leafValues>
-6.1228525638580322e-01 5.7147806882858276e-01</leafValues></_></weakClassifiers></_>
<!-- stage 9 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2791478633880615e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 11 -1.5193784609436989e-02</internalNodes>
<leafValues>
-6.0240965336561203e-02 -8.6666667461395264e-01</leafValues></_>
<_>
<internalNodes>
0 -1 3 1.2929022312164307e-01</internalNodes>
<leafValues>
-7.7955096960067749e-01 2.7296727895736694e-01</leafValues></_>
<_>
<internalNodes>
0 -1 30 2.4830256006680429e-04</internalNodes>
<leafValues>
-8.2253754138946533e-01 3.6706984043121338e-01</leafValues></_></weakClassifiers></_>
<!-- stage 10 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-9.7741711139678955e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 36 -7.1106562390923500e-03</internalNodes>
<leafValues>
7.4074074625968933e-02 -7.8350514173507690e-01</leafValues></_>
<_>
<internalNodes>
0 -1 37 1.0002901777625084e-02</internalNodes>
<leafValues>
-9.6380352973937988e-01 1.2861841917037964e-01</leafValues></_>
<_>
<internalNodes>
0 -1 12 -1.1527233757078648e-02</internalNodes>
<leafValues>
3.1283980607986450e-01 -7.8981834650039673e-01</leafValues></_>
<_>
<internalNodes>
0 -1 0 7.7132084406912327e-03</internalNodes>
<leafValues>
-9.2314887046813965e-01 3.5634875297546387e-01</leafValues></_>
<_>
<internalNodes>
0 -1 33 -2.8069035615772009e-03</internalNodes>
<leafValues>
3.7375229597091675e-01 -7.4664002656936646e-01</leafValues></_></weakClassifiers></_>
<!-- stage 11 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.3949387073516846e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 19 4.9728322774171829e-03</internalNodes>
<leafValues>
-7.8894472122192383e-01 1.8367347121238708e-01</leafValues></_>
<_>
<internalNodes>
0 -1 21 8.1018730998039246e-03</internalNodes>
<leafValues>
-7.9892826080322266e-01 2.1818427741527557e-01</leafValues></_>
<_>
<internalNodes>
0 -1 5 9.7033903002738953e-03</internalNodes>
<leafValues>
-5.7855868339538574e-01 4.4443655014038086e-01</leafValues></_>
<_>
<internalNodes>
0 -1 20 -6.7393705248832703e-02</internalNodes>
<leafValues>
6.7329019308090210e-01 -4.4816955924034119e-01</leafValues></_>
<_>
<internalNodes>
0 -1 7 3.2395221292972565e-02</internalNodes>
<leafValues>
-8.7441539764404297e-01 4.0108311176300049e-01</leafValues></_></weakClassifiers></_></stages>
<features>
<_>
<rects>
<_>
0 0 10 1 -1.</_>
<_>
5 0 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 1 -1.</_>
<_>
5 0 10 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 12 6 -1.</_>
<_>
6 0 6 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 7 20 -1.</_>
<_>
0 5 7 10 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 9 -1.</_>
<_>
0 3 20 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 4 2 16 -1.</_>
<_>
1 4 1 16 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 4 20 12 -1.</_>
<_>
0 7 20 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 5 6 9 -1.</_>
<_>
0 8 6 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 6 20 12 -1.</_>
<_>
10 6 10 12 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 12 3 8 -1.</_>
<_>
0 16 3 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 14 8 6 -1.</_>
<_>
2 14 4 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 2 15 3 -1.</_>
<_>
1 3 15 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 2 16 3 -1.</_>
<_>
1 3 16 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 3 5 6 -1.</_>
<_>
1 6 5 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 3 18 16 -1.</_>
<_>
1 7 18 8 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 3 16 1 -1.</_>
<_>
6 3 8 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 5 6 2 -1.</_>
<_>
4 7 2 2 3.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
2 9 6 9 -1.</_>
<_>
4 9 2 9 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 0 1 12 -1.</_>
<_>
3 6 1 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 2 6 2 -1.</_>
<_>
3 2 3 1 2.</_>
<_>
6 3 3 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 16 15 3 -1.</_>
<_>
9 17 5 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 0 4 3 -1.</_>
<_>
8 0 2 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 16 6 3 -1.</_>
<_>
6 17 6 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 0 6 13 -1.</_>
<_>
9 0 2 13 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 2 6 15 -1.</_>
<_>
9 2 2 15 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 6 2 -1.</_>
<_>
9 3 2 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 7 6 6 -1.</_>
<_>
9 9 2 2 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 0 4 6 -1.</_>
<_>
6 2 4 2 3.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
9 1 6 14 -1.</_>
<_>
9 1 3 7 2.</_>
<_>
12 8 3 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
10 3 9 15 -1.</_>
<_>
10 8 9 5 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
12 6 4 2 -1.</_>
<_>
12 6 2 1 2.</_>
<_>
14 7 2 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
12 10 8 6 -1.</_>
<_>
14 10 4 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 1 6 8 -1.</_>
<_>
12 3 6 4 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
14 2 4 1 -1.</_>
<_>
15 3 2 1 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
14 2 6 3 -1.</_>
<_>
14 3 6 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 3 2 8 -1.</_>
<_>
16 7 2 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 18 4 2 -1.</_>
<_>
18 18 2 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
18 0 1 20 -1.</_>
<_>
18 5 1 10 2.</_></rects>
<tilted>0</tilted></_></features></cascade>
</opencv_storage>

View File

@@ -0,0 +1,45 @@
import cv2
import os,sys
# 获取 XML 文件,加载人脸检测器
faceCascade = cv2.CascadeClassifier("cascade.xml")
# remove all jpg files in iut_re folder
for f in os.listdir("iut_re"):
if f.endswith(".jpg"):
os.remove(os.path.join("iut_re", f))
image_set = []
for f in os.listdir("iut"):
if f.endswith(".jpg"):
file_name = os.path.join("iut", f)
image_set.append([cv2.imread(file_name), file_name])
for i in range(len(image_set)):
image = image_set[i][0]
file_name = image_set[i][1]
re_file_name = file_name.replace(".jpg","_re.jpg").replace('iut/', 'iut_re/')
# 色彩转换,转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 调用函数 detectMultiScale
faces = faceCascade.detectMultiScale(gray, scaleFactor=1.15, minNeighbors=5, minSize=(5, 5))
# print(faces)
# 打印输出的测试结果
# print("found {0} face in {1}".format(len(faces), os.path.basename(file_name)))
print((re_file_name, len(faces)))
# 逐个标注人脸
for x, y, w, h in faces:
cv2.rectangle(image, (x, y), (x + w, y + w), (0, 255, 0), 2) # 矩形标注
# cv2.circle(image,(int((x+x+w)/2),int((y+y+h)/2)),int(w/2),(0,255,0),2)
# 显示结果
cv2.imshow("dect", image)
# 保存检测结果
cv2.imwrite(re_file_name, image)
# cv2.waitKey(0)
cv2.destroyAllWindows()

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -ex
npx nodemon --ext xml --exec "python ./test.py"

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -ex
python ./test.py

View File

@@ -0,0 +1,544 @@
<?xml version="1.0"?>
<opencv_storage>
<cascade>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams>
<stageNum>12</stageNum>
<stages>
<!-- stage 0 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-2.0792216528207064e-03</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 23 3.5195697098970413e-02</internalNodes>
<leafValues>
-9.7000002861022949e-01 9.5833331346511841e-01</leafValues></_>
<_>
<internalNodes>
0 -1 32 4.9420498311519623e-02</internalNodes>
<leafValues>
-9.3253821134567261e-01 9.6792078018188477e-01</leafValues></_></weakClassifiers></_>
<!-- stage 1 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2283716201782227e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 6 2.1136376261711121e-01</internalNodes>
<leafValues>
-8.8292682170867920e-01 7.6744186878204346e-01</leafValues></_>
<_>
<internalNodes>
0 -1 27 -3.6786209791898727e-02</internalNodes>
<leafValues>
6.4631646871566772e-01 -8.5865759849548340e-01</leafValues></_>
<_>
<internalNodes>
0 -1 2 8.2553006708621979e-02</internalNodes>
<leafValues>
-9.6414572000503540e-01 5.1321285963058472e-01</leafValues></_></weakClassifiers></_>
<!-- stage 2 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-5.2522403001785278e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 34 -7.0488560013473034e-03</internalNodes>
<leafValues>
4.6428570151329041e-01 -9.0625000000000000e-01</leafValues></_>
<_>
<internalNodes>
0 -1 1 2.0252991467714310e-02</internalNodes>
<leafValues>
-9.2222303152084351e-01 3.8102594017982483e-01</leafValues></_></weakClassifiers></_>
<!-- stage 3 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2258527278900146e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 35 2.7621425688266754e-02</internalNodes>
<leafValues>
-9.3296086788177490e-01 2.7536231279373169e-01</leafValues></_>
<_>
<internalNodes>
0 -1 18 2.4644609540700912e-02</internalNodes>
<leafValues>
-7.8042775392532349e-01 5.6246817111968994e-01</leafValues></_>
<_>
<internalNodes>
0 -1 28 4.4026337563991547e-02</internalNodes>
<leafValues>
-7.2078734636306763e-01 5.9029269218444824e-01</leafValues></_></weakClassifiers></_>
<!-- stage 4 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.1094360351562500e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 13 5.6299664080142975e-02</internalNodes>
<leafValues>
-8.5567009449005127e-01 3.3333334326744080e-01</leafValues></_>
<_>
<internalNodes>
0 -1 10 2.0412717014551163e-02</internalNodes>
<leafValues>
-6.9705963134765625e-01 6.2128168344497681e-01</leafValues></_>
<_>
<internalNodes>
0 -1 26 3.3632911741733551e-02</internalNodes>
<leafValues>
-7.4570971727371216e-01 6.2287092208862305e-01</leafValues></_></weakClassifiers></_>
<!-- stage 5 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-1.0068651437759399e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 14 2.7963671088218689e-01</internalNodes>
<leafValues>
-8.6885243654251099e-01 1.6923077404499054e-01</leafValues></_>
<_>
<internalNodes>
0 -1 25 1.2323195114731789e-02</internalNodes>
<leafValues>
-7.9252362251281738e-01 3.5135197639465332e-01</leafValues></_>
<_>
<internalNodes>
0 -1 29 1.1619093269109726e-01</internalNodes>
<leafValues>
-8.5458588600158691e-01 4.3786722421646118e-01</leafValues></_>
<_>
<internalNodes>
0 -1 16 1.1368356645107269e-02</internalNodes>
<leafValues>
-8.9688044786453247e-01 3.6522126197814941e-01</leafValues></_></weakClassifiers></_>
<!-- stage 6 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.4377774000167847e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 17 2.8343785554170609e-02</internalNodes>
<leafValues>
-7.5813955068588257e-01 4.5454546809196472e-01</leafValues></_>
<_>
<internalNodes>
0 -1 22 -6.7780455574393272e-03</internalNodes>
<leafValues>
6.8800747394561768e-01 -5.7961523532867432e-01</leafValues></_>
<_>
<internalNodes>
0 -1 9 -9.6869543194770813e-03</internalNodes>
<leafValues>
5.2493661642074585e-01 -8.1870794296264648e-01</leafValues></_></weakClassifiers></_>
<!-- stage 7 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-5.8824944496154785e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 8 2.2776421904563904e-01</internalNodes>
<leafValues>
-7.8431373834609985e-01 2.7272728085517883e-01</leafValues></_>
<_>
<internalNodes>
0 -1 4 -1.3495892286300659e-01</internalNodes>
<leafValues>
3.2428205013275146e-01 -8.6097669601440430e-01</leafValues></_></weakClassifiers></_>
<!-- stage 8 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.8578220605850220e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 31 3.1056167557835579e-02</internalNodes>
<leafValues>
-7.7464789152145386e-01 4.8571428656578064e-01</leafValues></_>
<_>
<internalNodes>
0 -1 15 2.3904092609882355e-02</internalNodes>
<leafValues>
-7.8261238336563110e-01 4.7452750802040100e-01</leafValues></_>
<_>
<internalNodes>
0 -1 24 5.9338808059692383e-02</internalNodes>
<leafValues>
-6.1228525638580322e-01 5.7147806882858276e-01</leafValues></_></weakClassifiers></_>
<!-- stage 9 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2791478633880615e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 11 -1.5193784609436989e-02</internalNodes>
<leafValues>
-6.0240965336561203e-02 -8.6666667461395264e-01</leafValues></_>
<_>
<internalNodes>
0 -1 3 1.2929022312164307e-01</internalNodes>
<leafValues>
-7.7955096960067749e-01 2.7296727895736694e-01</leafValues></_>
<_>
<internalNodes>
0 -1 30 2.4830256006680429e-04</internalNodes>
<leafValues>
-8.2253754138946533e-01 3.6706984043121338e-01</leafValues></_></weakClassifiers></_>
<!-- stage 10 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-9.7741711139678955e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 36 -7.1106562390923500e-03</internalNodes>
<leafValues>
7.4074074625968933e-02 -7.8350514173507690e-01</leafValues></_>
<_>
<internalNodes>
0 -1 37 1.0002901777625084e-02</internalNodes>
<leafValues>
-9.6380352973937988e-01 1.2861841917037964e-01</leafValues></_>
<_>
<internalNodes>
0 -1 12 -1.1527233757078648e-02</internalNodes>
<leafValues>
3.1283980607986450e-01 -7.8981834650039673e-01</leafValues></_>
<_>
<internalNodes>
0 -1 0 7.7132084406912327e-03</internalNodes>
<leafValues>
-9.2314887046813965e-01 3.5634875297546387e-01</leafValues></_>
<_>
<internalNodes>
0 -1 33 -2.8069035615772009e-03</internalNodes>
<leafValues>
3.7375229597091675e-01 -7.4664002656936646e-01</leafValues></_></weakClassifiers></_>
<!-- stage 11 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.3949387073516846e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 19 4.9728322774171829e-03</internalNodes>
<leafValues>
-7.8894472122192383e-01 1.8367347121238708e-01</leafValues></_>
<_>
<internalNodes>
0 -1 21 8.1018730998039246e-03</internalNodes>
<leafValues>
-7.9892826080322266e-01 2.1818427741527557e-01</leafValues></_>
<_>
<internalNodes>
0 -1 5 9.7033903002738953e-03</internalNodes>
<leafValues>
-5.7855868339538574e-01 4.4443655014038086e-01</leafValues></_>
<_>
<internalNodes>
0 -1 20 -6.7393705248832703e-02</internalNodes>
<leafValues>
6.7329019308090210e-01 -4.4816955924034119e-01</leafValues></_>
<_>
<internalNodes>
0 -1 7 3.2395221292972565e-02</internalNodes>
<leafValues>
-8.7441539764404297e-01 4.0108311176300049e-01</leafValues></_></weakClassifiers></_></stages>
<features>
<_>
<rects>
<_>
0 0 10 1 -1.</_>
<_>
5 0 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 1 -1.</_>
<_>
5 0 10 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 12 6 -1.</_>
<_>
6 0 6 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 7 20 -1.</_>
<_>
0 5 7 10 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 9 -1.</_>
<_>
0 3 20 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 4 2 16 -1.</_>
<_>
1 4 1 16 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 4 20 12 -1.</_>
<_>
0 7 20 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 5 6 9 -1.</_>
<_>
0 8 6 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 6 20 12 -1.</_>
<_>
10 6 10 12 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 12 3 8 -1.</_>
<_>
0 16 3 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 14 8 6 -1.</_>
<_>
2 14 4 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 2 15 3 -1.</_>
<_>
1 3 15 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 2 16 3 -1.</_>
<_>
1 3 16 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 3 5 6 -1.</_>
<_>
1 6 5 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 3 18 16 -1.</_>
<_>
1 7 18 8 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 3 16 1 -1.</_>
<_>
6 3 8 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 5 6 2 -1.</_>
<_>
4 7 2 2 3.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
2 9 6 9 -1.</_>
<_>
4 9 2 9 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 0 1 12 -1.</_>
<_>
3 6 1 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 2 6 2 -1.</_>
<_>
3 2 3 1 2.</_>
<_>
6 3 3 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 16 15 3 -1.</_>
<_>
9 17 5 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 0 4 3 -1.</_>
<_>
8 0 2 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 16 6 3 -1.</_>
<_>
6 17 6 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 0 6 13 -1.</_>
<_>
9 0 2 13 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 2 6 15 -1.</_>
<_>
9 2 2 15 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 6 2 -1.</_>
<_>
9 3 2 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 7 6 6 -1.</_>
<_>
9 9 2 2 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 0 4 6 -1.</_>
<_>
6 2 4 2 3.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
9 1 6 14 -1.</_>
<_>
9 1 3 7 2.</_>
<_>
12 8 3 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
10 3 9 15 -1.</_>
<_>
10 8 9 5 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
12 6 4 2 -1.</_>
<_>
12 6 2 1 2.</_>
<_>
14 7 2 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
12 10 8 6 -1.</_>
<_>
14 10 4 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 1 6 8 -1.</_>
<_>
12 3 6 4 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
14 2 4 1 -1.</_>
<_>
15 3 2 1 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
14 2 6 3 -1.</_>
<_>
14 3 6 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 3 2 8 -1.</_>
<_>
16 7 2 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 18 4 2 -1.</_>
<_>
18 18 2 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
18 0 1 20 -1.</_>
<_>
18 5 1 10 2.</_></rects>
<tilted>0</tilted></_></features></cascade>
</opencv_storage>

View File

@@ -0,0 +1,39 @@
<?xml version="1.0"?>
<opencv_storage>
<cascade>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams>
<stageNum>1</stageNum>
<stages>
<!-- stage 0 -->
<_>
<maxWeakCount>1</maxWeakCount>
<stageThreshold>1.</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 0 1.1519325524568558e-01</internalNodes>
<leafValues>
-1. 1.</leafValues></_></weakClassifiers></_></stages>
<features>
<_>
<rects>
<_>
16 2 3 12 -1.</_>
<_>
12 6 3 4 3.</_></rects>
<tilted>1</tilted></_></features></cascade>
</opencv_storage>

View File

@@ -0,0 +1,887 @@
<?xml version="1.0"?>
<opencv_storage>
<cascade>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-001</minHitRate>
<maxFalseAlarm>5.0000000000000000e-001</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-001</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams>
<stageNum>15</stageNum>
<stages>
<!-- stage 0 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-1.1904125660657883e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 27 3.4366466104984283e-002</internalNodes>
<leafValues>
-9.5959597826004028e-001 9.1111111640930176e-001</leafValues></_>
<_>
<internalNodes>
0 -1 17 3.5351995378732681e-002</internalNodes>
<leafValues>
-9.8020136356353760e-001 8.4055471420288086e-001</leafValues></_></weakClassifiers></_>
<!-- stage 1 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-1.6065055131912231e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 5 2.9048809409141541e-001</internalNodes>
<leafValues>
-9.4708997011184692e-001 7.1717172861099243e-001</leafValues></_>
<_>
<internalNodes>
0 -1 50 5.0262402743101120e-002</internalNodes>
<leafValues>
-7.7234727144241333e-001 7.8643941879272461e-001</leafValues></_></weakClassifiers></_>
<!-- stage 2 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.6334284543991089e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 51 5.3355745971202850e-002</internalNodes>
<leafValues>
-8.4158414602279663e-001 7.2093021869659424e-001</leafValues></_>
<_>
<internalNodes>
0 -1 32 1.9017890095710754e-002</internalNodes>
<leafValues>
-7.9365950822830200e-001 5.7417571544647217e-001</leafValues></_>
<_>
<internalNodes>
0 -1 9 8.4164272993803024e-003</internalNodes>
<leafValues>
-6.9593441486358643e-001 6.7576801776885986e-001</leafValues></_></weakClassifiers></_>
<!-- stage 3 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.0980907678604126e+000</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 49 1.3862924277782440e-001</internalNodes>
<leafValues>
-7.8835976123809814e-001 4.1414141654968262e-001</leafValues></_>
<_>
<internalNodes>
0 -1 7 1.2018929421901703e-001</internalNodes>
<leafValues>
-8.2995903491973877e-001 5.1739817857742310e-001</leafValues></_>
<_>
<internalNodes>
0 -1 29 6.9296143949031830e-002</internalNodes>
<leafValues>
-7.7216577529907227e-001 5.2250796556472778e-001</leafValues></_>
<_>
<internalNodes>
0 -1 55 -6.9693401455879211e-003</internalNodes>
<leafValues>
6.8117576837539673e-001 -5.3906446695327759e-001</leafValues></_>
<_>
<internalNodes>
0 -1 23 -4.6523470431566238e-002</internalNodes>
<leafValues>
5.3678452968597412e-001 -7.2046381235122681e-001</leafValues></_></weakClassifiers></_>
<!-- stage 4 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-7.5287377834320068e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 30 5.9669867157936096e-002</internalNodes>
<leafValues>
-7.4489796161651611e-001 4.1304346919059753e-001</leafValues></_>
<_>
<internalNodes>
0 -1 2 1.3445684686303139e-002</internalNodes>
<leafValues>
-7.7788120508193970e-001 4.6229514479637146e-001</leafValues></_>
<_>
<internalNodes>
0 -1 45 -1.7986372113227844e-002</internalNodes>
<leafValues>
3.7505811452865601e-001 -8.3357995748519897e-001</leafValues></_>
<_>
<internalNodes>
0 -1 34 -1.1376420035958290e-002</internalNodes>
<leafValues>
4.6328634023666382e-001 -7.6309412717819214e-001</leafValues></_></weakClassifiers></_>
<!-- stage 5 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-7.4342429637908936e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 6 -5.8313719928264618e-003</internalNodes>
<leafValues>
3.4653463959693909e-001 -7.6470589637756348e-001</leafValues></_>
<_>
<internalNodes>
0 -1 25 3.2979757525026798e-003</internalNodes>
<leafValues>
-7.3521333932876587e-001 4.0015175938606262e-001</leafValues></_>
<_>
<internalNodes>
0 -1 0 2.8315588133409619e-004</internalNodes>
<leafValues>
-7.7022463083267212e-001 3.5349735617637634e-001</leafValues></_>
<_>
<internalNodes>
0 -1 42 -4.9816002137959003e-004</internalNodes>
<leafValues>
4.2861956357955933e-001 -7.0824295282363892e-001</leafValues></_></weakClassifiers></_>
<!-- stage 6 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-6.4555394649505615e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 4 5.7939004898071289e-001</internalNodes>
<leafValues>
-6.6183573007583618e-001 3.5802468657493591e-001</leafValues></_>
<_>
<internalNodes>
0 -1 21 -1.6687558963894844e-002</internalNodes>
<leafValues>
5.4647672176361084e-001 -5.3975820541381836e-001</leafValues></_>
<_>
<internalNodes>
0 -1 60 2.1265654140734114e-005</internalNodes>
<leafValues>
-6.2752234935760498e-001 3.9351144433021545e-001</leafValues></_>
<_>
<internalNodes>
0 -1 46 6.6983029246330261e-002</internalNodes>
<leafValues>
-9.2253303527832031e-001 2.4533702433109283e-001</leafValues></_></weakClassifiers></_>
<!-- stage 7 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-8.6999106407165527e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 22 3.2872073352336884e-002</internalNodes>
<leafValues>
-8.2278478145599365e-001 1.6923077404499054e-001</leafValues></_>
<_>
<internalNodes>
0 -1 56 1.1720009148120880e-001</internalNodes>
<leafValues>
-5.8168739080429077e-001 4.5801275968551636e-001</leafValues></_>
<_>
<internalNodes>
0 -1 12 6.9866264238953590e-003</internalNodes>
<leafValues>
-4.9278238415718079e-001 5.7913672924041748e-001</leafValues></_>
<_>
<internalNodes>
0 -1 18 -2.9733779374510050e-003</internalNodes>
<leafValues>
4.1448754072189331e-001 -6.2596440315246582e-001</leafValues></_>
<_>
<internalNodes>
0 -1 43 -4.4006314128637314e-003</internalNodes>
<leafValues>
7.4588859081268311e-001 -3.7923958897590637e-001</leafValues></_></weakClassifiers></_>
<!-- stage 8 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-7.2486633062362671e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 3 2.1714147180318832e-002</internalNodes>
<leafValues>
-8.0263155698776245e-001 1.0294117778539658e-001</leafValues></_>
<_>
<internalNodes>
0 -1 53 7.8238844871520996e-003</internalNodes>
<leafValues>
-5.0123983621597290e-001 5.8820140361785889e-001</leafValues></_>
<_>
<internalNodes>
0 -1 15 2.6540891267359257e-003</internalNodes>
<leafValues>
-4.9355110526084900e-001 5.1366353034973145e-001</leafValues></_>
<_>
<internalNodes>
0 -1 59 -1.1731262784451246e-003</internalNodes>
<leafValues>
-8.4023118019104004e-001 2.9721990227699280e-001</leafValues></_></weakClassifiers></_>
<!-- stage 9 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-6.0818475484848022e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 31 5.2707802504301071e-002</internalNodes>
<leafValues>
-6.8527919054031372e-001 2.9670330882072449e-001</leafValues></_>
<_>
<internalNodes>
0 -1 8 6.7518748342990875e-002</internalNodes>
<leafValues>
-7.6223957538604736e-001 3.2997161149978638e-001</leafValues></_>
<_>
<internalNodes>
0 -1 48 -1.2102196924388409e-003</internalNodes>
<leafValues>
5.8841788768768311e-001 -4.3890732526779175e-001</leafValues></_>
<_>
<internalNodes>
0 -1 11 2.1901189029449597e-005</internalNodes>
<leafValues>
-7.3106634616851807e-001 3.7173879146575928e-001</leafValues></_></weakClassifiers></_>
<!-- stage 10 -->
<_>
<maxWeakCount>6</maxWeakCount>
<stageThreshold>-1.0043972730636597e+000</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 19 1.8333575129508972e-001</internalNodes>
<leafValues>
-6.5581393241882324e-001 4.5205479860305786e-001</leafValues></_>
<_>
<internalNodes>
0 -1 40 -4.2812071740627289e-002</internalNodes>
<leafValues>
4.3029156327247620e-001 -5.0881063938140869e-001</leafValues></_>
<_>
<internalNodes>
0 -1 57 -1.0015382431447506e-002</internalNodes>
<leafValues>
3.2117792963981628e-001 -6.6418427228927612e-001</leafValues></_>
<_>
<internalNodes>
0 -1 20 5.0185494124889374e-002</internalNodes>
<leafValues>
-5.9623473882675171e-001 3.6050540208816528e-001</leafValues></_>
<_>
<internalNodes>
0 -1 36 -2.8086153324693441e-003</internalNodes>
<leafValues>
-8.8960582017898560e-001 2.5818291306495667e-001</leafValues></_>
<_>
<internalNodes>
0 -1 64 -1.2656298931688070e-003</internalNodes>
<leafValues>
-8.5023450851440430e-001 2.4564331769943237e-001</leafValues></_></weakClassifiers></_>
<!-- stage 11 -->
<_>
<maxWeakCount>7</maxWeakCount>
<stageThreshold>-8.6170506477355957e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 54 9.7151473164558411e-002</internalNodes>
<leafValues>
-5.8441555500030518e-001 4.7368422150611877e-001</leafValues></_>
<_>
<internalNodes>
0 -1 41 -2.7522351592779160e-002</internalNodes>
<leafValues>
4.1773623228073120e-001 -5.2829349040985107e-001</leafValues></_>
<_>
<internalNodes>
0 -1 47 -5.0151135772466660e-002</internalNodes>
<leafValues>
4.1643708944320679e-001 -5.1419234275817871e-001</leafValues></_>
<_>
<internalNodes>
0 -1 13 -1.1980412527918816e-003</internalNodes>
<leafValues>
2.3611299693584442e-001 -8.2664483785629272e-001</leafValues></_>
<_>
<internalNodes>
0 -1 1 3.4218670334666967e-003</internalNodes>
<leafValues>
-7.1486043930053711e-001 2.9136228561401367e-001</leafValues></_>
<_>
<internalNodes>
0 -1 28 4.1605886071920395e-003</internalNodes>
<leafValues>
-3.7625908851623535e-001 6.1018615961074829e-001</leafValues></_>
<_>
<internalNodes>
0 -1 44 5.8592204004526138e-003</internalNodes>
<leafValues>
-2.5573691725730896e-001 8.4279149770736694e-001</leafValues></_></weakClassifiers></_>
<!-- stage 12 -->
<_>
<maxWeakCount>6</maxWeakCount>
<stageThreshold>-1.0506447553634644e+000</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 33 3.0356062576174736e-002</internalNodes>
<leafValues>
-7.0454543828964233e-001 1.4285714924335480e-001</leafValues></_>
<_>
<internalNodes>
0 -1 61 -1.1418197304010391e-002</internalNodes>
<leafValues>
5.7870584726333618e-001 -3.9473026990890503e-001</leafValues></_>
<_>
<internalNodes>
0 -1 62 8.5939792916178703e-003</internalNodes>
<leafValues>
-7.2573381662368774e-001 2.9877531528472900e-001</leafValues></_>
<_>
<internalNodes>
0 -1 35 1.3435125350952148e-002</internalNodes>
<leafValues>
-5.8302259445190430e-001 3.9270570874214172e-001</leafValues></_>
<_>
<internalNodes>
0 -1 63 -1.2715969933196902e-003</internalNodes>
<leafValues>
-8.4091544151306152e-001 2.8896194696426392e-001</leafValues></_>
<_>
<internalNodes>
0 -1 16 -4.0338272228837013e-003</internalNodes>
<leafValues>
-8.5489493608474731e-001 2.2102287411689758e-001</leafValues></_></weakClassifiers></_>
<!-- stage 13 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-5.9828740358352661e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 26 -1.6393268480896950e-002</internalNodes>
<leafValues>
6.7567569017410278e-001 -5.2988046407699585e-001</leafValues></_>
<_>
<internalNodes>
0 -1 14 3.6920449929311872e-004</internalNodes>
<leafValues>
2.9523831605911255e-001 -7.1965837478637695e-001</leafValues></_>
<_>
<internalNodes>
0 -1 58 8.9285410940647125e-003</internalNodes>
<leafValues>
-5.7257694005966187e-001 3.8740223646163940e-001</leafValues></_>
<_>
<internalNodes>
0 -1 10 2.5883363559842110e-003</internalNodes>
<leafValues>
2.6384916901588440e-001 -9.8422628641128540e-001</leafValues></_></weakClassifiers></_>
<!-- stage 14 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-7.3297047615051270e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 24 -2.5055244565010071e-002</internalNodes>
<leafValues>
6.0869562625885010e-001 -5.6198346614837646e-001</leafValues></_>
<_>
<internalNodes>
0 -1 52 1.7512582708150148e-003</internalNodes>
<leafValues>
-7.1301835775375366e-001 2.6307231187820435e-001</leafValues></_>
<_>
<internalNodes>
0 -1 39 4.4407839886844158e-003</internalNodes>
<leafValues>
-3.7482297420501709e-001 5.8060395717620850e-001</leafValues></_>
<_>
<internalNodes>
0 -1 37 3.7488103844225407e-003</internalNodes>
<leafValues>
3.4034672379493713e-001 -6.6739976406097412e-001</leafValues></_>
<_>
<internalNodes>
0 -1 38 -5.2913911640644073e-003</internalNodes>
<leafValues>
6.2683594226837158e-001 -3.4726351499557495e-001</leafValues></_></weakClassifiers></_></stages>
<features>
<_>
<rects>
<_>
0 0 4 1 -1.</_>
<_>
2 0 2 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 6 3 -1.</_>
<_>
3 0 3 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 10 1 -1.</_>
<_>
5 0 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 1 -1.</_>
<_>
5 0 10 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 18 -1.</_>
<_>
0 6 20 6 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 1 20 18 -1.</_>
<_>
0 7 20 6 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 2 5 3 -1.</_>
<_>
0 3 5 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 3 6 15 -1.</_>
<_>
2 8 2 5 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 3 11 8 -1.</_>
<_>
0 7 11 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 5 2 15 -1.</_>
<_>
1 5 1 15 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 8 1 4 -1.</_>
<_>
0 9 1 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 8 4 4 -1.</_>
<_>
0 9 4 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 11 2 9 -1.</_>
<_>
1 11 1 9 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 11 5 4 -1.</_>
<_>
0 13 5 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 14 2 6 -1.</_>
<_>
0 17 2 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 18 10 2 -1.</_>
<_>
0 18 5 1 2.</_>
<_>
5 19 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 11 1 6 -1.</_>
<_>
1 13 1 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 0 10 7 -1.</_>
<_>
7 0 5 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 2 4 3 -1.</_>
<_>
2 3 4 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 5 16 15 -1.</_>
<_>
10 5 8 15 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 1 8 5 -1.</_>
<_>
7 1 4 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 9 4 9 -1.</_>
<_>
6 9 2 9 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 1 6 5 -1.</_>
<_>
8 1 3 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 2 8 2 -1.</_>
<_>
5 2 4 2 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
5 5 6 3 -1.</_>
<_>
7 5 2 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 8 4 1 -1.</_>
<_>
5 8 2 1 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
5 13 10 2 -1.</_>
<_>
5 14 10 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 0 8 12 -1.</_>
<_>
8 0 4 12 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 15 5 3 -1.</_>
<_>
6 16 5 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 0 12 16 -1.</_>
<_>
7 0 6 8 2.</_>
<_>
13 8 6 8 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 1 6 11 -1.</_>
<_>
9 1 2 11 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 2 6 7 -1.</_>
<_>
9 2 2 7 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 6 3 -1.</_>
<_>
9 3 2 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 8 4 -1.</_>
<_>
9 3 4 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 12 1 -1.</_>
<_>
13 3 6 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 9 6 3 -1.</_>
<_>
9 10 2 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 5 3 4 -1.</_>
<_>
8 7 3 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 6 5 2 -1.</_>
<_>
8 7 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 17 10 2 -1.</_>
<_>
8 17 5 1 2.</_>
<_>
13 18 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 18 5 2 -1.</_>
<_>
8 19 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 0 8 12 -1.</_>
<_>
11 0 4 12 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 4 8 8 -1.</_>
<_>
11 4 4 8 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 10 8 1 -1.</_>
<_>
11 10 4 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 16 2 3 -1.</_>
<_>
9 17 2 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
10 13 2 4 -1.</_>
<_>
10 14 2 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
11 1 7 6 -1.</_>
<_>
11 3 7 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
11 1 9 12 -1.</_>
<_>
11 7 9 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
13 1 6 6 -1.</_>
<_>
15 3 2 2 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
13 2 2 2 -1.</_>
<_>
13 2 1 1 2.</_>
<_>
14 3 1 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 3 6 12 -1.</_>
<_>
16 7 2 4 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 3 3 8 -1.</_>
<_>
12 5 3 4 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
14 3 4 8 -1.</_>
<_>
14 7 4 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 7 6 4 -1.</_>
<_>
14 8 6 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 0 3 3 -1.</_>
<_>
16 1 1 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 0 3 9 -1.</_>
<_>
12 3 3 3 3.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
15 2 3 3 -1.</_>
<_>
16 3 1 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 5 5 10 -1.</_>
<_>
15 5 5 5 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
16 0 1 9 -1.</_>
<_>
16 3 1 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 5 4 4 -1.</_>
<_>
15 6 4 2 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
16 9 3 3 -1.</_>
<_>
17 10 1 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 12 4 2 -1.</_>
<_>
17 12 2 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 15 4 5 -1.</_>
<_>
18 15 2 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
18 0 1 10 -1.</_>
<_>
18 5 1 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
18 9 2 4 -1.</_>
<_>
18 9 1 2 2.</_>
<_>
19 11 1 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
19 15 1 3 -1.</_>
<_>
19 16 1 1 3.</_></rects>
<tilted>0</tilted></_></features></cascade>
</opencv_storage>

View File

@@ -0,0 +1,41 @@
import cv2
import os,sys
# 获取 XML 文件,加载人脸检测器
faceCascade = cv2.CascadeClassifier("cascade.xml")
# 读取待检测的图像
image_set = []
for i in range(1,12+1):
file_name = "iut/{}.jpg".format(i)
image_set.append([cv2.imread(file_name), file_name])
for i in range(len(image_set)):
image = image_set[i][0]
file_name = image_set[i][1]
re_file_name = file_name.replace(".jpg","_re.jpg").replace('iut/', 'iut_re/')
# 色彩转换,转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 调用函数 detectMultiScale
faces = faceCascade.detectMultiScale(gray, scaleFactor=1.15, minNeighbors=5, minSize=(5, 5))
# print(faces)
# 打印输出的测试结果
# print("found {0} face in {1}".format(len(faces), os.path.basename(file_name)))
print((re_file_name, len(faces)))
# 逐个标注人脸
for x, y, w, h in faces:
cv2.rectangle(image, (x, y), (x + w, y + w), (0, 255, 0), 2) # 矩形标注
# cv2.circle(image,(int((x+x+w)/2),int((y+y+h)/2)),int(w/2),(0,255,0),2)
# 显示结果
cv2.imshow("dect", image)
# 保存检测结果
cv2.imwrite(re_file_name, image)
# cv2.waitKey(0)
cv2.destroyAllWindows()

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -ex
npx nodemon --ext xml --exec "python ./test.py"

View File

@@ -0,0 +1,544 @@
<?xml version="1.0"?>
<opencv_storage>
<cascade>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams>
<stageNum>12</stageNum>
<stages>
<!-- stage 0 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-2.0792216528207064e-03</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 23 3.5195697098970413e-02</internalNodes>
<leafValues>
-9.7000002861022949e-01 9.5833331346511841e-01</leafValues></_>
<_>
<internalNodes>
0 -1 32 4.9420498311519623e-02</internalNodes>
<leafValues>
-9.3253821134567261e-01 9.6792078018188477e-01</leafValues></_></weakClassifiers></_>
<!-- stage 1 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2283716201782227e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 6 2.1136376261711121e-01</internalNodes>
<leafValues>
-8.8292682170867920e-01 7.6744186878204346e-01</leafValues></_>
<_>
<internalNodes>
0 -1 27 -3.6786209791898727e-02</internalNodes>
<leafValues>
6.4631646871566772e-01 -8.5865759849548340e-01</leafValues></_>
<_>
<internalNodes>
0 -1 2 8.2553006708621979e-02</internalNodes>
<leafValues>
-9.6414572000503540e-01 5.1321285963058472e-01</leafValues></_></weakClassifiers></_>
<!-- stage 2 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-5.2522403001785278e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 34 -7.0488560013473034e-03</internalNodes>
<leafValues>
4.6428570151329041e-01 -9.0625000000000000e-01</leafValues></_>
<_>
<internalNodes>
0 -1 1 2.0252991467714310e-02</internalNodes>
<leafValues>
-9.2222303152084351e-01 3.8102594017982483e-01</leafValues></_></weakClassifiers></_>
<!-- stage 3 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2258527278900146e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 35 2.7621425688266754e-02</internalNodes>
<leafValues>
-9.3296086788177490e-01 2.7536231279373169e-01</leafValues></_>
<_>
<internalNodes>
0 -1 18 2.4644609540700912e-02</internalNodes>
<leafValues>
-7.8042775392532349e-01 5.6246817111968994e-01</leafValues></_>
<_>
<internalNodes>
0 -1 28 4.4026337563991547e-02</internalNodes>
<leafValues>
-7.2078734636306763e-01 5.9029269218444824e-01</leafValues></_></weakClassifiers></_>
<!-- stage 4 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.1094360351562500e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 13 5.6299664080142975e-02</internalNodes>
<leafValues>
-8.5567009449005127e-01 3.3333334326744080e-01</leafValues></_>
<_>
<internalNodes>
0 -1 10 2.0412717014551163e-02</internalNodes>
<leafValues>
-6.9705963134765625e-01 6.2128168344497681e-01</leafValues></_>
<_>
<internalNodes>
0 -1 26 3.3632911741733551e-02</internalNodes>
<leafValues>
-7.4570971727371216e-01 6.2287092208862305e-01</leafValues></_></weakClassifiers></_>
<!-- stage 5 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-1.0068651437759399e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 14 2.7963671088218689e-01</internalNodes>
<leafValues>
-8.6885243654251099e-01 1.6923077404499054e-01</leafValues></_>
<_>
<internalNodes>
0 -1 25 1.2323195114731789e-02</internalNodes>
<leafValues>
-7.9252362251281738e-01 3.5135197639465332e-01</leafValues></_>
<_>
<internalNodes>
0 -1 29 1.1619093269109726e-01</internalNodes>
<leafValues>
-8.5458588600158691e-01 4.3786722421646118e-01</leafValues></_>
<_>
<internalNodes>
0 -1 16 1.1368356645107269e-02</internalNodes>
<leafValues>
-8.9688044786453247e-01 3.6522126197814941e-01</leafValues></_></weakClassifiers></_>
<!-- stage 6 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.4377774000167847e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 17 2.8343785554170609e-02</internalNodes>
<leafValues>
-7.5813955068588257e-01 4.5454546809196472e-01</leafValues></_>
<_>
<internalNodes>
0 -1 22 -6.7780455574393272e-03</internalNodes>
<leafValues>
6.8800747394561768e-01 -5.7961523532867432e-01</leafValues></_>
<_>
<internalNodes>
0 -1 9 -9.6869543194770813e-03</internalNodes>
<leafValues>
5.2493661642074585e-01 -8.1870794296264648e-01</leafValues></_></weakClassifiers></_>
<!-- stage 7 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-5.8824944496154785e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 8 2.2776421904563904e-01</internalNodes>
<leafValues>
-7.8431373834609985e-01 2.7272728085517883e-01</leafValues></_>
<_>
<internalNodes>
0 -1 4 -1.3495892286300659e-01</internalNodes>
<leafValues>
3.2428205013275146e-01 -8.6097669601440430e-01</leafValues></_></weakClassifiers></_>
<!-- stage 8 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.8578220605850220e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 31 3.1056167557835579e-02</internalNodes>
<leafValues>
-7.7464789152145386e-01 4.8571428656578064e-01</leafValues></_>
<_>
<internalNodes>
0 -1 15 2.3904092609882355e-02</internalNodes>
<leafValues>
-7.8261238336563110e-01 4.7452750802040100e-01</leafValues></_>
<_>
<internalNodes>
0 -1 24 5.9338808059692383e-02</internalNodes>
<leafValues>
-6.1228525638580322e-01 5.7147806882858276e-01</leafValues></_></weakClassifiers></_>
<!-- stage 9 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2791478633880615e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 11 -1.5193784609436989e-02</internalNodes>
<leafValues>
-6.0240965336561203e-02 -8.6666667461395264e-01</leafValues></_>
<_>
<internalNodes>
0 -1 3 1.2929022312164307e-01</internalNodes>
<leafValues>
-7.7955096960067749e-01 2.7296727895736694e-01</leafValues></_>
<_>
<internalNodes>
0 -1 30 2.4830256006680429e-04</internalNodes>
<leafValues>
-8.2253754138946533e-01 3.6706984043121338e-01</leafValues></_></weakClassifiers></_>
<!-- stage 10 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-9.7741711139678955e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 36 -7.1106562390923500e-03</internalNodes>
<leafValues>
7.4074074625968933e-02 -7.8350514173507690e-01</leafValues></_>
<_>
<internalNodes>
0 -1 37 1.0002901777625084e-02</internalNodes>
<leafValues>
-9.6380352973937988e-01 1.2861841917037964e-01</leafValues></_>
<_>
<internalNodes>
0 -1 12 -1.1527233757078648e-02</internalNodes>
<leafValues>
3.1283980607986450e-01 -7.8981834650039673e-01</leafValues></_>
<_>
<internalNodes>
0 -1 0 7.7132084406912327e-03</internalNodes>
<leafValues>
-9.2314887046813965e-01 3.5634875297546387e-01</leafValues></_>
<_>
<internalNodes>
0 -1 33 -2.8069035615772009e-03</internalNodes>
<leafValues>
3.7375229597091675e-01 -7.4664002656936646e-01</leafValues></_></weakClassifiers></_>
<!-- stage 11 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.3949387073516846e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 19 4.9728322774171829e-03</internalNodes>
<leafValues>
-7.8894472122192383e-01 1.8367347121238708e-01</leafValues></_>
<_>
<internalNodes>
0 -1 21 8.1018730998039246e-03</internalNodes>
<leafValues>
-7.9892826080322266e-01 2.1818427741527557e-01</leafValues></_>
<_>
<internalNodes>
0 -1 5 9.7033903002738953e-03</internalNodes>
<leafValues>
-5.7855868339538574e-01 4.4443655014038086e-01</leafValues></_>
<_>
<internalNodes>
0 -1 20 -6.7393705248832703e-02</internalNodes>
<leafValues>
6.7329019308090210e-01 -4.4816955924034119e-01</leafValues></_>
<_>
<internalNodes>
0 -1 7 3.2395221292972565e-02</internalNodes>
<leafValues>
-8.7441539764404297e-01 4.0108311176300049e-01</leafValues></_></weakClassifiers></_></stages>
<features>
<_>
<rects>
<_>
0 0 10 1 -1.</_>
<_>
5 0 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 1 -1.</_>
<_>
5 0 10 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 12 6 -1.</_>
<_>
6 0 6 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 7 20 -1.</_>
<_>
0 5 7 10 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 9 -1.</_>
<_>
0 3 20 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 4 2 16 -1.</_>
<_>
1 4 1 16 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 4 20 12 -1.</_>
<_>
0 7 20 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 5 6 9 -1.</_>
<_>
0 8 6 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 6 20 12 -1.</_>
<_>
10 6 10 12 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 12 3 8 -1.</_>
<_>
0 16 3 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 14 8 6 -1.</_>
<_>
2 14 4 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 2 15 3 -1.</_>
<_>
1 3 15 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 2 16 3 -1.</_>
<_>
1 3 16 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 3 5 6 -1.</_>
<_>
1 6 5 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 3 18 16 -1.</_>
<_>
1 7 18 8 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 3 16 1 -1.</_>
<_>
6 3 8 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 5 6 2 -1.</_>
<_>
4 7 2 2 3.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
2 9 6 9 -1.</_>
<_>
4 9 2 9 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 0 1 12 -1.</_>
<_>
3 6 1 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 2 6 2 -1.</_>
<_>
3 2 3 1 2.</_>
<_>
6 3 3 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 16 15 3 -1.</_>
<_>
9 17 5 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 0 4 3 -1.</_>
<_>
8 0 2 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 16 6 3 -1.</_>
<_>
6 17 6 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 0 6 13 -1.</_>
<_>
9 0 2 13 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 2 6 15 -1.</_>
<_>
9 2 2 15 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 6 2 -1.</_>
<_>
9 3 2 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 7 6 6 -1.</_>
<_>
9 9 2 2 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 0 4 6 -1.</_>
<_>
6 2 4 2 3.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
9 1 6 14 -1.</_>
<_>
9 1 3 7 2.</_>
<_>
12 8 3 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
10 3 9 15 -1.</_>
<_>
10 8 9 5 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
12 6 4 2 -1.</_>
<_>
12 6 2 1 2.</_>
<_>
14 7 2 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
12 10 8 6 -1.</_>
<_>
14 10 4 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 1 6 8 -1.</_>
<_>
12 3 6 4 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
14 2 4 1 -1.</_>
<_>
15 3 2 1 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
14 2 6 3 -1.</_>
<_>
14 3 6 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 3 2 8 -1.</_>
<_>
16 7 2 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 18 4 2 -1.</_>
<_>
18 18 2 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
18 0 1 20 -1.</_>
<_>
18 5 1 10 2.</_></rects>
<tilted>0</tilted></_></features></cascade>
</opencv_storage>

View File

@@ -0,0 +1,39 @@
<?xml version="1.0"?>
<opencv_storage>
<cascade>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams>
<stageNum>1</stageNum>
<stages>
<!-- stage 0 -->
<_>
<maxWeakCount>1</maxWeakCount>
<stageThreshold>1.</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 0 1.1519325524568558e-01</internalNodes>
<leafValues>
-1. 1.</leafValues></_></weakClassifiers></_></stages>
<features>
<_>
<rects>
<_>
16 2 3 12 -1.</_>
<_>
12 6 3 4 3.</_></rects>
<tilted>1</tilted></_></features></cascade>
</opencv_storage>

View File

@@ -0,0 +1,887 @@
<?xml version="1.0"?>
<opencv_storage>
<cascade>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-001</minHitRate>
<maxFalseAlarm>5.0000000000000000e-001</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-001</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams>
<stageNum>15</stageNum>
<stages>
<!-- stage 0 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-1.1904125660657883e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 27 3.4366466104984283e-002</internalNodes>
<leafValues>
-9.5959597826004028e-001 9.1111111640930176e-001</leafValues></_>
<_>
<internalNodes>
0 -1 17 3.5351995378732681e-002</internalNodes>
<leafValues>
-9.8020136356353760e-001 8.4055471420288086e-001</leafValues></_></weakClassifiers></_>
<!-- stage 1 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-1.6065055131912231e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 5 2.9048809409141541e-001</internalNodes>
<leafValues>
-9.4708997011184692e-001 7.1717172861099243e-001</leafValues></_>
<_>
<internalNodes>
0 -1 50 5.0262402743101120e-002</internalNodes>
<leafValues>
-7.7234727144241333e-001 7.8643941879272461e-001</leafValues></_></weakClassifiers></_>
<!-- stage 2 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.6334284543991089e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 51 5.3355745971202850e-002</internalNodes>
<leafValues>
-8.4158414602279663e-001 7.2093021869659424e-001</leafValues></_>
<_>
<internalNodes>
0 -1 32 1.9017890095710754e-002</internalNodes>
<leafValues>
-7.9365950822830200e-001 5.7417571544647217e-001</leafValues></_>
<_>
<internalNodes>
0 -1 9 8.4164272993803024e-003</internalNodes>
<leafValues>
-6.9593441486358643e-001 6.7576801776885986e-001</leafValues></_></weakClassifiers></_>
<!-- stage 3 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.0980907678604126e+000</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 49 1.3862924277782440e-001</internalNodes>
<leafValues>
-7.8835976123809814e-001 4.1414141654968262e-001</leafValues></_>
<_>
<internalNodes>
0 -1 7 1.2018929421901703e-001</internalNodes>
<leafValues>
-8.2995903491973877e-001 5.1739817857742310e-001</leafValues></_>
<_>
<internalNodes>
0 -1 29 6.9296143949031830e-002</internalNodes>
<leafValues>
-7.7216577529907227e-001 5.2250796556472778e-001</leafValues></_>
<_>
<internalNodes>
0 -1 55 -6.9693401455879211e-003</internalNodes>
<leafValues>
6.8117576837539673e-001 -5.3906446695327759e-001</leafValues></_>
<_>
<internalNodes>
0 -1 23 -4.6523470431566238e-002</internalNodes>
<leafValues>
5.3678452968597412e-001 -7.2046381235122681e-001</leafValues></_></weakClassifiers></_>
<!-- stage 4 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-7.5287377834320068e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 30 5.9669867157936096e-002</internalNodes>
<leafValues>
-7.4489796161651611e-001 4.1304346919059753e-001</leafValues></_>
<_>
<internalNodes>
0 -1 2 1.3445684686303139e-002</internalNodes>
<leafValues>
-7.7788120508193970e-001 4.6229514479637146e-001</leafValues></_>
<_>
<internalNodes>
0 -1 45 -1.7986372113227844e-002</internalNodes>
<leafValues>
3.7505811452865601e-001 -8.3357995748519897e-001</leafValues></_>
<_>
<internalNodes>
0 -1 34 -1.1376420035958290e-002</internalNodes>
<leafValues>
4.6328634023666382e-001 -7.6309412717819214e-001</leafValues></_></weakClassifiers></_>
<!-- stage 5 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-7.4342429637908936e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 6 -5.8313719928264618e-003</internalNodes>
<leafValues>
3.4653463959693909e-001 -7.6470589637756348e-001</leafValues></_>
<_>
<internalNodes>
0 -1 25 3.2979757525026798e-003</internalNodes>
<leafValues>
-7.3521333932876587e-001 4.0015175938606262e-001</leafValues></_>
<_>
<internalNodes>
0 -1 0 2.8315588133409619e-004</internalNodes>
<leafValues>
-7.7022463083267212e-001 3.5349735617637634e-001</leafValues></_>
<_>
<internalNodes>
0 -1 42 -4.9816002137959003e-004</internalNodes>
<leafValues>
4.2861956357955933e-001 -7.0824295282363892e-001</leafValues></_></weakClassifiers></_>
<!-- stage 6 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-6.4555394649505615e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 4 5.7939004898071289e-001</internalNodes>
<leafValues>
-6.6183573007583618e-001 3.5802468657493591e-001</leafValues></_>
<_>
<internalNodes>
0 -1 21 -1.6687558963894844e-002</internalNodes>
<leafValues>
5.4647672176361084e-001 -5.3975820541381836e-001</leafValues></_>
<_>
<internalNodes>
0 -1 60 2.1265654140734114e-005</internalNodes>
<leafValues>
-6.2752234935760498e-001 3.9351144433021545e-001</leafValues></_>
<_>
<internalNodes>
0 -1 46 6.6983029246330261e-002</internalNodes>
<leafValues>
-9.2253303527832031e-001 2.4533702433109283e-001</leafValues></_></weakClassifiers></_>
<!-- stage 7 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-8.6999106407165527e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 22 3.2872073352336884e-002</internalNodes>
<leafValues>
-8.2278478145599365e-001 1.6923077404499054e-001</leafValues></_>
<_>
<internalNodes>
0 -1 56 1.1720009148120880e-001</internalNodes>
<leafValues>
-5.8168739080429077e-001 4.5801275968551636e-001</leafValues></_>
<_>
<internalNodes>
0 -1 12 6.9866264238953590e-003</internalNodes>
<leafValues>
-4.9278238415718079e-001 5.7913672924041748e-001</leafValues></_>
<_>
<internalNodes>
0 -1 18 -2.9733779374510050e-003</internalNodes>
<leafValues>
4.1448754072189331e-001 -6.2596440315246582e-001</leafValues></_>
<_>
<internalNodes>
0 -1 43 -4.4006314128637314e-003</internalNodes>
<leafValues>
7.4588859081268311e-001 -3.7923958897590637e-001</leafValues></_></weakClassifiers></_>
<!-- stage 8 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-7.2486633062362671e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 3 2.1714147180318832e-002</internalNodes>
<leafValues>
-8.0263155698776245e-001 1.0294117778539658e-001</leafValues></_>
<_>
<internalNodes>
0 -1 53 7.8238844871520996e-003</internalNodes>
<leafValues>
-5.0123983621597290e-001 5.8820140361785889e-001</leafValues></_>
<_>
<internalNodes>
0 -1 15 2.6540891267359257e-003</internalNodes>
<leafValues>
-4.9355110526084900e-001 5.1366353034973145e-001</leafValues></_>
<_>
<internalNodes>
0 -1 59 -1.1731262784451246e-003</internalNodes>
<leafValues>
-8.4023118019104004e-001 2.9721990227699280e-001</leafValues></_></weakClassifiers></_>
<!-- stage 9 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-6.0818475484848022e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 31 5.2707802504301071e-002</internalNodes>
<leafValues>
-6.8527919054031372e-001 2.9670330882072449e-001</leafValues></_>
<_>
<internalNodes>
0 -1 8 6.7518748342990875e-002</internalNodes>
<leafValues>
-7.6223957538604736e-001 3.2997161149978638e-001</leafValues></_>
<_>
<internalNodes>
0 -1 48 -1.2102196924388409e-003</internalNodes>
<leafValues>
5.8841788768768311e-001 -4.3890732526779175e-001</leafValues></_>
<_>
<internalNodes>
0 -1 11 2.1901189029449597e-005</internalNodes>
<leafValues>
-7.3106634616851807e-001 3.7173879146575928e-001</leafValues></_></weakClassifiers></_>
<!-- stage 10 -->
<_>
<maxWeakCount>6</maxWeakCount>
<stageThreshold>-1.0043972730636597e+000</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 19 1.8333575129508972e-001</internalNodes>
<leafValues>
-6.5581393241882324e-001 4.5205479860305786e-001</leafValues></_>
<_>
<internalNodes>
0 -1 40 -4.2812071740627289e-002</internalNodes>
<leafValues>
4.3029156327247620e-001 -5.0881063938140869e-001</leafValues></_>
<_>
<internalNodes>
0 -1 57 -1.0015382431447506e-002</internalNodes>
<leafValues>
3.2117792963981628e-001 -6.6418427228927612e-001</leafValues></_>
<_>
<internalNodes>
0 -1 20 5.0185494124889374e-002</internalNodes>
<leafValues>
-5.9623473882675171e-001 3.6050540208816528e-001</leafValues></_>
<_>
<internalNodes>
0 -1 36 -2.8086153324693441e-003</internalNodes>
<leafValues>
-8.8960582017898560e-001 2.5818291306495667e-001</leafValues></_>
<_>
<internalNodes>
0 -1 64 -1.2656298931688070e-003</internalNodes>
<leafValues>
-8.5023450851440430e-001 2.4564331769943237e-001</leafValues></_></weakClassifiers></_>
<!-- stage 11 -->
<_>
<maxWeakCount>7</maxWeakCount>
<stageThreshold>-8.6170506477355957e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 54 9.7151473164558411e-002</internalNodes>
<leafValues>
-5.8441555500030518e-001 4.7368422150611877e-001</leafValues></_>
<_>
<internalNodes>
0 -1 41 -2.7522351592779160e-002</internalNodes>
<leafValues>
4.1773623228073120e-001 -5.2829349040985107e-001</leafValues></_>
<_>
<internalNodes>
0 -1 47 -5.0151135772466660e-002</internalNodes>
<leafValues>
4.1643708944320679e-001 -5.1419234275817871e-001</leafValues></_>
<_>
<internalNodes>
0 -1 13 -1.1980412527918816e-003</internalNodes>
<leafValues>
2.3611299693584442e-001 -8.2664483785629272e-001</leafValues></_>
<_>
<internalNodes>
0 -1 1 3.4218670334666967e-003</internalNodes>
<leafValues>
-7.1486043930053711e-001 2.9136228561401367e-001</leafValues></_>
<_>
<internalNodes>
0 -1 28 4.1605886071920395e-003</internalNodes>
<leafValues>
-3.7625908851623535e-001 6.1018615961074829e-001</leafValues></_>
<_>
<internalNodes>
0 -1 44 5.8592204004526138e-003</internalNodes>
<leafValues>
-2.5573691725730896e-001 8.4279149770736694e-001</leafValues></_></weakClassifiers></_>
<!-- stage 12 -->
<_>
<maxWeakCount>6</maxWeakCount>
<stageThreshold>-1.0506447553634644e+000</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 33 3.0356062576174736e-002</internalNodes>
<leafValues>
-7.0454543828964233e-001 1.4285714924335480e-001</leafValues></_>
<_>
<internalNodes>
0 -1 61 -1.1418197304010391e-002</internalNodes>
<leafValues>
5.7870584726333618e-001 -3.9473026990890503e-001</leafValues></_>
<_>
<internalNodes>
0 -1 62 8.5939792916178703e-003</internalNodes>
<leafValues>
-7.2573381662368774e-001 2.9877531528472900e-001</leafValues></_>
<_>
<internalNodes>
0 -1 35 1.3435125350952148e-002</internalNodes>
<leafValues>
-5.8302259445190430e-001 3.9270570874214172e-001</leafValues></_>
<_>
<internalNodes>
0 -1 63 -1.2715969933196902e-003</internalNodes>
<leafValues>
-8.4091544151306152e-001 2.8896194696426392e-001</leafValues></_>
<_>
<internalNodes>
0 -1 16 -4.0338272228837013e-003</internalNodes>
<leafValues>
-8.5489493608474731e-001 2.2102287411689758e-001</leafValues></_></weakClassifiers></_>
<!-- stage 13 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-5.9828740358352661e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 26 -1.6393268480896950e-002</internalNodes>
<leafValues>
6.7567569017410278e-001 -5.2988046407699585e-001</leafValues></_>
<_>
<internalNodes>
0 -1 14 3.6920449929311872e-004</internalNodes>
<leafValues>
2.9523831605911255e-001 -7.1965837478637695e-001</leafValues></_>
<_>
<internalNodes>
0 -1 58 8.9285410940647125e-003</internalNodes>
<leafValues>
-5.7257694005966187e-001 3.8740223646163940e-001</leafValues></_>
<_>
<internalNodes>
0 -1 10 2.5883363559842110e-003</internalNodes>
<leafValues>
2.6384916901588440e-001 -9.8422628641128540e-001</leafValues></_></weakClassifiers></_>
<!-- stage 14 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-7.3297047615051270e-001</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 24 -2.5055244565010071e-002</internalNodes>
<leafValues>
6.0869562625885010e-001 -5.6198346614837646e-001</leafValues></_>
<_>
<internalNodes>
0 -1 52 1.7512582708150148e-003</internalNodes>
<leafValues>
-7.1301835775375366e-001 2.6307231187820435e-001</leafValues></_>
<_>
<internalNodes>
0 -1 39 4.4407839886844158e-003</internalNodes>
<leafValues>
-3.7482297420501709e-001 5.8060395717620850e-001</leafValues></_>
<_>
<internalNodes>
0 -1 37 3.7488103844225407e-003</internalNodes>
<leafValues>
3.4034672379493713e-001 -6.6739976406097412e-001</leafValues></_>
<_>
<internalNodes>
0 -1 38 -5.2913911640644073e-003</internalNodes>
<leafValues>
6.2683594226837158e-001 -3.4726351499557495e-001</leafValues></_></weakClassifiers></_></stages>
<features>
<_>
<rects>
<_>
0 0 4 1 -1.</_>
<_>
2 0 2 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 6 3 -1.</_>
<_>
3 0 3 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 10 1 -1.</_>
<_>
5 0 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 1 -1.</_>
<_>
5 0 10 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 18 -1.</_>
<_>
0 6 20 6 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 1 20 18 -1.</_>
<_>
0 7 20 6 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 2 5 3 -1.</_>
<_>
0 3 5 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 3 6 15 -1.</_>
<_>
2 8 2 5 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 3 11 8 -1.</_>
<_>
0 7 11 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 5 2 15 -1.</_>
<_>
1 5 1 15 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 8 1 4 -1.</_>
<_>
0 9 1 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 8 4 4 -1.</_>
<_>
0 9 4 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 11 2 9 -1.</_>
<_>
1 11 1 9 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 11 5 4 -1.</_>
<_>
0 13 5 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 14 2 6 -1.</_>
<_>
0 17 2 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 18 10 2 -1.</_>
<_>
0 18 5 1 2.</_>
<_>
5 19 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 11 1 6 -1.</_>
<_>
1 13 1 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 0 10 7 -1.</_>
<_>
7 0 5 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 2 4 3 -1.</_>
<_>
2 3 4 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 5 16 15 -1.</_>
<_>
10 5 8 15 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 1 8 5 -1.</_>
<_>
7 1 4 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 9 4 9 -1.</_>
<_>
6 9 2 9 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 1 6 5 -1.</_>
<_>
8 1 3 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 2 8 2 -1.</_>
<_>
5 2 4 2 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
5 5 6 3 -1.</_>
<_>
7 5 2 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 8 4 1 -1.</_>
<_>
5 8 2 1 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
5 13 10 2 -1.</_>
<_>
5 14 10 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 0 8 12 -1.</_>
<_>
8 0 4 12 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 15 5 3 -1.</_>
<_>
6 16 5 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 0 12 16 -1.</_>
<_>
7 0 6 8 2.</_>
<_>
13 8 6 8 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 1 6 11 -1.</_>
<_>
9 1 2 11 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 2 6 7 -1.</_>
<_>
9 2 2 7 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 6 3 -1.</_>
<_>
9 3 2 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 8 4 -1.</_>
<_>
9 3 4 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 12 1 -1.</_>
<_>
13 3 6 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 9 6 3 -1.</_>
<_>
9 10 2 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 5 3 4 -1.</_>
<_>
8 7 3 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 6 5 2 -1.</_>
<_>
8 7 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 17 10 2 -1.</_>
<_>
8 17 5 1 2.</_>
<_>
13 18 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 18 5 2 -1.</_>
<_>
8 19 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 0 8 12 -1.</_>
<_>
11 0 4 12 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 4 8 8 -1.</_>
<_>
11 4 4 8 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 10 8 1 -1.</_>
<_>
11 10 4 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 16 2 3 -1.</_>
<_>
9 17 2 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
10 13 2 4 -1.</_>
<_>
10 14 2 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
11 1 7 6 -1.</_>
<_>
11 3 7 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
11 1 9 12 -1.</_>
<_>
11 7 9 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
13 1 6 6 -1.</_>
<_>
15 3 2 2 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
13 2 2 2 -1.</_>
<_>
13 2 1 1 2.</_>
<_>
14 3 1 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 3 6 12 -1.</_>
<_>
16 7 2 4 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 3 3 8 -1.</_>
<_>
12 5 3 4 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
14 3 4 8 -1.</_>
<_>
14 7 4 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 7 6 4 -1.</_>
<_>
14 8 6 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 0 3 3 -1.</_>
<_>
16 1 1 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 0 3 9 -1.</_>
<_>
12 3 3 3 3.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
15 2 3 3 -1.</_>
<_>
16 3 1 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 5 5 10 -1.</_>
<_>
15 5 5 5 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
16 0 1 9 -1.</_>
<_>
16 3 1 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 5 4 4 -1.</_>
<_>
15 6 4 2 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
16 9 3 3 -1.</_>
<_>
17 10 1 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 12 4 2 -1.</_>
<_>
17 12 2 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 15 4 5 -1.</_>
<_>
18 15 2 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
18 0 1 10 -1.</_>
<_>
18 5 1 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
18 9 2 4 -1.</_>
<_>
18 9 1 2 2.</_>
<_>
19 11 1 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
19 15 1 3 -1.</_>
<_>
19 16 1 1 3.</_></rects>
<tilted>0</tilted></_></features></cascade>
</opencv_storage>

View File

@@ -0,0 +1,29 @@
import cv2
# 读取待检测的图像
image = cv2.imread("12.jpg")
# 获取 XML 文件,加载人脸检测器
faceCascade = cv2.CascadeClassifier("cascade.xml")
# 色彩转换,转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 调用函数 detectMultiScale
faces = faceCascade.detectMultiScale(gray, scaleFactor=1.15, minNeighbors=5, minSize=(5, 5))
# print(faces)
# 打印输出的测试结果
print("发现{0}个人脸!".format(len(faces)))
# 逐个标注人脸
for x, y, w, h in faces:
cv2.rectangle(image, (x, y), (x + w, y + w), (0, 255, 0), 2) # 矩形标注
# cv2.circle(image,(int((x+x+w)/2),int((y+y+h)/2)),int(w/2),(0,255,0),2)
# 显示结果
cv2.imshow("dect", image)
# 保存检测结果
cv2.imwrite("re.jpg", image)
# cv2.waitKey(0)
cv2.destroyAllWindows()

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -ex
npx nodemon --ext xml --exec "python ./face_test.py"

View File

@@ -0,0 +1,29 @@
#!/usr/bin/env bash
set -ex
cd negdata
python _ReName.py
python ./_GenTXT.py
python ./_copy.py
cd ..
cd posdata
python _ReName.py
python ./_GenTXT.py
python ./_copy.py
cd ..
python ./process_txt_files.py
./step1.sh
./step2_t1.sh
cp xml_step2_t1/cascade.xml test_case/beach_test/cascade.xml
cd test_case/beach_test
./test.sh
cd ..
# echo "done"
# exit 0

View File

@@ -0,0 +1,594 @@
<?xml version="1.0"?>
<opencv_storage>
<cascade>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams>
<stageNum>12</stageNum>
<stages>
<!-- stage 0 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-2.5608992576599121e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 19 7.4999824166297913e-02</internalNodes>
<leafValues>
-9.1044777631759644e-01 7.4468082189559937e-01</leafValues></_>
<_>
<internalNodes>
0 -1 6 9.9113196134567261e-02</internalNodes>
<leafValues>
-9.2193228006362915e-01 6.5435785055160522e-01</leafValues></_></weakClassifiers></_>
<!-- stage 1 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0775502920150757e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 7 6.4352616667747498e-02</internalNodes>
<leafValues>
-7.8280544281005859e-01 9.2592591047286987e-01</leafValues></_>
<_>
<internalNodes>
0 -1 5 8.6798444390296936e-02</internalNodes>
<leafValues>
-8.2423853874206543e-01 5.4696905612945557e-01</leafValues></_>
<_>
<internalNodes>
0 -1 35 4.9258150160312653e-02</internalNodes>
<leafValues>
-9.4359773397445679e-01 5.2949368953704834e-01</leafValues></_></weakClassifiers></_>
<!-- stage 2 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-5.0766927003860474e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 4 8.1167593598365784e-02</internalNodes>
<leafValues>
-9.2307692766189575e-01 3.0303031206130981e-01</leafValues></_>
<_>
<internalNodes>
0 -1 8 -9.1085352003574371e-02</internalNodes>
<leafValues>
4.3652963638305664e-01 -8.1069958209991455e-01</leafValues></_></weakClassifiers></_>
<!-- stage 3 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0677227973937988e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 24 3.9891637861728668e-02</internalNodes>
<leafValues>
-8.2857143878936768e-01 6.8421053886413574e-01</leafValues></_>
<_>
<internalNodes>
0 -1 27 -8.9151952415704727e-03</internalNodes>
<leafValues>
4.6722087264060974e-01 -9.0501767396926880e-01</leafValues></_>
<_>
<internalNodes>
0 -1 14 -8.2798525691032410e-02</internalNodes>
<leafValues>
6.7119181156158447e-01 -7.0637220144271851e-01</leafValues></_></weakClassifiers></_>
<!-- stage 4 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2176305055618286e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 11 -2.1015079692006111e-02</internalNodes>
<leafValues>
2.8000000119209290e-01 -8.1818181276321411e-01</leafValues></_>
<_>
<internalNodes>
0 -1 23 5.0599854439496994e-02</internalNodes>
<leafValues>
-7.0883417129516602e-01 4.5477023720741272e-01</leafValues></_>
<_>
<internalNodes>
0 -1 13 1.9625321030616760e-02</internalNodes>
<leafValues>
-8.5421890020370483e-01 4.3564090132713318e-01</leafValues></_></weakClassifiers></_>
<!-- stage 5 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.1659464836120605e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 15 -1.4186348766088486e-02</internalNodes>
<leafValues>
2.7586206793785095e-01 -8.6315786838531494e-01</leafValues></_>
<_>
<internalNodes>
0 -1 3 2.5605481117963791e-02</internalNodes>
<leafValues>
-7.2781729698181152e-01 4.0837594866752625e-01</leafValues></_>
<_>
<internalNodes>
0 -1 0 8.1282196333631873e-05</internalNodes>
<leafValues>
-7.1116447448730469e-01 4.8628303408622742e-01</leafValues></_></weakClassifiers></_>
<!-- stage 6 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-1.5175080299377441e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 33 3.3173318952322006e-02</internalNodes>
<leafValues>
-7.8536587953567505e-01 3.0232557654380798e-01</leafValues></_>
<_>
<internalNodes>
0 -1 36 3.3916704356670380e-02</internalNodes>
<leafValues>
-6.2204116582870483e-01 5.9043234586715698e-01</leafValues></_>
<_>
<internalNodes>
0 -1 39 1.6524917446076870e-03</internalNodes>
<leafValues>
-5.8125901222229004e-01 6.3796299695968628e-01</leafValues></_>
<_>
<internalNodes>
0 -1 1 6.9739250466227531e-03</internalNodes>
<leafValues>
-7.7862620353698730e-01 4.7115799784660339e-01</leafValues></_></weakClassifiers></_>
<!-- stage 7 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.1100143194198608e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 31 1.3911767303943634e-01</internalNodes>
<leafValues>
-8.5026735067367554e-01 1.8032786250114441e-01</leafValues></_>
<_>
<internalNodes>
0 -1 16 -5.2807949483394623e-02</internalNodes>
<leafValues>
4.9073439836502075e-01 -7.1471303701400757e-01</leafValues></_>
<_>
<internalNodes>
0 -1 32 2.3795636370778084e-02</internalNodes>
<leafValues>
-5.7562911510467529e-01 6.4792627096176147e-01</leafValues></_></weakClassifiers></_>
<!-- stage 8 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-9.2488884925842285e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 40 3.1490243971347809e-02</internalNodes>
<leafValues>
-8.5142856836318970e-01 1.3698630034923553e-02</leafValues></_>
<_>
<internalNodes>
0 -1 17 6.1922192573547363e-02</internalNodes>
<leafValues>
-6.1463260650634766e-01 3.5422840714454651e-01</leafValues></_>
<_>
<internalNodes>
0 -1 41 -1.0204865830019116e-03</internalNodes>
<leafValues>
3.9455986022949219e-01 -6.3372427225112915e-01</leafValues></_>
<_>
<internalNodes>
0 -1 18 -4.7158692032098770e-02</internalNodes>
<leafValues>
3.7966537475585938e-01 -6.5909165143966675e-01</leafValues></_></weakClassifiers></_>
<!-- stage 9 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.0123676061630249e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 26 1.5428757295012474e-02</internalNodes>
<leafValues>
-7.4193549156188965e-01 4.1935482621192932e-01</leafValues></_>
<_>
<internalNodes>
0 -1 12 2.3843746632337570e-02</internalNodes>
<leafValues>
-6.7536532878875732e-01 3.2841202616691589e-01</leafValues></_>
<_>
<internalNodes>
0 -1 20 3.1366597395390272e-03</internalNodes>
<leafValues>
-6.2584090232849121e-01 4.5511385798454285e-01</leafValues></_>
<_>
<internalNodes>
0 -1 25 6.3378512859344482e-03</internalNodes>
<leafValues>
-5.9743005037307739e-01 5.1810485124588013e-01</leafValues></_>
<_>
<internalNodes>
0 -1 38 1.9073241855949163e-03</internalNodes>
<leafValues>
-4.9110803008079529e-01 6.8654793500900269e-01</leafValues></_></weakClassifiers></_>
<!-- stage 10 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.0622880458831787e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 29 1.3075061142444611e-02</internalNodes>
<leafValues>
-7.0305675268173218e-01 6.8421053886413574e-01</leafValues></_>
<_>
<internalNodes>
0 -1 34 1.3329303264617920e-01</internalNodes>
<leafValues>
-7.6219099760055542e-01 3.1620588898658752e-01</leafValues></_>
<_>
<internalNodes>
0 -1 28 3.8607125170528889e-03</internalNodes>
<leafValues>
-5.5370372533798218e-01 4.7313386201858521e-01</leafValues></_>
<_>
<internalNodes>
0 -1 37 -8.3823483437299728e-03</internalNodes>
<leafValues>
6.8716096878051758e-01 -4.0297099947929382e-01</leafValues></_>
<_>
<internalNodes>
0 -1 2 3.7839706055819988e-03</internalNodes>
<leafValues>
-7.4560004472732544e-01 3.7435856461524963e-01</leafValues></_></weakClassifiers></_>
<!-- stage 11 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-9.6727126836776733e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 30 1.9753053784370422e-02</internalNodes>
<leafValues>
-6.8510639667510986e-01 1.</leafValues></_>
<_>
<internalNodes>
0 -1 22 1.9954916089773178e-02</internalNodes>
<leafValues>
-6.1373251676559448e-01 3.7583196163177490e-01</leafValues></_>
<_>
<internalNodes>
0 -1 21 -2.7106886263936758e-03</internalNodes>
<leafValues>
6.8071520328521729e-01 -3.7513715028762817e-01</leafValues></_>
<_>
<internalNodes>
0 -1 10 1.9645741581916809e-01</internalNodes>
<leafValues>
-8.4338104724884033e-01 4.2020255327224731e-01</leafValues></_>
<_>
<internalNodes>
0 -1 9 1.9025087822228670e-03</internalNodes>
<leafValues>
2.8650224208831787e-01 -9.0300935506820679e-01</leafValues></_></weakClassifiers></_></stages>
<features>
<_>
<rects>
<_>
0 0 1 2 -1.</_>
<_>
0 1 1 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 2 20 -1.</_>
<_>
1 0 1 20 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 6 3 -1.</_>
<_>
3 0 3 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 1 -1.</_>
<_>
5 0 10 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 12 6 -1.</_>
<_>
6 0 6 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 12 7 -1.</_>
<_>
6 0 6 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 4 20 6 -1.</_>
<_>
0 7 20 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 6 8 10 -1.</_>
<_>
2 6 4 10 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 6 10 14 -1.</_>
<_>
0 13 10 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 8 1 4 -1.</_>
<_>
0 9 1 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 0 18 12 -1.</_>
<_>
2 6 18 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 2 18 3 -1.</_>
<_>
2 3 18 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 3 16 1 -1.</_>
<_>
6 3 8 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 4 3 6 -1.</_>
<_>
2 7 3 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 0 8 18 -1.</_>
<_>
3 0 4 9 2.</_>
<_>
7 9 4 9 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 2 15 3 -1.</_>
<_>
3 3 15 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 1 15 6 -1.</_>
<_>
4 3 15 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 11 14 5 -1.</_>
<_>
11 11 7 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 2 8 2 -1.</_>
<_>
5 2 4 2 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
6 0 9 10 -1.</_>
<_>
9 0 3 10 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 0 14 2 -1.</_>
<_>
6 0 7 1 2.</_>
<_>
13 1 7 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 10 2 4 -1.</_>
<_>
6 10 1 2 2.</_>
<_>
7 12 1 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 10 4 4 -1.</_>
<_>
6 10 2 4 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
7 2 6 9 -1.</_>
<_>
9 2 2 9 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 4 9 -1.</_>
<_>
9 3 2 9 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 8 2 3 -1.</_>
<_>
7 8 1 3 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
8 3 3 5 -1.</_>
<_>
9 3 1 5 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 3 10 1 -1.</_>
<_>
13 3 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 8 4 1 -1.</_>
<_>
10 9 2 1 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
9 14 5 3 -1.</_>
<_>
9 15 5 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
10 0 10 2 -1.</_>
<_>
10 0 5 1 2.</_>
<_>
15 1 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
12 5 7 8 -1.</_>
<_>
12 5 7 4 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
12 11 8 5 -1.</_>
<_>
14 11 4 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
12 12 8 7 -1.</_>
<_>
14 12 4 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 0 6 20 -1.</_>
<_>
14 5 6 10 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 3 4 15 -1.</_>
<_>
14 8 4 5 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 3 6 4 -1.</_>
<_>
14 5 6 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 19 6 1 -1.</_>
<_>
17 19 3 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 7 2 2 -1.</_>
<_>
15 7 2 1 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
16 0 1 3 -1.</_>
<_>
16 1 1 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 3 2 8 -1.</_>
<_>
16 7 2 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
18 13 2 4 -1.</_>
<_>
19 13 1 4 2.</_></rects>
<tilted>0</tilted></_></features></cascade>
</opencv_storage>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0"?>
<opencv_storage>
<params>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams></params>
</opencv_storage>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<opencv_storage>
<stage0>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-2.5608992576599121e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 56095 7.4999824166297913e-02</internalNodes>
<leafValues>
-9.1044777631759644e-01 7.4468082189559937e-01</leafValues></_>
<_>
<internalNodes>
0 -1 4347 9.9113196134567261e-02</internalNodes>
<leafValues>
-9.2193228006362915e-01 6.5435785055160522e-01</leafValues></_></weakClassifiers></stage0>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage1>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0775502920150757e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 5194 6.4352616667747498e-02</internalNodes>
<leafValues>
-7.8280544281005859e-01 9.2592591047286987e-01</leafValues></_>
<_>
<internalNodes>
0 -1 526 8.6798444390296936e-02</internalNodes>
<leafValues>
-8.2423853874206543e-01 5.4696905612945557e-01</leafValues></_>
<_>
<internalNodes>
0 -1 112026 4.9258150160312653e-02</internalNodes>
<leafValues>
-9.4359773397445679e-01 5.2949368953704834e-01</leafValues></_></weakClassifiers></stage1>
</opencv_storage>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<opencv_storage>
<stage10>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.0622880458831787e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 86548 1.3075061142444611e-02</internalNodes>
<leafValues>
-7.0305675268173218e-01 6.8421053886413574e-01</leafValues></_>
<_>
<internalNodes>
0 -1 110832 1.3329303264617920e-01</internalNodes>
<leafValues>
-7.6219099760055542e-01 3.1620588898658752e-01</leafValues></_>
<_>
<internalNodes>
0 -1 84630 3.8607125170528889e-03</internalNodes>
<leafValues>
-5.5370372533798218e-01 4.7313386201858521e-01</leafValues></_>
<_>
<internalNodes>
0 -1 114913 -8.3823483437299728e-03</internalNodes>
<leafValues>
6.8716096878051758e-01 -4.0297099947929382e-01</leafValues></_>
<_>
<internalNodes>
0 -1 210 3.7839706055819988e-03</internalNodes>
<leafValues>
-7.4560004472732544e-01 3.7435856461524963e-01</leafValues></_></weakClassifiers></stage10>
</opencv_storage>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<opencv_storage>
<stage11>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-9.6727126836776733e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 87385 1.9753053784370422e-02</internalNodes>
<leafValues>
-6.8510639667510986e-01 1.</leafValues></_>
<_>
<internalNodes>
0 -1 62317 1.9954916089773178e-02</internalNodes>
<leafValues>
-6.1373251676559448e-01 3.7583196163177490e-01</leafValues></_>
<_>
<internalNodes>
0 -1 62223 -2.7106886263936758e-03</internalNodes>
<leafValues>
6.8071520328521729e-01 -3.7513715028762817e-01</leafValues></_>
<_>
<internalNodes>
0 -1 20289 1.9645741581916809e-01</internalNodes>
<leafValues>
-8.4338104724884033e-01 4.2020255327224731e-01</leafValues></_>
<_>
<internalNodes>
0 -1 6363 1.9025087822228670e-03</internalNodes>
<leafValues>
2.8650224208831787e-01 -9.0300935506820679e-01</leafValues></_></weakClassifiers></stage11>
</opencv_storage>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<opencv_storage>
<stage2>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-5.0766927003860474e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 520 8.1167593598365784e-02</internalNodes>
<leafValues>
-9.2307692766189575e-01 3.0303031206130981e-01</leafValues></_>
<_>
<internalNodes>
0 -1 5592 -9.1085352003574371e-02</internalNodes>
<leafValues>
4.3652963638305664e-01 -8.1069958209991455e-01</leafValues></_></weakClassifiers></stage2>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage3>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0677227973937988e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 66602 3.9891637861728668e-02</internalNodes>
<leafValues>
-8.2857143878936768e-01 6.8421053886413574e-01</leafValues></_>
<_>
<internalNodes>
0 -1 74786 -8.9151952415704727e-03</internalNodes>
<leafValues>
4.6722087264060974e-01 -9.0501767396926880e-01</leafValues></_>
<_>
<internalNodes>
0 -1 29289 -8.2798525691032410e-02</internalNodes>
<leafValues>
6.7119181156158447e-01 -7.0637220144271851e-01</leafValues></_></weakClassifiers></stage3>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage4>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2176305055618286e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 22001 -2.1015079692006111e-02</internalNodes>
<leafValues>
2.8000000119209290e-01 -8.1818181276321411e-01</leafValues></_>
<_>
<internalNodes>
0 -1 65890 5.0599854439496994e-02</internalNodes>
<leafValues>
-7.0883417129516602e-01 4.5477023720741272e-01</leafValues></_>
<_>
<internalNodes>
0 -1 22991 1.9625321030616760e-02</internalNodes>
<leafValues>
-8.5421890020370483e-01 4.3564090132713318e-01</leafValues></_></weakClassifiers></stage4>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage5>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.1659464836120605e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 31369 -1.4186348766088486e-02</internalNodes>
<leafValues>
2.7586206793785095e-01 -8.6315786838531494e-01</leafValues></_>
<_>
<internalNodes>
0 -1 392 2.5605481117963791e-02</internalNodes>
<leafValues>
-7.2781729698181152e-01 4.0837594866752625e-01</leafValues></_>
<_>
<internalNodes>
0 -1 1 8.1282196333631873e-05</internalNodes>
<leafValues>
-7.1116447448730469e-01 4.8628303408622742e-01</leafValues></_></weakClassifiers></stage5>
</opencv_storage>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0"?>
<opencv_storage>
<stage6>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-1.5175080299377441e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 104965 3.3173318952322006e-02</internalNodes>
<leafValues>
-7.8536587953567505e-01 3.0232557654380798e-01</leafValues></_>
<_>
<internalNodes>
0 -1 112068 3.3916704356670380e-02</internalNodes>
<leafValues>
-6.2204116582870483e-01 5.9043234586715698e-01</leafValues></_>
<_>
<internalNodes>
0 -1 118370 1.6524917446076870e-03</internalNodes>
<leafValues>
-5.8125901222229004e-01 6.3796299695968628e-01</leafValues></_>
<_>
<internalNodes>
0 -1 94 6.9739250466227531e-03</internalNodes>
<leafValues>
-7.7862620353698730e-01 4.7115799784660339e-01</leafValues></_></weakClassifiers></stage6>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage7>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.1100143194198608e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 102932 1.3911767303943634e-01</internalNodes>
<leafValues>
-8.5026735067367554e-01 1.8032786250114441e-01</leafValues></_>
<_>
<internalNodes>
0 -1 39673 -5.2807949483394623e-02</internalNodes>
<leafValues>
4.9073439836502075e-01 -7.1471303701400757e-01</leafValues></_>
<_>
<internalNodes>
0 -1 104745 2.3795636370778084e-02</internalNodes>
<leafValues>
-5.7562911510467529e-01 6.4792627096176147e-01</leafValues></_></weakClassifiers></stage7>
</opencv_storage>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0"?>
<opencv_storage>
<stage8>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-9.2488884925842285e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 119455 3.1490243971347809e-02</internalNodes>
<leafValues>
-8.5142856836318970e-01 1.3698630034923553e-02</leafValues></_>
<_>
<internalNodes>
0 -1 45676 6.1922192573547363e-02</internalNodes>
<leafValues>
-6.1463260650634766e-01 3.5422840714454651e-01</leafValues></_>
<_>
<internalNodes>
0 -1 124696 -1.0204865830019116e-03</internalNodes>
<leafValues>
3.9455986022949219e-01 -6.3372427225112915e-01</leafValues></_>
<_>
<internalNodes>
0 -1 49157 -4.7158692032098770e-02</internalNodes>
<leafValues>
3.7966537475585938e-01 -6.5909165143966675e-01</leafValues></_></weakClassifiers></stage8>
</opencv_storage>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<opencv_storage>
<stage9>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.0123676061630249e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 74419 1.5428757295012474e-02</internalNodes>
<leafValues>
-7.4193549156188965e-01 4.1935482621192932e-01</leafValues></_>
<_>
<internalNodes>
0 -1 22287 2.3843746632337570e-02</internalNodes>
<leafValues>
-6.7536532878875732e-01 3.2841202616691589e-01</leafValues></_>
<_>
<internalNodes>
0 -1 56353 3.1366597395390272e-03</internalNodes>
<leafValues>
-6.2584090232849121e-01 4.5511385798454285e-01</leafValues></_>
<_>
<internalNodes>
0 -1 69413 6.3378512859344482e-03</internalNodes>
<leafValues>
-5.9743005037307739e-01 5.1810485124588013e-01</leafValues></_>
<_>
<internalNodes>
0 -1 117109 1.9073241855949163e-03</internalNodes>
<leafValues>
-4.9110803008079529e-01 6.8654793500900269e-01</leafValues></_></weakClassifiers></stage9>
</opencv_storage>

View File

@@ -0,0 +1,674 @@
<?xml version="1.0"?>
<opencv_storage>
<cascade>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams>
<stageNum>12</stageNum>
<stages>
<!-- stage 0 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-6.9857284426689148e-02</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 24 7.3132544755935669e-02</internalNodes>
<leafValues>
-9.4999998807907104e-01 9.3181818723678589e-01</leafValues></_>
<_>
<internalNodes>
0 -1 46 8.3311080932617188e-02</internalNodes>
<leafValues>
-9.0652203559875488e-01 8.8014268875122070e-01</leafValues></_></weakClassifiers></_>
<!-- stage 1 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0008283853530884e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 6 -1.1832243949174881e-01</internalNodes>
<leafValues>
6.5957444906234741e-01 -8.7628865242004395e-01</leafValues></_>
<_>
<internalNodes>
0 -1 31 1.2765679508447647e-02</internalNodes>
<leafValues>
-7.8486323356628418e-01 6.1405700445175171e-01</leafValues></_>
<_>
<internalNodes>
0 -1 42 6.1872858554124832e-02</internalNodes>
<leafValues>
-7.3859679698944092e-01 6.7582374811172485e-01</leafValues></_></weakClassifiers></_>
<!-- stage 2 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0523968935012817e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 20 -5.7852640748023987e-02</internalNodes>
<leafValues>
4.2056074738502502e-01 -8.4530389308929443e-01</leafValues></_>
<_>
<internalNodes>
0 -1 41 -4.0381100028753281e-02</internalNodes>
<leafValues>
6.6613984107971191e-01 -6.6914182901382446e-01</leafValues></_>
<_>
<internalNodes>
0 -1 27 4.3017961084842682e-02</internalNodes>
<leafValues>
-8.4719657897949219e-01 4.6204876899719238e-01</leafValues></_></weakClassifiers></_>
<!-- stage 3 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-7.1327447891235352e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 21 3.5173662006855011e-02</internalNodes>
<leafValues>
-9.1812866926193237e-01 4.1880342364311218e-01</leafValues></_>
<_>
<internalNodes>
0 -1 3 2.9779970645904541e-03</internalNodes>
<leafValues>
-8.9671385288238525e-01 4.9135905504226685e-01</leafValues></_>
<_>
<internalNodes>
0 -1 43 1.0506974160671234e-01</internalNodes>
<leafValues>
-7.1667867898941040e-01 6.5290194749832153e-01</leafValues></_>
<_>
<internalNodes>
0 -1 19 -1.7827928066253662e-02</internalNodes>
<leafValues>
4.8131462931632996e-01 -8.8741576671600342e-01</leafValues></_></weakClassifiers></_>
<!-- stage 4 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0446274280548096e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 7 2.7196373790502548e-02</internalNodes>
<leafValues>
-8.6826348304748535e-01 3.0578511953353882e-01</leafValues></_>
<_>
<internalNodes>
0 -1 29 6.4487643539905548e-02</internalNodes>
<leafValues>
-5.9504520893096924e-01 6.7478001117706299e-01</leafValues></_>
<_>
<internalNodes>
0 -1 12 2.4889567866921425e-03</internalNodes>
<leafValues>
-7.5536733865737915e-01 4.8187285661697388e-01</leafValues></_></weakClassifiers></_>
<!-- stage 5 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-5.6323349475860596e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 23 -1.0600250959396362e-01</internalNodes>
<leafValues>
8.4313726425170898e-01 -6.3713079690933228e-01</leafValues></_>
<_>
<internalNodes>
0 -1 9 1.9594368338584900e-01</internalNodes>
<leafValues>
-6.8043452501296997e-01 5.4470825195312500e-01</leafValues></_>
<_>
<internalNodes>
0 -1 38 -2.2170819342136383e-02</internalNodes>
<leafValues>
4.5749467611312866e-01 -7.6138621568679810e-01</leafValues></_>
<_>
<internalNodes>
0 -1 5 8.3648981526494026e-03</internalNodes>
<leafValues>
-9.2820900678634644e-01 2.9683715105056763e-01</leafValues></_></weakClassifiers></_>
<!-- stage 6 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.1174263954162598e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 8 2.6116007566452026e-01</internalNodes>
<leafValues>
-7.5789475440979004e-01 3.6734694242477417e-01</leafValues></_>
<_>
<internalNodes>
0 -1 16 -5.3467126563191414e-03</internalNodes>
<leafValues>
5.5447220802307129e-01 -6.3109600543975830e-01</leafValues></_>
<_>
<internalNodes>
0 -1 33 1.2671231292188168e-02</internalNodes>
<leafValues>
-6.8555009365081787e-01 4.3052643537521362e-01</leafValues></_>
<_>
<internalNodes>
0 -1 45 -6.4184088259935379e-03</internalNodes>
<leafValues>
5.7122170925140381e-01 -5.9808850288391113e-01</leafValues></_>
<_>
<internalNodes>
0 -1 37 2.2593162953853607e-02</internalNodes>
<leafValues>
-8.5607987642288208e-01 4.3912649154663086e-01</leafValues></_></weakClassifiers></_>
<!-- stage 7 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-9.2381137609481812e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 17 1.8414466083049774e-01</internalNodes>
<leafValues>
-7.3404252529144287e-01 3.0000001192092896e-01</leafValues></_>
<_>
<internalNodes>
0 -1 40 1.4040502905845642e-01</internalNodes>
<leafValues>
-5.2232235670089722e-01 5.7304370403289795e-01</leafValues></_>
<_>
<internalNodes>
0 -1 1 1.0363029316067696e-02</internalNodes>
<leafValues>
-5.7177013158798218e-01 5.4220241308212280e-01</leafValues></_>
<_>
<internalNodes>
0 -1 28 -5.4269127547740936e-02</internalNodes>
<leafValues>
5.9223252534866333e-01 -5.5288833379745483e-01</leafValues></_>
<_>
<internalNodes>
0 -1 2 5.2523061633110046e-02</internalNodes>
<leafValues>
-7.8327494859695435e-01 4.2789927124977112e-01</leafValues></_></weakClassifiers></_>
<!-- stage 8 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-5.2678936719894409e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 26 -2.7845047414302826e-02</internalNodes>
<leafValues>
7.1428573131561279e-01 -5.9832638502120972e-01</leafValues></_>
<_>
<internalNodes>
0 -1 0 -3.9416522486135364e-04</internalNodes>
<leafValues>
-9.2486000061035156e-01 2.7400460839271545e-01</leafValues></_>
<_>
<internalNodes>
0 -1 11 1.0721801221370697e-01</internalNodes>
<leafValues>
-7.2711890935897827e-01 3.0229723453521729e-01</leafValues></_>
<_>
<internalNodes>
0 -1 25 -1.0302538052201271e-02</internalNodes>
<leafValues>
6.9409972429275513e-01 -4.2416870594024658e-01</leafValues></_></weakClassifiers></_>
<!-- stage 9 -->
<_>
<maxWeakCount>6</maxWeakCount>
<stageThreshold>-1.4493153095245361e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 10 2.4479243159294128e-01</internalNodes>
<leafValues>
-6.5740740299224854e-01 4.7222220897674561e-01</leafValues></_>
<_>
<internalNodes>
0 -1 32 3.7433374673128128e-03</internalNodes>
<leafValues>
-5.6935876607894897e-01 4.9817276000976562e-01</leafValues></_>
<_>
<internalNodes>
0 -1 44 -2.8475340455770493e-02</internalNodes>
<leafValues>
5.4433584213256836e-01 -4.8710265755653381e-01</leafValues></_>
<_>
<internalNodes>
0 -1 47 -3.1239273957908154e-03</internalNodes>
<leafValues>
4.6561488509178162e-01 -5.2121520042419434e-01</leafValues></_>
<_>
<internalNodes>
0 -1 34 9.1940350830554962e-03</internalNodes>
<leafValues>
-4.9664518237113953e-01 5.2496069669723511e-01</leafValues></_>
<_>
<internalNodes>
0 -1 4 1.1519105173647404e-02</internalNodes>
<leafValues>
-7.3585474491119385e-01 3.6338412761688232e-01</leafValues></_></weakClassifiers></_>
<!-- stage 10 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-8.8048666715621948e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 13 2.7959531173110008e-02</internalNodes>
<leafValues>
-6.3888889551162720e-01 4.1666665673255920e-01</leafValues></_>
<_>
<internalNodes>
0 -1 22 -1.4312742277979851e-02</internalNodes>
<leafValues>
4.8493552207946777e-01 -5.4626697301864624e-01</leafValues></_>
<_>
<internalNodes>
0 -1 36 -1.9462900236248970e-02</internalNodes>
<leafValues>
4.8587536811828613e-01 -5.7627987861633301e-01</leafValues></_>
<_>
<internalNodes>
0 -1 14 4.8883416457101703e-04</internalNodes>
<leafValues>
-6.8754994869232178e-01 3.4999880194664001e-01</leafValues></_>
<_>
<internalNodes>
0 -1 39 -6.8803662434220314e-03</internalNodes>
<leafValues>
5.3095024824142456e-01 -4.6870502829551697e-01</leafValues></_></weakClassifiers></_>
<!-- stage 11 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.0835331678390503e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 18 2.0331215113401413e-02</internalNodes>
<leafValues>
-7.6623374223709106e-01 7.4626863002777100e-02</leafValues></_>
<_>
<internalNodes>
0 -1 48 3.1020954251289368e-02</internalNodes>
<leafValues>
-5.4749816656112671e-01 4.0196087956428528e-01</leafValues></_>
<_>
<internalNodes>
0 -1 30 -1.4530843123793602e-02</internalNodes>
<leafValues>
4.0155622363090515e-01 -5.7374048233032227e-01</leafValues></_>
<_>
<internalNodes>
0 -1 35 -1.1550894007086754e-02</internalNodes>
<leafValues>
7.9867005348205566e-01 -2.6203200221061707e-01</leafValues></_>
<_>
<internalNodes>
0 -1 15 2.0659237634390593e-05</internalNodes>
<leafValues>
-7.5018608570098877e-01 3.3275553584098816e-01</leafValues></_></weakClassifiers></_></stages>
<features>
<_>
<rects>
<_>
0 0 1 2 -1.</_>
<_>
0 1 1 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 2 20 -1.</_>
<_>
1 0 1 20 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 3 20 -1.</_>
<_>
0 5 3 10 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 8 1 -1.</_>
<_>
4 0 4 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 10 1 -1.</_>
<_>
5 0 5 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 1 -1.</_>
<_>
5 0 10 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 9 -1.</_>
<_>
0 3 20 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 3 12 2 -1.</_>
<_>
6 3 6 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 3 19 12 -1.</_>
<_>
0 7 19 4 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 3 20 8 -1.</_>
<_>
0 7 20 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 4 18 16 -1.</_>
<_>
9 4 9 16 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 4 19 6 -1.</_>
<_>
0 7 19 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 7 2 13 -1.</_>
<_>
1 7 1 13 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 8 8 4 -1.</_>
<_>
2 8 4 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 16 2 4 -1.</_>
<_>
1 16 1 4 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 19 4 1 -1.</_>
<_>
2 19 2 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 2 4 3 -1.</_>
<_>
1 3 4 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 3 6 15 -1.</_>
<_>
3 8 2 5 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 3 16 1 -1.</_>
<_>
5 3 8 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
1 9 5 10 -1.</_>
<_>
1 14 5 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 0 8 14 -1.</_>
<_>
2 0 4 7 2.</_>
<_>
6 7 4 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 2 3 10 -1.</_>
<_>
2 7 3 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 2 15 3 -1.</_>
<_>
3 3 15 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 6 9 13 -1.</_>
<_>
6 6 3 13 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 0 12 8 -1.</_>
<_>
8 0 4 8 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 16 8 3 -1.</_>
<_>
4 17 8 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 5 6 4 -1.</_>
<_>
7 5 2 4 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 0 8 12 -1.</_>
<_>
8 0 4 12 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 2 6 3 -1.</_>
<_>
6 2 3 3 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
6 11 10 9 -1.</_>
<_>
11 11 5 9 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 1 4 4 -1.</_>
<_>
6 2 4 2 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
7 3 6 2 -1.</_>
<_>
9 3 2 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 9 6 1 -1.</_>
<_>
9 9 2 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 9 6 3 -1.</_>
<_>
9 10 2 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 0 2 12 -1.</_>
<_>
9 0 1 12 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 16 4 4 -1.</_>
<_>
8 17 4 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 0 4 8 -1.</_>
<_>
11 0 2 8 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 1 10 12 -1.</_>
<_>
9 1 5 6 2.</_>
<_>
14 7 5 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 2 6 6 -1.</_>
<_>
12 2 3 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
10 9 8 2 -1.</_>
<_>
12 9 4 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
11 4 8 8 -1.</_>
<_>
11 4 8 4 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
13 1 7 6 -1.</_>
<_>
13 3 7 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 2 4 16 -1.</_>
<_>
14 6 4 8 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 4 6 12 -1.</_>
<_>
16 8 2 4 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 1 3 6 -1.</_>
<_>
16 3 1 2 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 2 3 3 -1.</_>
<_>
16 3 1 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 0 4 12 -1.</_>
<_>
12 4 4 4 3.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
18 8 2 12 -1.</_>
<_>
19 8 1 12 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
19 6 1 12 -1.</_>
<_>
19 6 1 6 2.</_></rects>
<tilted>1</tilted></_></features></cascade>
</opencv_storage>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0"?>
<opencv_storage>
<params>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams></params>
</opencv_storage>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<opencv_storage>
<stage0>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-6.9857284426689148e-02</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 38344 7.3132544755935669e-02</internalNodes>
<leafValues>
-9.4999998807907104e-01 9.3181818723678589e-01</leafValues></_>
<_>
<internalNodes>
0 -1 118673 8.3311080932617188e-02</internalNodes>
<leafValues>
-9.0652203559875488e-01 8.8014268875122070e-01</leafValues></_></weakClassifiers></stage0>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage1>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0008283853530884e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 962 -1.1832243949174881e-01</internalNodes>
<leafValues>
6.5957444906234741e-01 -8.7628865242004395e-01</leafValues></_>
<_>
<internalNodes>
0 -1 66537 1.2765679508447647e-02</internalNodes>
<leafValues>
-7.8486323356628418e-01 6.1405700445175171e-01</leafValues></_>
<_>
<internalNodes>
0 -1 111620 6.1872858554124832e-02</internalNodes>
<leafValues>
-7.3859679698944092e-01 6.7582374811172485e-01</leafValues></_></weakClassifiers></stage1>
</opencv_storage>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<opencv_storage>
<stage10>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-8.8048666715621948e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 6445 2.7959531173110008e-02</internalNodes>
<leafValues>
-6.3888889551162720e-01 4.1666665673255920e-01</leafValues></_>
<_>
<internalNodes>
0 -1 31369 -1.4312742277979851e-02</internalNodes>
<leafValues>
4.8493552207946777e-01 -5.4626697301864624e-01</leafValues></_>
<_>
<internalNodes>
0 -1 80232 -1.9462900236248970e-02</internalNodes>
<leafValues>
4.8587536811828613e-01 -5.7627987861633301e-01</leafValues></_>
<_>
<internalNodes>
0 -1 9562 4.8883416457101703e-04</internalNodes>
<leafValues>
-6.8754994869232178e-01 3.4999880194664001e-01</leafValues></_>
<_>
<internalNodes>
0 -1 91971 -6.8803662434220314e-03</internalNodes>
<leafValues>
5.3095024824142456e-01 -4.6870502829551697e-01</leafValues></_></weakClassifiers></stage10>
</opencv_storage>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<opencv_storage>
<stage11>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.0835331678390503e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 12823 2.0331215113401413e-02</internalNodes>
<leafValues>
-7.6623374223709106e-01 7.4626863002777100e-02</leafValues></_>
<_>
<internalNodes>
0 -1 125038 3.1020954251289368e-02</internalNodes>
<leafValues>
-5.4749816656112671e-01 4.0196087956428528e-01</leafValues></_>
<_>
<internalNodes>
0 -1 65314 -1.4530843123793602e-02</internalNodes>
<leafValues>
4.0155622363090515e-01 -5.7374048233032227e-01</leafValues></_>
<_>
<internalNodes>
0 -1 79830 -1.1550894007086754e-02</internalNodes>
<leafValues>
7.9867005348205566e-01 -2.6203200221061707e-01</leafValues></_>
<_>
<internalNodes>
0 -1 9930 2.0659237634390593e-05</internalNodes>
<leafValues>
-7.5018608570098877e-01 3.3275553584098816e-01</leafValues></_></weakClassifiers></stage11>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage2>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0523968935012817e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 19725 -5.7852640748023987e-02</internalNodes>
<leafValues>
4.2056074738502502e-01 -8.4530389308929443e-01</leafValues></_>
<_>
<internalNodes>
0 -1 106510 -4.0381100028753281e-02</internalNodes>
<leafValues>
6.6613984107971191e-01 -6.6914182901382446e-01</leafValues></_>
<_>
<internalNodes>
0 -1 55982 4.3017961084842682e-02</internalNodes>
<leafValues>
-8.4719657897949219e-01 4.6204876899719238e-01</leafValues></_></weakClassifiers></stage2>
</opencv_storage>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0"?>
<opencv_storage>
<stage3>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-7.1327447891235352e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 21398 3.5173662006855011e-02</internalNodes>
<leafValues>
-9.1812866926193237e-01 4.1880342364311218e-01</leafValues></_>
<_>
<internalNodes>
0 -1 291 2.9779970645904541e-03</internalNodes>
<leafValues>
-8.9671385288238525e-01 4.9135905504226685e-01</leafValues></_>
<_>
<internalNodes>
0 -1 112262 1.0506974160671234e-01</internalNodes>
<leafValues>
-7.1667867898941040e-01 6.5290194749832153e-01</leafValues></_>
<_>
<internalNodes>
0 -1 16772 -1.7827928066253662e-02</internalNodes>
<leafValues>
4.8131462931632996e-01 -8.8741576671600342e-01</leafValues></_></weakClassifiers></stage3>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage4>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.0446274280548096e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 3177 2.7196373790502548e-02</internalNodes>
<leafValues>
-8.6826348304748535e-01 3.0578511953353882e-01</leafValues></_>
<_>
<internalNodes>
0 -1 62842 6.4487643539905548e-02</internalNodes>
<leafValues>
-5.9504520893096924e-01 6.7478001117706299e-01</leafValues></_>
<_>
<internalNodes>
0 -1 5800 2.4889567866921425e-03</internalNodes>
<leafValues>
-7.5536733865737915e-01 4.8187285661697388e-01</leafValues></_></weakClassifiers></stage4>
</opencv_storage>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0"?>
<opencv_storage>
<stage5>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-5.6323349475860596e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 33773 -1.0600250959396362e-01</internalNodes>
<leafValues>
8.4313726425170898e-01 -6.3713079690933228e-01</leafValues></_>
<_>
<internalNodes>
0 -1 3564 1.9594368338584900e-01</internalNodes>
<leafValues>
-6.8043452501296997e-01 5.4470825195312500e-01</leafValues></_>
<_>
<internalNodes>
0 -1 81656 -2.2170819342136383e-02</internalNodes>
<leafValues>
4.5749467611312866e-01 -7.6138621568679810e-01</leafValues></_>
<_>
<internalNodes>
0 -1 392 8.3648981526494026e-03</internalNodes>
<leafValues>
-9.2820900678634644e-01 2.9683715105056763e-01</leafValues></_></weakClassifiers></stage5>
</opencv_storage>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<opencv_storage>
<stage6>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.1174263954162598e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 3548 2.6116007566452026e-01</internalNodes>
<leafValues>
-7.5789475440979004e-01 3.6734694242477417e-01</leafValues></_>
<_>
<internalNodes>
0 -1 12006 -5.3467126563191414e-03</internalNodes>
<leafValues>
5.5447220802307129e-01 -6.3109600543975830e-01</leafValues></_>
<_>
<internalNodes>
0 -1 69940 1.2671231292188168e-02</internalNodes>
<leafValues>
-6.8555009365081787e-01 4.3052643537521362e-01</leafValues></_>
<_>
<internalNodes>
0 -1 115596 -6.4184088259935379e-03</internalNodes>
<leafValues>
5.7122170925140381e-01 -5.9808850288391113e-01</leafValues></_>
<_>
<internalNodes>
0 -1 81164 2.2593162953853607e-02</internalNodes>
<leafValues>
-8.5607987642288208e-01 4.3912649154663086e-01</leafValues></_></weakClassifiers></stage6>
</opencv_storage>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<opencv_storage>
<stage7>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-9.2381137609481812e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 12692 1.8414466083049774e-01</internalNodes>
<leafValues>
-7.3404252529144287e-01 3.0000001192092896e-01</leafValues></_>
<_>
<internalNodes>
0 -1 96486 1.4040502905845642e-01</internalNodes>
<leafValues>
-5.2232235670089722e-01 5.7304370403289795e-01</leafValues></_>
<_>
<internalNodes>
0 -1 94 1.0363029316067696e-02</internalNodes>
<leafValues>
-5.7177013158798218e-01 5.4220241308212280e-01</leafValues></_>
<_>
<internalNodes>
0 -1 57644 -5.4269127547740936e-02</internalNodes>
<leafValues>
5.9223252534866333e-01 -5.5288833379745483e-01</leafValues></_>
<_>
<internalNodes>
0 -1 231 5.2523061633110046e-02</internalNodes>
<leafValues>
-7.8327494859695435e-01 4.2789927124977112e-01</leafValues></_></weakClassifiers></stage7>
</opencv_storage>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0"?>
<opencv_storage>
<stage8>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-5.2678936719894409e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 51133 -2.7845047414302826e-02</internalNodes>
<leafValues>
7.1428573131561279e-01 -5.9832638502120972e-01</leafValues></_>
<_>
<internalNodes>
0 -1 1 -3.9416522486135364e-04</internalNodes>
<leafValues>
-9.2486000061035156e-01 2.7400460839271545e-01</leafValues></_>
<_>
<internalNodes>
0 -1 4330 1.0721801221370697e-01</internalNodes>
<leafValues>
-7.2711890935897827e-01 3.0229723453521729e-01</leafValues></_>
<_>
<internalNodes>
0 -1 46957 -1.0302538052201271e-02</internalNodes>
<leafValues>
6.9409972429275513e-01 -4.2416870594024658e-01</leafValues></_></weakClassifiers></stage8>
</opencv_storage>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0"?>
<opencv_storage>
<stage9>
<maxWeakCount>6</maxWeakCount>
<stageThreshold>-1.4493153095245361e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 4146 2.4479243159294128e-01</internalNodes>
<leafValues>
-6.5740740299224854e-01 4.7222220897674561e-01</leafValues></_>
<_>
<internalNodes>
0 -1 69935 3.7433374673128128e-03</internalNodes>
<leafValues>
-5.6935876607894897e-01 4.9817276000976562e-01</leafValues></_>
<_>
<internalNodes>
0 -1 115281 -2.8475340455770493e-02</internalNodes>
<leafValues>
5.4433584213256836e-01 -4.8710265755653381e-01</leafValues></_>
<_>
<internalNodes>
0 -1 124429 -3.1239273957908154e-03</internalNodes>
<leafValues>
4.6561488509178162e-01 -5.2121520042419434e-01</leafValues></_>
<_>
<internalNodes>
0 -1 72193 9.1940350830554962e-03</internalNodes>
<leafValues>
-4.9664518237113953e-01 5.2496069669723511e-01</leafValues></_>
<_>
<internalNodes>
0 -1 388 1.1519105173647404e-02</internalNodes>
<leafValues>
-7.3585474491119385e-01 3.6338412761688232e-01</leafValues></_></weakClassifiers></stage9>
</opencv_storage>

View File

@@ -0,0 +1,658 @@
<?xml version="1.0"?>
<opencv_storage>
<cascade>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams>
<stageNum>14</stageNum>
<stages>
<!-- stage 0 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-1.5131105482578278e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 15 7.3132544755935669e-02</internalNodes>
<leafValues>
-9.6969699859619141e-01 8.7999999523162842e-01</leafValues></_>
<_>
<internalNodes>
0 -1 22 3.7634912878274918e-02</internalNodes>
<leafValues>
-9.7909134626388550e-01 8.1838589906692505e-01</leafValues></_></weakClassifiers></_>
<!-- stage 1 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.9654263257980347e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 3 2.1198132634162903e-01</internalNodes>
<leafValues>
-9.3999999761581421e-01 8.3333331346511841e-01</leafValues></_>
<_>
<internalNodes>
0 -1 27 -5.1079854369163513e-02</internalNodes>
<leafValues>
7.5422900915145874e-01 -8.4309655427932739e-01</leafValues></_>
<_>
<internalNodes>
0 -1 42 3.2548047602176666e-02</internalNodes>
<leafValues>
-8.1077164411544800e-01 8.0424255132675171e-01</leafValues></_></weakClassifiers></_>
<!-- stage 2 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-8.4922987222671509e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 36 6.5322615206241608e-02</internalNodes>
<leafValues>
-8.7939697504043579e-01 5.5102038383483887e-01</leafValues></_>
<_>
<internalNodes>
0 -1 4 1.9205823540687561e-01</internalNodes>
<leafValues>
-7.1354663372039795e-01 7.1951913833618164e-01</leafValues></_>
<_>
<internalNodes>
0 -1 34 -1.0098288208246231e-01</internalNodes>
<leafValues>
7.4371367692947388e-01 -6.5768426656723022e-01</leafValues></_></weakClassifiers></_>
<!-- stage 3 -->
<_>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-5.2841639518737793e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 2 2.3883845657110214e-02</internalNodes>
<leafValues>
-8.3756345510482788e-01 3.3333334326744080e-01</leafValues></_>
<_>
<internalNodes>
0 -1 41 1.0589134693145752e-01</internalNodes>
<leafValues>
-8.6174976825714111e-01 3.8202732801437378e-01</leafValues></_></weakClassifiers></_>
<!-- stage 4 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.0350991487503052e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 14 -9.1196425259113312e-02</internalNodes>
<leafValues>
6.2162160873413086e-01 -8.1042653322219849e-01</leafValues></_>
<_>
<internalNodes>
0 -1 9 8.7607488036155701e-02</internalNodes>
<leafValues>
-7.8688693046569824e-01 6.2912172079086304e-01</leafValues></_>
<_>
<internalNodes>
0 -1 24 5.6541308760643005e-02</internalNodes>
<leafValues>
-6.6161835193634033e-01 6.9380360841751099e-01</leafValues></_></weakClassifiers></_>
<!-- stage 5 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.5506101846694946e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 11 8.9198779314756393e-03</internalNodes>
<leafValues>
-7.6958525180816650e-01 6.1290323734283447e-01</leafValues></_>
<_>
<internalNodes>
0 -1 45 -3.1269099563360214e-03</internalNodes>
<leafValues>
5.1104712486267090e-01 -7.0055544376373291e-01</leafValues></_>
<_>
<internalNodes>
0 -1 7 -9.2323711141943932e-03</internalNodes>
<leafValues>
5.3979915380477905e-01 -6.9652289152145386e-01</leafValues></_></weakClassifiers></_>
<!-- stage 6 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2330348491668701e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 0 1.1109821498394012e-02</internalNodes>
<leafValues>
-8.7356323003768921e-01 5.4054055362939835e-02</leafValues></_>
<_>
<internalNodes>
0 -1 40 -7.7119180932641029e-03</internalNodes>
<leafValues>
5.3126132488250732e-01 -6.4888054132461548e-01</leafValues></_>
<_>
<internalNodes>
0 -1 1 1.6299208626151085e-02</internalNodes>
<leafValues>
-8.9073300361633301e-01 3.8267943263053894e-01</leafValues></_></weakClassifiers></_>
<!-- stage 7 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-6.9402027130126953e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 25 6.2881767749786377e-02</internalNodes>
<leafValues>
-7.6255708932876587e-01 6.5517240762710571e-01</leafValues></_>
<_>
<internalNodes>
0 -1 29 -1.2179381214082241e-02</internalNodes>
<leafValues>
8.1599736213684082e-01 -5.0710964202880859e-01</leafValues></_>
<_>
<internalNodes>
0 -1 23 1.5992985665798187e-01</internalNodes>
<leafValues>
-7.4746054410934448e-01 6.2096637487411499e-01</leafValues></_></weakClassifiers></_>
<!-- stage 8 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.2014210224151611e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 39 1.9785316661000252e-02</internalNodes>
<leafValues>
-7.2687226533889771e-01 8.0952382087707520e-01</leafValues></_>
<_>
<internalNodes>
0 -1 5 5.5234711617231369e-03</internalNodes>
<leafValues>
-8.0144739151000977e-01 3.9590144157409668e-01</leafValues></_>
<_>
<internalNodes>
0 -1 6 -1.4743935316801071e-02</internalNodes>
<leafValues>
4.0145263075828552e-01 -7.5309175252914429e-01</leafValues></_>
<_>
<internalNodes>
0 -1 31 3.2769851386547089e-02</internalNodes>
<leafValues>
-6.3974779844284058e-01 4.9125114083290100e-01</leafValues></_>
<_>
<internalNodes>
0 -1 37 2.0255863666534424e-02</internalNodes>
<leafValues>
-5.6580519676208496e-01 6.1177313327789307e-01</leafValues></_></weakClassifiers></_>
<!-- stage 9 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2738654613494873e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 21 4.2292900383472443e-02</internalNodes>
<leafValues>
-8.0952382087707520e-01 8.4745764732360840e-02</leafValues></_>
<_>
<internalNodes>
0 -1 12 4.2784538120031357e-02</internalNodes>
<leafValues>
-8.4340584278106689e-01 2.2612237930297852e-01</leafValues></_>
<_>
<internalNodes>
0 -1 8 -3.0783289112150669e-03</internalNodes>
<leafValues>
3.2863748073577881e-01 -6.9046407938003540e-01</leafValues></_></weakClassifiers></_>
<!-- stage 10 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-6.8541038036346436e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 30 -2.0627105608582497e-02</internalNodes>
<leafValues>
6.0606062412261963e-02 -8.3516484498977661e-01</leafValues></_>
<_>
<internalNodes>
0 -1 18 9.9415913224220276e-02</internalNodes>
<leafValues>
-6.4717310667037964e-01 5.1321762800216675e-01</leafValues></_>
<_>
<internalNodes>
0 -1 35 -2.8571443632245064e-02</internalNodes>
<leafValues>
3.8076385855674744e-01 -7.0071691274642944e-01</leafValues></_>
<_>
<internalNodes>
0 -1 0 1.7725368961691856e-02</internalNodes>
<leafValues>
-4.7960722446441650e-01 6.6265738010406494e-01</leafValues></_></weakClassifiers></_>
<!-- stage 11 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.3034328222274780e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 13 -6.2260786071419716e-03</internalNodes>
<leafValues>
1.5384615957736969e-01 -7.9591834545135498e-01</leafValues></_>
<_>
<internalNodes>
0 -1 44 -4.6867121011018753e-02</internalNodes>
<leafValues>
3.6055722832679749e-01 -5.8249193429946899e-01</leafValues></_>
<_>
<internalNodes>
0 -1 43 -1.9795228727161884e-03</internalNodes>
<leafValues>
5.0797051191329956e-01 -5.0618976354598999e-01</leafValues></_>
<_>
<internalNodes>
0 -1 17 3.5088375210762024e-02</internalNodes>
<leafValues>
-7.3651200532913208e-01 4.1671240329742432e-01</leafValues></_>
<_>
<internalNodes>
0 -1 19 1.5235868049785495e-03</internalNodes>
<leafValues>
3.0445036292076111e-01 -8.4970545768737793e-01</leafValues></_></weakClassifiers></_>
<!-- stage 12 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-6.6577988862991333e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 28 -2.0102638751268387e-02</internalNodes>
<leafValues>
7.1428573131561279e-01 -7.1806168556213379e-01</leafValues></_>
<_>
<internalNodes>
0 -1 38 6.5985828638076782e-02</internalNodes>
<leafValues>
-7.8912955522537231e-01 2.9239723086357117e-01</leafValues></_>
<_>
<internalNodes>
0 -1 13 -1.4360356144607067e-03</internalNodes>
<leafValues>
3.3544215559959412e-01 -7.7690732479095459e-01</leafValues></_>
<_>
<internalNodes>
0 -1 20 3.7629939615726471e-02</internalNodes>
<leafValues>
-5.7326024770736694e-01 5.3679192066192627e-01</leafValues></_></weakClassifiers></_>
<!-- stage 13 -->
<_>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-7.6405721902847290e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 10 -1.8220141530036926e-02</internalNodes>
<leafValues>
1. -6.8510639667510986e-01</leafValues></_>
<_>
<internalNodes>
0 -1 26 -1.2162408791482449e-02</internalNodes>
<leafValues>
6.5581905841827393e-01 -5.0600630044937134e-01</leafValues></_>
<_>
<internalNodes>
0 -1 33 -4.4847460230812430e-04</internalNodes>
<leafValues>
3.7500736117362976e-01 -8.8655352592468262e-01</leafValues></_>
<_>
<internalNodes>
0 -1 16 6.7975055426359177e-03</internalNodes>
<leafValues>
-4.7455802559852600e-01 6.2044888734817505e-01</leafValues></_>
<_>
<internalNodes>
0 -1 32 8.3894869312644005e-03</internalNodes>
<leafValues>
-4.6866527199745178e-01 7.1337395906448364e-01</leafValues></_></weakClassifiers></_></stages>
<features>
<_>
<rects>
<_>
0 0 2 20 -1.</_>
<_>
1 0 1 20 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 0 20 2 -1.</_>
<_>
5 0 10 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 3 12 1 -1.</_>
<_>
6 3 6 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 3 19 12 -1.</_>
<_>
0 7 19 4 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 4 6 15 -1.</_>
<_>
2 9 2 5 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 10 2 10 -1.</_>
<_>
1 10 1 10 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 10 6 6 -1.</_>
<_>
0 13 6 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
0 14 5 6 -1.</_>
<_>
0 17 5 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 2 4 3 -1.</_>
<_>
2 3 4 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 3 5 12 -1.</_>
<_>
2 7 5 4 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
2 17 12 3 -1.</_>
<_>
2 18 12 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 1 3 3 -1.</_>
<_>
3 2 3 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 1 3 12 -1.</_>
<_>
3 7 3 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 2 2 3 -1.</_>
<_>
3 3 2 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
3 7 9 11 -1.</_>
<_>
6 7 3 11 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 0 12 8 -1.</_>
<_>
8 0 4 8 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
4 0 16 2 -1.</_>
<_>
4 0 8 1 2.</_>
<_>
12 1 8 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 1 6 5 -1.</_>
<_>
8 1 3 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 7 12 12 -1.</_>
<_>
11 7 6 12 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 9 3 2 -1.</_>
<_>
5 10 3 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 9 9 3 -1.</_>
<_>
8 10 3 1 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
5 10 10 5 -1.</_>
<_>
10 10 5 5 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
6 0 9 13 -1.</_>
<_>
9 0 3 13 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 1 6 15 -1.</_>
<_>
9 6 2 5 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 1 6 11 -1.</_>
<_>
9 1 2 11 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 3 4 10 -1.</_>
<_>
9 3 2 10 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
7 16 5 3 -1.</_>
<_>
7 17 5 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 0 4 6 -1.</_>
<_>
6 2 4 2 3.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
8 13 6 3 -1.</_>
<_>
8 14 6 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
8 16 6 3 -1.</_>
<_>
8 17 6 1 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
9 2 4 6 -1.</_>
<_>
11 2 2 6 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
10 0 6 14 -1.</_>
<_>
10 0 3 7 2.</_>
<_>
13 7 3 7 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
10 4 8 2 -1.</_>
<_>
10 4 8 1 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
11 0 2 3 -1.</_>
<_>
12 0 1 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
11 1 9 6 -1.</_>
<_>
14 3 3 2 9.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
13 1 7 6 -1.</_>
<_>
13 3 7 2 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
13 3 6 6 -1.</_>
<_>
13 6 6 3 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
13 5 6 11 -1.</_>
<_>
16 5 3 11 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
14 3 4 16 -1.</_>
<_>
14 7 4 8 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 0 4 4 -1.</_>
<_>
15 1 4 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 1 3 4 -1.</_>
<_>
15 2 3 2 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 2 4 15 -1.</_>
<_>
15 7 4 5 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
15 5 5 9 -1.</_>
<_>
15 8 5 3 3.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 0 4 1 -1.</_>
<_>
18 0 2 1 2.</_></rects>
<tilted>0</tilted></_>
<_>
<rects>
<_>
16 2 4 4 -1.</_>
<_>
16 2 4 2 2.</_></rects>
<tilted>1</tilted></_>
<_>
<rects>
<_>
16 18 4 2 -1.</_>
<_>
18 18 2 2 2.</_></rects>
<tilted>0</tilted></_></features></cascade>
</opencv_storage>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0"?>
<opencv_storage>
<params>
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<boostType>GAB</boostType>
<minHitRate>9.9500000476837158e-01</minHitRate>
<maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
<weightTrimRate>9.4999999999999996e-01</weightTrimRate>
<maxDepth>1</maxDepth>
<maxWeakCount>100</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
<featSize>1</featSize>
<mode>ALL</mode></featureParams></params>
</opencv_storage>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<opencv_storage>
<stage0>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-1.5131105482578278e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 38344 7.3132544755935669e-02</internalNodes>
<leafValues>
-9.6969699859619141e-01 8.7999999523162842e-01</leafValues></_>
<_>
<internalNodes>
0 -1 56105 3.7634912878274918e-02</internalNodes>
<leafValues>
-9.7909134626388550e-01 8.1838589906692505e-01</leafValues></_></weakClassifiers></stage0>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage1>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.9654263257980347e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 3548 2.1198132634162903e-01</internalNodes>
<leafValues>
-9.3999999761581421e-01 8.3333331346511841e-01</leafValues></_>
<_>
<internalNodes>
0 -1 72500 -5.1079854369163513e-02</internalNodes>
<leafValues>
7.5422900915145874e-01 -8.4309655427932739e-01</leafValues></_>
<_>
<internalNodes>
0 -1 116744 3.2548047602176666e-02</internalNodes>
<leafValues>
-8.1077164411544800e-01 8.0424255132675171e-01</leafValues></_></weakClassifiers></stage1>
</opencv_storage>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0"?>
<opencv_storage>
<stage10>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-6.8541038036346436e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 81542 -2.0627105608582497e-02</internalNodes>
<leafValues>
6.0606062412261963e-02 -8.3516484498977661e-01</leafValues></_>
<_>
<internalNodes>
0 -1 52609 9.9415913224220276e-02</internalNodes>
<leafValues>
-6.4717310667037964e-01 5.1321762800216675e-01</leafValues></_>
<_>
<internalNodes>
0 -1 106510 -2.8571443632245064e-02</internalNodes>
<leafValues>
3.8076385855674744e-01 -7.0071691274642944e-01</leafValues></_>
<_>
<internalNodes>
0 -1 94 1.7725368961691856e-02</internalNodes>
<leafValues>
-4.7960722446441650e-01 6.6265738010406494e-01</leafValues></_></weakClassifiers></stage10>
</opencv_storage>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<opencv_storage>
<stage11>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.3034328222274780e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 30719 -6.2260786071419716e-03</internalNodes>
<leafValues>
1.5384615957736969e-01 -7.9591834545135498e-01</leafValues></_>
<_>
<internalNodes>
0 -1 119263 -4.6867121011018753e-02</internalNodes>
<leafValues>
3.6055722832679749e-01 -5.8249193429946899e-01</leafValues></_>
<_>
<internalNodes>
0 -1 118529 -1.9795228727161884e-03</internalNodes>
<leafValues>
5.0797051191329956e-01 -5.0618976354598999e-01</leafValues></_>
<_>
<internalNodes>
0 -1 48288 3.5088375210762024e-02</internalNodes>
<leafValues>
-7.3651200532913208e-01 4.1671240329742432e-01</leafValues></_>
<_>
<internalNodes>
0 -1 53416 1.5235868049785495e-03</internalNodes>
<leafValues>
3.0445036292076111e-01 -8.4970545768737793e-01</leafValues></_></weakClassifiers></stage11>
</opencv_storage>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0"?>
<opencv_storage>
<stage12>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-6.6577988862991333e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 79372 -2.0102638751268387e-02</internalNodes>
<leafValues>
7.1428573131561279e-01 -7.1806168556213379e-01</leafValues></_>
<_>
<internalNodes>
0 -1 112022 6.5985828638076782e-02</internalNodes>
<leafValues>
-7.8912955522537231e-01 2.9239723086357117e-01</leafValues></_>
<_>
<internalNodes>
0 -1 30719 -1.4360356144607067e-03</internalNodes>
<leafValues>
3.3544215559959412e-01 -7.7690732479095459e-01</leafValues></_>
<_>
<internalNodes>
0 -1 53422 3.7629939615726471e-02</internalNodes>
<leafValues>
-5.7326024770736694e-01 5.3679192066192627e-01</leafValues></_></weakClassifiers></stage12>
</opencv_storage>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<opencv_storage>
<stage13>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-7.6405721902847290e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 28796 -1.8220141530036926e-02</internalNodes>
<leafValues>
1. -6.8510639667510986e-01</leafValues></_>
<_>
<internalNodes>
0 -1 71910 -1.2162408791482449e-02</internalNodes>
<leafValues>
6.5581905841827393e-01 -5.0600630044937134e-01</leafValues></_>
<_>
<internalNodes>
0 -1 93726 -4.4847460230812430e-04</internalNodes>
<leafValues>
3.7500736117362976e-01 -8.8655352592468262e-01</leafValues></_>
<_>
<internalNodes>
0 -1 38598 6.7975055426359177e-03</internalNodes>
<leafValues>
-4.7455802559852600e-01 6.2044888734817505e-01</leafValues></_>
<_>
<internalNodes>
0 -1 89951 8.3894869312644005e-03</internalNodes>
<leafValues>
-4.6866527199745178e-01 7.1337395906448364e-01</leafValues></_></weakClassifiers></stage13>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage2>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-8.4922987222671509e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 107351 6.5322615206241608e-02</internalNodes>
<leafValues>
-8.7939697504043579e-01 5.5102038383483887e-01</leafValues></_>
<_>
<internalNodes>
0 -1 3688 1.9205823540687561e-01</internalNodes>
<leafValues>
-7.1354663372039795e-01 7.1951913833618164e-01</leafValues></_>
<_>
<internalNodes>
0 -1 94600 -1.0098288208246231e-01</internalNodes>
<leafValues>
7.4371367692947388e-01 -6.5768426656723022e-01</leafValues></_></weakClassifiers></stage2>
</opencv_storage>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<opencv_storage>
<stage3>
<maxWeakCount>2</maxWeakCount>
<stageThreshold>-5.2841639518737793e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 3170 2.3883845657110214e-02</internalNodes>
<leafValues>
-8.3756345510482788e-01 3.3333334326744080e-01</leafValues></_>
<_>
<internalNodes>
0 -1 115869 1.0589134693145752e-01</internalNodes>
<leafValues>
-8.6174976825714111e-01 3.8202732801437378e-01</leafValues></_></weakClassifiers></stage3>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage4>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.0350991487503052e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 34365 -9.1196425259113312e-02</internalNodes>
<leafValues>
6.2162160873413086e-01 -8.1042653322219849e-01</leafValues></_>
<_>
<internalNodes>
0 -1 22399 8.7607488036155701e-02</internalNodes>
<leafValues>
-7.8688693046569824e-01 6.2912172079086304e-01</leafValues></_>
<_>
<internalNodes>
0 -1 65159 5.6541308760643005e-02</internalNodes>
<leafValues>
-6.6161835193634033e-01 6.9380360841751099e-01</leafValues></_></weakClassifiers></stage4>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage5>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-9.5506101846694946e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 29992 8.9198779314756393e-03</internalNodes>
<leafValues>
-7.6958525180816650e-01 6.1290323734283447e-01</leafValues></_>
<_>
<internalNodes>
0 -1 121517 -3.1269099563360214e-03</internalNodes>
<leafValues>
5.1104712486267090e-01 -7.0055544376373291e-01</leafValues></_>
<_>
<internalNodes>
0 -1 9179 -9.2323711141943932e-03</internalNodes>
<leafValues>
5.3979915380477905e-01 -6.9652289152145386e-01</leafValues></_></weakClassifiers></stage5>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage6>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2330348491668701e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 94 1.1109821498394012e-02</internalNodes>
<leafValues>
-8.7356323003768921e-01 5.4054055362939835e-02</leafValues></_>
<_>
<internalNodes>
0 -1 115490 -7.7119180932641029e-03</internalNodes>
<leafValues>
5.3126132488250732e-01 -6.4888054132461548e-01</leafValues></_>
<_>
<internalNodes>
0 -1 400 1.6299208626151085e-02</internalNodes>
<leafValues>
-8.9073300361633301e-01 3.8267943263053894e-01</leafValues></_></weakClassifiers></stage6>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage7>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-6.9402027130126953e-01</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 66605 6.2881767749786377e-02</internalNodes>
<leafValues>
-7.6255708932876587e-01 6.5517240762710571e-01</leafValues></_>
<_>
<internalNodes>
0 -1 79853 -1.2179381214082241e-02</internalNodes>
<leafValues>
8.1599736213684082e-01 -5.0710964202880859e-01</leafValues></_>
<_>
<internalNodes>
0 -1 65123 1.5992985665798187e-01</internalNodes>
<leafValues>
-7.4746054410934448e-01 6.2096637487411499e-01</leafValues></_></weakClassifiers></stage7>
</opencv_storage>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<opencv_storage>
<stage8>
<maxWeakCount>5</maxWeakCount>
<stageThreshold>-1.2014210224151611e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 115190 1.9785316661000252e-02</internalNodes>
<leafValues>
-7.2687226533889771e-01 8.0952382087707520e-01</leafValues></_>
<_>
<internalNodes>
0 -1 7498 5.5234711617231369e-03</internalNodes>
<leafValues>
-8.0144739151000977e-01 3.9590144157409668e-01</leafValues></_>
<_>
<internalNodes>
0 -1 7708 -1.4743935316801071e-02</internalNodes>
<leafValues>
4.0145263075828552e-01 -7.5309175252914429e-01</leafValues></_>
<_>
<internalNodes>
0 -1 87269 3.2769851386547089e-02</internalNodes>
<leafValues>
-6.3974779844284058e-01 4.9125114083290100e-01</leafValues></_>
<_>
<internalNodes>
0 -1 108058 2.0255863666534424e-02</internalNodes>
<leafValues>
-5.6580519676208496e-01 6.1177313327789307e-01</leafValues></_></weakClassifiers></stage8>
</opencv_storage>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<opencv_storage>
<stage9>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-1.2738654613494873e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 53971 4.2292900383472443e-02</internalNodes>
<leafValues>
-8.0952382087707520e-01 8.4745764732360840e-02</leafValues></_>
<_>
<internalNodes>
0 -1 30040 4.2784538120031357e-02</internalNodes>
<leafValues>
-8.4340584278106689e-01 2.2612237930297852e-01</leafValues></_>
<_>
<internalNodes>
0 -1 21456 -3.0783289112150669e-03</internalNodes>
<leafValues>
3.2863748073577881e-01 -6.9046407938003540e-01</leafValues></_></weakClassifiers></stage9>
</opencv_storage>