gpt4 book ai didi

python - 检测帧特定区域中的对象

转载 作者:太空宇宙 更新时间:2023-11-03 22:46:34 24 4
gpt4 key购买 nike

我想使用 tensorflows object detection api 检测帧区域中的对象。我已将框架拆分为 region_1 和 region_2,但如何仅在框架的 region_1 中执行检测并仅在 region1 中绘制矩形

def detect_objects(image_np, sess, detection_graph):

region_1 = image_np[zone1[1]: zone1[3], zone1[0]:zone1[2]]
region_2 = image_np[zone2[1]: zone2[3], zone2[0]:zone2[2]]

image_np_expanded = np.expand_dims(image_np, axis=0)
image_tensor = detection_graph.get_tensor_by_name('image_tensor:0')

boxes = detection_graph.get_tensor_by_name('detection_boxes:0')

scores = detection_graph.get_tensor_by_name('detection_scores:0')
classes = detection_graph.get_tensor_by_name('detection_classes:0')
num_detections = detection_graph.get_tensor_by_name('num_detections:0')

(boxes, scores, classes, num_detections) = sess.run(
[boxes, scores, classes, num_detections],
feed_dict={image_tensor: image_np_expanded})

vis_util.visualize_boxes_and_labels_on_image_array(
image_np,
np.squeeze(boxes),
np.squeeze(classes).astype(np.int32),
np.squeeze(scores),
category_index,
use_normalized_coordinates=True,
line_thickness=1)
return image_np

最佳答案

您必须将您感兴趣的区域替换为之前 image_np 所在的区域,因此更改

image_np_expanded = np.expand_dims(image_np, axis=0)

到:

image_np_expanded = np.expand_dims(region_1, axis=0)

vis_util.visualize_boxes_and_labels_on_image_array(
image_np,
np.squeeze(boxes),
np.squeeze(classes).astype(np.int32),
np.squeeze(scores),
category_index,
use_normalized_coordinates=True,
line_thickness=1)
return image_np

到:

vis_util.visualize_boxes_and_labels_on_image_array(
region_1,
np.squeeze(boxes),
np.squeeze(classes).astype(np.int32),
np.squeeze(scores),
category_index,
use_normalized_coordinates=True,
line_thickness=1)
return region_1

如果您想返回只在 region_1 一侧绘制框的原始图像,您必须将框坐标从 region_1 的尺寸转换回原始图像尺寸(考虑到 tf 在中使用的不同数据类型,这很难他们的 np.arrays) 或 concatenate这些地区重新组合在一起:垂直堆叠(img1 在 img2 之上):

vis = np.concatenate((img1, img2), axis=0)

要水平堆叠(img1 到 img2 的左侧):

vis = np.concatenate((img1, img2), axis=1)

关于python - 检测帧特定区域中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46252375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com