[딥러닝] CNN Attention 기법 정리(SE(Squeeze-and-Excitation), CBAM(Convolutional Block Attention Module), ECA(Efficient Channel Attention))
·
Study/Computer Vision
- 이번 포스팅에서는 Vision Transformer 가 아닌, CNN 모델에서 사용되는 Attention 기법에 대해 정리하겠습니다.사람 혹은 생명채라면 시각 데이터의 특정 부분에 위치적으로 중요하다 아니다를 판별할 수 있고, 이로써 판단의 중요한 근거로 사용하므로, 시각 신경 구조를 토대로 만들어진 CNN 의 Attention 개념을 이해한다면 보다 근본적인 비젼 어텐션이 가능해질 것이라 생각합니다. (SEBlock(Squeeze-and-Excitation Block))- 논문 : Squeeze-and-Excitation Networks (2017) - SE Block 의 핵심 아이디어는 채널의 중요도를 표현하는 것에 있습니다.쉽게 설명드리겠습니다.CNN 은 KxK 크기의 커널을 통해 값의 위치적 ..
[딥러닝] 이미지 특징 추출 CNN 모델 기법 정리
·
Study/Computer Vision
- 이번 포스팅에서는 이미지에서 특징을 추출하여 고유한 패턴의 벡터를 반환하는 CNN 백본 모델에서 적용되는 기법들 중, 내용이 짧은 것들을 한꺼번에 정리하겠습니다. (Spatial Dropout)- 논문 : Efficient Object Localization Using Convolutional Networks 2014- 딥러닝의 Dropout 은 과적합(Overfitting) 을 방지하기 위한 정규화 기법입니다.딥러닝은 주어지는 데이터와 목적이 되는 손실함수에 따라 자동으로 파라미터가 학습이 되는 머신러닝 알고리즘이니만큼, 주어진 목적에만 맞다면 비효율적으로 파라미터가 결정되기도 합니다. 예를들어 예전에 정리한 AutoEncoder 게시글 에서 설명했듯,논리적이고 범용적인 정답 도출 방법을 찾는 것이..
[딥러닝] YOLO 시리즈 정리 v2~v4 (Word Tree, Feature Pyramid Network (FPN), PANet (Path Aggregation Network), SPP (Spatial Pyramid Pooling))
·
Study/Computer Vision
- 이번 포스팅에서는 앞서 정리한 YOLO v1 모델에 대한 기반 지식을 가지고, 그 개선 버전인 v2 에서 v4 까지를 정리하겠습니다.아시다시피 YOLO 모델은 객체 탐지 분야를 거의 독점하고 있으며, 버전도 굉장히 많습니다.현 시점 v12 까지 나와서 굉장한 성능을 보여주고 있는데, 버전이 많은 만큼 모든 버전을 전부 정리하는 것은 비효율적이기에, 비슷한 버전끼리는 묶어서 진행해 나가려고 합니다. 저는 아래와 같은 분류로 하여 최신 모델까지를 숏컷으로 진행할 것입니다. 1. YOLO 기초 구조 개선 단계v1~v3 : Grid 기반 단일 패스 탐지 구조 고도화v4 : SPP, Mosaic 등의 추가 구성요소로 효율 증가 2. 원작자 라인이 아닌 모델 발전 시작, C/CUDA 기반 darknet 프레임워..
[딥러닝] YOLO v1 정리 (1-stage 객체 탐지)
·
Study/Computer Vision
- 이번 포스팅에서는 객체 탐지 기술 범주의 Faster R-CNN 에서 바로 넘어가 YOLO 시리즈의 첫번째 모델을 정리하겠습니다.현 시점 최고 정확도, 최고 속도의 객체 탐지 모델은 YOLO 시리즈가 장악했으며, Image Segment 영역에 있어서도 YOLO 모델이 강세를 띄고 있는 만큼, 이번 정리글을 기반으로 YOLO 모델의 뼈대를 이해하고, 최신 모델(현재 v12 까지 나왔습니다.)까지 빠르게 진행해나갈 예정입니다. (YOLO 설명)- YOLO 모델은 Joseph Redmon 이 2016 년에 제안(v1)한 논문 "You Only Look Once: Unified, Real-Time Object Detection" 를 기반으로 하는 1-stage 구조의 객체 탐지 모델입니다.앞서 설명한 Fa..
[딥러닝] 딥러닝 객체 탐지 모델 R-CNN 시리즈 총정리 (R-CNN, Fast R-CNN, Faster R-CNN)
·
Study/Computer Vision
- 이번 포스팅에서는 딥러닝을 이용한 객체 탐지 모델인 R-CNN 시리즈에 대해 알아보겠습니다.오래된 기술이지만 컴퓨터 비전 분야의 발전 역사상 의미가 깊은 모델이며, 딥러닝 기반 객체 탐지 모델의 시초이므로 제대로 정리하고 넘어가려고 합니다. - 객체 탐지란,이미지 내에서 어떠한 객체의 위치를 파악하는 무척이나 활용도가 높은 기능입니다. 사람의 경우 시각 정보에서 가장 중요하고 빈번하게 사용하는 기능으로,여러 분야의 자동화 및 자율 동작 로봇을 구현하는 데에 있어 첫번째의 과제이기도 하죠. 일반적으로 의미하는 객체 탐지는, 어떠한 모델 f 에 시각 이미지 x 를 넣으면, 해당 이미지 내의 객체의 위치가 4개의 직사각형 좌표로 나오는 것을 의미하며, 그것을 넘어 객체의 윤곽을 전부 탐지하는 기술은 객체탐..
[딥러닝] U-Net 정리 (Skip-Connection Image Segmentation)
·
Study/Computer Vision
- 이번 포스팅에서는 DeepLearning CNN 레이어 기반의 Image Segmentation 모델인 U-Net 을 정리하겠습니다.U-Net 은 동일한 CNN 기반 Image Segmentation 모델인 FCN 에서 발전한 모델로,최신 Segmentation 모델 및 Stable Diffusion 이미지 생성 모델에서도 응용될 정도로 중요한 기술입니다. U-Net 은 2015 년 발표된 U-Net: Convolutional Networks for Biomedical Image Segmentation 논문을 기반으로 두고 있으며,의료 영상 분석에서의 성능 향상을 위한 목적으로 탄생했습니다. - 본 게시글을 이해하기 위해선 이전에 정리한 FCN 모델 정리글을 참고하세요. (U-Net 설명)- U-Ne..
[딥러닝] FCN(Fully Convolutional Networks) 정리 (Image Segmentation, DeConvolution, Skip Connections)
·
Study/Computer Vision
- 이번 포스팅에서는 딥러닝 CNN 기반의 Image Segmentation 모델인 FCN 을 정리하겠습니다.FCN 은 Sementic Segmentation 기술을 이해하기 위한 기본적이고 핵심적인 출발점입니다. - Image Segmentation 기술은,객체의 위치를 4개의 좌표로 표시하는 객체 탐지보다 더 세밀하게, 객체를 전체 이미지에서 분리하는 기술이며,산업적으로는 이미지 편집 분야, 자율주행, 위성 영상 분석, 의료 영상 분석 분야 등에서 중요하게 사용되는 기술입니다. 해당 범주의 최신 기술들을 이해하여 응용하고 연구하고 개발할 수 있도록, 가장 기본이 되는 FCN 을 먼저 이해해 보겠습니다. - 현 시점 추가 공부 및 정리 순서는U-Net -> DeepLab -> Mask R-CNN -> ..
Convolutional Neural Networks 개념 설명 및 실습 (Pytorch CNN 이미지 분류기 구축 + CAM(Class Activation Map))
·
Study/Computer Vision
- 이번 포스팅에선 딥러닝 이미지 분석 모델인 CNN 을 살펴보고,이를 이용한 이미지 분류기를 만들어보겠습니다. CNN 은 경량 컴퓨터 비전 기술에 여전히 주요하게 사용되는 기술이며,추후 LLM 모델의 멀티 모달에 사용되는 Vision Transformer(ViT) 를 이해하기 위한 발판이 될 것입니다. - DNN 및 기본적인 인공지능 지식이 있다는 것을 가정해서 설명을 할 것이므로,기본 지식이 필요하시다면,데이터 사이언스 기본 설명글위 데이터 사이언스 프로젝트에서 제가 정리한 관련 지식들을 차례로 습득하실 수 있습니다. [CNN(Convolutional Neural Networks) 설명](CNN 정의)- 컨볼루션 신경망(Convolution Neural Network : CNN) 이란, 생명체의 시..
딥러닝 기반 포즈 인식(skeleton 탐지, Landmark Detection)
·
Study/Computer Vision
- 이전에는 YOLO 모델을 이용한 컴퓨터 비전 객체 탐지 기능을 구현해 보았습니다.Skeleton 탐지는, 객체 중 인체에서 머리, 어깨, 가슴, 팔꿈치, 손, 무릎 등의 각 파트를 구분하여 탐지하는 기능으로,인체의 각 파츠를 탐지함으로써 인체 포즈를 구분해낼 수 있습니다. 아래에 실습해볼 내용은 현 시점 그대로 사용하기엔 낡은 기술일지도 모르지만(본 포스팅을 작성한 시점은 2022년도 입니다.),실시간으로 영상에서 인체 부위를 구분하여 탐지하는 모델로서는 성능상으로 상당히 유용한 방법이며,인체 탐지를 경험해보기 좋은 예시입니다.(아래에 소개하는 방식을 조금 운용하면, 양 눈과 코, 입으로 구성된 안면 파츠를 탐지해서 표정이나 시선 방향 탐지를 할 수도 있습니다.) - 먼저, 영상 데이터에서 객체를 탐..
OpenCV, Dlib Python 얼굴인식기 제작
·
Study/Computer Vision
- 이번 포스팅으론 머리를 식히는 개념으로, 이제까지 배운 컴퓨터 비전 지식을 실제 서비스로 만들어보는 시간을 가지도록 하겠습니다.이전 글들은 전부 날아간 상태이므로, 추후 관련된 컴퓨터 비전 관련 지식들은 다시 정리할 것입니다. - 구현할 기능은, 영상 데이터를 받아서, 얼굴을 탐지하고, 해당 얼굴이 누구인지를 식별하도록 하는 것입니다.(동영상, 카메라의 실시간 분석도 가능) 식별된 구역을 바운딩박스로 묶어주고,탐지 결과를 출력 및 엑셀 파일로 저장을 해줍니다. (영상 인식 출입 통제의 가장 기본적인 기능) - 개발 시작0. 준비라이브러리 컴파일을 위해 비주얼 스튜디오 C++ 개발을 설치하시고,파이썬 최신버전(64bit여야 합니다.)에, 파이참 커뮤니티 버전을 설치하시면 됩니다. cmake도 설치해둡시..