728x90

전체 글 32

Machine Vision-2. 영상 계측을 위한 고전적 영역 분할 머신러닝 방법 / Clustering / 영역 성장 방법 / Split & Merge / 히스토그램 기반 영역 분할

과거엔 영상을 처리하기 위해 찾고자 하는 물체가 있는 영역과 없는 영역을 분할해야 했었다. 영역을 분할하는 방법에는 clustering, 영역 성장, 분할&통합, 히스토그램에 의한 영역 분할 방법이 있다. Clustering clustering은 cluster(부분집합)으로 패턴 벡터를 분할하는 처리이다. clustering에서 비슷한 값을 가지는 그룹으로 벡터들의 집합을 분할해야 한다. 벡터는 intensity 값, RGB 값, 계산된 특성, texture measurement와 같은 구성요소를 포함하고 픽셀 또는 그 주위의 값들로 표현된다. clustering방법에는 고전적인 clustering 방법, iterative K-Means clustering 등이 있다. 영역 성장 방법 영역 성장 방법에서..

Machine Learning 2022.01.25

Machine Vision 1. 개요 / 영상처리 기술의 발전사 / 영상의 정의 / 영상 처리의 단계 / 특징 추출 / 분할 계측 / 패턴 매칭 / 고전적 방법의 한계점

더보기 2022 경희대학교 응용수학과 공모전 참여 보고서를 기반으로 함. I.서론 기계가 영상을 인식하고, 이를 바탕으로 대상물을 분류, 재처리하는 기술은 영상 처리라는 분야로 정의되어 다양한 기법을 통해 발전해왔다. 1959년 홉킨스대학교의 생리학자 데이비드 허블과 토르스텐 비셀이 수행한 우리의 뇌에서 시각정보를 받는 대뇌피질의 첫번째 부분인 일차 시각피질에 있는 개별뉴런의 활동에 대한 연구[1]는 두뇌가 어떻게 시각적 정보를 인식하는지에 대한 기초적인 매커니즘을 제시하였다. 영상 처리는 크게 두개의 갈래로 나누어져 발전해왔는데, 전통적인 머신러닝 방법을 통해 대상물을 인식하는 방법, 머신러닝 중 딥러닝을 통해 대상물을 인식하는 방법이라는 두개의 갈래로 발전했다.[2] 이와는 별개로, 대뇌피질의 작동과..

Machine Learning 2022.01.25

Python-14. Loop (반복문) - while / while문 사용법 / 반복문의 강제종료 방법 / break / 반복문의 생략방법 / continue

Q. While? for문처럼 python에서 사용할 수 있는 반복문의 한 종류이다. 다른점은 for문은 리스트, range, 문자열 등을 받아서 그 원소들의 개수만큼 반복되었지만, while문의 경우 조건이 만족되지 않을 때까지 반복되는 반복문이라는 점이다. 따라서, 조건식으로 간단하게 사용자가 어떤 문자열과 같은 입력을 했는지를 통해 반복문을 종료하거나 계속 실행하게 하는 등의 활용이 가능하다. While 사용법 while : 의 구조로 사용할 수 있다. 아래의 코드블럭을 보자. while : 이때 expression은 그 결과가 Boolean인 조건식이어야 한다. expression의 결과가 True라면 while문은 계속해서 반복되고, False라면 while문의 반복에서 탈출하게 된다. expr..

Python-13. Loop (반복문) - for문 / for문 사용법 / range / 중첩반복문

Q. Loop? 반복문이라는 한글이름 그대로, 특정한 기능을 일정 조건아래에서 계속해서 반복하는 코드를 반복문이라 한다. 인간보다 뛰어난 컴퓨터의 특장점이다! Python에서는 이 반복문을 for loop / while loop 두가지로 지원한다. for for의 용법은 여러가지이다. 방법에 대해 알아보자. Indented 우선, 파이썬에서는 단위의 구분을 들여쓰기를 통해 구분한다. 따라서 반복문 역시 한 블럭을 표현하기 위해서 들여쓰기를 통해 구분해야 한다. for in : 첫번째로, 리스트의 변수들을 하나씩 불러오면서 반복하는 방법이다. 당연히, 리스트에 담겨있는 변수들을 한번에 하나씩 순서대로 불러오기 때문에, 리스트의 길이(리스트의 변수 개수)횟수만큼 반복된다. 이때 ~회차 라는 의미의 영어로 I..

Python-12. List란 무엇인가? / 리스트 연산자 / Copying list / Aliasing list / 리스트 메소드 / 중첩리스트 / 중첩리스트 Aliasing

파이썬에서 굉장히 자주 다루게 되는 자료형 중 List에 대해 알아보자. Q. List? 하나의 자료형. 리스트는 하나의 객체로 다루어지며, 하나의 객체안에 여러개의 메모리 주소를 갖고 있다. 각각의 메모리 주소에 해당하는 메모리에는 리스트의 원소의 데이터가 담겨있다. Empty List [] 즉 아무것도 원소르 갖지 않은 리스트를 Empty List 라고 말한다. Index 리스트에 담겨있는 원소들은 각각 번호를 갖고 있다. 왼쪽 괄호 바로 뒤부터 0번째, 1번째, ... , n번째 순이다. 가장 먼저 오는 원소의 인덱스가 0인 것에 유의하자! 이때, 리스트의 원소의 개수의 범위를 벗어나는 인덱스를 입력하여 리스트의 원소를 호출할 경우, IndexError가 발생한다. 다음의 예를 보자. >>> ser..

Python-11. Str Class의 메소드 종류와 사용법 / find / count / strip / replace / lower / upper / etc. / method Nesting

Python-10 Methods란? / 메소드 / 클래스 / 모듈과 클래스의 차이 Q. Class? 이전의 포스트에서 여러가지 자료형들을 설명하였다. 파이썬에서는 이 자료형들을 어떻게 내부적으로 구현하고 있을까? 파이썬에서 존재하는 모든 자료형들은 모두 클래스 라는 객체의 dot-learning.tistory.com 위 포스트의 말미에서 말했듯, 파이썬은 문자열 클래스에 대해 많은 메소드를 지원하고 있다. 이를 통해 파이썬에서 문자열을 매우 쉽게 다룰 수 있다. 이제 어떤 메소드들이 존재하고 어떻게 사용하는지 알아보자. 우선, help함수를 사용해 str클래스에 어떤 메소드가 있는지 확인해보자! 더보기 더보기 >>>help(str) Help on class str in module builtins: cl..

Python-10 Methods란? / 메소드 / 클래스 / 모듈과 클래스의 차이

Q. Class? 이전의 포스트에서 여러가지 자료형들을 설명하였다. 파이썬에서는 이 자료형들을 어떻게 내부적으로 구현하고 있을까? 파이썬에서 존재하는 모든 자료형들은 모두 클래스 라는 객체의 형태로 구현되어있다. 즉, 클래스는 어떤 자료형의 변수를 만들어내는 틀이다! 이때, 중요한 점은 클래스라는 객체는 모듈과 비슷하게 함수를 가질 수 있다는 점이다. Q. Methods? 클래스 객체는 모듈과 비슷하게 함수를 가질 수 있다. 이때 클래스가 갖는 함수를 Methods 즉 메소드라 한다. How to use Methods 자료형들은 모두 클래스의 형태를 갖고있고, 클래스는 함수를 가질 수 있다고 위에서 설명하였다. 이제 두가지의 예를 통해 클래스가 가지고 있는 메소드의 사용방법에 대해 알아보자. 클래스의 이..

python-9. 모듈 작성 / 모듈 재호출 / importlib / 모듈 (간접)실행과 직접 실행 / __name__

이전의 포스트에서 모듈이 무엇이고, 어떻게 호출하고 사용하는지 알아보았다. Python-8. Module이란? / 모듈의 기본 사용법(import, from) 프로그래머가 처음부터 끝까지 프로그램의 모든 것을 작성하기에는 굉장히 어렵고 시간이 오래걸리는 일이다. 그렇다면, 미리 자주 사용되는 함수와 같은 기능들을 수학공식 만들 듯 미리 작성 dot-learning.tistory.com 그렇다면, 나만의 모듈을 만들고 사용할 수 있을까? 당연히 가능하다. 이제 어떻게 그렇게 하는지 알아보자. .py 파일과 모듈 아이들의 실행경로에 있는 .py파일들은 모두 모듈의 형태로 임포트할 수 있다. (실행경로에 관한 내용은 파일을 다루는 포스트에서 더 자세히 알아보자. 일단, 여기서 말하는 실행경로란 순정상태의 파이..

Python-8. Module이란? / 모듈의 기본 사용법(import, from)

프로그래머가 처음부터 끝까지 프로그램의 모든 것을 작성하기에는 굉장히 어렵고 시간이 오래걸리는 일이다. 그렇다면, 미리 자주 사용되는 함수와 같은 기능들을 수학공식 만들 듯 미리 작성하고, 이름만 따와서 사용할 수 있다면 어떨까? (우리는 적분 공식을 사용할 때, 구분구적법에서부터 시작하여 적분하지 않는다! 미리 구분구적법을 통해 알아본 결과들을 외우고, 이를 바탕으로 계산한다. 그것이 효율적이기 때문에!) Q. Modules? 앞서말한 적분공식을 외워 적분문제를 푸는 것처럼, python개발자들은 미리 module이라는 객체의 형태를 만들고, 그 객체안에 자주 사용되는 함수들과 변수들의 구조와 작동원리를 미리 프로그래밍해놓는다. 아래의 링크는 python(v.3.9.0)이 기본적으로 지원하는 모듈들에 ..

Python-7. Conditional Statement(조건문) / Boolean application

Q. Conditional Statement? 한글로 표현하면 조건문이다. 조건문이란 조건의 상태(참/거짓)에 따라 그 조건문의 아래에 있는 코드를 실행할지 실행하지 않을지를 결정하는 수행문이다. 이제 Python에서 어떻게 구현할 수 있는지 알아보자. Indentation Python에서는 어떤 수행문 아래의 블럭을 표시할 때 C언어처럼 괄호를 통해 표시하는 것이 아니라 들여쓰기를 통해 표시한다. 일반적으로 다음과 같다. 이는 Loop, 모듈 등을 다룰 때에도 동일하게 적용된다! if : Python을 지원하는 코드에디터 및 종합개발환경의 경우 콜론 이후 엔터를 치면 자동으로 들여쓰기를 해준다. if statement if : if문의 형태는 위와 같다. 이때 condition(조건)은 결과가 Bool..