질문드립니다!!
194
작성한 질문수 12
안녕하십니까,
이게 opencv에서 한번에 가능한 함수가 있는지 잘 모르겠군요.
제 생각에 이렇게 하시면 될것 같은데 테스트는 해보지 않았습니다.
먼저 segmentation inference 결과인 mask 이미지 array가 있을 때
mask_array = inference_segentation결과 반환 array
해당 mask_array에서 값이 0 이상인 위치 인덱스를 뽑아내서 non_zero_indexes에 저장합니다.
non_zero_indexes = np.where(mask_array > 0 )
다음에 원본 이미지 array를 org_img_array라고 하면 원본 이미지의 해당 non_zero_indexes 위치에 있는 원소값을 모두 0으로 만듭니다.
org_img_array[non_zero_indexes] = 0
이렇게 하면 원본 이미지에서 segmentation mask결과 영역만 검은색으로 표시됩니다.
이제 덮어 씌우려는 새로운 이미지를 해당 영역만 제외하고 나머지 영역은 mask를 적용하듯이 모두 0으로 만듭니다. 이렇게 만든 새로운 이미지를 new_img_array라고 하겠습니다.
그런 다음 opencv의 add() 연산을 이용하여 org_img_array와 new_img_array를 더하면 원하시는 이미지가 만들어 질것 같습니다.
added_new_img_array = cv2.add(org_img, array, new_img_array)
감사합니다.
에 관한 질문입니다!!
안녕하세요 선생님 너무 감사하게도 친절한 답변을 남겨주신 덕분에 실습을 잘 진행하고 있는 학생입니다.
다름이 아니라 알려주신 코드로 실습을 진행하는 와중에 궁금한 점이 생겨 질문드립니다.
위에서 봐주신 코드를 제가 이해하기론
mask_array = inference_segentation결과 반환 array
=> mask_array = s_mask_b (object 를 감지한 결과를 원본 이미지만큼 scale out 한 배열)
non_zero_indexes = np.where(mask_array > 0 )
=> non_zero_indexes = np.where(mask_array > 0 ) (mask 배열값 중 object라고 인지한 인덱스의 배열)
org_img_array[non_zero_indexes] = 0
=> draw_img = img.copy()
draw_img[non_zero_indexes] (원본 이미지를 복사한 배열 중 object라고 인지한 인덱스의 배열을 0으로 만듦)
가 맞나요?
답변 1
0
네, 지난번에 적어드린 코드가 pseudo code긴 한데, 이해하신 부분이 대부분 맞습니다.
그리고 mask_array = s_mask_b
를 object 를 감지한 결과를 원본 이미지만큼 scale out 한 배열이라고 적어주셨는데 mask_array는 scale out한 배열은 아닙니다.
mask_array는 원본 이미지의 사이즈와 크기가 동일한 array입니다. 다만 원본 이미지는 3차원이지만 mask_array는 2차원 입니다. MMDetection을 이용한 Mask RCNN Inference 실습 - Masking inference 반환 결과 분석 강의 영상을 다시 보시면 mask inferece 결과값이 어떻게 되는지 확인 하실 수 있습니다.
그리고 non_zero_indexes = np.where(mask_array > 0 )를 하게 되면 tuple 값이 반환되는데 detect 된 object의 instance segmentation 행과 열의 좌표값을 가지게 됩니다. 그래서 원본 이미지에 해당 instance segmentation 영역을 검은색(0값)으로 표시하려면
non_zero_indexes = np.where(mask_array > 0 )
draw_img = img.copy()
draw_img[non_zero_indexes[0], non_zero_indexs[1], :] = 0 하시면 됩니다.
MMDetection 버전 이슈
0
58
2
강의 환경설정 질문
0
65
2
Custom Dataset에서의 polygon 정보 관련
0
114
3
cvat.ai 보안 수준이 궁금합니다
0
100
2
캐클 nucleus 챌린지 runpod 실습 코드 에러 질문드립니다.
0
120
3
추론 결과의 Precision(또는 mAP) 평가 방법
0
97
2
mmdetection mask rcnn inferenct 실습 시 runpod 템플릿 관해서 질문드립니다.
0
71
2
runpod에서 google drive 연결 시 오류 발생
0
128
2
로드맵 선택
0
74
1
mmcv
0
66
2
Anchor box의 Positive 처리 위치
0
71
2
해당 강의 runpod 적용 후 에러 제보드립니다
0
97
2
run pod credit 관련 제보
0
128
2
mmdetection 2.x과 3.x 호환 관련 표기
0
89
2
mm_faster_rcnn_train_kitti.ipynb 실행 오류
0
115
3
질문 드립니다.
0
89
3
mm_faster_rcnn_train_coco_bccd 실행 오류 질문드립니다.
0
90
1
강사님께 수정을 제안드리고 싶은 것이 있습니다.
0
103
1
google automl efficientdet 다운로드 및 설치 오류
0
87
1
이상 탐지에 사용할 비전 기술 조언 부탁드립니다.
0
113
2
OpenCV 관련 질문드립니다.
0
88
2
mmcv 설치관련해서 문의드려요
0
360
3
강의 구성 관련해서 질문이 있습니다
1
141
2
모델 변환 성능 질문드립니다.
0
129
1





