분류 전체보기 47

[JAVA] 제네릭 (Generic)

📌 제네릭 : 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법.Person 클래스를 만들 때 이용하여 전역변수 info의 데이터타입을 T로 일시적으로 지정해 준다. 이후 Person이 인스턴스화할 때 지정한 구체적인 데이터 타입 (여기에서는 string)이 T자리에 들어가 변수 info가타입을 갖게 된다.*특징*1. 제네릭의 이름은 서로 달라야 한다. 보통 T  뒤에 위치한 알파벳을 대문자 형태로 사용한다.2. 제네릭의 자료형은 기본 데이터 타입 (int, char,...) 이 아닌 참조형 데이터 타입만을 취급한다. 제네릭 프로그래밍 (generic programming) : 다양한 종류의 데이터를 처리할 수 있는 클래스와 메서드를 작성하는 기법자료형에 대한 정보가 담겨있는 박스를 제공해 ..

Language/JAVA 2024.08.28

마우스 클릭을 통한 실시간 전경 표시와 GrabCut 알고리즘 코드 분석

파이썬 코드결과 화면 GrabCut 알고리즘에서 반복 횟수의 역할: 40 번째 줄의 grabCut 메서드의 6번째 매개변수는 물체 및 배경을 추정하기 위해 반복적으로 알고리즘이 실행되는 횟수를 의미한다. GrabCut 반복 횟수 조정에 따른 성능 변화: 5 → 1로 바꾼다면 알고리즘의 반복 횟수를 줄이는 것으로, 처리 시간이 줄어들어 grabCut 알고리즘이 더욱 빨리 수렴한다. 그러나 반복 횟수가 충분하지 않아 알고리즘이 물체와 배경을 정확히 구분하는 데에 필요한 충분한 정보를 수집하지 못하기에 결과가 덜 정확하게 분리되어 출력됨. 물체와 배경 경계가 흐리거나 일부 배경이 물체로 잘못 분류되는 등의 문제 발생할 수 있다.  Scharr 연산자를 이용한 에지 감지의 장점: Scharr 연산자는 이미지의 ..

[지능시스템] 07장. 비전 에이전트

컴퓨터 비전 방법론규칙 기방 방법론 : 인간의 논리 체계를 바탕으로 데이터를 이해하는 방법 (6장 내용)기계 학습 방법론 : 획득한 데이터를 바탕으로 문제를 해결하는 방법신경망 모델 - 얕은 신경망, 깊은 신경망(딥러닝)*얕은 신경망 : 퍼셉트론 ~ 다층 퍼셉트론 ~ 깊은 다층 퍼셉트론 * 딥러닝 : 깊은 신경망 구조를 설계하고 학습하고 예측에 사용하는 기술 비신경망 모델모델 : 기계학습에서 부르는 함수학습 : 수집한 데이터로 방정식을 풀어 함수를 알아내는 일예측 : 학습된 모델로 결과를 계산하는 일 기계학습의 4단계 : 데이터 수집 → 모델 선택 → 학습 → 예측데이터 수집모델의 입력 : 특징 벡터   / 모델의 출력 : 참값, 레이블 회귀 문제 : 레이블이 연속적인 값분류 문제 : 레이블이 이산적인..

[JAVA] OCP (Open Closed Principle) 개방 폐쇄의 원칙

📌 개방 폐쇄의 원칙 (OCP) ? : 객체 지향 설계 원칙 중 하나로 Open for extention + Closed for modification 즉, 새로운 기능의 추가나 변경 사항이 생겼을 때 기존 코드는 확장할 수 있어야 하지만 기존의 코드는 수정되지 않아야 하는 원칙이다. 확장에는 열려있고 변경에는 닫혀있어야 한다는 의미이다. Open for extention : 확장은 열려있다는 뜻으로, 클라이언트 코드 수정을 제외한 기능 추가 가능을 의미.Closed for modification : 코드 수정은 닫혀있다는 의미로, 클라이언트 코드 수정 금지를 의미.  장점코드의 유지보수성을 높이고 변경으로 인한 오류를 줄일 수 있다.다형성을 활용하고 역할과 구현을 잘 분리하였기에 핵심 코드들을 유지할..

Language/JAVA 2024.08.26

[지능시스템] 06장. 비전 에이전트

지능 에이전트 : 센서를 통해 환경을 지각하고 액추에이터를 통해 환경에 행동을 가한다고 볼 수 있는 모든 것  : 비전 프로그램을 비전 에이전트로 확장하려면 적절한 그래픽 사용자 인터페이스(GIU)를 추가해야 함.이 책의 파이썬 GIU프로그래밍은 PyQt 라이브러리로 구현[프로그램6-1] (비전 프로그래밍 예시1)~class BeepSound(QmainWindow) # BeepSound 클래스 선언. #QmainWindow 클래스를 상속받겠다는 뜻    def __init__(self)#BeepSound 클래스로 객체를 생성하면 자동으로 실행되는 생성자 함수 정의~         shortBeepButten.clicked.connect(self.shortBeepFunction) #콜백 함수 지정    #..

[지능 시스템] 05장. 지역 특징

다중 스케일 영상을 구성하는 방법 가우시안 스무딩 방법 : 거리가 멀어지면 세부 내용이 점점 흐려지는 현상 모방. 표준편차를 조절하여 스케일을 연속값으로 세밀하게 조절할 수 있는 장점연속 공간에서 유도한 수식/알고리즘을 디지털(스케일) 공간으로 변환해 사용할 수 있음.스케일 공간의 미분은 정규 라플라시안 사용피라미드 방법 : 거리가 멀어짐에 따라 물체의 크기가 작아지는 현상을 모방.대강 구하고 싶을 때 이용 SIFT 특징점을 검출하는 과정 스케일 영상 구축 : 한 옥타브 내에서는 가우시안 스무딩 이용하여 세밀하게 조정, 옥타브를 건너뛸 때는 피라미드 방법 이용하여 영상을 반으로 줄임. 사진 여섯 장 - 0옥타브***~ . 0옥타브를 구축하려면 컨볼루션을 6번 수행해야 함. 옥타브는 표준편차=1.6으로 스..

[OS / Linux] 아이노드 (i-node) / 하드 링크, 심볼릭 링크

아이노드 (i-node)  i-node는 Index node의 줄임말로, 유닉스 기반 시스템 내에서 파일을 빠르게 찾기 위해 사용되는 데이터 구조이다. 위 그림에서 disk block는 각 정보를 의미하는데, i-node의 정보 구성으로는 파일 형식, 파일 권한, 링크 수, 파일 소유주, 파일 그룹, 파일 크기, 파일 생성 시간이 있다. 이 정보들을 이용하여 i-node는 파일 및 디렉토리의 관리와 접근을 가능하게 한다. 리눅스에서 다루는 모든 파일은 고유한 i-node를 가지고 있으며 ls -i 명령어를 통해 확인할 수 있다. > i-node 테이블 i-node 테이블은 파일이나 디렉터리에 대한 정보를 저장한 곳으로, 전체 파일들의 모든 i-node를 가지고 있다. 따라서 시스템에 저장될 수 있는 파일..

[OS / Linux] 리눅스 기본 명령어

ls기능 : 파일 및 디렉터리의 목록을 출력한다.형식 : ls [옵션] [ {디렉터리 | 파일} ]옵션  -l, -a, -t, -Rcd : 디렉토리를 이동하는 명령어cp : 파일을 또 하나의 파일이나 다른 디렉터리로 복사하는 명령어mv기능 : 파일 및 디렉터리의 이름 변경, 위치 이동형식 : mv [옵션] 옵션 : -f, -irmmkdir / rmdir기능 : 디렉토리 생성 / 디렉터리 삭제형식 : mkdir 디렉토리명 / rmdir 디렉토리명cat : 파일의 내용을 출력하여 보여준다.moreln : 파일을 실제 경로가 아니라 사용하기 편리한 다른 경로로 접근할 수 있도록 지정rpmtargzip / gunzip 기능 : 파일 압축 설정 / 파일 압축 해제형식 : gzip [옵션] 파일명 / gunzip..

[JAVA] 메모리 영역

📌JVM (Java Virtual Machine)이란?   :  자바 가상 머신으로, JVM 설치만 한다면 OS에 상관없이 자바의 바이트 코드를 해석하고 실행하는 역할을 한다. JVM 실행 순서 .java 파일을 컴파일러(Compiler)를 통해 .class 파일로 변환한다. .class 파일을 JVM의 ClassLoader(클래스로더)에게 보낸다.클래스로더에서 JVM 런타임 영역으로 로딩하여 메모리에 올린다. 메모리란?: 주기억장치인 하드웨어 RAM을 의미하며, 프로그램을 실행하기 위한 정보를 저장한다.컴퓨터에 존재하는 모든 영역은 RAM이란 기억장치 내 고유한 영역을 할당받는다.→ 효율적으로 프로그램이 실행되기 위해 메모리 영역은 구분된다. 자바의 메모리 영역- 자바 프로그램을 실행하게 되면 JVM..

Language/JAVA 2024.08.25