인프런 커뮤니티 질문&답변

lusate님의 프로필 이미지
lusate

작성한 질문수

YOLO Import Error 질문

해결된 질문

작성

·

1.1K

0

YOLO 사용해서 객체 탐지를 할려고 합니다. 실시간으로 영상까지 하려고 합니다.

Keras-YOLO는 현재 버전을 사용하고 싶습니다. (제가 시도한게 과거 버전인지 몰랐습니다.)

처음에 구글 코랩에서 시도를 했는데 코랩에서는 Videocapture(0) 을 실행 할 수가 없다고 해서

jupyter로 바꿨습니다.  (개인 노트북입니다.)

 

1. 

HOME_DIR= 'C:/Users/park'
import sys, os
import cv2
import matplotlib.pyplot as plt
%matplotlib inline

LOCAL_PACKAGE_DIR = os.path.abspath(HOME_DIR+'/yolo3')
sys.path.append(LOCAL_PACKAGE_DIR)

from yolo3.model import preprocess_true_boxes, yolo_body, tiny_yolo_body, yolo_loss
from yolo3.utils import get_random_data


ImportError                               Traceback (most recent call last)
Input In [1], in <cell line: 10>()
      7 LOCAL_PACKAGE_DIR = os.path.abspath(HOME_DIR+'/yolo3')
      8 sys.path.append(LOCAL_PACKAGE_DIR)
---> 10 from yolo3.model import preprocess_true_boxes, yolo_body, tiny_yolo_body, yolo_loss
     11 from yolo3.utils import get_random_data

File ~\yolo3\model.py:14, in <module>
     11 from keras.models import Model
     12 from keras.regularizers import l2
---> 14 from yolo3.utils import compose
     17 @wraps(Conv2D)
     18 def DarknetConv2D(*args, **kwargs):
     19     """Wrapper to set Darknet parameters for Convolution2D."""

ImportError: cannot import name 'compose' from 'yolo3.utils' (C:\Users\park\yolo3\utils\__init__.py)



2.
LOCAL_PACKAGE_DIR = os.path.abspath("./yolo3")
WEIGHT_DIR=os.path.abspath(LOCAL_PACKAGE_DIR+'/weight.h5') ANCHOR_DIR=os.path.abspath(LOCAL_PACKAGE_DIR+'/yolo_anchors.txt') CLASS_DIR=os.path.abspath(LOCAL_PACKAGE_DIR+'/coco_classes.txt')
from yolo import YOLO from PIL import Image sys.path.append(LOCAL_PACKAGE_DIR) yolo = YOLO(model_path=WEIGHT_DIR, anchors_path=ANCHOR_DIR, classes_path=CLASS_DIR)


ImportError                               Traceback (most recent call last)
Input In [2], in <cell line: 1>()
----> 1 from yolo import YOLO
      2 from PIL import Image
      3 sys.path.append(LOCAL_PACKAGE_DIR)

ImportError: cannot import name 'YOLO' from 'yolo' (C:\Users\park\anaconda3\lib\site-packages\yolo\__init__.py)

답변 1

0

keras yolo가 너무 오래되어서 이제는 저도 잘 기억이 나진 않습니다만, 

 

전반적으로 module import path가 잘못 잡혀 있는것 같습니다. 

 

utils.py, yolo.py 모두 다 import를 참조하지 못하고 있습니다. 

 

지금 어떤 패키지를 작업을 하고 계시는지요? 

 

qqwweee keras-yolo3 을 github에서 download한 다음에 작업을 하시는지요? 

 

github에서 다운로드해서 아래와 같이 /yolo3까지 해서 sys.path를 잡으시면 안될것 같습니다.

 

import 를 yolo3로 시작하는데, 그렇게 되면 제대로 import 할 수 없을 것 같습니다.  

 

LOCAL_PACKAGE_DIR = os.path.abspath(HOME_DIR+'/yolo3')

sys.path.append(LOCAL_PACKAGE_DIR)

아래와 같이 github을 다운로드한 메인 디렉토리를 sys.path로 잡아주십시요. 아래에서 아마도 '/yolo3' 를 제외해야 할 것 같습니다. 

 

LOCAL_PACKAGE_DIR = os.path.abspath(HOME_DIR)

sys.path.append(LOCAL_PACKAGE_DIR)

lusate님의 프로필 이미지
lusate
질문자

Import Error 문제 해결했고 카메라 연결까지 완료했습니다. 감사합니다.

지금 바운딩 박스가 나오지 않는 상태인데 어떻게 해야하는지 고민해보고 질문하겠습니다.

혹시 keras-yolo 말고 요즘 주로 사용하는 다른 방법은 어떤게 있는지 알려주실 수 있을까요?

 

일차 문제가 해결이 되었다니 다행이군요. 

요새는 yolo v5 를 많이들 사용합니다. 

https://github.com/ultralytics/yolov5

lusate님의 프로필 이미지
lusate
질문자

이걸로 이미지 학습은 해봤는데 영상을 어떻게 해야 할 지 몰라서 keras-yolo 부터 해봤습니다.

다시 도전해보고 질문하겠습니다. 감사합니다.

lusate님의 프로필 이미지
lusate

작성한 질문수

질문하기