This commit is contained in:
louiscklaw
2025-02-01 01:19:51 +08:00
commit 3b0b154910
32597 changed files with 1171319 additions and 0 deletions

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