지난 번엔 얼굴 검출, 성별 검출에 대한 글을 작성했었습니다. 오늘은 물체 검출에 대한 파이썬 코드를 소개해드리도록 하겠습니다. 물체 검출을 객체 검출로 부르기도 합니다.
오늘 예제 코드를 구현하시기 위해서는 opencv-python과 cvlib 라이브러리가 필요합니다. 라이브러리 설치 방법은 운영체제별로 인터넷에 잘 나와있습니다. 추천 검색어는 install opencv-python ubuntu, install opencv-python window10 등입니다. 여러분의 검색능력을 보여주세요.^^
라이브러리를 설치하셨다면 이제 다음 코드를 복사붙여넣기 하시고 한번 실행해보신 다음에 코드의 흐름을 살펴보시면 되겠습니다. 항상 처음부터 모든 것을 다 이해하실 필요는 없습니다. 큰 흐름 파악에서 점차 디테일로 나아가시는 것이 좋습니다. 코드가 아주 간결하죠?
# import libraries
import cv2
import cvlib as cv
from cvlib.object_detection import draw_bbox
image_path = 'test1.JPG' # 여기에는 테스트할 이미지의 경로 및 이름을 넣어주시면 됩니다.
im = cv2.imread(image_path) # 이미지 읽기
# object detection (물체 검출)
bbox, label, conf = cv.detect_common_objects(im)
print(bbox, label, conf)
im = draw_bbox(im, bbox, label, conf)
cv2.imwrite('result.jpg', im) # 이미지 쓰기
cvlib의 detect_common_objects 함수는 COCODATASET에서 훈련된 YOLOv3 모델을 제공합니다. 80 종류의 물체를 검출해낼 수 있습니다. YOLO 시리즈는 물체 검출 분야에 있어서는 아주 유명한 알고리즘입니다. 이 알고리즘에 대해서도 기회가 되는대로 포스팅하도록 하겠습니다.
그러면 이제 몇 개의 이미지를 가지고 테스트 한 결과를 보여드리겠습니다.
주 피사체인 사람과 자전거를 잘 검출했죠?
이미지 내 수많은 사람들을 거의 다 검출해냈습니다.
휴대폰과 책을 잘 검출해냈습니다. 펜이 검출되지 않은 것은 아쉽긴 하지만요.ㅎㅎ
다음 시간에는 실시간으로 웹캠을 통해 촬영되는 영상에서 물체를 검출하는 코드에 대해서 다루도록 하겠습니다. 질문 및 지적은 항상 환영입니다. 댓글로 남겨주세요!
'Dev > python' 카테고리의 다른 글
[ubuntu+python] 선형 회귀의 업그레이드 버전2, 라쏘 회귀 (2) | 2020.01.20 |
---|---|
[ubuntu+python] 선형 회귀의 업그레이드 버전1, 릿지 회귀 (0) | 2020.01.20 |
[ubuntu+python] pip install과 apt-get install의 차이는? pip와 pip3는 뭐가 다르지? sudo란? (2) | 2020.01.20 |
[ubuntu+python] 선형 회귀(linear regression) (0) | 2020.01.19 |
[python] kNN(k-Nearest Neighbors)으로 붓꽃 품종 예측 (18) | 2020.01.18 |
[ubuntu+python] 웹캠 영상 실시간 물체(객체) 검출 (38) | 2020.01.17 |
[ubuntu+python] 얼굴 검출 후 성별 인식 (4) | 2020.01.15 |
[ubuntu+python] 얼굴 검출 (2) | 2020.01.15 |