mirror of
https://github.com/we0091234/yolov7_plate.git
synced 2025-12-24 12:57:59 +08:00
fix bug
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -16,6 +16,8 @@ wan/
|
||||
label_imgs/
|
||||
pretrained_model/
|
||||
cfg1/
|
||||
test_imgs/
|
||||
weixian/
|
||||
# 不忽略下面指定的文件类型
|
||||
!*.cpp
|
||||
!*.h
|
||||
|
||||
@@ -133,7 +133,7 @@ def draw_result(orgimg,dict_list):
|
||||
result = result['plate_no']
|
||||
result_str+=result+" "
|
||||
cv2.rectangle(orgimg,(rect_area[0],rect_area[1]),(rect_area[2],rect_area[3]),(0,0,255),2) #画框
|
||||
if len(result)>6:
|
||||
if len(result)>1:
|
||||
for i in range(4): #关键点
|
||||
cv2.circle(orgimg, (int(landmarks[i][0]), int(landmarks[i][1])), 5, clors[i], -1)
|
||||
|
||||
@@ -146,7 +146,7 @@ if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--detect_model', nargs='+', type=str, default='weights/yolov7-lite-s.pt', help='model.pt path(s)')
|
||||
parser.add_argument('--rec_model', type=str, default='weights/plate_rec.pth', help='model.pt path(s)')
|
||||
parser.add_argument('--source', type=str, default='wan', help='source') # file/folder, 0 for webcam
|
||||
parser.add_argument('--source', type=str, default='imgs', help='source') # file/folder, 0 for webcam
|
||||
# parser.add_argument('--img-size', nargs= '+', type=int, default=640, help='inference size (pixels)')
|
||||
parser.add_argument('--img_size', type=int, default=640, help='inference size (pixels)')
|
||||
parser.add_argument('--output', type=str, default='result', help='source')
|
||||
|
||||
@@ -140,6 +140,14 @@ def restore_box(boxes,r,left,top): #返回原图上面的坐标
|
||||
boxes[:,[1,3,6,8,10,12]]/=r
|
||||
return boxes
|
||||
|
||||
def restore_box_2(boxes,r,left,top): #返回原图上面的坐标
|
||||
boxes[:,[0,2,5,7]]-=left
|
||||
boxes[:,[1,3,6,8]]-=top
|
||||
|
||||
boxes[:,[0,2,5,7]]/=r
|
||||
boxes[:,[1,3,6,8]]/=r
|
||||
return boxes
|
||||
|
||||
def detect_pre_precessing(img,img_size): #检测前处理
|
||||
img,r,left,top=my_letter_box(img,img_size)
|
||||
# cv2.imwrite("1.jpg",img)
|
||||
@@ -159,10 +167,12 @@ def post_precessing(dets,r,left,top,conf_thresh=0.3,iou_thresh=0.45):#检测后
|
||||
index = np.argmax(dets[:,5:5+num_cls],axis=-1).reshape(-1,1)
|
||||
kpt_b=5+num_cls
|
||||
landmarks=dets[:,[kpt_b,kpt_b+1,kpt_b+3,kpt_b+4,kpt_b+6,kpt_b+7,kpt_b+9,kpt_b+10]] #yolov7关键有三个数,x,y,score,这里我们只需要x,y
|
||||
# landmarks=dets[:,[kpt_b,kpt_b+1,kpt_b+3,kpt_b+4]]
|
||||
output = np.concatenate((boxes,score,landmarks,index),axis=1)
|
||||
reserve_=my_nms(output,iou_thresh)
|
||||
output=output[reserve_]
|
||||
output = restore_box(output,r,left,top)
|
||||
# output = restore_box_2(output,r,left,top)
|
||||
return output
|
||||
|
||||
def rec_plate(outputs,img0,session_rec): #识别车牌
|
||||
@@ -214,7 +224,7 @@ def draw_result(orgimg,dict_list):
|
||||
for i in range(4): #关键点
|
||||
cv2.circle(orgimg, (int(landmarks[i][0]), int(landmarks[i][1])), 5, clors[i], -1)
|
||||
cv2.rectangle(orgimg,(rect_area[0],rect_area[1]),(rect_area[2],rect_area[3]),(0,0,255),2) #画框
|
||||
if len(result)<0:
|
||||
if len(result)>6:
|
||||
orgimg=cv2ImgAddText(orgimg,result,rect_area[0]-height_area,rect_area[1]-height_area-10,(255,0,0),height_area)
|
||||
print(result_str)
|
||||
return orgimg
|
||||
|
||||
@@ -213,9 +213,9 @@ class ComputeLoss:
|
||||
na, nt = self.na, targets.shape[0] # number of anchors, targets
|
||||
tcls, tbox, tkpt, indices, anch = [], [], [], [], []
|
||||
if self.kpt_label:
|
||||
gain = torch.ones(self.kpt_label*2+7, device=targets.device) # normalized to gridspace gain
|
||||
gain = torch.ones(self.kpt_label*2+7, device=targets.device).long() # normalized to gridspace gain
|
||||
else:
|
||||
gain = torch.ones(7, device=targets.device) # normalized to gridspace gain
|
||||
gain = torch.ones(7, device=targets.device).long() # normalized to gridspace gain
|
||||
ai = torch.arange(na, device=targets.device).float().view(na, 1).repeat(1, nt) # same as .repeat_interleave(nt)
|
||||
targets = torch.cat((targets.repeat(na, 1, 1), ai[:, :, None]), 2) # append anchor indices
|
||||
|
||||
|
||||
Reference in New Issue
Block a user