为什么yolo无法检测图片

2024-05-14 11:28:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在colab(https://github.com/GajuuzZ/Human-Falling-Detect-Tracks/blob/master/DetectorLoader.py)上测试了这段代码,我添加了一些代码来测试图片是否在if语句中,但是,一些图片在“if detected is not None:”中无法被yolo检测到

有人知道为什么会出现这个问题吗?非常感谢

def detect(self, image, need_resize=True, expand_bb=5):
        """Feed forward to the model.
        Args:
            image: (numpy array) Single RGB image to detect.,
            need_resize: (bool) Resize to input_size before feed and will return bboxs
                with scale to image original size.,
            expand_bb: (int) Expand boundary of the boxs.
        Returns:
            (torch.float32) Of each detected object contain a
                [top, left, bottom, right, bbox_score, class_score, class]
            return `None` if no detected.
        """
        if image is not None:
            print('ok spot1')
        image_size = (self.input_size, self.input_size)
        if need_resize:
            image_size = image.shape[:2]
            image = self.resize_fn(image)
            print('ok spot2')
        image = self.transf_fn(image)[None, ...]
        scf = torch.min(self.input_size / torch.FloatTensor([image_size]), 1)[0]
        print('ok spot3')
        detected = self.model(image.to(self.device))
        detected = non_max_suppression(detected, self.conf_thres, self.nms)[0]
        if detected is not None:
            detected[:, [0, 2]] -= (self.input_size - scf * image_size[1]) / 2
            detected[:, [1, 3]] -= (self.input_size - scf * image_size[0]) / 2
            detected[:, 0:4] /= scf

            detected[:, 0:2] = np.maximum(0, detected[:, 0:2] - expand_bb)
            detected[:, 2:4] = np.minimum(image_size[::-1], detected[:, 2:4] + expand_bb)
        else:
            print('error')
        return detected

Tags: toimageselfnoneinputsizeifis

热门问题