学习日记

接触了DELF模型,用来找图片之间的局部相似图片(注重语义上的),从github上下的源码,找图片相似性分为两步:

1 抽取特征

2 匹配图片

为将其改成适用于自己任务,对代码进行了修改

    txt文件的命令行参数换成了图片的文件路径

 parser.add_argument(
      '--full_images',
      type=str,
      default='list_images.txt',
      help="""
      """)
  parser.add_argument(
        '--part_images',
        type=str,
        default='list_images.txt',
        help="""
        Path to list of images whose DELF features will be extracted.
        """)  

    相应的解析参数的代码也进行了修改

def _ReadImageList(full,part):
  """Helper function to read image paths.

  Args:
    list_path: Path to list of images, one image path per line.

  Returns:
    image_paths: List of image paths.
  """
  image_paths = [full,part]
  return image_paths

脚本文件批量处理图片:

import os


full_images = []
part_images = []
for path in os.listdir('full_path'):
    full_images.append(path)
for path in os.listdir('part_path'):
    part_images.append(path)
full_images = sorted(full_images)
part_images = sorted(part_images)
assert(len(full_images)==len(part_images))
assert(full_images[0].split('_')[1]==part_images[0].split('_')[1])
for i in range(133,len(full_images)):
    first_command = "python3.5 extract_features.py \
    --config_path delf_config_example.pbtxt \
    --full_images imgs/full/"+full_images[i]+" \
    --part_images imgs/part/"+part_images[i]+" \
    --output_dir data/"
    print('start '+full_images[i])
    print('start '+part_images[i])
    os.system(first_command)
    second_command = "python3.5 match_images.py \
    --image_1_path imgs/full/"+full_images[i]+" \
    --image_2_path imgs/part/"+part_images[i]+" \
    --features_1_path data/"+full_images[i].split('.')[0]+".delf \
    --features_2_path data/"+part_images[i].split('.')[0]+".delf \
    --output_image output/"+full_images[i].split('_')[1].split('.')[0]+'.png'
    os.system(second_command)
其中遇到几个问题,图片不清晰,是因为matplotlib分辨率过低。
plt.rcParams['savefig.dpi']=300
plt.rcParams['figure.dpi']=300

gpu内存使用过高导致tf.ssesion开启失败。

sudo fuser -v /dev/nvidia* #查找占用GPU资源的PID

kill -9 pid






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值