1
I’m using:
Windows 10Python 3.7.2 Shell (default IDLE) x64
I’m trying to follow the tutorial Learnopencv tutorial, I already downloaded the file class-descriptions-boxable.csv and train-annotations-bbox.csv through the Git
I downloaded the files and put in the same folder as the file getDataFromOpenImages_snowman.py (shown below), but when I spin, it presents an error:
Traceback (most recent call last):
  File "C:\path\getDataFromOpenImages_snowman.py", line 12, in <module>
    subprocess.run(['rm', '-rf', 'JPEGImages'])
  File "C:\Users\name\AppData\Local\Programs\Python\Python37\lib\subprocess.py",
     line 472, in run with Popen(*popenargs, **kwargs) as process:
  File "C:\Users\name\AppData\Local\Programs\Python\Python37\lib\subprocess.py",
    line 775, in __init__ restore_signals, start_new_session)
  File "C:\Users\name\AppData\Local\Programs\Python\Python37\lib\subprocess.py",
    line 1178, in _execute_child startupinfo)
FileNotFoundError: [WinError 2] The system can not find the file specified
I have no experience in Python, I looked for subprocess documentation, however, I can’t understand the problem. Someone has a suggestion?
import csv
import subprocess
import os
runMode = "train"
classes = ["Snowman"]
with open('class-descriptions-boxable.csv', mode='r') as infile:
    reader = csv.reader(infile)
    dict_list = {rows[1]:rows[0] for rows in reader}
subprocess.run(['rm', '-rf', 'JPEGImages'])
subprocess.run([ 'mkdir', 'JPEGImages'])
subprocess.run(['rm', '-rf', 'labels'])
subprocess.run([ 'mkdir', 'labels'])
for ind in range(0, len(classes)):
    className = classes[ind]
    print("Class " + str(ind) + " : " + className)
    commandStr = "grep " + dict_list[className] + " " + runMode + "-annotations-bbox.csv"
    print(commandStr)
    class_annotations = subprocess.run(commandStr.split(), stdout=subprocess.PIPE).stdout.decode('utf-8')
    class_annotations = class_annotations.splitlines()
    totalNumOfAnnotations = len(class_annotations)
    print("Total number of annotations : "+str(totalNumOfAnnotations))
    cnt = 0
    for line in class_annotations[0:totalNumOfAnnotations]:
        cnt = cnt + 1
        print("annotation count : " + str(cnt))
        lineParts = line.split(',')
        subprocess.run([ 'aws', 's3', '--no-sign-request', '--only-show-errors', 'cp', 's3://open-images-dataset/'+runMode+'/'+lineParts[0]+".jpg", 'JPEGImages/'+lineParts[0]+".jpg"])
        with open('labels/%s.txt'%(lineParts[0]),'a') as f:
            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')
						
Translate the question, you’re on Sopt.
– renanvm
Yes. It’s been translated. Thank you!
– Bernardo Bresolini
Wouldn’t it be because you’re trying to make a call to
rm -rfin Windows? Linux is used in the following tutorial...– Tuxpilgrim
Good, it may be that yes. I will research on and try to implement. Thank you!
– Bernardo Bresolini