bskyvision RSS 태그 관리 글쓰기 방명록
2020-01-15 02:36:57
728x90

지난 번엔 얼굴 검출, 성별 검출에 대한 글을 작성했었습니다. 오늘은 물체 검출에 대한 파이썬 코드를 소개해드리도록 하겠습니다. 물체 검출을 객체 검출로 부르기도 합니다. 

 

오늘 예제 코드를 구현하시기 위해서는 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 시리즈는 물체 검출 분야에 있어서는 아주 유명한 알고리즘입니다. 이 알고리즘에 대해서도 기회가 되는대로 포스팅하도록 하겠습니다. 

 

그러면 이제 몇 개의 이미지를 가지고 테스트 한 결과를 보여드리겠습니다. 

 

주 피사체인 사람과 자전거를 잘 검출했죠? 

 

이미지 내 수많은 사람들을 거의 다 검출해냈습니다.

 

휴대폰과 책을 잘 검출해냈습니다. 펜이 검출되지 않은 것은 아쉽긴 하지만요.ㅎㅎ 

 

다음 시간에는 실시간으로 웹캠을 통해 촬영되는 영상에서 물체를 검출하는 코드에 대해서 다루도록 하겠습니다. 질문 및 지적은 항상 환영입니다. 댓글로 남겨주세요!

댓글

방문해주신 모든 분들을 환영합니다.

* 글을 읽던 중에 궁금했던 부분은 질문해주세요.

* 칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.

* 최대한 답변 드리도록 노력하겠습니다.

* 욕설과 광고를 담은 댓글은 가차없이 삭제합니다.


  1. cv@2020.08.26 17:25 ~$ 우분투 환경에서 해야하나요? [댓글주소]  [수정/삭제]  [답글작성]
    • BlogIcon bskyvision@2020.08.26 17:32 신고 ~$ [답글]: 아닙니다. ㅎㅎ 어떤 환경에서 실행하셔도 될거에요. [댓글주소]  [수정/삭제]
    • BlogIcon CV@2020.08.26 17:43 ~$ [답글]: 답장이 엄청 빨라서 깜짝놀랐네요
      그런데 제가 구동 했을때는 물체를 찾지를 못하더라구요 혹시 CUDA 몇버전 사용 하셨나요 [댓글주소]  [수정/삭제]
    • BlogIcon bskyvision@2020.08.26 18:02 신고 ~$ [답글]: 마침 티스토리를 확인하고 있을 때여서요. ㅎㅎ 이 예제 구현할 때는 CPU로 검출했던 것 같습니다. 저는 주로 CUDA 10.0 버전을 사용하긴 합니다만.

      물체를 찾지 못한다는 의미가 실행은 되는데 물체 검출이 안 되었다는 뜻인가요?? [댓글주소]  [수정/삭제]
  2. wooJU@2020.10.23 16:17 ~$ GPU 환경에서만 실행이 가능한건가요? [댓글주소]  [수정/삭제]  [답글작성]
  3. 영상 소스를 바꿔서 한번 해보세요@2020.11.02 08:37 ~$ 항공, 우주 쪽에서는 합성개구레이더(Synthetic Aperture Radar, SAR)를 사용하여 영상을 획득하고 있습니다. SAR 영상을 입력을 받고 물체 인식 되도록 하는것도 재밌을것 같다는 생각이 듭니다.

    관심있으시면 아래 논문 찾아서 읽어보세요 ㅎㅎ
    OpenSARShip DB를 이용한 선박식별 성능 분석 pdf > 구글링하면 다운가능
    합성곱 인공 신경망을 적용한 SAR 영상 표적 인식 알고리즘 > DBpia.co.kr (카톡하시면 아디비번드림)

    수고욤
    [댓글주소]  [수정/삭제]  [답글작성]
  4. 영상 소스를 바꿔서 한번 해보세요@2020.11.10 17:00 ~$ 많이 바쁘신가봐요 연구도 안하시고..
    항상 좋은글들 잘 보고 있습니다.

    연구를 하든 안하든 게으름을 피우든 뭘하든 응원하겠습니다.
    장미꽃길만 걸으시면서 가시 많이 밟으시길 기원합니다. [댓글주소]  [수정/삭제]  [답글작성]
  5. 답글이 없네요@2020.11.11 08:15 ~$ 왜 윗댓글에 답글 안달아줘요? 차별해요? 차별을 금지하라!
    CV님 댓글에는 7분만에 답글 달아줘서 저분이 놀라실 정도로 빨리 달아주더니..
    윗님 글에는 세월아 네월아 다섯월아 여섯월아 일곱월아 여덟월아 아홉월아 열월아 하시네
    그렇게 계속 훌륭하게 블로그 운영하시길 바랍니다. [댓글주소]  [수정/삭제]  [답글작성]
  6. travis@2021.02.06 00:29 ~$ 이전에 cvlib 을 통해 얼굴 검출은 잘 하였는데 왜 이번 게시글은 그대로 따라해도
    plot 이 나오지 않고 콘솔창에
    [] [] [] 만 나올까요?? 해결이 안되네요;; [댓글주소]  [수정/삭제]  [답글작성]
    • BlogIcon bskyvision@2021.02.06 00:32 신고 ~$ [답글]: 여러 물체들을 한번 시도해보세요, 사진 내에 훈련되지 않은 물체들만 있어서 그럴 수도 있을 것 같네요^^; [댓글주소]  [수정/삭제]
    • BlogIcon travis@2021.02.06 00:36 ~$ [답글]: 헉 댓글이 엄청 빠르네요.
      근데 그러기엔 사람두 안되고 자전거도 인식 못하는데, 이게 추가로 뭐 설치를 해야한다거나 하는게 있나요? gender 게시글을 따라할때는 run 돌리니까 뭐 쭉 다운받던데, 객체 감지코드의 경우에는 그런게 없어서요.
      패키지는 다 다운 받은 상태입니다 [댓글주소]  [수정/삭제]
    • BlogIcon bskyvision@2021.02.06 00:41 신고 ~$ [답글]: 결과 이미지로 저장된 것 확인해보셨나요?? 위 코드는 검출 결과 이미지를 새로 하나 저장하게 해놓은 것이라서요 ㅎㅎ [댓글주소]  [수정/삭제]
    • BlogIcon travis@2021.02.06 00:43 ~$ [답글]: 네네 이미지 저장된것 확인 했었습니다. 인식 안되구 원본 그대로 저장되네요. 구글 검색을 해보니 yolov3.cfg , yolov3.weights 파일에 문제가 있을것이니 삭제하라는 문구가 있네요
      C:\Users\USER_NAME\.cvlib\object_detection\yolo\yolov3

      해당경로에 있다는데 저의 경우에는 .cvlib 폴더가 없단 말이죠. 좀더 검색해 봐야 겠습니다 [댓글주소]  [수정/삭제]
    • BlogIcon bskyvision@2021.02.06 00:44 신고 ~$ [답글]: 혹시 모르니 가상환경 하나 다시 만들고 cvlib 다시 설치하고 해보세요 ㅎㅎ [댓글주소]  [수정/삭제]
    • BlogIcon travis@2021.02.06 01:04 ~$ [답글]: 해결되었습니다.
      저의 경우에는
      C:\Users\USER_NAME\AppData\Roaming\SPB_Data\.cvlib\object_detection\yolo\yolov3
      에 있는 cfg, weights 파일들을 모두 삭제한후 다시 코드를 돌리니 문제가 해결되었습니다. 아마 처음 코드를 돌릴때 github에서 훈련 데이터들을 다운로드받는데 그 오래걸리는 시간을 기다리지 않고 중간에 정지를 해서 그런것 같습니다 ㅎㅎ [댓글주소]  [수정/삭제]
    • BlogIcon bskyvision@2021.02.06 01:12 신고 ~$ [답글]: 해결되셨다니 다행입니다 ㅎㅎ [댓글주소]  [수정/삭제]
  7. 김판수@2021.04.26 11:46 ~$ 웹캠이나 YOLO 객채 검출시 어떤 특정 물체 검출시 알람이 울게 한다든지 할려면 어떻게?
    예) 자동차 검출시 소리가 나게 할려면, 예시 코드 부탁합니다. 아니면 구현 힌트라도 ~ ^^
    kps3029@gmail.com 부탁해요 [댓글주소]  [수정/삭제]  [답글작성]
    • BlogIcon bskyvision@2021.04.26 12:01 신고 ~$ [답글]: 특정 클래스 검출시에 특정 소리가 나게 해주시면 될 것 같습니다..ㅎㅎ 뭐 딕셔너리에 {클래스1: 소리 파일1, 클래스2: 소리 파일2, ... 이런 식으로 만들어 놓고 재생시키면 되지 않을까요?? [댓글주소]  [수정/삭제]
guest@이름 ~$
guest@패스워드 ~$
guest@홈페이지주소작성 ~$

guest@댓글작성 ~$




bskyvision. Designed by bskyvision.