Skip to main content

Featured

YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors review

 YOLO 버전이 v7 버전으로 논문이 발표되었다. papers with code에서 쉽게 확인할 수 있으며 이 논문은 모듈 최적화 기법 위주이다. CSPNet이라던지 RepVGG 같은 관련 네트워크들을 간단하게 공부하고 논문을 이해하는 것을 추천한다. 아래는 official github이며 ReadMe를 보면 쉽게 사용 방법을 알 수 있다. https://github.com/wongkinyiu/yolov7 또한 본 논문은 아래와 같다. Wang, Chien-Yao, Alexey Bochkovskiy, and Hong-Yuan Mark Liao. "YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors." arXiv preprint arXiv:2207.02696 (2022). 그렇다면 간략하게 논문에 대해 알아보도록 한다. - Abstract YOLOv7이 알려진 모든 detector들보다 정확도와 속도 면에서 성능을 능가하고 있다고 설명한다. 또한 이 네트워크를 오직 COCO 데이터셋으로만 훈련했다고 설명한다. 다른 네트워크들보다 확실히 좋은 성능을 내고 있다는 것으로 abstract에서 소개하고 있다. - Introduction  이 논문에서 제안한 real-time detector는 주로 mobile GPU나 GPU 장치를 지지할 수 있다는 것을 희망한다고 한 것을 보아 GPU가 필요하다는 것으로 이해하였다. 또한 이 논문에서 제안된 방법들의 개발 방향을 현재 real-time detector들의 개발 흐름과 다르다고 설명한다. 훈련 과정의 최적화에 집중했다고 한다. 그래서 중점적인 것이 정확도를 향상시키기 위한 훈련 cost를 강화화는 최적화된 모듈과 최적 기법이라고 설명한다.  논문의 제목에서 나오는데 제안된 모듈들과 최적 기법들을 trainable bag-of-freebies라고 칭한다. 최근에, model re-pa...

Simple MATLAB simulation using Euler rigid body equation and Quaternion kinematics

이 포스팅에는 강체의 회전을 표현하는데 널리 사용되고 있는 오일러 강체 방정식( rigid body dynamics equation)과 사원수 기구학 방정식 (quaternion kinematics equation) 이용하여 Matlab으로 간단한 시뮬레이션 코드를 작성하는 것에대해 작성한다.

아래 그림은 시뮬레이션 코드 작성을 위해 간단히 표현한 블록도이다. 강체 방정식은 인공위성이나 어떠한 회전하는 물체가 어느정도의 토크를 받냐에 따라 회전력을 계산할 수 있다. 그리고 quaternion kinematic를 이용하여 동체의 회전 각도를 표현한다.

Figure 1. Dynamics and Kinematics System Block Diagram

Figure 1의 중앙 상단 블럭은 Euler rigid body equation을 풀어주는 부분이며 식은 다음과 같다.

$$\dot{\omega}=J_B^{-1}\left[\tau_{ext}-\omega\times J_B\omega\right]$$

$$\tt \omega:angular\:rate\:wrt\:body\:coordinate\:system\:\in R^{3x1}[m/sec]\\\tau_{ext}:external\:torque\:wrt\:body\:coordinate system\:\in R^{3x1}[Nm]\\J_B:moment\:of\:inertial\:matrix\:\in R^{3x3}[kgm^2]$$

블럭의 출력은 각속도의 변화량이므로 이를 적절한 적분 방법(ex ode, rk ...)으로 적분하여  중앙 하단 블럭의 Quaternion kinematics에 전달한다. 

이 블럭의 출력은 적절한 적분 방법을 거쳐 Quaternion의 요구조건을 충족하기위해 정규화를 진행하여 최종적으로 시뮬레이션 루프를 이룬다.

임의의 토크를 동체의 x축에 가했을 때의 시뮬레이션 결과는 다음과 같다. 결과는 당연히 가해진 x축을 기점으로 회전함을 알 수 있으며 특히 토크를 계속 가하기 때문에 각속도가 계속 증가함에 따라 자세각을 통해 계속 회전하고 회전속도가 빨라짐을 알수있다.


Matlab Code

Reference -

[1] https://en.wikipedia.org/wiki/Euler%27s_equations_(rigid_body_dynamics)

[2] https://phys.libretexts.org/Bookshelves/Classical_Mechanics/Variational_Principles_in_Classical_Mechanics_(Cline)/13%3A_Rigid-body_Rotation/13.17%3A_Eulers_equations_of_motion_for_rigid-body_rotation

Comments