关于KAIST数据集

关于KAIST数据集

最近在使用KAIST数据集做行人检测,这个数据集简直各种无奈。
首先需使用谷歌(其他浏览器em..)找到并打开KAIST的官网,然后留下邮箱,他们会发邮件给你,邮件中由下载地址。

下载完,就会发现一个问题——无法打开图像。
Error interpreting jPEG imag file (Not a jPEG file: starts with 0×89 0×50)
关于KAIST数据集_第1张图片

根据提示并百度后,得知:0*89 0*50 是png。也就是说,这个数据集的图像本来就是png格式,但是后缀却强行改成了jpg,当然打不开。

解决办法就是:将图像的后缀改为png。如果想要使用jpg格式的图像,再将png格式转换为jpg格式。考虑数据量较大,使用python代码批量修改。

将图像的后缀由’jpg’更改为’png‘

import os
img_path="../images/set06/V000/visible"
files = os.listdir(img_path)
for filename in files
    portion = os.path.splitext(filename)
    if portion[1] ==".jpg":=
        newname = portion[0]+".png"
        os.chdir(img_path)
        os.rename(filename,newname)

将图像由png格式转换为jpg格式

import os 
from PIL import Image 
import shutil 
import sys 

# Define the input image 
output_dirHR = '/home/.../images(jpg)/set11/V001/visible'
if not os.path.exists(output_dirHR): 
  os.mkdir(output_dirHR) 

def png2jpg(dataset_dir,type): 
  files = [] 
  image_list = os.listdir(dataset_dir) 
  files = [os.path.join(dataset_dir, _) for _ in image_list] 
  for index,png in enumerate(files): 
    try: 
      sys.stdout.write('\r>>Converting image %d/100000 ' % (index)) 
      sys.stdout.flush() 
      im = Image.open(png) 
      jpg = os.path.splitext(png)[0] + "." + type
      im.save(jpg) 
      shutil.move(jpg, output_dirHR) 
    except IOError as e: 
      print('could not read:',png) 
      print('error:',e) 
      print('skip it\n') 

  sys.stdout.write('Convert Over!\n') 
  sys.stdout.flush() 

if __name__ == "__main__": 
  current_dir = os.getcwd() 
  print(current_dir)
  data_dir = '/home/.../V001/visible/'

  png2jpg(data_dir,'jpg')

你可能感兴趣的:(深度学习,计算机视觉)