初学者,正在使用maskrcnn检测一些长条状柱状物品,想要完成抓取作业。
物品检测可以顺利完成,现在想求出各个mask的中心坐标和两端的坐标,应该怎么做?利用像素点?还是转多边形再求中心和两端坐标?
以下是检测的部分代码
def detect_image(self, image):
image = [np.array(image)]
molded_images, image_metas, windows = mold_inputs(self.config,image)
image_shape = molded_images[0].shape
anchors = get_anchors(self.config,image_shape)
anchors = np.broadcast_to(anchors, (1,) + anchors.shape)
detections, _, _, mrcnn_mask, _, _, _ =\
self.model.predict([molded_images, image_metas, anchors], verbose=0)
final_rois, final_class_ids, final_scores, final_masks =\
unmold_detections(detections[0], mrcnn_mask[0],
image[0].shape, molded_images[0].shape,
windows[0])
r = {
"rois": final_rois,
"class_ids": final_class_ids,
"scores": final_scores,
"masks": final_masks,
}
drawed_image = visualize.display_instances(image[0], r['rois'], r['masks'],
r['class_ids'], self.class_names, r['scores'])