반응형
python과 OpenCV를 통해 간단하게 컴퓨터 비전 프로그래밍을 테스트 해 볼 수 있는 라이브러리 cvlib
이번 테스트에서는 cvlib의 detect_common_objects 함수를 활용해 이미지 속 객체들을 인식해 보도록 하겠습니다.
cvlib 라이브러리는 pip 커맨드로 간단하게 설치가 가능하나, 선행적으로 OpenCV와 tensorflow의 설치를 요구합니다.
하단 커맨드로 설치를 진행하면 되겠습니다.
pip install opencv-python tensorflow
pip install cvlib
또한 인식 객체에 대한 class는 yolo를 기반으로 하기 때문에 하단의 목록에 대한 class만을 인식합니다.
인식 객체 목록 |
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 |
소스 코드
import cvlib as cv
from cvlib.object_detection import draw_bbox
import cv2
#-- 이미지 경로
obj_img = cv2.imread('./img.jpg')
#-- detect 함수 불러오기
bbox, label, conf = cv.detect_common_objects(obj_img)
#-- 검출 객체 박스 처리
if label:
out = draw_bbox(obj_img, bbox, label, conf, write_conf=True)
cv2.imshow("cvlib_img_test", obj_img)
cv2.waitKey()
cv2.destroyAllWindows()
이번 소스코드의 경우 cvlib에서 제공되는 draw_bbox 함수를 활용하여 간단하게 검출 객체를 박스처리하도록 하였습니다.
테스트
아무래도 yolo 기반의 라이브러리다 보니 인식 성능 또한 yolo의 객체 검출과 같은 출력을 보여줍니다.
반응형
'Python > OpenCV' 카테고리의 다른 글
[OpenCV] 웹캠 자동 캡쳐 (0) | 2022.09.01 |
---|---|
[OpenCV] cvlib 영상 객체 인식 / (+cvlib GPU연동) (0) | 2022.03.08 |
[OpenCV] HOG(Histogram of Oriented Gradients) 영상 테스트 (0) | 2022.03.03 |
[OpenCV] HOG(Histogram of Oriented Gradients) 이미지 테스트 (0) | 2022.03.03 |
[OpenCV] cvlib 영상 인물 얼굴 모자이크 (0) | 2022.02.07 |
댓글