inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[OpenCV] 파이썬 딥러닝 영상처리 프로젝트 2 - 불량사과를 찾아라!

OpenCV dnn Face Detection 코드해설 2

print(i, confidence, detections[0, 0, i, 3], startX, startY, endX, endY)에서 detections[0, 0, i, 3]값은 무슨 의미인지 이해가 잘 안됩니다.

234

신태무

작성한 질문수 9

0

            print(i, confidence, detections[0, 0, i, 3], startX, startY, endX, endY)에서 detections[0, 0, i, 3]값은 무슨 의미인지 이해가 잘 안됩니다. 왜 사용하는지 그럴 필요가있는지에 대하여 알고싶습니다.

컴퓨터-비전 opencv keras 딥러닝 tensorflow

답변 2

0

신태무

보자마자 바로이해됬습니다 감사합니다!!

0

노마드크리에이터

안녕하세요?

 - model에서 이미지를 분석하고 가져온 값을 detections에 넣었습니다.

    그럼 이렇게 출력을 해볼께요.

    print(detections)

    print(detections.shape[2])

    # loop over the detections

    for i in range(0, detections.shape[2]):......

   그러면 detections은

   [[[[0.         1.         0.99986076 ... 0.16988611 0.7576092

    0.77922064]...... 같은 무려 4차 배열로 되어 있고 

    detections.shape[2]를 출력해 보시면 200이라는 값이 출력됩니다.

    이미지를 marathon_02.jpg로 바꾸면 detections값은 바뀌는데 detections.shape[2]은 그대로 200입니다.

    전체 몇개의 박스를 찾아오나보려고 if confidence > 0:라고 고쳐보고 

    아래 print(i, confidence, startX, startY, endX, endY)를 사용해서 보니

    marathon_02.jpg그림은 121까지 그러니까 122개의 박스를 찾아오네요. 

   그러니까 detections.shape[2]는 모델이 가져오는 최대 박스의 갯수라고 보면 됩니다.

-  detections은  [[[[0.         1.         0.99986076 ... 0.16988611 0.7576092

    0.77922064]...... 이렇게 나왔으니 detections[0, 0]을 출력해 볼께요.

   [[0.         1.         0.99986076 ... 0.16988611 0.7576092  0.77922064]....라고 나오네요.

   즉, 우리가 그릴 박스들의 속성들을 가져옵니다. 

   confidence = detections[0, 0, i, 2]라는 루프를 돌때 첫번째 i가 0일때 detections[0, 0]의 첫번째 배열값은

   [0.         1.         0.99986076 ... 0.16988611 0.7576092  0.77922064]을 의미하고 

   이 중 2, 즉 세번째는 0.99986076로 이 박스가 얼굴일 가능성이 99.9%를 넘는다는 것을 의미합니다.

box = detection[0,0,i,3:7] 라는 루프를 돌때 첫번째i가 0일때 베열 3번부터 7번 이전 즉 6번째 까지 값은 

   0.36570626 0.16988611 0.7576092  0.77922064로 그림의 좌표를 나타냅니다. 

    - 3번째 0.36570626는 전체 폭 중 박스 시작점의 x좌표 상대위치

    - 4번째 0.16988611는 전체 높이 중 박스 시작점의 y좌표 상대위치

    - 5번째  0.7576092는 전체 폭 중 박스 끝점의 x좌표 상대위치

    - 6번째 0.77922064는 전체 높이 중 박스 끝점의 y좌표 상대위치

    그래서 * np.array([width, height, width, height])를 곱해서 (startX, startY, endX, endY)를 구하는 것입니다.

감사합니다.

실습파일 제공

0

191

2

coco.names 파일은 알아서 찾아야 하나요

0

431

0

colab cuda 설치 문제 질문입니다.

0

463

0

cudnn설치 오류

0

480

0

코드에 대한 에러.

0

282

0

이미지파일

0

238

0

face_alignment 코드 질문드립니다.

0

270

0

'!./darknet detector train custom/my_obj.data custom/my_yolov3.cfg weights/darknet53.conv.74 -dont_show' 진행하다가 멈춥니다 (또륵)

0

227

0

FruitCustomYolo.ipynb 파일 관련

0

239

0

동영상 재생이 원본보다 빠르게 됩니다.

0

224

0

yolo custom train 파일은 없나요?

0

266

0

make에서 오류가 납니다.

0

379

1

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 에서 에러가 뜹니다

0

432

1

make 에서 오류가 계속 납니다..

0

344

1

안녕하세요 강사님 강의 잘 보고 있습니다

0

187

0

classes.name을 불러올 수 없습니다ㅜ

0

270

1

colab 런타임이 계속 끊기는 현상

0

1873

1

make 오류가 자꾸 납니다

0

397

1

안녕하세요 강사님 질문이 있습니다

0

366

1

안녕하세요 강사님 영상 잘보고 있습니다

0

255

1

추가 질문입니다. 답변 부탁드립니다ㅜ

0

350

1

colab yolo 문제가 결국 드라이버 오류 같아서 질문드립니다.

0

572

2

안녕하세요 강사님 강의 잘보고 있습니다

0

180

1

안녕하세요 섹션12 .불량사과를 식별하는 yolo모델 완성 질문드립니다.

0

304

1