CVPR2021-RSTNet:自适应Attention的“看图说话”模型
其中有一个运行案例代码(相应路径修改即可)
python caption.py --img='path/to/image.jpeg' --model='path/to/BEST_checkpoint_coco_5_cap_per_img_5_min_word_freq.pth.tar' --word_map='path/to/WORDMAP_coco_5_cap_per_img_5_min_word_freq.json' --beam_size=5
需要将caption.py 中的下面两个索引最后添加.long()否则报错索引类型不对
‘
下面是500×500 的图片,改为上面的图片路径,
输出为:
感觉食物的辨识有点差,这里并没有三明治和薯片
https://github.com/peteanderson80/Up-Down-Captioner/blob/master/scripts/demo.ipynb
https://drive.google.com/drive/folders/1KT38ZDgoyCFLTcWlcNgEFpyyHCxqdWw9
之前调通过peterson 的bottom up top down vqa 模型,他是用caffe编写的。
这个模型也是基于caffe 编写。本以为指定路径即可使用。但是发现。caffe.proto 文件不同。且原先的layer中没有引入lstm 。
所以仍然需要编译。(所以我的心情...)
这里看看能不能走个捷径,将上次编译的makefile 和makefile.config 覆盖到这个模型的同名文件
目前看着良好,然后就能成功!
我当时so.7 1kb 所以文件是有问题的,后来看到另一个版本文件夹下的so.7 如此之大,然后就运行成功 export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
等会再改一个参数,目前看来网络不能一下子全部运行,可以先运行识别,然后将dets 存储下来,然后再运行语言,将dets 作为参数传入。得到最终结果。(我的gpu 12G 都无法一下子运行这两个模型参数文件,所以大家可以试试分两次运行)
但是这个是传入多个目标框,只能生成一句话,所以不属于dense caption 类型
但是就测了一个图片!
https://github.com/ruotianluo/ImageCaptioning.pytorch/blob/master/data/README.md
有时也出现较大的失误而且粒度描述性不高
https://github.com/zhjohnchan/awesome-image-captioning#pytorch
选择CUDA9.0 +Torch7 安装
命令选择官网Torch | Getting started with Torch
其中如果出现算力问题,可以设置环境变量改为7.0 算力。cuda9.0 对应的7.0算力
至于已经完整的torch 文件夹,可以直接拷贝到有9.0 的环境即可。不需要每次git clone 操作
出现下面问题的可以尝试
export TORCH_NVCC_FLAGS="-D__CUDA_NO_HALF_OPERATORS__"
yes | bash ./install.sh
问题1:
/home/brian/torch/extra/cutorch/lib/THC/generic/THCTensorMathPairwise.cu(66): error: more than one operator "!=" matches these operands:
function "operator!=(const __half &, const __half &)"
function "operator!=(half, half)"
operand types are: half != half
问题2:
CMake Error at /usr/share/cmake-3.10/Modules/FindQt4.cmake:1320 (message):
Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
Enter the following commands in the terminal.
sudo apt-get install libqt4-core libqt4 libqt4-gui-dev
sudo apt-get install qt4-dev-tools
问题3:
-bash: ./configure: Permission denied
在命令前加bash就可以了
历经千辛万苦,终究出来这个画面!
对于luarocks 的安装,可以自定义安装目录,如果定义到/usr/local 通常会不断地切换权限,所以最好自己建造一个文件夹,这样自己就拥有对他的权限
将lua 5.3 的Manifest 文件中更改安装路径,同样可以避免用到管理员权限
luarocks 安装需要指定lua 的安装路径,这样避免使用管理员权限
问题4:某些库安装出错
luarocks install https://raw.githubusercontent.com/qassemoquab/stnbhwd/master/stnbhwd-scm-1.rockspec
Ubuntu 16.04+cuda 9.0+cudnn 7配置Torch运行DenseCap开源代码遇到问题 - 开发者知识库
nvcc fatal : Value 'sm_20' is not defined for option 'gpu-architecture'
CMake Error at custn_generated_init.cu.o.cmake:207 (message):
Error generating
/tmp/luarocks_stnbhwd-scm-1-4197/stnbhwd/build/CMakeFiles/custn.dir//./custn_generated_init.cu.o
解决方法:
1.下载源码到本地:git clone https://github.com/qassemoquab/stnbhwd
2.修改CMakeLists.txt:
From:
IF (CUDA_FOUND)
LIST(APPEND CUDA_NVCC_FLAGS "-arch=sm_20")
to:
IF (CUDA_FOUND)
LIST(APPEND CUDA_NVCC_FLAGS "-arch=sm_30")
3.在源码目录里执行本地安装:luarocks make
运行时出现libcudnn5 的问题,网上大多说需要下载5的相关文件,目前我的cuda 里面时so.7 所以需要下载5。
wget http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz #cud8 cudnn5.1 wget http://developer.download.nvidia.com/compute/redist/cudnn/v6.0/cudnn-8.0-linux-x64-v6.0.tgz #cuda8 cudnn6.0 wget http://developer.download.nvidia.com/compute/redist/cudnn/v7.0.5/cudnn-8.0-linux-x64-v7.tgz #cuda8 cudnn7.0
如果发现由于lua5.3出现的一些数值 或者new 问题,可以利用LUA52 重新编译一次,则此时运行th 命令,会自动切换到lua52 ,而且lua53时安装的第三方包可以继续使用。
tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz
如何最简单的处理此问题,按照他的提示,只需在~/.bashrc 中添加上面下载的文件中的so.5 文件即可(我不喜欢用软连接)
有些包luarocks 安装不成功!
ubuntu上安装Torch7及nn及dpnn_Linux系统教程_红联Linux门户
离线.安装torch的包(packages),如nn和dpnn
说明:安装先安装nn,再安装dpnn
1)下载nn和dpnn:
https://github.com/torch/nn
https://github.com/nicholas-leonard/dpnn
2)解压这两个文件夹。
3)终端中cd到这两个文件夹上一级目录。
4)使用luarocks install命令进行安装
luarocks install nn-master/rocks/nn-scm-1.rockspec
luarocks install dpnn-master/rocks/dpnn-scm-1.rockspec
最终是可以利用-gpu -1 可以输出densecap结果,而不使用该参数会出现 no kernel image (48)类似错误。
由于Lua 语言看的我头疼,我又在github 找到了一个北邮人写的densecap-pytorch.
1.将代码 git clone 下来
2.将三个提供的文件下载下来
3.在descibe.py 中指明3个文件的位置
4.python decribe.py 即可生成结果,结果是result.json
此代码中使用了torchvision 中的目标检测器:
https://github.com/pytorch/vision/blob/c8f7d772e844d707e152e2a1fa1aad26cf1b7530/torchvision/models/detection/generalized_rcnn.py
运行问题搜集:
这是因为当前版本的caffe的cudnn实现与系统所安装的cudnn的版本不一致引起的。
解决办法:
1.将./include/caffe/util/cudnn.hpp 换成最新版的caffe里的cudnn的实现,即相应的cudnn.hpp.
https://github.com/lukemelas/image-paragraph-captioning/tree/master/data/captions