YOLO 4

[Object Detection] YOLOv3: An Incremental Improvement

저번 포스팅에 이어서 이번에는 Yolov3에 대해서 살펴보도록 하겠습니다. 위 그림은 v1부터 v3까지 YOLO를 버전 별로 비교한 표입니다. YOLOv2의 경우 YOLOv1의 detection 성능을 높이기 위해서 그 당시의 다양한 기술들을 도입해 많은 변화가 있었다는 것을 표만 봐도 알 수 있습니다. 이에 비해 YOLOv3는 YOLOv2와 비교해 향상된 Backbone(Feature Extractor), FPN(Feature Pyramid Network) 기법의 적용만으로, 큰 변화는 주지 않고 성능과 속도를 올렸습니다. 그럼 거두절미하고 YOLOv3에 대해서 설명하도록 하겠습니다. Prediction Across Scales YOLOv2와 비교해 달라진 YOLOv3의 가장 큰 특징은 바로 FPN(F..

[Object Detection] YOLOv2 (YOLO9000:Better, Faster, Stronger)

이전 포스팅에서 설명한 YOLOv1은 inference 속도는 빠르지만 크기가 작은 object는 잘 detect하지 못하고 새로운 형태의 Bounding Box의 경우 정확히 예측하지 못하는 등 detection 성능이 떨어진다는 큰 단점이 있었습니다. YOLOv2는 그 당시 나왔던 여러 기술들을 합쳐 YOLOv1에 비해 수행 시간과 성능 모두 개선시킨 모델입니다. 이번 포스팅에서는 YOLOv2와 함께 성능을 향상시킨 방법들에 대해서 YOLOv1과 비교하면서 설명하도록 하겠습니다. 성능 향상 방법 1. Batch Normalization 배치 정규화는 다른 regularization의 필요성을 없애고 학습하는 과정 자체를 전체적으로 안정화하여 학습 속도를 가속 시키는 역할을 합니다. YOLOv2는 모든..

[Object Detection] YOLOv1 (You Only Look Once:Unified, Real-Time Object Detection)

이번 포스팅부터는 one-stage detector에 해당하는 YOLO를 버전별로 설명하도록 하겠습니다. YOLO는 현재 (2024년 3월 19일 기준) 9번째 버전까지 나올 만큼 자주 사용되고 활발히 개발되면서 실시간 Object Detection의 대명사로 자리잡게 되었습니다. YOLOv1의 구조 및 동작 방식 YOLOv1의 전체적인 모델 구조는 다음과 같습니다. YOLOv1의 모델은 GoogLeNet으로부터 많은 영감을 받았으며 이를 일부 수정하여 DarkNet이라는 독자적인 Convolutional Network을 만들어 사용했습니다. 24개의 Convolutional Layer(Conv Layer)와 2개의 Fully-Connected Layer(FC Layer)로 연결된 구조이며, Google..

[Project1] - (2) ROS2와 YOLOv8 연동시키기

이제 YOLOv8을 사용하기로 결정했으니 ROS2와 연동하여 사람을 detect할 수 있게 만들어야 합니다. 카메라를 통한 이미지 topic을 받은 후(subscribe)에 YOLOv8로 object를 detect한 후 그 결과를 navigation이 사용할 수 있도록 publish해줘야 하죠. 따라서 저는 topic을 보내고 받는 역할을 수행하기 위해 node와 이 node를 실행시킬 launch 파일이 필요합니다. YOLOv7까지는 이를 자동으로 만들어 ROS와 연동시켜주는 darknet_ros 라는 패키지가 존재하나 제가 사용할 YOLOv8은 나온지 얼마되지 않아서인지 지원하지 않았습니다. node와 launch 파일을 직접 만들어야하는 머리 아픈 상황에서 혹시나 하는 마음으로 github를 뒤져본..