import os import numpy import cv2 bad_label_file = open("bad_valid.list",'r') names = [] for line in open('data/coco.names','r'): names.append(line.strip(' ')) classes = len(names) colors = [] for i in range(80): #color = [random.uniform(0, 255),random.uniform(0, 255),random.uniform(0, 255)] color = [(i)*255/classes,(classes-i)*255/classes,(classes+i)*128/classes] colors.append(color) lines = [] for line in bad_label_file: lines.append(line) mount = len(lines) oper=0 i=0 #for i in range(mount): while(i<mount): i+=oper words = lines[i].split(':') imagepath = words[0] #print('reading "{}: No. {}"'.format(path,indexes)) print('{}\{}'.format(mount,i)) src = cv2.imread(imagepath) #cv2.imshow("src",src) h,w = src.shape[:2] labelpath = imagepath.split('-')[0]+'-labels/'+os.path.basename(imagepath).split('.')[0]+'.txt' try: labelfile = open(labelpath,'r') labels = [] for line in labelfile: #print('get label {}'.format(line)) labels.append(line) for label in labels: ti,tx,ty,tw,th = map(float,label.split(' ')[:5]) #print('get label {} {} {} {} {}'.format(ti,tx,ty,tw,th)) x0=w*(tx-tw/2) y0=h*(ty-th/2) x1=w*(tx+tw/2) y1=h*(ty+th/2) w0=w*tw h0=h*th ti,x0,y0,x1,y1,w0,h0 = map(int,[ti,x0,y0,x1,y1,w0,h0]) #print('<({},{}),({},{})>,'.format(x0,y0,x1,y1)) cv2.rectangle(src,(x0,y0),(x1,y1),colors[ti],2) y0+=15 #cv2.putText(src,str(ti)+' '+names[ti],(x0+1,y0+1),cv2.FONT_HERSHEY_COMPLEX,0.5,colors[ti][::-1],1) #cv2.putText(src,str(ti)+' '+names[ti],(x0-1,y0-1),cv2.FONT_HERSHEY_COMPLEX,0.5,colors[ti][::-1],1) cv2.putText(src,str(ti)+' '+names[ti],(x0,y0),cv2.FONT_HERSHEY_COMPLEX,0.5,colors[ti],1) except : print('guess what? ERROR!(show_bad_valid.py::67)') words = words[1].strip(' ') probs = words.split(' ')[2:] #print(words) #print(probs) if len(probs) > 0: for prob in probs: values = prob.strip('<').strip('>').split(',') print(values) ti,tx,ty,tw,th = map(float,values[2:]) x0=w*(tx-tw/2) y0=h*(ty-th/2) x1=w*(tx+tw/2) y1=h*(ty+th/2) ti,x0,y0,x1,y1 = map(int,[ti,x0,y0,x1,y1]) y1-=10 cv2.rectangle(src,(x0,y0),(x1,y1),colors[ti][::-1],1) cv2.putText(src,str(ti)+' '+names[ti],(x0,y1),cv2.FONT_HERSHEY_COMPLEX,0.5,colors[ti],1) cv2.imshow("image",src) key = cv2.waitKey(0) ''' A 65 a 97 D 68 d 100 S 83 s 115 ''' if key == 97: if i>0: oper=-1 elif key == 100: if i<len(lines): oper=1 elif key == 115: oper=0 cv2.imwrite('workingspace.jpg',src) else: break bad_label_file.close()