for Robot Artificial Inteligence

Yolo와 Multi Geometry를 이용한 Object pose estimation

|

1) Image -> Feature extract -> 3D matching -> Yolo -> boundary box

2) ignore feature point outside of boundary box, only remain feature points inside of box.

3) get mean or median by 3dpoints inside of boundary to estimate object pose

Comment  Read more

SLAM 프론트 엔드

|

Camera

Feature Extraction(indirect, direct method) -> Pose Estimation(2D-2D(Mono), 2D-3D(BA), 3D-3D(ICP)) -> triangulation

indrect : kind of ORB extractor direct : kind of Optical flow

Pose estimation : Descriptor matching(to find matched point between frames(KD-TREE FLANN)) -> find Essential matrix, fundemantial matrix with Epipolar constrain) -> SVD on Essential Matrix find Pos or further more -> triangulation with essentail matrix and camera instrict(generating 3D Mappoints correspoinding frames) -> reprejection it to cur image frame to do least square(BA) to find pose or with KD-TREE FLANN find matched point to do ICP

https://cmsc733.github.io/2019/proj/p3/

Lidar

Feature Extraction(Curvature) - > pose estimation(NDT, ICP)

curvature : take K Pointcloud to making curvature(feature point) which creating it meaningful

pose estimation : now we have meaningful feature points generated from pointcloud using those feature point to do matching 3d points and pose estimation.(ICP,NDT)

where it used?

Save Mappoints and keyframe and pose with unique index number(case, they qualify some condition such as 1000 Mappoints in keyframe something like that)in database and transport it to local mapping and full mapping, it is used in backend to construct the map.

Summary

purpose of this is generating meaningful information from each frame for slam. and used it in backend.

Comment  Read more

스카이파크 동대문 1호점 격리 정말 스트레스

|

1. 시설

한마디 정의 : 이게 호텔인가 싶다. 국가가 지정한 호텔이라 하루 10만원 주었는데, 이런 시설이면 5만원이 적당한것 같다.

2. 서비스

사람은 누구나 실수 할 수 있다. 그러나 그 실수를 했을 때 번복할 수 있는 기회는 많다. 근데 몇가지 정말 기분상하는 일이 있었다.

1) 호텔에 도착했을때 나와 한 분과 같이 도착하였다. 결제할 카드를 물어보길래 줬고, 가져갔다. 그리고 옆에 있는 분한테 결제 카드를 물어보고 할부할 것이냐고 물어보더라. 사소한 것이지만, 만약 왜 내 카드를 가져갈땐 할부 물어보지 않았을까? 다시 나에게 와서 할부에 대하 결제 물어봐야되는거 아닌가?

2) 3일에 한번씩 쓰레기를 버린다. 하루에 3끼를 주는데, 작은 쓰레기통이여서 한 2틀만 사용해도 꽉차게 된다. 그렇기 때문에 항상 작은 쓰레기봉투가 필요했고, 시간이 지나면 객실에 냄새가 나기때문에 복도에 놓았다. 몇시간 지나, 복도에 놓지 말란다. 그럼 쓰레기통을 더 달라고하니까 못준다고 한다. 알아서 처리하라는 식으로 얘기를 한다. 쓰레기통 하나 더 주는게 어려운 일인가? 의문이 든다. 호텔에 머물면서 불편한 점을 다 가지고 있어야한다. 그것이 스트레스이다. 앞으로 일회용 도시락을 다 먹었으면, 물로 행구거나 설거지를 해야겠다. 쓰레기 놓을 곳이 없다.

3) 내가 중국에 오래 살아서 그런가. 한국 서비스가 별로 안좋았다. 새로운 직장에 들어가는 HR과 얘기할 때도, 호텔의 카운터와 얘기할 때도, 무리한 부탁이 아닌데도 시도도 안해보고 할 수 없다. 어쩔 수 없다. 약간 사람을 무시하는 느낌이 있다. 왜 상대방의 불편을 생각 안해줄까. 뭔가 컨플레인이 있을때 해결방안을 찾아주지도 않고, 배째라는 식. 너무 힘들다.

3. 밥

맛없다. 똑같은밥 나온다.

Comment  Read more

더블포인터와 해쉬테이블 이용, 단기간 거리 찾을 때 Spanning tree

|

더블 포인터

더블포인터는 Point to Point로 힙테이블이나 행렬에 많이 쓰인다.(이미지 파일 등)

즉, 포인터로 힙 메모리 공간에 만들어진 힙테이블이나 행렬같이 A[2][2]일 경우, 다차원에 element를 찾기 위해서는 스택 메모리공간에서 더블포인터를 통해 요소를 접근할 수 있다.

해쉬를 통한 문제 푸는 방법

TwoSum같은 알고리즘 처럼, 해쉬테이블을 이용하여서 키, 벨류를 해쉬테이블에 저장해서 푸는 문제들이 많다. 그러다 엄청난 수가 들어오게 된다면, 결국 해쉬테이블의 크기가 커짐으로, 추구 컴퓨테셔널에 문제가 생기게 된다.

이에 더블해쉬나 퀴드라틱 해쉬등 mod를 이용하여서 테이블의 크기가 커지는것을 막을 수 있다.

단기간 거리 찾을 때 Spanning tree

Travel route 무제가 있다면, 어떻게 단거리를 찾을 수 있을까요? 약간 전통적으로 사용되는 Spanning tree입니다. parent node를 찾고, 연결되어 있는 두 경로에 대한 edge를 distance를 하여서, 탐색을 하는 방법입니다.

Comment  Read more

재귀함수에 대한 이해..

|

동적프로그래밍과 재귀함수에 대한 알고리즘 문제가 가장 어려운 것 같다. 오늘 이에 재귀함수 문제에 대해 알고리즘을 만들때 항상 마음에 두고 있어야 했으면 하는 원칙들을 넣으려 한다.

발상

재귀함수가 어려운 이유는 재귀가 일어나는 안쪽에서 어떻게 진행이 되는가 에 대해서 알기 어렵기 때문이다. 물론 컴퓨터 사고 능력이 좋아 알면 좋겠지만, 재귀가 3중, 4중으로 겹겹이 진행되면 머리가 아파오고 포기를 하고 싶어 진다.

그러나 재귀함수에써 진짜 핵심은 재귀함수를 사용함으로써 재귀함수가 하는 역할을 파악하는 것이다.

우리가 굳이 재귀함수를 다 헤쳐보았을 때 어떤 일을 하는 지에 대해서는 궁금해 할 필요가 없다. 어차피 컴퓨터가 해주는 일인데 굳이 궁금해 할 필요가 없는 것이다.

재귀함수는 수학적 귀납법으로 이해하면 좋다.

수학적 귀납법은 다음과 같은 흐름으로 진행 된다.

1) n = 1일때 명제를 증명한다. 2) n = k일때 명제가 성립한다고 가정한다. 3) n = k + 1일때 명제가 성립함을 2)를 이용해 증명한다.

여기서 핵심은 n을 모든 자연수에 대해서 일일이 증명하지 않고, n = k 일 때 성립한다고 가정해버린후 n = k + 1일 때 명제가 성립함을 2)와의 관계를 이용하여 증명한다.

주의! 재귀함수를 공부할 때 재귀 함수 안에서 일어나는 일을 이해하려고 하는 것은 n이 모든 자연수일 때 다 대입하여서 이해하려는 것과 같은 것이다.

따라서 재귀함수도 같은 원리로 이해하면 편하다.

1) n = 1(초기값)에 대하여 함수안에 식을 구현해 놓은다. 2) n = k 일때 함수가 성립한다고 가정한다. 3) n = k + 1일때 2)와 연관성을 탐구한 후 코딩한다

이때 재귀함수와 수학적 귀납법의 차이점은

재귀함수를 작성할 때는 3)에서 분기문이라던가, 부수적인 코딩을 생각해줘야한다는 정도이다. 언제까지나 기본 원리는 같다.

다만 재귀함수의 stack 메모리 Space에 대해 allocation은 stack형식으로 증가하게 된다.

Comment  Read more