본문 바로가기
반응형

분류 전체보기98

영상의 화질 향상 기법-히스토그램 스트레칭(Histogram Stretching), 히스토그램 평활화(Histogram Equalization) 화질 향상 기법 히스토그램(Histogram) 만들기 임계값 적용하기(Thresholding) 전역 임계값 적용하기(Global Thresholding) 적응적 임계값 적용하기(Adaptive Thresholding) 히스토그램 스트레칭(Histogram Stretching) 히스토그램 평활화(Histogram Equalization) 히스토그램 스트레칭이란? 영상의 밝기값 범위를 확장(또는 축소) 시킴으로써 영상의 대비(contrast)를 향상시키는 방법을 말한다. 이 방법은 히스토 그램 평활화(Histogram Equalization) 방법과는 다르게 영상 픽셀들에 대해 선형 확장 함수(Linear scaling function)를 적용하여 구현 할 수 있다. 히스토그램 스트레칭 알고리즘 영상을 정규.. 2022. 8. 4.
로지스틱 회귀(Logistic Regression) 로지스틱 회귀란? 로지스틱 회귀(logistic regression)는 이름은 회귀이지만 분류 모델입니다. 이 알고리즘은 선형 회귀와 동일하게 선형 방정식을 학습합니다. z = a * 무게 + b * 길이 + c * 대각선 + d *높이 + e * 두께 + f 시그모이드 함수 시그모이드 함수는 s자형 시그모이드 곡선을 갖는 수학 함수입니다. 일반적으로 단조 함수이며 1차 미분 그래프를 가지고 수평 점근선으로 수렴합니다. 우리가 원하는 것이 예측값이기 때문에 종속변수의 범위가 실수이지만 로지스틱 회귀 분석에서는 종속변수 y값이 0또는 1을 갖습니다. 그래서 우리는 주어진 데이터를 분류할 때 0인지 1인지 예측하는 모델을 만들어야합니다. 로지스틱 회귀로 이진 분류 수행하기 판다스를 임포트하여 데이터를 불러옵.. 2022. 8. 4.
(C++) Array std::array std::array는 고정된 크기의 배열을 담고 있는 컨테이너입니다. 이 컨테이너는 마치 C언어에서의 배열인 T[N]과 비슷하게 작동하고 배열과 같이{}를 통해 초기화를 할 수 있습니다. 다만 한 가지 차이점은 C배열과는 다르게 배열의 이름이 T*로 자동 형변환 되지 않는다는 차이점이 있습니다. std::array를 통해서 기존의 C 배열과 같은 형태를 유지하면서 (오버헤드가 없습니다), C++ 에서 추가된 반복자라던지, 대입 연산자 등을 사용할 수 있습니다.(또한 algorithm헤더파일에 정의된 함수 등을 사용할 수 있다는 장점도 있습니다,) 생성자 std::array는 Aggregate 타입이기 때문에 aggregate 초기화 방식으로 사용합니다. 하나 하나 대입하며 초기화를 할.. 2022. 8. 2.
규제(Regularization) 규제란? 규제는 머신러닝 모델이 훈련 세트를 너무 과도하게 학습하지 못하도록 훼방하는 것을 말합니다. 즉 모델이 훈련 세트에 과대 적합하지 않도록 만드는것이라고 생각하지면 됩니다. 선형 회귀 모델의 경우 특성에 곱해지는 계수(또는 기울기)의 크기를 작게 만드는 일입니다. 특성의 스케일이 정규화되지 않으면 여기에 곱해지는 계수 값도 차이가 나게 됩니다. 일반적으로 선형 회귀 모델에 규제를 적용할 때 계수 값의 크기가 서로 많이 다르면 공정하게 제어되지 않을 겁니다. 그렇다면 규제를 적용하기 전에 먼저 정규화를 해야됩니다. 특성이 55개인 데이터를 사용해 선형 회귀 모델을 훈련하겠습니다. 정규화를 위해서 표준편차를 구합니다. 이때 사용한 클래스는 사이킷런에서 제공하는 StandardScaler 클래스 입니다.. 2022. 7. 29.
특성 공학(Feature engineering) 다중 회귀 여러 개의 특성을 사용한 선형 회귀를 다중 회귀(Multiple regression)라고 부릅니다. 1개의 특성을 사용한 선형 회귀 모델이 학습하는것은 직선입니다. 2개의 특성을 사용한 선형 회귀는 평면을 학습하게 됩니다. 특성 공학이란? 특성 공학이란 훈련에 사용할 좋은 데이터(특성)들을 찾는 것이다. 에러, 이상치, 잡음으로 가득하면 결과가 좋지 않게 나오기 때문에 특성공학이 필요하다. 기존의 특성을 사용해서 새로운 특성을 뽑아내는 작업을 특성 공학이라 부릅니다. 특성 선택(Feature selection): 가지고 있는 특성 중에서 훈련에 가장 유용한 특성을 선택합니다. 특성 추출(Feature extraction): 특성을 결합하여 더 유용한 특성을 만듭니다. 판다스 데이터프레임 판다스.. 2022. 7. 28.
영상의 화질 향상 기법-적응적 임계값 적용하기(Adaptive Thresholding) 화질 향상 기법 히스토그램(Histogram) 만들기 임계값 적용하기(Thresholding) 전역 임계값 적용하기(Global Thresholding) 적응적 임계값 적용하기(Adaptive Thresholding) 히스토그램 스트레칭(Histogram Stretching) 히스토그램 평활화(Histogram Equalization) 적응적 임계값 적용하기(Adaptive Thresholding) 전역 임계값 적용 방법은 모든 픽셀에 대해 동일한 임계값을 적용하는 방식으로 영상이 전경과 배경으로 확연히 구분될 경우 매우 뒤어난 성능을 발휘한다. 하지만 영상 안에 조명이 일정하지 않거나 다양한 색상을 가지는 전경 물체가 있을 경우 하나의 임계값만으로 전경과 배경을 구분하는 것은 쉽지 않다. 따라서 이러한.. 2022. 7. 27.
다항 회귀(Polynomial Regression) 다항 회귀(Polynomial Regression)란? 비선형 데이터를 학습하기 위해서 선형 모델을 사용하는 기법이다. 단순 선형 회귀를 이용해 모든 데이터의 관계성을 직선으로 표현할 수는 없으므로 다항 회귀 또는 다중 선형 회귀등과 같은 조금 더 복잡한 회귀 모델이 때에 따라 최적의 회귀선을 나타내고는 한다. https://glorychoi.tistory.com/entry/%EC%84%A0%ED%98%95-%ED%9A%8C%EA%B7%80-Linear-regression-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 선형 회귀 (Linear regression) 알고리즘 선형 회귀 선형 회귀는 널리 사용되는 대표적인 회귀 알고리즘입니다. 비교적 간단하고 성능이 뛰어나기 때문에 맨 처.. 2022. 7. 27.
영상의 화질 향상 기법-임계값 적용하기(Thresholding) 화질 향상 기법 히스토그램(Histogram) 만들기 임계값 적용하기(Thresholding) 전역 임계값 적용하기(Global Thresholding) 적응적 임계값 적용하기(Adaptive Thresholding) 히스토그램 스트레칭(Histogram Stretching) 히스토그램 평활화(Histogram Equalization) 임계값 적용하기(Thresholding) 임계값 적용하기(Thresholding)란? 전경 영역과 배경 영역의 밝기 차이나 색상 차이를 이용하여 영상의 배경으로 부터 전경 영역들을 분리할 수 있는 가장 기본적인 방법이다. Threshold : 이미지를 이진화하여 흑/백으로 나누는 기술 소스 코드 예제에서 임계값을 추출할때 140보다 작을때를 기준으로 했지만 실제 140으로.. 2022. 7. 26.
선형 회귀 (Linear regression) 알고리즘 선형 회귀 선형 회귀는 널리 사용되는 대표적인 회귀 알고리즘입니다. 비교적 간단하고 성능이 뛰어나기 때문에 맨 처음 배우는 머신 러닝 알고리즘 중 하나입니다. 특성이 하나인 경우 어떤 직선을 학습하는 알고리즘입니다. 학습을 해야하는 직선은 특성을 가장 잘 나타낼 수 있는 직선으로 학습해야 하기 때문에 위와 같이 특성을 잘 타나내는 직선이 좋습니다. 사이킷런 선형 회귀 구현 사이킷런은 sklearn.linear_model 패키지 아래에 LinearRegression 클래스로 선형 회귀 알고리즘을 구현해 놓았습니다. LinearRegression 클래스에 훈련, 평가, 예측하는 메서드가 있기 때문에 우린 LinearRegression 클래스를 객체를 생성하여 사용하면 됩니다. LinearRegression .. 2022. 7. 26.
영상의 화질 향상 기법- 전역 임계값 적용하기(Global Thresholding) 화질 향상 기법 히스토그램(Histogram) 만들기 임계값 적용하기(Thresholding) 전역 임계값 적용하기(Global Thresholding) 적응적 임계값 적용하기(Adaptive Thresholding) 히스토그램 스트레칭(Histogram Stretching) 히스토그램 평활화(Histogram Equalization) 전역 임계값 적용하기(Global Thresholding) 영상으로부터 적절한 임계값을 매번 인위적으로 결정한다는 것은 매우 어려운 일입니다. 따라서 임계값을 자동으로 결정하기 위한 방법으로 전역 임계값 적용 방법을 소개하려고 합니다. 전역 임계값 적용 방법은 영상을 두 개의 그룹으로 분할하고 각 그룹마다 평균값을 계산하여 이 값들을 임계값 계산에 적용하는 방법을 사용합니.. 2022. 7. 26.
C++ 백준 11931 수 정렬하기 4 https://www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 N개의 수가 주어졌을 때, 이를 내림차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 내림차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 해당 문제.. 2022. 7. 25.
영상의 화질 향상 기법-히스토그램(Histogram) 만들기 영상 화징 향상을 위한 매핑 함수 M s=M(r) 화질 향상 기법 히스토그램(Histogram) 만들기 임계값 적용하기(Thresholding) 전역 임계값 적용하기(Global Thresholding) 적응적 임계값 적용하기(Adaptive Thresholding) 히스토그램 스트레칭(Histogram Stretching) 히스토그램 평활화(Histogram Equalization) 히스토그램 만들기 히스토그램(Histogram)이란? 영상 안에 포함된 각각 다른 밝기값을 갖는 픽셀들의 수(분포)를 보여주는 그래프를 의미합니다. 영상의 픽셀에서 각 픽셀의 밝기값을 가로 축의 도수로 표시하고 밝기값에 해당하는 픽셀의 개수를 누적해 작성합니다. 조금더 간단히 하면 for loop를 통해 간단히 할 수 있다. 2022. 7. 25.
k_최근접 이웃 회귀 지도학습 알고리즘은 크게 분류와 회귀로 나뉘어집니다. 분류 : 샘플을 몇개의 클래스 중 하나로 분류하는 문제 회귀 : 클래스 중 하나로 분류하는 것이 아니라 임의의 어떤 숫자를 예측하는 문제 k- 최근접 이웃 분류 알고리즘 예측하려는 샘플에 가장 가까운 샘플 k개를 선택합니다. 샘플들의 클래스를 확인하여 다수 클래스를 새로운 샘플의 클래스로 예측합니다. k-최근접 이웃 회귀 알고리즘 예측하려는 샘플에 가장 가까운 샘플 k개를 선택합니다. 회귀이기 때문에 이웃한 샘플의 수치들의 평균을 구하여 타깃값을 결정한다. numpy를 임포트 하여 np.array를 통해 넘파이 배열로 데이터를 준비합니다. 이 데이터가 어떤 형태를 띠고 있는지 산점도를 그려보면 위와 같은 산점도를 그릴수 있습니다. 사이킷런 model_.. 2022. 7. 21.
데이터 전처리 넘파이로 데이터를 준비하는 방법은 여러가지 방법이 있지만 오늘은 column_stack 함수를 통해서 데이터를 준비합니다. 우선 넘파이를 사용하기 위해서 넘파이를 임폴트 해줍니다. column_stack 함수는 리스트를 일렬로 세운 다음 나란히 옆으로 붙여줍니다. 예를 들어 [1, 2, 3]과 [4, 5, 6] 두 리스트를 붙여 보겠습니다. fish_length와 fish_weight를 붙이기 위해서 column함수를 사용하겠습니다. 데이터가 잘 준비 되었습니다. 이제 타깃 데이터를 준비해야 하는데 타깃 데이터도 넘파이 패키지의 함수를 사용하면 쉽게 만들수 있습니다. 타깃 데이터를 만들기 위해서 사용할 함수는 np.ones()와 np.zeros()함수입니다. 이 두 함수는 각각 원하는 개수의 1과 0을 .. 2022. 7. 21.
C++ 토큰 (Tokens) 토큰이란 숫자나 연산자를 비롯해서 우리가 한 단위(unit)로 생각하는 무언가를 나타내는 문자열이다. 표현 방식은 (kind, value)이고 대부분의 텍스트 분석에서 기초가 된다. 종류 부동소수점 리터럴 : 3.14, 0.274e2, 42등 연산자 : +, -, *, /, % 괄호 : (, ) 토큰 구현 Token은 일종의 타입으로 변수를 정의하거나 값을 저장할 때 쓸 수 있으며, kind와 value 두 부분으로 이뤄진다. class 키워드는 '사용자 정의 타입'을 의미하며, 0개 이상의 멤버를 포함하는 타입을 정의한다. Token을 정의하고 Token의 객체를 통해 멤버 접근 표기법인 객체_이름.멤버_이름을 사용해 멤버에 접근한다. 이처럼 복사 초기화, 대입 등 Token은 복사도 가능하다 2022. 7. 21.
영상의 산술(Arithmetic) 및 논리(Logic) 연산 (2) 5. 픽셀 결합(Pixel Blending) 픽셀 결합 방법은 두 개의 동일한 크기의 입력 영상을 결합하는 방법으로, 다른 산술 연산 방법과 마찬가지로 대응되는 두 영상의 픽셀들을 선형 결합(linear combination)에 의해 출력 영상을 생성한다. 입력된 두 영상 P와 Q의 동일 좌표 픽셀들을 가중치 W에 따라 결합하여 출력 영상 O(x,y)에 입력한다. 이때 가중치에 해당하는 W는, 0 2022. 7. 19.
영상의 산술 연산 영상의 산술 연산 산술 연산이란? 쉽게 말해 초등학교 때 배우는 덧셈, 뺄셈, 곱셈 나눗셈과 같은 기본적인 산수 계산을 의미한다. 이러한 연산 방법은 영상에서도 유사하게 적용될 수 있다. 그 결과로 새로운 형태의 영상을 만들어내거나 영상의 화질을 향상시킬 수 있다. 1. 덧셈 연산 덧셈 연산 : 두 영상의 같은 위치에 존재하는 픽셀의 그레이스케일 값을 더하여 새로운 영상을 만드는 연산이다. 위 수식에서 f와 g는 두 개의 입력 영상을 의미하고, h는 덧셈 연산에 의해 새로 생성된 결과 영상이다. 덧셈 연산은 영상을 2차원 행렬로 간주하면 쉽게 이해할 수 있는 연산이다. 영상 내에 존재하는 모든 픽셀들을 순회하면서, 각 픽셀에 대하여 덧셈 연산을 수행한다. 두 개의 영상을 더하는 산술 연산의 예 덧셈 연산.. 2022. 7. 18.
[C++] sort <algorithm> 사용법 정리 sort는 헤더파일에 있고 정렬을 해주는 함수이다. sort(start, end)는 [start, end) 범위에 있는 인자(element)를 (default)오름차순으로 정렬 열린 괄호 end는 포함하지 않는 구간이므로 end 전까지 정렬할 수 있다. 평균 시간 복잡도는 n log n(최악의 경우에도 보장)이고 기반은 quick sort(퀵 정렬)이다. start와 end 인자만 넣는다면 default값인 오름차순으로 정렬되고, 3개의 인자를 넣을땐 함수를 정의해서 함수를 기준으로 정렬을 한다. 간단한 예제 출력 : 1,2,3,4,5,6,7,8,9,10 C++Reference 예제 https://cplusplus.com/reference/algorithm/sort/ sort - C++ Reference.. 2022. 7. 18.
반응형