컴공지식
-
재귀로 인해 추가된 코드 부분컴공지식/프로그래밍언어론 2024. 10. 27. 17:07
trait Expr case class Num(n: Int) extends Expr case class Add(lhs: Expr, rhs: Expr) extends Expr case class Sub(lhs: Expr, rhs: Expr) extends Expr case class Id(name: String) extends Expr case class Fun(param: Id, body: Expr) extends Expr case class App(funExpr: Expr, argExpr: Expr) extends Expr case class If0(testExpr: Expr, thenExpr: Expr, elseExpr: Expr) extends Expr case class Rec(fname: Id,..
-
에타 축약이란?컴공지식/프로그래밍언어론 2024. 10. 27. 16:25
에타 축약(η-reduction)은 함수의 본질적인 동작이 똑같다면, 굳이 복잡하게 표현할 필요 없다는 개념이다.두 함수가 같은 결과를 반환한다면, 그 함수들은 같은 함수로 볼 수 있다라는 아이디어다결국, 필요 없는 중간 단계를 줄여서 간단한 함수로 만드는 과정이 에타 축약이다.람다 계산법의 중요한 개념이다. η 축약의 기본 형식{fun {n} {e n}} ≡ e (단, n이 e 안에서 자유롭게 사용되지 않을 때) 즉, 함수가 인자 n을 받아서 그걸 그냥 함수 e에 넘겨주는 역할만 한다면,굳이 이렇게 복잡하게 쓸 필요 없이 e 자체로 축약할 수 있다.다음은 또다른 예제다.{fun {n} {{fun {x} x} n}} ≡ {fun {n} n} 이런식으로 축약이 가능하려면 인자가 내부에서 "자유..
-
재귀 BNF컴공지식/프로그래밍언어론 2024. 10. 27. 16:18
{rec { } }이렇게 생겼다.id는 재귀 정의할 이름그 옆의 Expr은 재귀의 body마지막 Expr은 재귀를 사용하는 부분 다음은 팩토리얼 함수를 정의한거다{rec {fact {fun {n} {if0 n 1 {* n {fact {- n 1}}}}}} fact} fact가 id에 해당한다.fun에서 n을 받아 n의 팩토리얼을 계산한다. 팩토리얼은 다음과 같이 표현할 수 있다n! = n * (n - 1)!그렇기 때문에 {* n {fact {- n 1}}}이 들어간거다{- n 1}에서 n에서 1을 뺀 값을 인자로 넘겨서 fact를 다시 호출한다. 이제 다양한 인자를 받는 재귀문에 대한 콘크리트 문법을 살펴보자{with {fac {fun {n} {with {facX ..
-
이미지 매칭 코드컴공지식/컴퓨터비전 2024. 10. 24. 20:38
#include #include #include #include #include #include using namespace cv; using namespace std; int main() { // 이미지와 특징점, 디스크립터 변수 선언 Mat query, image, descriptors1, descriptors2; Ptr orbF = ORB::create(1000); // 최대 1000개의 키포인트 생성 vector keypoints1, keypoints2; vector> matches; // KNN 매칭 결과 vector goodMatches; // 좋은 매칭만 따로 저장 BFMatcher matcher(NORM_HAMMING..
-
CNN이란?컴공지식/컴퓨터비전 2024. 10. 24. 20:23
CNN은 이미지 인식이나 패턴 분석에 주로 쓰이는 딥러닝 알고리즘이다.복잡한 이미지를 보고 컴퓨터가 물체가 뭔지 알아맞히게 해주는 거다. CNN 구조:Input (입력)이미지가 CNN으로 들어가면서 분석을 시작Convolution + ReLU (합성곱 + ReLU 활성화 함수)Convolution(합성곱): 필터를 이용해 이미지의 특징(엣지, 패턴)을 추출ReLU는 음수 값을 0으로 만들어서 비선형성을 추가. 계산을 더 단순하게 만드는 역할이다.Pooling (풀링)Max Pooling 같은 기법으로 이미지의 크기를 줄인다.중요한 정보만 남기고, 덜 중요한 건 버리는 거다.Flatten (펼치기)3D로 된 이미지 데이터를 1차원 벡터로 변환이렇게 해야 Fully Connected Layer에 넣어서 학습..
-
이미지 매칭(Image Matching)이란?컴공지식/컴퓨터비전 2024. 10. 24. 15:53
이미지 매칭은 두 이미지가 같은 물체를 포함하고 있는지 확인하는 거다.이걸 위해 특징(feature)끼리 비교해서 어느 부분이 비슷한지 찾는 과정이다. Process (매칭 과정)Find features두 이미지에서 피처(특징점)를 추출(이전 ORB 같은 걸로 모서리나 중요한 점을 찾아내는 거)Describe each feature찾은 피처들을 설명자(descriptor)로 표현(이 숫자 정보가 있어야 피처들을 비교 가능)Compare the similarity두 이미지의 피처를 서로 비교, 이게 매칭!Extract good matchings비슷한 정도를 기준으로 좋은 매칭을 고름 What is a good matching? (좋은 매칭의 조건)피처 A와 B가 비슷한 경우 매칭이 좋다고 판단여기서 NND..