python24 [컴퓨터 비전] OpenCV 안에 있는 Detection 모델 사용하기 인프런 - 권철민 님의 '딥러닝 컴퓨터 비전 완벽 가이드'를 정리한 내용입니다. OpenCV Detection 모델 openCV를 설치하면 딥러닝 프레임워크가 없더라도 사용 가능한 모델을 제공한다. OpenCV에서 지원하는 Computer Vision 처리 기능과 딥러닝을 쉽게 결합하여 사용할 수 있다. ● 단점 - GPU 지원이 약하다. - 학습은 불가능하며 오직 inference만 가능하다. - 다른 딥러닝 프레임워크를 사용했을 때 보다 느리다. 딥러닝 모델 load 하기 자체적으로 가중치 모델을 생성하지 않고 다른 프레임워크에서 생성된 모델을 변환하여 로딩하는 방식이다. 가중치 모델 파일과 환경 파일을 필요로 한다. (각 사이트에서 받을 수 있다.) import cv2 # Tensorflow cvN.. 2021. 4. 29. [컴퓨터 비전] RCNN, SPP net, Fast RCNN, Faster RCNN 인프런 - 권철민 님의 '딥러닝 컴퓨터 비전 완벽 가이드'를 정리한 내용입니다. RCNN 계열 RCNN 계열은 2가지 stage, Object 위치를 찾는 과정과 Object를 분류하는 과정으로 이루어진 알고리즘 들이다. 1. RCNN RCNN의 동작 단계는 이미지에서 Object가 있을 만한 위치 2000개를 지정하고 2000개 모두 분류 모델에 넣어 분류하는 방법이다. Object 위치를 찾는 방법으로 graph-based segment 기법인 selective search를 이용한다. 이미지를 분류하는 방법은 Imagenet을 이용, feature를 만들고 SVM을 이용하여 이미지 분류, Bounding Box Regression을 수행한다. 동시대 다른 알고리즘에 비해 매우 높은 Detection.. 2021. 4. 28. [컴퓨터 비전] 주요 Dataset 과 openCV, 컴퓨터 비전 패키지 인프런 - 권철민 님의 '딥러닝 컴퓨터 비전 완벽 가이드'를 정리한 내용입니다. Object Detection과 Segmentation을 위한 주요 Dataset 1. PASCAL VOC (주로 2012 버전) - Detection을 위한 20개의 카테고리를 갖는 데이터를 제공한다. - Detection, Segmentation, Action Classification, Person Layout을 위한 데이터를 제공한다. - Annotation을 xml 형태로 제공 Annotation이란? 이미지의 Detection 정보를 설명 파일로 저장한 것을 말한다. 이미지 class, Boundering box의 위치 등을 특정 포맷으로 전달한다. 2. MS-COCO (주로 2017 버전) - Detection을.. 2021. 4. 22. [컴퓨터 비전] 개요 및 Object Detection 인프런 - 권철민 님의 '딥러닝 컴퓨터 비전 완벽 가이드'를 정리한 내용입니다. 컴퓨터 비전의 업무 1. Classification : 이미지가 무엇인지 구분하는 것 2. Localization : 하나의 object의 위치를 찾는 것 3. Object Detection : 여러 개의 Object들에 대한 위치를 Bonding box(네모 박스)로 찾는 것 4. Segmentation : Detection보다 발전된 형태로 Pixel 단위로 Object를 구분하는 것 Localization과 Detection 이미지에서 해당 Object의 위치를 Bounding box로 찾고, Boundering box내의 Object를 판별한다. boundering box를 찾는 과정은 regression과정이며 Ob.. 2021. 4. 21. [딥러닝] - few shot learning, 적은 데이터로 학습하기 few shot learning 이미지 분류 문제에서 딥러닝 모델을 학습시키기 위해서는 많은 데이터가 필요하다. (imagenet 12만장) 하지만 사람의 경우 몇 장의 이미지만으로 새로운 것을 배우고 구분할 수 있다. 사람이 배우는 것 처럼 딥러닝 모델을 학습 시키는 방법을 메타러닝(Meta-learning)이라고 하며 image 문제에 사용되는 메타 러닝을 few shot learning이라고 한다. 접근 방법 few shot learning의 학습 방식은 두 이미지 비교다. 기존 분류 문제는 이미지가 어떤 카테고리에 포함 되는가를 찾는 방법이고 few shot learning은 두 이미지를 비교하여 같은지 다른지를 판단한다. 서포트 셋은 우리가 가지고 있는 labeling된 데이터 이고 쿼리 셋은 .. 2021. 4. 12. [핸즈온 머신러닝] 12장. 텐서플로우를 사용한 사용자 정의 모델과 훈련 ● 텐서플로우(Tensorflow) - 강력한 수치 계산용 라이브러리, 딥러닝 최적화가 되어있다. - 핵심 구조는 넘파이(Numpy)와 비슷하지만 GPU를 지원한다. - 분산 컴퓨팅을 지원한다. - 계산 그래프를 이용하여 함수 최적화 및 중립적 포맷을 유지한다.(리눅스 python 환경에서 훈련 후 안드로이드 자바에서 사용 가능) - 자동 미분 기능 제공, 고성능 옵티마이저 제공 - 텐서 플로 허브 등에서 다수의 만들어진 모델을 다운 가능하다. (커뮤니티가 잘 되어 있고 사용자도 많다.) 목차 1. 텐서 플로우 연산(numpy처럼 사용하기) 2. 사용자 정의로 모델 만들기 - 손실 함수, 활성화 함수, 규제, 지표, 층 등 사용자 정의로 모델의 구성요소를 만들어 보기 3. 텐서 플로우 함수 만들기 1. .. 2021. 3. 31. [핸즈온 머신러닝] 11장. 심층 신경망 훈련하기 목차 1. 그레디언트 소실 및 그레디언트 폭주 문제 2. 전이 학습 3. 옵티마이저 4. 규제 ● 그레디언트 소실 및 그레디언트 폭주 - 깊은 신경망 학습 시 그레디언트가 점점 작아지거나 발산하는 현상 - 하위층에 대한 훈련이 매우 어려워진다. 시간 또는 비용이 많이 발생하게 된다. - 과대 적합에 빠질 위험이 많다. - 초반에 많이 사용하던 로지스틱 활성화 함수와 표준 정규분포 초기화로 인해 발생 ▶ 글로럿 초기화 출력층의 분산과 입력층의 분산이 같아야 적절한 신호가 흐를 수 있다. 글로럿 초기화를 사용하면 훈련 속도를 매우 높일 수 있다. 현재 딥러닝의 성공을 견인한 기술이다. 입력층의 개수를 $fan_{in}$, 출력층의 개수를 $fan_{out}$으로 표현하고 $fan_{avg}$는 둘의 평균입니.. 2021. 3. 28. [알고리즘] 최단거리 구하기, 다익스트라 알고리즘 ● 자료구조 우선순위 큐 - 자료 중 최소 or 최대 값을 먼저 출력한다. (기본적으로 최소) - 라이브러리 heapq를 사용한다. - 입력(heapq.heappush(list, value), 출력(heapq.heappop(list)) ● 다익스트라 알고리즘 (시작 지점부터 최단거리를 구하는 알고리즘) 1. 경로가 가장 짧은 노드 부터 탐색 2. 최단 거리 list를 무한으로 설정한다. 3. 노드 중에서 가장 짧은 거리를 갖고 있는 노드를 방문한다. 4. 현재 노드와 연결된 노드들의 거리를 계산하고 최단거리 list를 갱신한다. 5. 3,4를 반복한다. 모든 노드를 방문할 때까지 ● 코드로 구현 import heapq graph = [[] for _ in range(n+1)] # 각 노드가 연결된 정보(.. 2021. 2. 20. [알고리즘] DFS/ BFS ● 자료구조 스택 & 큐 1. 스택 : 선입 수출의 구조를 갖는 자료구조 - 박스 쌓기에 비유할 수 있다. 마지막에 쌓은 박스를 먼저 꺼내야 아래 박스를 꺼낼 수 있다. - 일반적인 리스트 구조가 스택에 해당된다. (스택을 이용한 알고리즘을 사용할 때 일반 리스트 사용) - 입력(append), 출력(pop) 사용. 2. 큐 : 선입선출의 구조를 갖는 자료구조 - 대기줄처럼 먼저 들어온 데이터를 먼저 출력한다. - 라이브러리 collections에서 deque로 사용 가능하다. - 입력(append), 출력(popleft) 사용. ● DFS / BFS 1. DFS 깊이 우선 탐색 : 그래프에서 가장 깊은 곳을 먼저 탐색하는 방법 - 1번부터 인접한 노드를 DFS로 탐색하는 과정 - 위 과정을 반복하여 전.. 2021. 2. 13. 이전 1 2 3 다음