• Animal_human_kp人脸与马脸迁移学习GitHub 论文实现


    Interspecies Knowledge Transfer for Facial Keypoint Detection关键点检测

    img img

    Github地址:Interspecies Knowledge Transfer for Facial Keypoint Detection(迁移学习检测动物头部关键点)

    基于torch进行论文中想法的实现

    论文地址

    1. Torch的安装部分

    不得不说torch要比caffe好配置多了,emm , 祝愿你们可以一次性顺利配置好,话不多说开始了

    Torch的github库https://github.com/torch/distro

    git clone https://github.com/torch/distro.git ~/torch --recursive
    # 国内git clone特别慢,建议参考前一篇博客https://www.cnblogs.com/pprp/p/9450512.html进行加速,或者采用我的git lab(git clone https://gitlab.com/pprp/distro.git ~/torch --recursive)
    # 假设在~/torch下进行配置,你也可以更改位置
    cd ~/torch
    # 安装依赖(如果失败了,记得查看有哪些失败了,然后手动重装)
    bash install-deps
    # 安装
    ./install.sh
    source ~/.bashrc
    

    uninstall 卸载

    rm -rf ~/torch
    ./clean.sh
    

    可以使用命令行中的Luarocks安装新软件包:

    # run luarocks WITHOUT sudo
    $ luarocks install image
    $ luarocks list
    

    安装完成后,您可以使用命令来运行火炬th

    Th简介详细介绍

    $ th
     
      ______             __   |  Torch7                                   
     /_  __/__  ________/ /   |  Scientific computing for Lua.         
      / / / _ / __/ __/ _   |                                           
     /_/  \___/_/  \__/_//_/  |  https://github.com/torch   
                              |  http://torch.ch            
    			  
    th> torch.Tensor{1,2,3}
     1
     2
     3
    [torch.DoubleTensor of dimension 3]
    
    th>
    

    要退出交互式会话,请键入^c两次 - 控制键以及c键,两次或键入os.exit()。一旦用户输入了完整的表达式,例如1 + 2,并且命中输入,交互式会话将评估表达式并显示其值。

    要评估在源文件file.lua中编写的表达式,请编写 dofile "file.lua"

    要以非交互方式在文件中运行代码,可以将其作为th命令的第一个参数::

    $ th file.lua
    

    有多种方法可以运行Lua代码并提供选项,类似于可用于perlruby程序的选项:

     $ th -h
    Usage: th [options] [script.lua [arguments]]
    
    Options:
      -l name            load library name
      -e statement       execute statement
      -h,--help          print this help
      -a,--async         preload async (libuv) and start async repl (BETA)
      -g,--globals       monitor global variables (print a warning on creation/access)
      -gg,--gglobals     monitor global variables (throw an error on creation/access)
      -x,--gfx           start gfx server and load gfx env
      -i,--interactive   enter the REPL after executing a script
    

    2. 具体用法

    Update

    To update your already installed distro to the latest master branch of torch/distro simply run:

    ./update.sh
    

    Cleaning

    To remove all the temporary compilation files you can run:

    ./clean.sh
    

    To remove the installation run:

    # Warning: this will remove your current installation
    rm -rf ./install
    

    You may also want to remove the torch-activate entry from your shell start-up script (~/.bashrc or ~/.profile).

    Test

    You can test that all libraries are installed properly by running:

    ./test.sh
    

    3. 继续配置animal_human_kp

    1. 安装一些其他配置

    Install Torch requirements:

    luarocks install torchx
    
    • npy4th (You may need to checkout commit from 5-10-16)
    git clone https://github.com/htwaijry/npy4th.git
    cd npy4th
    luarocks make
    

    Install Python requirements if needed:

    Install the Spatial Tranformer module provided:

    cd stnbhwd-master
    luarocks make
    

    2. 数据集

    cd ~/animal_human_kp
    cd data
    wget https://www.dropbox.com/s/9t770jhcjqo3mmg/release_data.zip
    unzip *.zip
    

    3.模型下载

    cd ~/animal_human_kp
    cd models
    wget https://www.dropbox.com/s/44ocinlmx8mp8v2/release_models.zip
    unzip *.zip
    

    4. 开始数据的测试

    cd ~/animal_human_kp
    mkdir output
    cd torch
    th test.th -out_dir_images ../output/
    

    打开output文件夹

    #会出现一些结果文件
    results.html
    stats.txt
    bar.pdf
    

    5. 训练模型

    开始训练整个模型:

    cd torch
    th train_full_model.th
    

    训练翘曲网络:

    th torch/train_warping_net.th
    

    测试数据的调整:
    解释参数:

    Options
      -mean_im_path   mean image for image preprocessing for keypoint network training [../data/aflw_cvpr_224_mean.png]
      -std_im_path    std image for image preprocessing for keypoint network training [../data/aflw_cvpr_224_std.png]
      -limit          num of test data to read. negative means all [-1] # 设置多少张图片测试,-1代表全部
      -val_data_path  validation data file path [../data/our_horse.txt] # 设置读取图片的路径以及对应的npy文件的路径
      -model_path     [../models/horse_full_model_tps.dat] # 训练生成模型的位置
      -out_dir_images [../scratch/test_images] # 结果的输出
      -gpu            gpu to run the training on [1] # 选取哪个gpu
      -iterations     num of iterations to run [2] # 设置迭代的层数
      -batchSize      batch size [100]
      -bgr            [true]
      -face           true if testing a model with no warping network [false]
    

    /animal_human_kp/torch test.th中找到-val_data_path的设置,修改为需要的txt形式,
    其中对应文件的形式为 对应的图片地址+空格+对应的npy文件地址

    合成代码如下:

    cd /animal_human_kp/data/horse/im/ inria-horses
    # 生成完整的路径
    ls | sed "s:^:`pwd`/:" > test_minLoss_horse.txt
    cp test_minLoss_horse.txt test_minLoss_horse_npy.txt
    # 然后通过vim的替换命令s进行替换,以下是一个示例
    vim test_minLoss_horse_npy.txt
    :%s/im/npy/ig
    :%s/jpg/npy/ig
    # 将两个文件进行合成
    paste -d' ' test_minLoss_horse.txt test_minLoss_horse_npy.txt > our_horse.txt
    # 注意最后再次检查合成文件的内容,进行排查
    

    将our_horse.txt放到/animal_human_kp/data文件下

    然后到torch文件夹下运行代码:

    # out 是我新建的文件夹,你也可以指定到你需要的位置
    th test.th -out_dir_images ../out -val_data_path ../data/our_horse.txt -iterations 100
    
  • 相关阅读:
    DataGridView编辑后立即更新到数据库的两种方法
    DataTable 转换成 Json的3种方法
    C# 应用程序配置文件App.Config和web.config
    C#中使用JsonConvert解析JSON
    C#JsonConvert.DeserializeObject反序列化json字符
    WIN10远程桌面、常用命令
    control[控制面板]的参数
    win10企业版变成win10专业版的设置教程
    DLL加密
    微信小程序顶部tab
  • 原文地址:https://www.cnblogs.com/pprp/p/9460973.html
Copyright © 2020-2023  润新知