본문 바로가기

전체 글

(18)
CenterNet2 리뷰 CenterNet2 리뷰 서론 1학기에 진행하였던 CenterNet2 객체 인식 모델을 연구하는데 있어 모든 기존 팀원이 기가차팀으로 이동하였고, 새로 들어온 팀원도 쉽게 따라올 수 있도록 그리고 추가적으로 본인도 연구에 미흡했었기에 이 점을 보완하고자 1학기 centernet2 연구를 복기해보고자 한다. CenterNet2 특징 먼저 1-stage detector와 2-stage detector의 차이를 알아보자. 1-stage detector는 region proposal과 classification이 동시에 이루어지기 때문에 빠르지만 정확도가 떨어진다. 2-stage detector는 region proposal을 먼저 수행하고 그 해당 영역에 대해서만 classification을 수행한다. 따라서..
Convolutional Neural Network 탄생 배경. 컴퓨터 비전은 인공지능 이전부터 연구되어 왔는데, 룰 베이스 알고리즘(규칙을 찾는거지. 파라면 하늘 이런느낌)을 탑재한 컴퓨터 비전이엿다가 딥러닝의 발전 이후로 엄청난 성장을 하고 있다. 과거 cv는 이미지 특징점을 추출하는 방식으로 이미지 일부 정보만을 사용, 같은 특징점을 가진다면 문제 발생. 여러 특징점을 가지고 오분류 최소화하려고 함. 이제는 딥러닝은 픽셀자체를 정보로 다 활용해버려 버리는게 없지. 비효율적이지만 (커ㅓㅁ퓨팅 관점에서) 하지만 정확도가 개선돼 . cnn 자동특징추출기인데, 사람의 얼굴이라고 예를 들면 cnn이 과거였으면 사람의 얼굴에 특징점들을 분류해야겠지만 cnn이 발전된 현재는, 컴퓨터가 특징을 찾아내 전반적인 쉐입과 특징을 보는것이 cnn의 원리야 사람처럼 보는게..
딥러닝 기초 이미지 인식과 같은 분야를 인간보다 컴퓨터가 더 잘 할 수 있을까? 컴퓨터의 고사양 성능과 빅데이터가 결합. >> 다른 머신러닝 기법보다 좋음. 머신러닝안에는 statistical learning > neural network > deep learning 명시적 프로그래밍 없이 컴퓨터 스스로 학습할 수 있는 능력을 갖추게 하는 분야. 지도 학습. 리니어 리그레션 로지스틱 리그레션 뉴럴 네트워크 .. 등등.. 비지도 학습 k-mean, pca, apriori 세미 지도 학습 지도학습으로 레이블이 존재하는 데이터를 학습시키고 이 모형으로 레이블 없는 data에 레이블을 추정한다. 추정과 관츠고딘 레이블로 다시 지도학습 모형 만들고 레이블 추정. 이 과정을 더 이상 결과가 안변할때 까지. 구글 포토, 페이스북..
자비에 초기값 드롭아웃 배치 정규화 옵티마이저 자비에 초기값 뉴럴네트워크 초기값 따라 결과가 달라지기도, 해에 수렴하는 속도도 달라져, 이래서 초기값을 어떻게 할거냐 연구. 가중치의 분산을 일정수준 이하로 작게 만들면 더 빠른 수렴을 보인다는 연구결과에 의해 나타난 방법이 자비에 초기값이다. 시그모이드 함수의 중간에 와야 유의미한 가중치가 되니깐 초기 가중치가 중요한데 그래서 드롭아웃 노드를 랜덤하게 몇개 무시하고 학습시켜, 노드가 몇개 없어도 잘 학습되도록 강건하게 만드는 강건하게 만든다라는것은 어떤 가중치가 너무 강해서 학습이 오래걸리거나 학습을 제대로 못한다. 그렇게 드롭아웃으로 노드를 골고루 영향주게 할라고 한느거지. 오버피팅을 피하려고 드롭아웃을 통해 특정 노드들이 오버피팅 될때 여러 개들이 다 오버피팅 그거 평균 내면 결국 레귤라이제이션돼..
[딥러닝]ReLU 함수 본 글은 강의를 수강하고 복습을 하며 추가로 공부하고 기록을 남기기 위한 글입니다. 출처 : 인하대학교 김승환 교수 2021-1학기 데이터마이닝 수업 서론 이전에 XOR 문제를 보다 복잡한 신경망으로 꾸리면 어떻게 될 것인지 예측해보고 그에 대한 개선책을 공부해보자. XOR의 확장 xor문제를 노드도 많이 추가하고 히든 레이어도 많이 추가하여 학습시켜보자. 결과를 예측하기로는 더 정확한 모델이 되어야할 것으로 예상된다. 하지만 결과는 학습이 되 지 않았다. 이유는 gradient vanishing problem인데, 이는 우리가 미분을 할수록 0에 가까워지므로, 가중치가 점점 사라지는 효과가 발생한다. 이는 활성함수가 sigmoid이여서 출력이 0과 1로만 나오기때문에 일어나는 현상이다. 시그모이드 가중..
ROS 커스텀 메시지 생성 먼저 ROS 패키지를 생성해줍니다 이름 centernet2 의존성 패키지 roscpp, rospy std_msgs로 물론 워크스페이스/src 폴더에 만들어주세요. 그러면 패키지 폴더가 생성된것을 볼 수 있고, 거기에 msg 폴더를 생성합시다. msg 폴더 안에 원하는 메시지를 만들어서 추가합니다. 사진을 참조해주세요 이 아래 여러 사진들은 CMakeList 파일을 이렇게 수정해주어야 합니다 커스텀 메시지를 사용할 수 있게 패키지 설정을 해주는 거에요. 마지막으로 package.xml 파일도 수정해주어야합니다. 다했다면 catkin_make 하고 이제 노드 만들때 원하는 메시지를 import 할 수 있을겁니다. 혹시 안되실까봐 구글 드라이브에 centernet2 패키지 폴더 압축해놔서 올려놨어요
PID 제어 활용하기. PID 제어 INPUT값은 thruster 의 PWM, servo의 각도이고, ERROR는 목표속도쌍과 현재속도쌍의 차이 그 에러를 INPUT 에 조작해줘서 좋은 OUTPUT이 나오게 그러면 내 배의 속도를 측정할 수 있어야 하고 각속도를 측정할 수 있어야 해 v, yaw_rate 두개. (무슨센서의 어떤값으로 측정해야하는지) 이것과 DWA에서 원하는 v, yaw_rate를 일치시켜줘야하고 이 차이가 error지 그러면 일단 pwm 신호 1100~ 1500 ~ 1900 서보 값 0~300도 (예시) P제어 pwm (1650, 1650) 서보 150 (중립) 고고 .. optimal_v (bestU) optimal_yaw_rate (bestU) cur_v cur_yaw_rate error_v = optim..
[IMU] Quaternion과 Euler를 알아보자. 목적 IMU에서 원하는 헤딩앵글을 계산하려고 하는데, 회전각속도를 단순 수치적분하여 얻은 것은 드리프트 현상( 오차 누적)으로 시간이 지날수록 오차가 커진다고 한다. 이를 줄이기 위해서는 칼만 필터 등 여러 보정작업이 필요하고 yaw만 필요하기 때문에 단순 한 축의 회전 각속도만 고려하는 것보다 Euler Angle, Quaternion에 대한 추가 공부를 해보자. Quaternion Euler Angle Euler angle은 x,y,z 3 개의 축을 기준으로 0~360도만큼 회전시키는 우리에게 친숙한 좌표계이다 Euler angle은 Gimbal lock이라는 문제점이 존재한다. Gimbal lock이란 두 개의 회전축이 겹쳐 특정 방향의 회전이 불가능해지는 것을 말한다. otation값을 저장할 때..