분류 전체보기 55

데이터 부족 완화[1] - Data Augmentation

들어가며 CNN과 같은 딥러닝 모델을 학습시키기 위해서는 굉장히 많은 양의 데이터가 필요하다. 하지만 실무에서 대용량의 레이블링된(labeled) 데이터 셋을 확보하는 것은 결코 쉬운일이 아니다. 이번 포스팅은 computer vision 분야에서 이러한 데이터 부족 문제를 어떻게 완화하고 있는지에 대한 표준 방법들에 대해 공부할 것이다. Learning Representations of Dataset 모델은 데이터를 기반으로 학습하기 때문에 데이터의 퀄리티에 따라 성능이 좌우된다. 가령 인터넷 상에 존재하는 수많은 이미지 데이터를 활용한다고 할 때, 사람이 촬영한 이미지는 대부분 사람이 보기 좋은 구도로 촬영되었기 때문에 bias가 존재한다고 볼 수 있다. 또한 이 세상의 모든 데이터를 확보하는 것은 ..

컴퓨터 비전의 시작

💡학습목표 컴퓨터 비전과 인공지능의 관계 이해 및 컴퓨터 비전 개념 인공지능과 컴퓨터 비전 AI란 ? 인간의 "지능"을 컴퓨터 시스템으로 구현하는 것, 이때 "지능"은 인지, 지각, 기억, 이해, 사고 능력을 포함한다고 볼수 있다. 이러한 지능은 어떻게 컴퓨터 시스템으로 구현할까? 인공지능의 reference ⇒ 사람 사람이 세상을 배우는 과정을 생각했을 때, 오감을 활용한 지각 능력의 구현이 선행되어야 함을 알 수 있다. 특히 사람은 시각에 압도적으로 많이 의존하며 살아간다는 점을 고려하면, 인공지능에서도 시각 지각 능력의 구현이 매우 중요하다. 컴퓨터 비전 컴퓨터 비전 : 처리된 영상을 통해서 의미있는 (고수준의) 자료를 만들어 내는 것을 의미 (이미지 → 개념) 컴퓨터 그래픽스 : 우리가 입력한 자..

Object Detecion [3] - FAST R-CNN

지난글 https://zzoming00.tistory.com/32 Object Detecion [2] - SPPNET 지난글 https://zzoming00.tistory.com/31 Object Detecion [1] - R-CNN 💡 오늘 알아갈 목표 2 Stage Object Detector R-CNN R-CNN Object Detection 모델은 객체의 위치를 찾고 , Class를 분류하는 작업을 진행한다. R-CNN 모델은 zzoming00.tistory.com 들어가며 이전에 봤던 SPP-NET은 multi-stage pipelines으로 모델을 한번에 학습시키지 못한다는 한계점이 있었다. Fast R-CNN은 다음 두 가지를 통해 위의 한계점들을 극복했다 1) RoI Pooling 2) C..

Object Detecion [2] - SPPNET

지난글 https://zzoming00.tistory.com/31 Object Detecion [1] - R-CNN 💡 오늘 알아갈 목표 2 Stage Object Detector R-CNN R-CNN Object Detection 모델은 객체의 위치를 찾고 , Class를 분류하는 작업을 진행한다. R-CNN 모델은 이를 순차적으로 진행하는 대표적은 2 stage detector로, 딥 zzoming00.tistory.com 🤔 앞서 공부했던 R-CNN모델은 입력 이미지가 고정된 크기의 입력이 요구 되었다. 이는 모델의 성능에 악영향을 미친다. 사실 Convolution filter들은 입력이미지가 고정될 필요는 없다. 이미지 크기의 고정이 필요한 이유는 Fully Connected layer가 고정된..

Object Detecion [1] - R-CNN

💡 오늘 알아갈 목표 2 Stage Object Detector R-CNN R-CNN Object Detection 모델은 객체의 위치를 찾고 , Class를 분류하는 작업을 진행한다. R-CNN 모델은 이를 순차적으로 진행하는 대표적은 2 stage detector로, 딥러닝을 적용한 최초의 object Detection 모델이다. R-CNN모델은 다음과 같은 순서에 따라 작동한다. 1. Input Image 2. Extract Region Proposals Sliding Window Selective Search 3. Compute CNN features 4. Classify regions 우선 object detection을 하기 위해서는 객체 후보의 영역을 선정해야 하는데 아래의 방법들을 알고 넘..

객체탐지 - IoU /python 코드

🤔 Detection에서 FP , TP 을 어떻게 판단할 수 있을까? IOU (Intersection Over Union) : 예측된 바운더리 박스와 사용자가 설정한 바운더리 박스 간 중첩되는 부분의 면적을 측정해서 중첩된 면적을 합집합의 면적으로 나눠준다 IOU = 중첩영역 / 결합영역 중첩영역 계산은 박스 A, 박스 B의 왼쪽 상단, 오른쪽 하단 좌표 값을 이용하여 중첩 부분의 왼쪽 상단, 오른쪽 하단의 값을 구하여 계산한다. Python 코드 여기서 epsilon은 0으로 나눠지는 것을 방지하는 값 def get_iou(a,b, epsilon = 1e-5) : """ Given two boxes `a` and `b` defined as a list of four numbers: [x1,y1,x2,y..

[프로그래머스] Lv1 문제풀이

1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡이해 ⇒ food = [1,3,4,6] 일 경우 1칼로리 음식이 3개, 2칼로리 음식이 4개, 3칼로리 음식이 6개 이므로 1223330333221 로 결과가 나타나야 한다. - 양쪽에 배열되므로 2로 나눈 몫만큼 음식을 배열하기 - 중간에 0(물)을 추가하고, 나머지는 reverse해서 붙여주기 def solution(food) : temp = '' for i in range(1,..

[프로그래머스] Lv1 문제풀이

1. 추억점수 💡dict 함수와 zip을 사용해 쉽게 풀이할 수 있다. 아래 코드는 key를 name, value를 yearning으로 하여 딕셔너리를 생성했다. name = ["may", "kein", "kain", "radi"] yearning = [5, 10, 1, 3] dictionary = dict(zip(name,yearning)) 2. 가운데 글자 가져오기 💡리스트 slicing에 관한 개념이 필요하다. ⇒ list[start:end+1] 로 원하는 위치에 있는 것을 가져올 수 있다 a= ['a','b','c','d','e'] a[2:4] #실행결과 ['b','c'] #인덱스를 1~3까지 값을 거꾸로 가져오기 a[3:0:-1] #실행결과 ['d','c','b'] 3. 수박수박수박수박수박수? ..

[python] 상대경로 와 glob 함수

상대경로 상대경로는 현재 위치한 곳을 기준으로 하는 경로입니다 /는 루트 ./는 현재 위치 ../는 현재 위치의 상위 폴더 ../../ 는 두 단계 위의 상위폴더 파일 불러올 때 유용한 glob 함수 from glob import glob 아래와 같이 glob를 사용해 여러 파일을 한번에 로드 할 수 있습니다. 저는 아래와 같이 data/store폴더에 있는 .csv파일을 모두 불러왔습니다. file_csv = glob(data/store/*.csv) file_csv 💡여러 파일 한번에 합치기 file_list = [] for file_csv_name in file_csv : file_list.append(pd.read_csv(file_csv_name , low_memory = False)) df = p..

파이썬(Python) 2023.10.06

[백준] 1937번 욕심쟁이판다 - 파이썬

https://www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 n × n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에 www.acmicpc.net 💡문제이해 : 욕심쟁이 판다는 상,하,좌,우로 이동할 수 있는데 단 머물러 있던 자리보다 대나무가 많아야 한다. 즉, 더 큰 수로만 이동할 수 있다. 최대한 많은 칸을 이동할 때 칸의 수를 구해라. 🤔 만일 2에서 이동한다고 하면 2→ 5 →11 →15 , 2→ 15, 2→ 13, 2→ 16으로 이동 가능 1. 대나무 숲 정보 입력받아오기 n = int(input()) arr = [li..