Я пытался запустить старый проект для обнаружения трафика c света с помощью Haar Cascade, но я заметил, что новая версия opencv использует новую структуру xml для классификатора Haar. Как я могу преобразовать старые файлы haar cascade xml с такой структурой:
<opencv_storage>
<myfacedetector type_id="opencv-haar-classifier">
<size>
32 48</size>
<stages>
<_>
<trees>
<_>
<_>
<feature>
<rects>
<_>
0 17 32 4 -1.</_>
<_>
8 17 16 4 2.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0218745097517967</threshold>
<left_val>0.8975061178207398</left_val>
<right_val>-0.7855733036994934</right_val></_></_>
<_>
<_>
<feature>
<rects>
<_>
2 7 15 32 -1.</_>
<_>
7 7 5 32 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-0.0305939596146345</threshold>
<left_val>0.7952377796173096</left_val>
<right_val>-0.4895249009132385</right_val></_></_>
<_>
<_>
<feature>
<rects>
<_>
18 12 14 12 -1.</_>
<_>
15 15 14 6 2.</_></rects>
<tilted>1</tilted></feature>
<threshold>-0.0268830899149179</threshold>
<left_val>0.7531449794769287</left_val>
<right_val>-0.3944652974605560</right_val></_></_>
<_>
<_>
<feature>
<rects>
<_>
11 2 6 12 -1.</_>
<_>
11 6 6 4 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-9.8022399470210075e-003</threshold>
<left_val>0.6961730718612671</left_val>
<right_val>-0.3479569852352142</right_val></_></_>
<_>
<_>
<feature>
<rects>
<_>
3 11 6 13 -1.</_>
<_>
5 11 2 13 3.</_></rects>
<tilted>0</tilted></feature>
<threshold>-5.3088441491127014e-003</threshold>
<left_val>0.8113191723823547</left_val>
<right_val>-0.2676127851009369</right_val></_></_></trees>
<stage_threshold>-1.2062009572982788</stage_threshold>
<parent>-1</parent>
<next>-1</next></_>
в новую версию, которая выглядит примерно так:
<opencv_storage>
<cascade type_id="opencv-cascade-classifier"><stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<maxWeakCount>93</maxWeakCount></stageParams>
<featureParams>
<maxCatCount>0</maxCatCount></featureParams>
<stageNum>24</stageNum>
<stages>
<_>
<maxWeakCount>6</maxWeakCount>
<stageThreshold>-1.4562760591506958e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 0 1.2963959574699402e-01</internalNodes>
<leafValues>
-7.7304208278656006e-01 6.8350148200988770e-01</leafValues></_>
<_>
<internalNodes>
0 -1 1 -4.6326808631420135e-02</internalNodes>
<leafValues>
5.7352751493453979e-01 -4.9097689986228943e-01</leafValues></_>
<_>
<internalNodes>
0 -1 2 -1.6173090785741806e-02</internalNodes>
<leafValues>
6.0254341363906860e-01 -3.1610709428787231e-01</leafValues></_>
<_>
<internalNodes>
0 -1 3 -4.5828841626644135e-02</internalNodes>
<leafValues>
6.4177548885345459e-01 -1.5545040369033813e-01</leafValues></_>
<_>
<internalNodes>
0 -1 4 -5.3759619593620300e-02</internalNodes>
<leafValues>
5.4219317436218262e-01 -2.0480829477310181e-01</leafValues></_>
<_>
<internalNodes>
0 -1 5 3.4171190112829208e-02</internalNodes>
<leafValues>
-2.3388190567493439e-01 4.8410901427268982e-01</leafValues></_></weakClassifiers></_>
Или какая версия opencv может поддерживать старый вариант (это из проекта, который использовал opencv 2.4.4, но я не могу найти эту версию в Google)