전체 글 216

[C++] 03.04 review

하나의 클래스가 다양한 역할을 수행하게 되는 거대 클래스는 개발자가 지양해야 함void function(){cout 자식 클래스의 객체를 부모 클래스의 타입으로 변환하는 것을 업캐스팅이라고 함::는 범위 연산자, 범위 지정자SOLID 원칙, 객체지향 설계의 다섯 가지 원칙1. 단일 책임 원칙, SRP : 클래스는 한 가지 기능만 수행해야하고, 한 가지 이유로만 변경해야 한다.2. 개방-폐쇄 원칙, OCP : 클래스는 확장에는 열려 있으나, 수정에는 닫혀 있어야 한다.3. 리스코프 치환 원칙, LSP : 자식 클래스는 언제나 부모 클래스를 완전히 대체할 수 있어야 한다.4. 인터페이스 분리 원칙, ISP : 클라이언트는 사용하지 않은 인터페이스에 의존해서는 안 된다.5. 의존 역전 원칙, DIP : 고수준..

자율주행을 위한 인공지능 01

벤치마크 데이터셋 : 여러 연구자들이 공동으로 쓸 수 있는 데이터셋을 의미 Ex. COCO 데이터셋, 이미지넷, KITTI data set, nuScenes dataset 등Data Augmentation 증강 은 데이터가 부족할 때, 기존의 데이터를 변형해서 새로운 정보인 것 처럼 가공해서 사용하는 것을 말함 > 이런 행위가 인공지능한텐 효과가 있고, 새로운 데이터라고 받아들임.Crop 잘라내기, Brightness 밝기 변화, Rotation 회전, Flip 좌우, 위 아래 반전, Saturation 채도변화주기,    These materials are derived from Prof. Park Jin-sun of the Department of Information and Computer Engi..

[Deep-Learning] 01, k-NN, SVM

지도학습 Supervised learning학습시 데이터에 대한 레이블( 정답 )을 함께 부여하는 학습 방식정답값 = 레이블, 실제값, 타깃, y값예측값 = 분류값, y hat비지도 학습 Unsupervised learning학습시 레이블 없이 데이터만 필요함--분류와 회귀데이터가 입력됐을 때 분류는 분리된 값으로 예측 Ex. 덥다/춥다회귀는 연속된 값으로 예측 Ex. 30.5도, 3.5도분류에는 이진분류/다중분류 로 나뉨--머신러닝 모델 학습에 가장 큰 영향을 주는 것은 데이터.이 데이터에서 충분히 특징을 찾아내지 못하고 머신러닝 모델을 학습할 경우 모델이 과소적합, underfitting 되기 쉬움필요 이상의 특징으로 학습할 경우,머신러닝 모델이 학습데이터에서만 높은 정확도를 가지는 경우, 과대적합,..

[C++] 03.03 review

한 개의 클래스 안에서 동일한 이름으로 여러 개의 생성자를 만드는 것을 overloading이라고 함단, 생성자에 들어가는 매개변수는 다르게 해야한다.이렇게 하는 이유는 상황마다 객체를 생성할 때, 매개변수로 전달되는 값이 다를 수 있어서 여러가지 방법을 제공하는 것임소멸자, Desturctor는 스택에 할당된 객체는 함수가 종료될 때 자동으로 소멸된다, 함수가 끝나면 해당 객체가 자동으로 소멸되고, 메모리가 해제된다.리스코프 치환원칙은 '부모가 할 수 있는 일을 자식도 할 수 있어야 한다'는 규칙this->는 this 포인터를 사용해서 해당 객체의 멤버변수나 함수에 접근하는 구문이다.친구 클래스는 해당 클래스의 private 또는 protected 멤버에 접근할 수 있는 특별한 권한을 부여받은 클래스E..

[C++] 03.02 review

다형성, polymorphism : 상속받은 클래스들이 부모와 다른 다양한 특성을 가지는 것상위 개념( 부모 클래스 )의 역할을 대신할 수 있으면서 각자의 고유한 특징으로 동작하는 것이 다형성OOP에서 다형성을 구현하려면 overriding 키워드를 상속받는 클래스 안의 함수 맨 오른쪽에 적어준다.overriding 하려면 부모 클래스의 함수를 virtual 키워드를 붙여서 가상함수로 선언해야함생성자(Constructor)는 객체가 생성될 때 자동으로 호출되는 특별한 종류의 함수

자율주행 01

차선 추출 과정컬러 이미지를 그레이 영상으로 변환: 컬러 이미지는 일반적으로 RGB로 되어 있으므로, 차선 추출을 위해서는 그레이스케일로 변환하는 것이 효율적입니다. 이 단계에서는 색상 정보가 제거되고, 밝기 정보만 남게 됩니다.잡음 제거를 위한 필터 적용 (예: GaussianBlur): 이미지에는 노이즈가 포함될 수 있기 때문에, 이를 제거하기 위해 가우시안 블러(GaussianBlur)와 같은 필터를 사용합니다. 이는 이미지의 경계를 부드럽게 하여, 후속 Edge 검출 과정에서 잘못된 경계를 제거하는 데 도움을 줍니다.Edge (경계) 추출: 이 단계에서는 Canny Edge Detection이나 Sobel 필터 등을 이용해 이미지에서 경계를 추출합니다. 경계는 차선 검출에서 중요한 정보를 제공하므..

자율주행과 인공지능 03

카메라 : 사람과 사물, 차량 등으로 분류하면서 주변 물체 식별어두운 공간이나 악천후 상황에서는 사물 식별 어려움원근감 정확한 판별 불가레이더 : 반사되어 돌아오는 신호를 기반으로 거리, 속도, 방향 등의 정보를 추출날씨, 시간과 관계없이 제 성능을 발휘, 주파수에 따라 단거리부터 중거리, 장거리를 모두 감지할 수 있음ADAS( ACC ) 에 사용물체의 정확한 식별 불가라이다 : 물체와 빛을 주고받으며 3차원 지도를 제작센서 융합, Sensor Fusion 은 :각 센서에서 인식된 정보를 하나로 결합, 자율주행이 가능하도록 한 기술사람과 사물, 차량 등으로 분류하면서 주변 물체 식별어두운 공간이나 악천후 상황에서는 사물 식별 어려움원근감 정확한 판별 불가센서의 Data 처리 이전 융합 방법카메라 2D 이..

[C++] 02.28 review

try{throw()} catch(){}catch() 소괄호안에는 조건식이 들어갈 수 없다.catch(...)는 모든 예외를 다 받겠다는 의미assert는 개발 과정에서 조건을 검사하여 프로그램이 예상대로 동작하는지 확인하는데 사용한다.assert()의 조건식안에 들어간 식이 false일 경우만 프로그램이 즉시 종료된다.assert는 디버그 모드에서만 컴파일 된다.noexcept를 함수에 붙여주면 예외를 던지지 않겠다는 의미이다.throw으로 예외를 던졌는데도 예외를 받을 catch가 없으면 프로그램을 강제 종료하는데 이때 종료 처리 함수를 설정하는 것이 set_terminate() 함수이다.객체지향 프로그래밍의 핵심 개념클래스( Class ) : 객체를 정의하는 설계도객체( Object ) : 클래스로..

자율주행과 인공지능 02

RNN, Recurrent Neural Network 대표적인 딥러닝 모델 중 하나시계열 데이터 같은 순차 데이터( Sequential Data ) 처리를 위한 모델로 잘 알려짐순차 데이터의 대표적인 예시 :01 시계열 데이터 : 일정한 시간 간격을 가지고 얻어낸 데이터 Ex. 차량의 주행 속도와 가속도, 주변 장애물과의 거리 데이터를 시간에 따라 기록한 것02 자연어 데이터 : 사람이 말하는 언어 Ex. 차량이 음성 인식을 통해 운전자가 "왼쪽으로 가"라고 말했을 때, 이를 이해하고 적절히 반응하는 과정보행자의 의도를 예측 및 장애물 탐지자동차가 시간에 따라 움직인 데이터를 학습하여 미래의 경로를 예측--YOLO 단점을 보완한 것이 SSDObject Detection은 객체 분류( Clasificat..