인프런 커뮤니티 질문&답변

2 hyun님의 프로필 이미지
2 hyun

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

Pascal VOC 데이터 세트 탐색하기

영상에서 설명하는 코드가 왜 jupyter notebook에 없나요??

작성

·

144

0

sample_xml 관련 코드라든지 몇개의 영상속 코드가 실제 jupyter notebook에 없고 장문의 코드 2개가 있는데요.. 이게 혹시 어떻게 된건지 궁금합니다..

답변 5

1

권 철민님의 프로필 이미지
권 철민
지식공유자

아, 이게 실습예제 코드와 동영상이 불일치하는 군요.

제가 다시 수정작업하겠습니다. 알려주셔서 감사합니다.

0

권 철민님의 프로필 이미지
권 철민
지식공유자

이번주까지 수정하도록 하겠습니다.

0

그렇네요 xmltodict 를 사용하지않고 xml.etree.ElementTree를 사용해서 파싱해서 처리하는 코드가 있네요. 저는 개인적으로 xml.etree.ElementTree를 이용한 코드가 읽기가ㅎ더 편하네요. 코드 지향적이라

0

# ! conda install -c conda-forge xmltodict

# # xmltodict는 XML 파일을 parsing하여 Dictionary와 list 형태로 반환해줌.

import xmltodict

import os

import random

VOC_ROOT_DIR = "../../data/voc/VOCdevkit/VOC2012"

ANNO_DIR = os.path.join(VOC_ROOT_DIR, "Annotations")

JPEG_DIR = os.path.join(VOC_ROOT_DIR, "JPEGImages")

xml_files = os.listdir(ANNO_DIR)

print(xml_files[:5]); print(len(xml_files))

## xmltodict.parse()를 이용하여  xml 파일을 Dictionary와 list형태로 변환

sample_xml = os.path.join(ANNO_DIR, '2007_000032.xml')

print('sample xml file : ', sample_xml)

with open(sample_xml, 'rb') as f: # notice the "rb" mode

    parsed_dict = xmltodict.parse(f, xml_attribs = True)

    

parsed_dict

#### Annotation 내의 Object들의 bounding box 정보를 이용하여 Bounding box 시각화

lmg_filename = parsed_dict['annotation']['filename']

lmg_filename = os.path.join(JPEG_DIR, lmg_filename)

print(lmg_filename)

lmg = cv2.imread(lmg_filename)

lmg_rgb = cv2.cvtColor(lmg, cv2.COLOR_BGR2RGB)

lmg_rgb_copy = img_rgb.copy()

green_rgb = (125,255,51)

for obj in parsed_dict['annotation']['object']:

    class_name = obj['name']

    bndbox = obj['bndbox']

    

    left = int(bndbox['xmin'])

    top = int(bndbox['ymin'])

    right = int(bndbox['xmax'])

    bottom = int(bndbox['ymax'])

    

    cv2.rectangle(lmg_rgb_copy, (left, top), (right, bottom), color=green_rgb, thickness=2)

    

plt.figure(figsize=(8,8))

plt.imshow(lmg_rgb_copy)

plt.show()

-------------

이 부분을 말씀하시는 것 같습니다.

7:00 ~

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

jupyter notebook에는 python 코드만 있습니다.

sample_xml 관련 코드가 어떤건지 모르지만 모든 xml 파일은 영상에서 설명된 대로 ~/DLCV/data 밑에 os 파일로 존재하고 있습니다. 그리고 sample_xml 이 어떤 파일인지 제가 잘 모르겠습니다.

질문하신게 제가 답변한 바가 아니라면 sample_xml 관련 코드가 영상의 몇분몇초에 해당 하는 건지 기재해 주시면 제가 다시 찾아보겠습니다.

감사합니다.

2 hyun님의 프로필 이미지
2 hyun

작성한 질문수

질문하기