Object Localization : 단 하나의 object 위치를 Bounding box로 지정하여 찾음

Object Detection : 여러 개의 Object 들의 위치를 Bounding box로 지정하여 찾음

Object Segmentation : Detection보다 더 발전된 형태인 Pixel 단위로 Detection 수행

 

Object Detection은 Classification과 Regression을 동시에 수행해야 하며, 다양한 크기와 유형의 object가 섞여 있고, 짧은 시간 안에 명확하지 않은 이미지를 이용하여 수행해야 하며 데이터 셋 자체가 부족할 수 있다는 어려움이 있다.

 

Sliding Window : Window를 왼쪽 상단에서부터 오른쪽 하단으로 이동시키며 Object를 Detect하는 방식

Region Proposal : 영역 추정방식. 컬러, 무늬 등 유사한 특징을 가진 Region을 계층적 그룹핑 방식으로 계산 ex)Selective Search

 

Object Detection의 성능 평가 Metric

 - IOU : Area of overlap / Area of union

NMS : Detected된 Object의 Bounding box중에 비슷한 위치의 bounding box를 제거하고 가장 적합한 box 찾는 기법

 1. Bounding box별로 Confidence threshold 이하 bounding box는 먼저 제거

 2. 가장 높은 Confindence score를 가진 box 순으로 내림차순 정렬하고 아래 로직을 순차적으로 적용

  - 높은 confindece score를 가진 box와 겹치는 다른 box를 모두 조사하여 IOU가 특정 threshold 이상인 box는 제거

 3. 남아 있는 bounding box만 선택

 - mAP : 실제 object가 detected된 재현율의 변화에 따른 정밀도의 값을 평균한 성능 수치. AP는 한 개 오브젝트에 대한 성능 수치. mAP는 여러 오브젝트들의 AP값을 평균한 값

먼저 jupyter notebook으로 구현하기 위하여 가상환경을 구축해보았다.

 

이전에 pytorch와 cuda, cudnn을 미리 설치해놨어서 큰 걱정을 안했다

 

객체 인식을 위하여 opencv를 다운받고 기타 필요 라이브러리들 역시 성공적으로 다운받았다.

 

하지만, 추후에 혹시 사용될지도 모를 cuda를 이용하여 gpu를 붙이는 과정에서 지속적으로 오류가 났다.

 

torch.cuda.is_available()에서 어찌된 이유인지 계속하여 false가 나왔고

 

이를 해결하고자 구글링을 열심히 한 결과 그 정답은

 

가상환경 내 python, cuda, cudnn, pytorch의 버전이 서로 호환하지 않아서였다.

 

cuda, pytorch, cudnn을 삭제 후 재설치하였으나 여전히 정상적으로 구동하지 않아 python의 버전을 봤더니

 

base의 python버전과 달리 가상환경 내 python의 버전은 어찌된 이유인지 3.7 이었던게 문제였다..

 

이를 뒤늦게 발견하고 python 버전을 맞추어 다시 프로그램을 구동하니

 

cuda에 gpu가 정상적으로 붙는 모습이다..!

 

약 3시간의 삽질 동안 느낀 것은...

 

 

버전의 호환은 엄청나게 중요하다..!

'ComputerVision' 카테고리의 다른 글

Object Detection의 이해  (0) 2023.02.01
축구 match analyzer 구현하기  (0) 2022.11.17

축구 영상을 분석하는 알고리즘을 구현해보려 한다.

 

아래 링크를 참고하지만 필요한 코드들은 모두 직접 구상해서 구현해보려 한다.

 

https://candyz.tistory.com/4

 

Match Analyzer(based on OD & Opencv)

안녕하세요 Candy Lee입니다. 이번 게시글은 2020년 3월부터 2020년 10월달 까지 약 7달에 걸쳐 만들어본 축구 영상 분석 프로젝트 입니다. 깃허브 주소 : github.com/gang3039/Custom-TF-OD-Opencv-soccer-analysis 1.

candyz.tistory.com

 

큰 틀은 경기 영상을 Input값으로 넣었을 때, 선수들을 인식하고, 각 선수들의 팀을 구분하며, 해당 경기의 포메이션과 선수 간의 거리, 그리고 축구 공을 인식하는 것 까지 구현해보려 한다.

 

'ComputerVision' 카테고리의 다른 글

Object Detection의 이해  (0) 2023.02.01
jupyter notebook 가상환경 구축(엄청 애먹음..)  (0) 2022.11.17

+ Recent posts