분류 전체보기
-
*이전 포스팅 (https://zzziito.tistory.com/77) 과 이어집니다. SVD : Singular Value Decomposition SVD(특이값 분해) 란 ? 복잡한 행렬을 간단한 구성 요소로 분해하는 방법. SVD의 핵심은 행렬 A를 구성하는 데이터의 '특징'을 추출하는 데 있다. 여기서 U, V 는 Orthogonal (모든 basis 가 직교하고 크기가 1임) 이다. 또한 sigma 행렬은 1) 대각행렬에 위치한 singular value 를 제외한 요소가 다 0이고, 2) 이 singular value 를 제곱하면 eigen value 가 된다. 3) 이 singular value 들은 내림차순으로 정렬되어 있다. 우리는 Ax=0 의 답을 찾기 위한 방법으로 SVD 를 사용한..
Ax=0 을 풀기 위한 SVD (Singular Value Decomposition)*이전 포스팅 (https://zzziito.tistory.com/77) 과 이어집니다. SVD : Singular Value Decomposition SVD(특이값 분해) 란 ? 복잡한 행렬을 간단한 구성 요소로 분해하는 방법. SVD의 핵심은 행렬 A를 구성하는 데이터의 '특징'을 추출하는 데 있다. 여기서 U, V 는 Orthogonal (모든 basis 가 직교하고 크기가 1임) 이다. 또한 sigma 행렬은 1) 대각행렬에 위치한 singular value 를 제외한 요소가 다 0이고, 2) 이 singular value 를 제곱하면 eigen value 가 된다. 3) 이 singular value 들은 내림차순으로 정렬되어 있다. 우리는 Ax=0 의 답을 찾기 위한 방법으로 SVD 를 사용한..
2024.01.24 -
Homography 는 image stitching 을 할 때 많이 쓰입니다. (굉장히 많이 쓰이는 중요한 개념이지만, 일단은 image stitching 으로 시작해 봅시다. ) image stitching 은 여러 장의 사진을 이어 붙이는 작업으로, 파노라마 이미지를 만들 때 사용됩니다. 이런 파노라마 이미지를 만들 때에는 어떤 방법들이 사용될 수 있을까요 ? 매우 넓은 FoV 를 가진 렌즈를 사용한다 - 이 방법의 단점은 이미지 왜곡이 일어나고, FoV 가 200도를 넘기기 어렵고, 비쌉니다. 여러 장을 찍어서 이어 붙인다. 그러려면 여러 장의 이미지들의 관계에 대해서 알아야 하고, 이때 사용되는 것이 특징점입니다. 앞으로도 LiDAR 를 사용하지 않고 2D 이미지에서 3D reconstructio..
Homography : 평면과 평면 사이 관계, Pseudo InverseHomography 는 image stitching 을 할 때 많이 쓰입니다. (굉장히 많이 쓰이는 중요한 개념이지만, 일단은 image stitching 으로 시작해 봅시다. ) image stitching 은 여러 장의 사진을 이어 붙이는 작업으로, 파노라마 이미지를 만들 때 사용됩니다. 이런 파노라마 이미지를 만들 때에는 어떤 방법들이 사용될 수 있을까요 ? 매우 넓은 FoV 를 가진 렌즈를 사용한다 - 이 방법의 단점은 이미지 왜곡이 일어나고, FoV 가 200도를 넘기기 어렵고, 비쌉니다. 여러 장을 찍어서 이어 붙인다. 그러려면 여러 장의 이미지들의 관계에 대해서 알아야 하고, 이때 사용되는 것이 특징점입니다. 앞으로도 LiDAR 를 사용하지 않고 2D 이미지에서 3D reconstructio..
2024.01.24 -
mujoco 는 물리엔진을 지원하는 시뮬레이터로, MJCF 파일 (확장자 : xml) 을 통해서 모델을 환경으로 불러옵니다. 그런데 여기서 문제는 대부분의 로봇 description file 은 URDF 혹은 xacro (xml) 로 되어 있다는 것입니다. 게다가 직접 fusion360 등으로 로봇을 설계할 경우에, 이를 fusion2urdf 패키지 등으로 export 한 경우에 또 URDF 파일을 손에 쥐게 되는 경우가 있죠... 그래서 이 URDF 파일을 MJCF 파일로 바꿔 줘야 하는데, 간단한 방법을 몰라서 삽질을 했습니다. 그 방법은 다음과 같습니다. 우선 터미널에서 mujoco.viewer 를 실행시켜 줍니다. python3 -m mujoco.viewer 그리고 URDF 를 떨어뜨리면 다음과 ..
URDF to MJCF : mujoco-pymujoco 는 물리엔진을 지원하는 시뮬레이터로, MJCF 파일 (확장자 : xml) 을 통해서 모델을 환경으로 불러옵니다. 그런데 여기서 문제는 대부분의 로봇 description file 은 URDF 혹은 xacro (xml) 로 되어 있다는 것입니다. 게다가 직접 fusion360 등으로 로봇을 설계할 경우에, 이를 fusion2urdf 패키지 등으로 export 한 경우에 또 URDF 파일을 손에 쥐게 되는 경우가 있죠... 그래서 이 URDF 파일을 MJCF 파일로 바꿔 줘야 하는데, 간단한 방법을 몰라서 삽질을 했습니다. 그 방법은 다음과 같습니다. 우선 터미널에서 mujoco.viewer 를 실행시켜 줍니다. python3 -m mujoco.viewer 그리고 URDF 를 떨어뜨리면 다음과 ..
2024.01.11 -
요새 계속 MuJoCo 관련 프로젝트를 진행하고 있는데, mujoco 의 python wrapper 인 mujoco-py 는 한국어 자료도 거의 없고, 참고할 만한 자료가 거의 공식 도큐먼트 밖에 없는 것 같았습니다. 프로젝트를 진행하면서 mujoco-py 를 사용하는 방법에 대해서 포스팅을 해 보려고 합니다. mujoco 에서는 xfrc_applied 라는 외력을 사용할 수 있는데, 이를 이용하면 body 에 힘과 토크를 적용할 수 있습니다. https://www.youtube.com/watch?v=N2E-qnsyn1I 다음과 같이 body 에 외력을 줄 수 있습니다. 0. 개발 환경 Ubuntu 20.04 Mujoco-py 1. xfrc_applied xfrc_applied 의 [0:3] 요소는 힘을..
MuJoCo-python 환경에서 body 에 외력 주기 (xfrc_applied)요새 계속 MuJoCo 관련 프로젝트를 진행하고 있는데, mujoco 의 python wrapper 인 mujoco-py 는 한국어 자료도 거의 없고, 참고할 만한 자료가 거의 공식 도큐먼트 밖에 없는 것 같았습니다. 프로젝트를 진행하면서 mujoco-py 를 사용하는 방법에 대해서 포스팅을 해 보려고 합니다. mujoco 에서는 xfrc_applied 라는 외력을 사용할 수 있는데, 이를 이용하면 body 에 힘과 토크를 적용할 수 있습니다. https://www.youtube.com/watch?v=N2E-qnsyn1I 다음과 같이 body 에 외력을 줄 수 있습니다. 0. 개발 환경 Ubuntu 20.04 Mujoco-py 1. xfrc_applied xfrc_applied 의 [0:3] 요소는 힘을..
2024.01.10 -
Velodyne VLP-16 3d Lidar Setting Velodyne Puck VLP16 을 구동하려면 패키지 구성상품 말고 추가로 110V 변압기 (돼지코) 와 ethernet 젠더가 필요합니다. 관련 내용은 벨로다인 세팅을 참고하세요. Veloview ROS Rviz 개발환경 세팅 ROS 환경에서 VLP16 사용하기 $ sudo apt-get install ros-melodic-velodyne $ cd catkin_ws/src $ git clone https://github.com/ros-drivers/velodyne $ cd .. $ catkin_make $ sudo ifconfig eth0 192.168.3.100 $ cd catkin_ws $ cd src $ roslaunch velodyn..
Velodyne 3d lidar 세팅하기Velodyne VLP-16 3d Lidar Setting Velodyne Puck VLP16 을 구동하려면 패키지 구성상품 말고 추가로 110V 변압기 (돼지코) 와 ethernet 젠더가 필요합니다. 관련 내용은 벨로다인 세팅을 참고하세요. Veloview ROS Rviz 개발환경 세팅 ROS 환경에서 VLP16 사용하기 $ sudo apt-get install ros-melodic-velodyne $ cd catkin_ws/src $ git clone https://github.com/ros-drivers/velodyne $ cd .. $ catkin_make $ sudo ifconfig eth0 192.168.3.100 $ cd catkin_ws $ cd src $ roslaunch velodyn..
2024.01.01 -
기존의 tabular한 방법론들은 state value나 action value 를 사용해서 policy를 생성했습니다. 즉, policy 는 Q-table을 통해서 (ex. epsilon-greedy) 만들어졌습니다. 하지만 Policy Gradient부터는 policy자체를 추정하게 됩니다. 그래서 Value-based Learning과 Policy-based Learning은 크게 다음과 같이 나눌 수 있습니다.Value-based는 뉴럴넷이나 테이블을 이용해서 Q-value를 계속해서 학습 해 나가고, 이 Q-value를 이용해서 Policy를 정하는 것입니다.Policy-based는 말 그대로 value를 따로 구하지 않고 policy만 학습을 하는 것입니다. 그리고 Actor-Critic은 둘..
Policy Gradient : REINFORCE기존의 tabular한 방법론들은 state value나 action value 를 사용해서 policy를 생성했습니다. 즉, policy 는 Q-table을 통해서 (ex. epsilon-greedy) 만들어졌습니다. 하지만 Policy Gradient부터는 policy자체를 추정하게 됩니다. 그래서 Value-based Learning과 Policy-based Learning은 크게 다음과 같이 나눌 수 있습니다.Value-based는 뉴럴넷이나 테이블을 이용해서 Q-value를 계속해서 학습 해 나가고, 이 Q-value를 이용해서 Policy를 정하는 것입니다.Policy-based는 말 그대로 value를 따로 구하지 않고 policy만 학습을 하는 것입니다. 그리고 Actor-Critic은 둘..
2024.01.01 -
Data Augmentation 도메인이 다르다고 하면 과연 이 세 장의 이미지에서 "무엇이" 다른 걸까요 ? 이미지에는 Semantic (Content) 정보와 Apperance (Style) 정보가 있습니다. 따라서 컨텐츠만 잘 하면 새로운 스타일의 이미지가 왔을 때 잘 분류할 수 있지 않을까요 ? 그리고, 1번과 3번 이미지는 비슷한 스타일이기는 하지만 자세라던지, 귀의 방향 등이 다릅니다. 그러면 1번 컨텐츠에 3번 스타일을 적용한 새로운 이미지를 생성한다면 학습에 도움이 되지 않을까요 ? 이것이 Domain Generalization 에 사용되는 Data Augmentation 의 방법입니다. 그러면 Contents 를 표현하는 것과 Style 을 표현하는 것은 무엇이 다를까요 ? ADaIN A..
Domain Generalization : Data Manipulation MethodsData Augmentation 도메인이 다르다고 하면 과연 이 세 장의 이미지에서 "무엇이" 다른 걸까요 ? 이미지에는 Semantic (Content) 정보와 Apperance (Style) 정보가 있습니다. 따라서 컨텐츠만 잘 하면 새로운 스타일의 이미지가 왔을 때 잘 분류할 수 있지 않을까요 ? 그리고, 1번과 3번 이미지는 비슷한 스타일이기는 하지만 자세라던지, 귀의 방향 등이 다릅니다. 그러면 1번 컨텐츠에 3번 스타일을 적용한 새로운 이미지를 생성한다면 학습에 도움이 되지 않을까요 ? 이것이 Domain Generalization 에 사용되는 Data Augmentation 의 방법입니다. 그러면 Contents 를 표현하는 것과 Style 을 표현하는 것은 무엇이 다를까요 ? ADaIN A..
2023.12.06 -
Domain Generalization 이 무엇일까 ? 위에 이 두 개는 같은 도메인일까요 아닐까요 ? 기준을 어떻게 두느냐에 따라서 도메인의 정의는 달라집니다. 수학적 정의 input x 의 marginal distribution 을 domain 이라고 정의 하는 경우가 많습니다. 혹은 input 과 output 의 joint distribution 으로 정의하는 경우도 있습니다. 그래서 우리는 각각의 Domain 에서 나온 Feature 들이 이와 같이 Label Space 에서 Clustering 되기를 바라는 것 입니다. Single-Source vs. Multi-Source Domain Generalization 그러면 학습할 때 도메인은 몇 개를 사용하면 될까요 ? 학습할 때 하나의 도메인만 ..
Domain GeneralizationDomain Generalization 이 무엇일까 ? 위에 이 두 개는 같은 도메인일까요 아닐까요 ? 기준을 어떻게 두느냐에 따라서 도메인의 정의는 달라집니다. 수학적 정의 input x 의 marginal distribution 을 domain 이라고 정의 하는 경우가 많습니다. 혹은 input 과 output 의 joint distribution 으로 정의하는 경우도 있습니다. 그래서 우리는 각각의 Domain 에서 나온 Feature 들이 이와 같이 Label Space 에서 Clustering 되기를 바라는 것 입니다. Single-Source vs. Multi-Source Domain Generalization 그러면 학습할 때 도메인은 몇 개를 사용하면 될까요 ? 학습할 때 하나의 도메인만 ..
2023.12.06 -
Single-View Place Recognition under Seasonal Changes Daniel Olid, Jose ́ M. Fa ́cil and Javier Civera, Workshop at IROS 2018 논문 선정 배경 Place Recognition 관련 프로젝트를 진행하던 중, 계절 변화에 상관없는 VPR 모델을 연구하기 위해 이 논문을 읽게 되었습니다. Abstract Single - view place recognition 은 주어진 쿼리 이미지와 동일한 장소에 해당하는 이미지를 찾는 것으로 정의할 수 있습니다. 이는 자율주행 탐색 및 매핑을 위한 핵심 기능입니다. 이 주제에 대한 많은 연구가 있었지만, 높은 수준의 이미지 가변성 (시점, 조명 등) 등 해결해야 할 부분이 아직..
Place Recognition 을 위한 데이터셋 : Single-View Place Recognition under Seasonal ChangesSingle-View Place Recognition under Seasonal Changes Daniel Olid, Jose ́ M. Fa ́cil and Javier Civera, Workshop at IROS 2018 논문 선정 배경 Place Recognition 관련 프로젝트를 진행하던 중, 계절 변화에 상관없는 VPR 모델을 연구하기 위해 이 논문을 읽게 되었습니다. Abstract Single - view place recognition 은 주어진 쿼리 이미지와 동일한 장소에 해당하는 이미지를 찾는 것으로 정의할 수 있습니다. 이는 자율주행 탐색 및 매핑을 위한 핵심 기능입니다. 이 주제에 대한 많은 연구가 있었지만, 높은 수준의 이미지 가변성 (시점, 조명 등) 등 해결해야 할 부분이 아직..
2023.11.27 -
덜 흔들리는 도로 찾기 🚙 (졸업논문 BumpyPatch 요약) 2023.11.25
-
Backdoor Attack은 Adversarial Attack 의 한 종류입니다. 위와 같은 Attack 을 Evasion Attack 이라고 합니다. 우리가 실제로 모델을 학습시킬 때 사용하는 게 아니라, 학습된 모델을 테스트할 때 테스트 이미지를 조작해서 잘못된 결과를 내도록 하는 것입니다. Backdoor Attack Backdoor Attack 은 "트로이 목마" 처럼 무언가를 심어 놓는 것입니다. 이미 학습을 할 때부터 심어 놓게 됩니다. 이때 Poison instance 는 우리가 학습을 시키는 데이터셋에 오염된 instance 를 추가시키거나, 기존에 있던 데이터셋을 조금 변형시키는 것입니다. 예를 들어 데이터셋이 10,000 장이면 100 장 정도에 perturbation 이나 의도를 가..
Backdoor Attack on Self-Supervised LearningBackdoor Attack은 Adversarial Attack 의 한 종류입니다. 위와 같은 Attack 을 Evasion Attack 이라고 합니다. 우리가 실제로 모델을 학습시킬 때 사용하는 게 아니라, 학습된 모델을 테스트할 때 테스트 이미지를 조작해서 잘못된 결과를 내도록 하는 것입니다. Backdoor Attack Backdoor Attack 은 "트로이 목마" 처럼 무언가를 심어 놓는 것입니다. 이미 학습을 할 때부터 심어 놓게 됩니다. 이때 Poison instance 는 우리가 학습을 시키는 데이터셋에 오염된 instance 를 추가시키거나, 기존에 있던 데이터셋을 조금 변형시키는 것입니다. 예를 들어 데이터셋이 10,000 장이면 100 장 정도에 perturbation 이나 의도를 가..
2023.11.24 -
K, He, et al. "Masked Autoencoders Are Scalable Vision Learners", ICCV, 2022 Very simple method, but highly effective BERT-like algorithm, but with crucial design changes for vision Intriguing properties - better scalability and more from analysis MAE 같은 형식의 문제가 여기서 처음 나온 건 아닙니다. 우리가 Pretext Task 중에서, Context Prediction 이라는 impainting 태스크가 있었습니다. 또한 Transformer 에서 언급했던 Pixel GPT 도 있습니다. 그런데 2022..
MAE : Masked AutoEncoder🤿K, He, et al. "Masked Autoencoders Are Scalable Vision Learners", ICCV, 2022 Very simple method, but highly effective BERT-like algorithm, but with crucial design changes for vision Intriguing properties - better scalability and more from analysis MAE 같은 형식의 문제가 여기서 처음 나온 건 아닙니다. 우리가 Pretext Task 중에서, Context Prediction 이라는 impainting 태스크가 있었습니다. 또한 Transformer 에서 언급했던 Pixel GPT 도 있습니다. 그런데 2022..
2023.11.23