• 视频分类论文“Towards Good Practices for Very Deep Two-Stream ConvNets”程序运行过程


    论文:Towards Good Practices for Very Deep Two-Stream ConvNets

    论文原代码:https://github.com/bryanyzhu/two-stream-pytorch

    原代码环境:Ubuntu 16.04, Python: 3.5, CUDA: 8.0, OpenCV3, dense_flow其中OpenCV3指的是C++版的,dense_flow用于提取视频光流信息以及对视频分帧)

    视频数据库以及下载地址:UCF-101, http://crcv.ucf.edu/data/UCF101.php

     

    一、视频分帧和提取光流

    这一步中最重要的是使用dense_flow来分帧以及提取光流。

    原代码中的dense_flow是基于OpenCV3的,由于OpenCV3中不包含某些需要的文件,所以需要下载附加模块opencv_contrib(这一步的环境配置对我来说有点复杂,一直配不好导致dense_flow无法正常的使用。然后我注意到括号中的话,使用opencv-2.4.13可以无需下载opencv_contrib,但是后续有可能会出错,由于dense_flow主要是来提取光流信息,所以我想在windows环境下搭建opencv-2.4.13来使用dense_flow提取数据,然后将数据转到ubuntu下训练,虽然这个方法比较笨拙,但是总算成功的提取了光流和帧数据)

     

     

    windows下使用dense_flow可以参考博客:http://www.bubuko.com/infodetail-1727891.html

     

    使用dense_flow时遇到的几个问题:

    1.warning: Error opening file(../../module/highgui...hpp:545)

    could not initialize capturing

    这是因为视频路径不对,检查传入的视频路径是否准确。

    2.程序可以运行但是没有图片

      这有可能是因为要存放图片的文件夹事先没有创建,也有可能是存放图片的路径不准确。有时候路径就是一些微小细节,比如前面的斜杠号的方向和有无。为了避免这种路径细节错误,我一般会使用绝对路径。

     

    在能使用dense_flow之后,对UCF-101中的数据进行批量处理,CPU上处理整个数据库可能需要很长很长的时间:

    一些命令参数需要看具体代码,主要还是路径的问题。

     

    二、训练网络

    原论文研究的是卷积双流网络,双流表示空间流和时间流,分别由两个独立的网络训练,然后进行融合。因此在训练时,要单独训练空间流(输入的是单帧的RGB图片)和时间流(输入的是连续的光流图)。

    在这里出现了一个问题让我解决了很久,后来发现这个问题真的很弱鸡,之前忘记截图了,具体报错是could not load the file /文件路径/。后来设置断点调试了之后,发现我之前用dense_flow提取的图片命名是四位的,比如:img_0112.jpg,而代码中搜索的路径是武威,比如:img_00112.jpg。

     

    所以在直接跑原论文代码时,一定一定要注意路径问题。

     

    三、测试

    因为一开始看完论文就直接跑代码了,具体代码实现细节还没有认真研究过,测试部分后续研究完代码再进行补充。

     

     

     

  • 相关阅读:
    Sightseeing,题解
    A Simple Problem,题解
    城池攻占,题解
    传递,题解
    How many ways??,题解
    Least Cost Bracket Sequence,题解
    Evacuation,题解
    Tallest Cow,题解
    容易题,题解
    无题Ⅱ,题解
  • 原文地址:https://www.cnblogs.com/jessie-zheng/p/9371354.html
Copyright © 2020-2023  润新知