When will you grow up?

OpenCV를 이용한 Yolo v3 적용하기 본문

02. Study/Computer Vision(openframworks&opencv)

OpenCV를 이용한 Yolo v3 적용하기

미카이 2019. 10. 13. 00:02

개인적인 공부 개념으로 저장해두는 공간입니다.

원본글을 기반으로 만들었습니다. 문제가 되면 지우도록 하겠습니다.


https://pysource.com/2019/06/27/yolo-object-detection-using-opencv-with-python/

 

YOLO object detection using Opencv with Python - Pysource

We’re going to learn in this tutorial YOLO object detection. Yolo is a deep learning algorythm which came out on may 2016 and it became quickly so popular because it’s so fast compared with the previous deep learning algorythm. With yolo we can detect obje

pysource.com

 

darknet을 많이 이욯해서 keras나 tensorflow에서 많이 사용하겠지만,

opencv에서도 간편하게 사용할 수 있는 방법이 있어서 정리하려고 합니다.

 

여기 예제에서는, yolov3-320 pre-trained된 모델을 이용하기 때문에, weight파일과 cfg 파일을 다운받아야 한다. 다운

 

원본 테스트이미지는 다음과 같습니다.

원본

 

yolov3 모델같은 경우는 coco dataset기준으로 학습이 되어 있으므로, 80개 종류를 디텍션 할 수 있다.

만약 원하면 커스텀 데이터에 대해서도 학습할 수 있다.

classes = ["person", "bicycle", "car", "motorcycle",
            "airplane", "bus", "train", "truck", "boat", "traffic light", "fire hydrant",
            "stop sign", "parking meter", "bench", "bird", "cat", "dog", "horse",
            "sheep", "cow", "elephant", "bear", "zebra", "giraffe", "backpack",
            "umbrella", "handbag", "tie", "suitcase", "frisbee", "skis",
            "snowboard", "sports ball", "kite", "baseball bat", "baseball glove", "skateboard",
            "surfboard", "tennis racket", "bottle", "wine glass", "cup", "fork", "knife",
            "spoon", "bowl", "banana", "apple", "sandwich", "orange", "broccoli", "carrot", "hot dog",
            "pizza", "donut", "cake", "chair", "couch", "potted plant", "bed", "dining table",
            "toilet", "tv", "laptop", "mouse", "remote", "keyboard",
            "cell phone", "microwave", "oven", "toaster", "sink", "refrigerator",
            "book", "clock", "vase", "scissors", "teddy bear", "hair drier", "toothbrush" ]

 

 

특히, 몇줄 안되는 코드로 테스트 결과를 확인할 수 있었으며,

net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg") 이런식으로 모델을 간편하게 불러올 수 있다.

또한, cv2.VideoCapture를 이용하면 real-time object detection도 간편하게 할 수 있다.

tiny버전을 받으면 생각보다 frame이 잘나온다.

result

생각보다 결과가 잘나오는 것을 확인할 수 있다.

 

전체 소스코드는 클릭  여기서 확인하거나 원본 글 클릭 에서 확인할 수 있다.

 

Comments