본문 바로가기
개발 이야기/머신러닝, 딥러닝

[딥러닝 첫걸음] 미션!! AIMMO에서 딥러닝을 위한 이미지 라벨링 산출물 JSON 파일 변형하기

by AI 동키 2021. 3. 5.
반응형

이 전 글에서 json 파일을 python에서 읽고, 파일의 구조를 분석해 보았다.

괴물처럼 보였던 녀석이 점점 자세히 보이기 시작한다.그리고 알게되었다..생각보다 강하지 않다는것도 후후

이번에는 이  json으로 부터 가져온 라벨링 데이터를 내가 쓰고 싶은 구조로 변신시켜 보려한다.

 


앞선 글은 아래 링크를 통해서 보시기 바란다.

2021/03/04 - [언어/Python] - [딥러닝 첫걸음] python에서 json 파일 읽기

2021/03/04 - [언어/Python] - [딥러닝 첫걸음] 미션!! AIMMO에서 딥러닝을 위한 이미지 라벨링 산출물 JSON 파일 읽기 (feat. annotation)


복습

운 좋게도, 이 파일은 생각보다 단순했다. 리스트와 딕셔너리로 구성되어있었다.

 

리스트와 딕셔너리와 관련된 문제는 파이썬 초보책의 내용만으로도 해결할 수 있다.

자 간단한 리스트 복습.

#리스트와 for 문에 대해 알아보면,

# num 이라는 리스트 생성
num = [1, 2, 3, 1, 2, 3]

# num 의 0, 1 --> 두번째 아이템 출력
print('두번째 아이템은 %d 입니당' %num[1])

# num 리스트에 3 추가
num.append(3)

print(num)

출력

 

실전

그럼 실전이다. 

이 전 글에서, 각 파일 id 마다 아래의 딕셔너리 키들을 갖고 있는 것을 알 수 있었다.

dict_keys(['annotations', 'attributes', 'file_id', 'filename', 'parent_path', 'last_modifier_id'])

나는 이 중에서 어떤 녀석들을 갖고 갈지 고르면 되는 것이다. 

 

각 이미지와 그 이미지의 annotation을 맵핑 시켜야 될 것 같으니,

1. file_id를 한대 모으고.

2. file_id 마다 annotation들이 엮일 수 있다면?!

뭔가 이렇게 하면 쓸 수 있을 것 같다. 근데 이게 사전인가? 그렇기도하군.. 후후.. 모르겠고 일단 해볼래

 

근데 이쯤에서 생각해보니,

tensorflow에서 json 학습데이터를 바로 활용하는 기능이 있을 것 만 같은 불길한 예감이 든다.

그래, 당연히 있겠지 바보야.. 나중에 찾아보자.

 

하지만 Learning from Scratch. 밑 바닥 부터 배우는 맛도 있다.

빨리 실행하고 빨리 배우기엔 아직 내 수준이 너무 낮기 때문에,

잦은 실패와 고난과 역경을 겪으면서

낮은 레벨부터 성장해 나가는 우선이라고 생각한다.

 

 

파일 ID와 파일명을 리스트로 추출!

Dictionary로 추출하든, 사실 추출 안해도 되지만, 아직 나에겐 각각의 리스트 형태가 가장 쉬울 것 같다.

 

 

#pnidx_dsc_inst에서 파일 아이디만 뽑아보자.

file_id = []
for i in range(len(dsc_inst)):
  file_id.append(dsc_inst[i]['file_id'])

print(file_id)

#이걸로 file_id 리스트를 만들었다.

결과물

['603ed996ae469f558100d1d0', '603ed996ae469f558100d1d1', '603ed996ae469f558100d1d2', '603ed996ae469f558100d1d3', '603ed996ae469f558100d1d4', '603ed996ae469f558100d1d5']

오케이. 이걸로 리스트 형태의 file_id를 만들었다.

file_name = []
for i in range(len(dsc_inst)):
  file_name.append(local_inst[i]['filename'])

print(file_name)

그리고 리스트 형태의 파일 명들도 모아주었다.

 

이들은 모두 6개 씩이다.

이미지 파일들을 업로드 해주었다.

이제 점점 고지가 눈앞으로 다가온다.

 

 

 

좀만 쉬고 하자.

 

 

 

반응형

댓글