getDataFromOpenImages_snowman.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import csv
  2. import subprocess
  3. import os
  4. runMode = "train"
  5. classes = ["Snowman"]
  6. with open('class-descriptions-boxable.csv', mode='r') as infile:
  7. reader = csv.reader(infile)
  8. dict_list = {rows[1]:rows[0] for rows in reader}
  9. subprocess.run(['rm', '-rf', 'JPEGImages'])
  10. subprocess.run([ 'mkdir', 'JPEGImages'])
  11. subprocess.run(['rm', '-rf', 'labels'])
  12. subprocess.run([ 'mkdir', 'labels'])
  13. for ind in range(0, len(classes)):
  14. className = classes[ind]
  15. print("Class " + str(ind) + " : " + className)
  16. commandStr = "grep " + dict_list[className] + " " + runMode + "-annotations-bbox.csv"
  17. print(commandStr)
  18. class_annotations = subprocess.run(commandStr.split(), stdout=subprocess.PIPE).stdout.decode('utf-8')
  19. class_annotations = class_annotations.splitlines()
  20. totalNumOfAnnotations = len(class_annotations)
  21. print("Total number of annotations : "+str(totalNumOfAnnotations))
  22. cnt = 0
  23. for line in class_annotations[0:totalNumOfAnnotations]:
  24. cnt = cnt + 1
  25. print("annotation count : " + str(cnt))
  26. lineParts = line.split(',')
  27. subprocess.run([ 'aws', 's3', '--no-sign-request', '--only-show-errors', 'cp', 's3://open-images-dataset/'+runMode+'/'+lineParts[0]+".jpg", 'JPEGImages/'+lineParts[0]+".jpg"])
  28. with open('labels/%s.txt'%(lineParts[0]),'a') as f:
  29. f.write(' '.join([str(ind),str((float(lineParts[5]) + float(lineParts[4]))/2), str((float(lineParts[7]) + float(lineParts[6]))/2), str(float(lineParts[5])-float(lineParts[4])),str(float(lineParts[7])-float(lineParts[6]))])+'\n')