zoukankan      html  css  js  c++  java
  • [darknet]查看错误结果

    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()
  • 相关阅读:
    Java日志体系(1) —— 那些年那些事,那些日志的历史
    直播工作原理
    【PAT乙级 】1003. 我要通过!
    [牛客网刷题]被3整除
    [牛客网刷题]牛牛找工作
    Mybatis的简单分析
    数位DP
    正则表达式
    能量球
    从此,我们相伴,不离不弃
  • 原文地址:https://www.cnblogs.com/aimhabo/p/10449229.html
Copyright © 2011-2022 走看看