[데브코스 자율주행 TIL] DAY19 (10/16)

happy_quokka·2023년 10월 16일
0

2023.10.16 DAY19😪

저번주로 자이카 실습이 끝나고 온라인 강의가 다시 시작됐다!
자이카 실습...하고 싶다...ㅎㅎ
컴퓨터 비전에 대한 전반적인 내용과 영상 데이터에 관한 내용을 배웠다.
선택강의로 확률과 통계, cmake에 대한 강의도 들었다.

사실...오늘은 강의를 다 듣지 못했다ㅠㅠ
cmake로 opencv하는 법을 배운 후에 oepncv 실습을 하고 싶어서 cmake 강의를 먼저 듣다보니 시간이 부족했다ㅠㅠ

실습을 따라하고, 정리하고 하다보니 시간이 많이 걸린다.
그치만 한번 할때 제대로 하고 넘어가는 것이 좋으니 열심히 하자!!!


📝배운 내용

영상 데이터

  • grayscale 영상의 픽셀 값 표현

    • unsigned char (1Byte)
    • typedef unsigned char uint8_t 로 표현
  • truecolor 영상의 픽셀 값 표현

    • unsigned char 자료형 3개 있는 배열 또는 구조체 (3Bytes)
      class RGB
      {
        unsigned char R;
        unsigned char G;
        unsigned char B;
      }
  • 영상 데이터 저장 클래스

class MyImage
{
public:
  MyImage() : w(0), h(0), data(0) {}
  
  //생성자
  MyImage(int _w, int _h) : w(_w), h(_h) {
    data = new unsigned char[w*h] {}; //1차원으로 저장
  }
  //소멸자 (메모리 할당 해제해야한다)
  ~MyImage(){
    if(data) delete[] data;
  }
  unsigned char& at(int x, int y){
    return *(data + y * w + x);
  }
public:
  int w, h;
  unsigned char* data;
};

Bayes rule

P(xy)=P(yx)P(x)P(y)=likelihoodpriorevidenceP(x|y) = \frac{P(y|x)P(x)}{P(y)} = \frac{likelihood \,* \,prior}{evidence}

  • x : 로봇의 위치
  • y : 센서 값
  • 센서값(y)이 주어졌을 때, 로봇의 위치(x)를 표현하는 확률분포를 구하자
  • prior : 힌트를 주는 정보, 지난 frame 또는 초기의 로봇 위치

CMake

  • 빌드 파일을 생성하는 프로그램
  • cmake 빌드 단계 : generate, build
  • build 폴더 : build 결과물이 있는 폴더
  • install : 완성된 build에서 유저가 직접 사용할 라이브러리, 프로그램들만 시스템 폴더로 옮겨주는 작업
  • cmake 명령어로 generate
  • make 명령어로 build
  • vscode에서도 opencv를 사용할 수 있다.

😵어려웠던 점

CMake build

  • cmake 빌드할 때 cmake -j 명령어를 사용했더니 터져버렸다...!
  • vmware를 사용하다보니 그 안에는 core가 많지 않고 이미 느리기 때문에 터져버린 것 같다.
  • 그냥 make로 하니 시간은 오래걸리지만 build가 된다.

0개의 댓글