일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- #English
- tensorflow update
- python list
- #1일1영어
- TensorFlow
- python 알고리즘
- Convolution Neural Network
- word embedding
- 이미지 생성
- opencv SURF
- tokenizing
- #실생활 영어
- keras
- 영어
- 영어명언
- #실생활영어
- #영어
- #opencv
- object detection
- 딥러닝
- findContours
- #Android
- python __init__
- convexhull
- #프로젝트
- #영어 명언
- text2img
- #일상영어
- 완전탐색
- c언어
- Today
- Total
When will you grow up?
OpenCV를 이용한 Yolo v3 적용하기 본문
개인적인 공부 개념으로 저장해두는 공간입니다.
원본글을 기반으로 만들었습니다. 문제가 되면 지우도록 하겠습니다.
https://pysource.com/2019/06/27/yolo-object-detection-using-opencv-with-python/
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이 잘나온다.
생각보다 결과가 잘나오는 것을 확인할 수 있다.
전체 소스코드는 클릭 여기서 확인하거나 원본 글 클릭 에서 확인할 수 있다.
'02. Study > Computer Vision(openframworks&opencv)' 카테고리의 다른 글
python으로 시작하는 OpenCV (2) (0) | 2020.02.04 |
---|---|
python으로 시작하는 OpenCV (1) (0) | 2020.02.02 |
Haar Cascade Classifiers를 이용한 얼굴 인식 (0) | 2019.10.07 |
[openCV] SIFT와 SURF를 이용한 WebCam 영상 매칭 (5) | 2016.12.10 |
23. SURF 특징 검출기 (0) | 2016.12.04 |