提交 f2a883ed 编写于 作者: Z zhiboniu 提交者: zhiboniu

ppvehicle plate license

上级 04b3f389
......@@ -9,7 +9,7 @@ DET:
batch_size: 1
MOT:
model_dir: pipeline_model//mot_ppyoloe_s_36e_ppvehicle/
model_dir: output_inference/mot_ppyoloe_l_36e_pipeline/
tracker_config: deploy/pphuman/config/tracker_config.yml
batch_size: 1
basemode: "idbased"
......
crop_thresh: 0.5
attr_thresh: 0.5
kpt_thresh: 0.2
visual: False
visual: True
warmup_frame: 50
DET:
......@@ -9,7 +9,7 @@ DET:
batch_size: 1
MOT:
model_dir: pipeline_model//mot_ppyoloe_s_36e_ppvehicle/
model_dir: output_inference/mot_ppyoloe_s_36e_ppvehicle/
tracker_config: deploy/pphuman/config/tracker_config.yml
batch_size: 1
basemode: "idbased"
......@@ -17,14 +17,14 @@ MOT:
VEHICLE_PLATE:
det_algorithm: "DB"
det_model_dir: "output/ch_PP-OCRv3_det_infer/"
det_model_dir: output_inference/ch_PP-OCRv3_det_infer/
det_limit_side_len: 480
det_limit_type: "max"
rec_algorithm: "SVTR_LCNet"
rec_model_dir: "output/ch_PP-OCRv3_rec_infer/"
rec_model_dir: output_inference/ch_PP-OCRv3_rec_infer/
rec_image_shape: [3, 48, 320]
rec_batch_num: 6
word_dict_path: "deploy/pphuman/ppvehicle/rec_word_dict.txt"
word_dict_path: deploy/pphuman/ppvehicle/rec_word_dict.txt
basemode: "idbased"
enable: True
......@@ -34,39 +34,8 @@ ATTR:
basemode: "idbased"
enable: False
VIDEO_ACTION:
model_dir: output_inference/ppTSM
batch_size: 1
frame_len: 8
sample_freq: 7
short_size: 340
target_size: 320
basemode: "videobased"
enable: False
SKELETON_ACTION:
model_dir: output_inference/STGCN
batch_size: 1
max_frames: 50
display_frames: 80
coord_size: [384, 512]
basemode: "skeletonbased"
enable: False
ID_BASED_DETACTION:
model_dir: output_inference/detector
batch_size: 1
basemode: "idbased"
enable: False
ID_BASED_CLSACTION:
model_dir: output_inference/classification
batch_size: 1
basemode: "idbased"
enable: False
REID:
model_dir: output_inference/reid_model/
model_dir: output_inference/vehicle_reid_model/
batch_size: 16
basemode: "idbased"
enable: False
......@@ -45,7 +45,7 @@ from python.action_utils import KeyPointBuff, ActionVisualHelper
from pipe_utils import argsparser, print_arguments, merge_cfg, PipeTimer
from pipe_utils import get_test_images, crop_image_with_det, crop_image_with_mot, parse_mot_res, parse_mot_keypoint
from python.preprocess import decode_image, ShortSizeScale
from python.visualize import visualize_box_mask, visualize_attr, visualize_pose, visualize_action
from python.visualize import visualize_box_mask, visualize_attr, visualize_pose, visualize_action, visualize_vehicleplate
from pptracking.python.mot_sde_infer import SDE_Detector
from pptracking.python.mot.visualize import plot_tracking_dict
......@@ -618,7 +618,7 @@ class PipePredictor(object):
center_traj) # visualize
writer.write(im)
if self.file_name is None: # use camera_id
cv2.imshow('PPHuman', im)
cv2.imshow('PPHuman&&PPVehicle', im)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
continue
......@@ -630,7 +630,6 @@ class PipePredictor(object):
if self.with_vehicleplate:
platelicense = self.vehicleplate_detector.get_platelicense(
crop_input)
print("find plate license:{}".format(platelicense))
self.pipeline_res.update(platelicense, 'vehicleplate')
if self.with_attr:
......@@ -828,6 +827,13 @@ class PipePredictor(object):
image = visualize_attr(image, attr_res, boxes)
image = np.array(image)
vehicleplate_res = result.get('vehicleplate')
if vehicleplate_res:
boxes = mot_res['boxes'][:, 1:]
image = visualize_vehicleplate(image, vehicleplate_res['plate'],
boxes)
image = np.array(image)
kpt_res = result.get('kpt')
if kpt_res is not None:
image = visualize_pose(
......
......@@ -499,10 +499,7 @@ class PlateRecognizer(object):
plate_images = get_rotate_crop_image(image_list[idx], box)
plate_texts = self.textrecognizer.predict_text([plate_images])
plate_pcar_list.append(plate_texts)
# print("plate text:{}".format(plate_texts))
plate_text_list.append(plate_pcar_list)
# newimg = draw_boxes(image_list[idx], boxes_pcar)
# cv2.imwrite("vehicle_plate.jpg", newimg)
return self.check_plate(plate_text_list)
def check_plate(self, text_list):
......@@ -513,11 +510,10 @@ class PlateRecognizer(object):
]
plate_all = {"plate": []}
for text_pcar in text_list:
platelicense = None
platelicense = ""
for text_info in text_pcar:
text = text_info[0][0][0]
if len(text) > 2 and text[0] in simcode and len(text) < 10:
# print("text:{} length:{}".format(text, len(text)))
platelicense = text
plate_all["plate"].append(platelicense)
return plate_all
......@@ -529,7 +525,6 @@ def main():
img_list = get_test_images(FLAGS.image_dir, FLAGS.image_file)
for img in img_list:
image = cv2.imread(img)
# image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
results = detector.get_platelicense([image])
......
......@@ -403,3 +403,38 @@ def visualize_action(im,
thickness=text_thickness)
return im
def visualize_vehicleplate(im, results, boxes=None):
if isinstance(im, str):
im = Image.open(im)
im = np.ascontiguousarray(np.copy(im))
im = cv2.cvtColor(im, cv2.COLOR_RGB2BGR)
else:
im = np.ascontiguousarray(np.copy(im))
im_h, im_w = im.shape[:2]
text_scale = max(0.5, im.shape[0] / 3000.)
text_thickness = 1
line_inter = im.shape[0] / 40.
for i, res in enumerate(results):
if boxes is None:
text_w = 3
text_h = 1
else:
box = boxes[i]
text = res
if text == "":
continue
text_w = int(box[2])
text_h = int(box[5])
text_loc = (text_w, text_h)
cv2.putText(
im,
text,
text_loc,
cv2.FONT_ITALIC,
text_scale, (0, 255, 255),
thickness=text_thickness)
return im
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册