본문 바로가기
Python/OpenCV

[OpenCV] cvlib 이미지 객체 인식

by hotelshoe 2022. 3. 8.
반응형

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의 객체 검출과 같은 출력을 보여줍니다.

반응형

댓글