본문 바로가기

전체 글

1.3. Pretrained model의 계산 그래프 로드 다운받은 pretrained model 관련 파일들 중에서 예측에 필요한 파일은 frozen_inference_graph.pb 이다. 그니까 우리의 목표는 아래와 같은 결과 사진을 얻는 것이고, 이를 위해선 하드디스크에 저장돼 있는 frozen_inference_graph.pb 파일을 메모리에 올려 실행해줘야한다는 말이다. 그래서 이번 글에선 frozen_inference_graph.pb를 메모리에 올리는 과정까지 알아보겠다. 글 시작에 앞서 protocol buffer와 관련된 글, [인공지능 용어 정리] - Protocol Buffer 개념 ~ Protocol Buffer 실습 2을 읽고 오길 바란다. protocol buffer가 무엇이고 어떻게 사용하는 지를 알아야 이후부터 진행되는 내용을 정확히.. 더보기
1.2. Pretrained model 다운로드 및 압축 풀기 object_detection_tutorial.ipynb을 살펴보면 전체적인 흐름이 다음과 같다. 사용하고자 하는 pretrained model의 tar.gz 파일 다운로드 tar.gz 파일 압축 풀기 pretrained model의 계산 그래프 로드 모델 실행 및 결과 출력 이번 글에서는 모델을 다운받고 압축을 푸는 방법까지 알아보겠다. 1. pretrained model 다운로드 Tensorflow에서 지원하는 object detection model 종류와 다운로드 주소는 detection_model_zoo에서 확인할 수 있다. detection_model_zoo에서 바로 모델 다운받아서 알집으로 압축 풀어주면 되기는 한다. 가장 쉽고 간단한 방법이다. 근데 이를 코드로 작성해서 사용하는 방법에 대.. 더보기
Protocol Buffer 실습 2 역직렬화(Deserialization)를 통해 EXAMPLE.pb에서 데이터를 추출하는 방법에 대해 알아보자. [ read.py ]123456789import EXAMPLE_pb2 handson = EXAMPLE_pb2.HandsOn() with open('EXAMPLE.pb', 'rb') as f: serialized = f.read() handson.ParseFromString(serialized) print(handson) cs Line 1 : 마찬가지로 뼈대를 갖고 있는 EXAMPLE_pb2.py를 import 해줘야 한다. 그래야 이 뼈대에 맞춰서 deserialized data를 재분배할 수 있기 때문이다. Line 6 : 직렬화된 형태로 저장된 데이터를 읽는다. Line 7 : 읽은 데이터를.. 더보기
Protocol Buffer 실습 1 protocol buffer를 사용해 객체를 .pb 파일로 저장하는 과정까지 이번 글을 통해 알아보겠다. 구글에서 이렇게 써! 라고 지정해서 배포한 거라 앞으로의 과정에 대해 '왜 이걸 쓰는 거지?' 내지는 '왜 이렇게 하는 거지?' 와 같은 의문은 안 갖는 것이 좋다. 1. 객체의 뼈대 생성 먼저 저장하고자 하는 객체의 뼈대에 대한 정보를 갖는 EXAMPLE.proto를 protocol buffer 폴더를 새로 만들어 안에 저장해주자. [ EXAMPLE.proto ]1234567syntax = "proto3"; message HandsOn{ string name = 1; string type = 2; float value = 3;} cs HandsOn객체는 string형 2개, float형 1개의 데이.. 더보기
Protocol Buffer 개념 Tensorflow Object Detection API를 공부하다 protocol buffer라는 처음 보는 용어를 접하게 됐다. 개념 파악을 위해 이곳저곳 살펴보며 공부했던 내용을 짧막하게 정리해보고자 한다. Protocol Buffer ? CSV, XML, JSON 등과 같이 여러 직렬화 방식 중 하나로 구글에서 개발한 이진 직렬화 방식 여기서 직렬화(serialization)는 객체 저장을 위한 데이터 저장 방법이라 생각하면 된다. 저장 뿐 아니라 불러오는 관점에서도 직렬화 (및 역직렬화)는 데이터를 다루는 측면에서 간단하고 효과적이기 때문에 사용되는 것 같다. 차이점이라면, Protocol Buffer는 다른 직렬화 방식들과는 다르게 조금 복잡한 흐름을 갖는다. 다음 글에서 실습을 통해 어떤 차.. 더보기
Python으로 XML 파일 만들기 1. 간단한 설명 공부하던 중에 XML 파일을 만들어야하는 일이 생겨 알아보았다. 정의나 개념 같은 건 넘어가고 어떻게 구현하는 지만 정리해보고자 한다. Python에서는 XML을 표준 라이브러리로 지원하기 때문에 별도의 다운없이 바로 import해서 사용해주면 된다고 한다. 주로 사용하는 함수와 사용법은 아래와 같다. Element( ) 함수로 root tag를 잡고, 거기에 SubElement( )로 하위 tag를 추가하는 방식으로 작성하면 된다. ( XML을 잘 몰라서 tag라는 용어로 쓰는 건지도 잘 모르겠다..) SubElement( ) 함수는 반환값으로 객체를 반환하기는 하는데 굳이 변수를 만들어서 받아주지 않아도 된다. 하위 tag에 하위 tag를 또 추가하고 싶은 경우에만 반환값을 받아오면.. 더보기
사이드바 블로그 이미지 설정하는 방법 다른 블로그처럼 사이드바에 있는 저저 object detection 결과 사진을 넣고 싶었다. 찾아보니 저 사진을 블로그 이미지 또는 프로필 이미지라 부르더라. 설정 방법은 다음과 같다. 우선 스킨 제작자 블로그 방명록에 글 남기는 건 필수. 1. [ 꾸미기 -> 스킨 편집 -> 오른쪽 상단 html 편집 ] 클릭 2. [ 파일업로드 ] 에서 올리고자하는 사진 추가한 다음 [ 우클릭 -> 링크 주소 복사 ] 클릭 3. [ HTML ]에서 다음과 같이 코드 추가 ~~ 이 부분을 추가했다. align = "center" 를 설정해줘야 사진이 가운데 정렬이 된다. 4. [ CSS ] 에서 다음과 같이 코드 추가 #blogImage ~ 이 부분을 추가했다. HTML에서 id를 blogImage로 잡아줬기 때문에.. 더보기