为热图像训练 dlib 自定义形状预测器

问题描述

我有一些热图像,我想使用面部地标应用面部识别,我最初尝试使用 RGB 图像的形状预测器,但它无法检测热面部。我阅读了文档并遵循了一些教程,他们通常在 i-bug 数据集上进行训练,我认为 dlib 最初已经在 ibug 数据集上进行了训练。我最初尝试 dlib 函数 face_recognition_model_v1 如上所述但它不起作用,所以我认为我必须进行预测器形状训练。

我所做的是从我的数据集中抓取 12 个图像,并在这些图像上每 68 个关键点手动设置和标记。之后我下载了他们的 .xml 文件

我有 12 个这样的 .xml 文件

<?xml version='1.0' encoding='ISO-8859-1'?>
<?xml-stylesheet type='text/xsl' href='image_Metadata_stylesheet.xsl'?>
<dataset>
<name>dlib face detection dataset generated by ImgLab</name>
<comment>
    This dataset is manually crafted or adjusted using ImgLab web tool
    Check more detail on https://github.com/NaturalIntelligence/imglab
</comment>
<images>    
<image file='irface_sub062_seq06_frm01108.png_lfb.png'>
            <Box top='322' left='322' width='378' height='378'>
                <label>landmarks</label>
                <part name='0' x='339' y='414'/>
                <part name='1' x='343' y='467'/>
                <part name='2' x='355' y='519'/>
                <part name='3' x='365' y='563'/>
                <part name='4' x='390' y='599'/>
                <part name='5' x='411' y='641'/>
                <part name='6' x='443' y='669'/>
                <part name='7' x='481' y='689'/>
                <part name='8' x='525' y='692'/>
                <part name='9' x='571' y='674'/>
                <part name='10' x='611' y='644'/>
                <part name='11' x='635' y='609'/>
                <part name='12' x='654' y='573'/>
                <part name='13' x='670' y='530'/>
                <part name='14' x='680' y='495'/>
                <part name='15' x='684' y='449'/>
                <part name='16' x='684' y='400'/>
                <part name='17' x='359' y='367'/>
                <part name='18' x='383' y='354'/>
                <part name='19' x='410' y='350'/>
                <part name='20' x='439' y='353'/>
                <part name='21' x='461' y='361'/>
                <part name='22' x='555' y='361'/>
                <part name='23' x='586' y='354'/>
                <part name='24' x='618' y='351'/>
                <part name='25' x='641' y='350'/>
                <part name='26' x='661' y='363'/>
                <part name='27' x='515' y='396'/>
                <part name='28' x='515' y='430'/>
                <part name='29' x='516' y='464'/>
                <part name='30' x='515' y='492'/>
                <part name='31' x='471' y='519'/>
                <part name='32' x='489' y='522'/>
                <part name='33' x='511' y='522'/>
                <part name='34' x='536' y='522'/>
                <part name='35' x='560' y='518'/>
                <part name='36' x='400' y='410'/>
                <part name='37' x='419' y='400'/>
                <part name='38' x='441' y='394'/>
                <part name='39' x='468' y='403'/>
                <part name='40' x='443' y='413'/>
                <part name='41' x='420' y='414'/>
                <part name='42' x='561' y='402'/>
                <part name='43' x='581' y='391'/>
                <part name='44' x='606' y='394'/>
                <part name='45' x='628' y='413'/>
                <part name='46' x='604' y='413'/>
                <part name='47' x='580' y='412'/>
                <part name='48' x='446' y='575'/>
                <part name='49' x='463' y='578'/>
                <part name='50' x='472' y='550'/>
                <part name='51' x='495' y='546'/>
                <part name='52' x='524' y='550'/>
                <part name='53' x='548' y='554'/>
                <part name='54' x='562' y='557'/>
                <part name='55' x='571' y='570'/>
                <part name='56' x='564' y='571'/>
                <part name='57' x='496' y='573'/>
                <part name='58' x='515' y='574'/>
                <part name='59' x='525' y='572'/>
                <part name='60' x='494' y='581'/>
                <part name='61' x='512' y='579'/>
                <part name='62' x='526' y='579'/>
                <part name='63' x='461' y='588'/>
                <part name='64' x='492' y='595'/>
                <part name='65' x='511' y='595'/>
                <part name='66' x='529' y='595'/>
                <part name='67' x='554' y='588'/>
            </Box>
        </image>
    </images></dataset>

文档中的代码是 import os

import sys
import glob

import dlib
if len(sys.argv) != 2:
    print(
        "Give the path to the examples/faces directory as the argument to this "
        "program. For example,if you are in the python_examples folder then "
        "execute this program by running:\n"
        "    ./train_shape_predictor.py ../examples/faces")
    exit()
faces_folder = sys.argv[1]

options = dlib.shape_predictor_training_options()
options.oversampling_amount = 300
options.nu = 0.05
options.tree_depth = 2
options.be_verbose = True
training_xml_path = os.path.join(faces_folder,"training_with_face_landmarks.xml")
dlib.train_shape_predictor(training_xml_path,"predictor.dat",options)
print("\nTraining accuracy: {}".format(
dlib.test_shape_predictor(training_xml_path,"predictor.dat")))

我想知道我应该如何使用图像和 .xml 文件进行训练?我的 .xml 路径实际上是 pythonProject/手动标记的,图像是 pythonProject/thermal-images

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)