목록2023/03 (11)
귀퉁이 서재
초창기 객체 탐지 모델인 R-CNN, SPP-net, Fast R-CNN, Faster R-CNN에 관해 알아보겠습니다. 각 객체 탐지 모델의 논문 전체를 따로 정리해 놓았는데, 자세한 내용이 궁금한 분은 아래 링크를 참고해주세요. 논문 리뷰 - R-CNN 톺아보기 논문 리뷰 - SPP-net 톺아보기 논문 리뷰 - Fast R-CNN 톺아보기 논문 리뷰 - Faster R-CNN 톺아보기 이 글에서는 R-CNN, SPP-net, Fast R-CNN, Faster R-CNN의 핵심 구조를 알아보겠습니다. 1. R-CNN 기존 localization 구조의 문제점과 해결 방안 객체 localization을 할 때 원본 이미지와 annotation 정보를 활용합니다. 원본 이미지를 활용해 이미지 분류를 수행..
이번 글에서는 객체 탐지에 관해 알아보겠습니다. 더불어 이미지 분류, Localization, 객체 탐지, 세그멘테이션이 무엇이고, 서로 어떻게 다른지 알아본 뒤, 객체 탐지의 구조와 객체 탐지가 어려운 까닭에 관해 알아보겠습니다. 1. 분류, Localization, 객체 탐지, 세그멘테이션 가장 먼저, 분류, Localization, 객체 탐지, 세그멘테이션이 각각 어떤 뜻인지 알아보겠습니다. 다음 그림을 보시죠. ① 분류(Classification)는 해당 이미지가 어떤 객체(물체)를 나타내는지 분류하는 작업입니다. 가장 간단한 딥러닝 작업이죠. 개와 고양이를 분류하는 예가 있습니다. ② Localization은 이미지 안에 있는 하나의 객체 위치를 찾아주는 작업입니다. 위 그림에서 보시는 바와 같..
이전 글에서 오토인코더의 개념과 원리를 알아봤습니다. 이번 게시글에서는 오토인코더를 직접 구현해보는 실습을 다루겠습니다. 간단한 선형 인코더를 설계한 뒤, 인코딩과 디코딩을 해보겠습니다. 인코딩 결과와 디코딩 결과도 시각화해볼 겁니다. 코드 링크 : https://github.com/BaekKyunShin/Computer-Vision-Basic/blob/main/Project4-AutoEncoder/AutoEncoder.ipynb 아래 코드는 구글 코랩(colab)을 바탕으로 설명합니다. 1. 라이브러리 임포트 필요한 라이브러리를 먼저 임포트합니다. import matplotlib.pyplot as plt import numpy as np import tensorflow as tf from tensorf..
오토인코더(AutoEncoder)의 개념을 되도록 쉽게 알아보겠습니다. 각설하고 바로 시작해보죠. 1. 오토인코더의 개념 오토인코더는 입력(input)과 출력(output)이 동일한 값을 갖도록 만든 신경망 구조입니다. 오토인코더의 구조는 다음과 같습니다. 입력 x를 넣으면 출력 x'이 나옵니다. x와 x'은 (거의) 같은 값이 되게끔 하는 신경망 구조죠. 그런데 모양이 조금 특이합니다. 레이어가 점점 줄어들다가 다시 커지는 형태네요. 그래서 오토인코더를 Diabolo Network라고도 합니다. 아래와 같은 놀이기구(?)가 디아볼로라고 하네요. 작아졌다가 커지는 모양이 디아볼로와 같아서 이렇게도 부릅니다. 오토인코더의 가장 중요한 목적은 차원축소(Dimension Reduction)입니다. 어떻게 차원..
철학으로써 불교 사상을 좋아한다. 종교로써는 믿지 않는다. 실증되지 않는 건 알지 못한다는 생각을 갖고 있어서 종교로써는 믿지 않는 것 같다. 기독교든 불교든 힌두교든 마음을 편하게 해주는 사상이라고 생각한다. 기독교와 관련해서는 창세기 밖에 읽어보지 못했고, 힌두교와 관련해선 우파니샤드만 조금 읽었을 뿐이다. 그래서 두 교리의 내용을 전혀 모른다고 봐야겠지만.. ^^ 어쨌든 불교 사상이 조금 더 내 마음을 편안하게 해주는 것 같다. 이번에 을 두 번 읽어보고, 법륜 스님의 라는 책을 한 번 읽어봤다. 기억하고 싶은 내용을 그대로 기록했다. 색즉시공 공즉시색 인도 가서 인도 사람 이야기를 들어보면 파키스탄을 나쁘다고 하고, 파키스탄 사람들 이야기를 들어보면 인도가 나쁘다고 합니다. 팔레스타인 이야기 들어..
이번 글은 이전 게시글과 이어지는 내용입니다. 이번에는 동영상에 등장하는 여러 얼굴 이미지를 바탕으로 감정 분류를 해보겠습니다. 모델 학습까지는 이전 게시글에서 이미 설명했으니 여기서는 코드만 실겠습니다. 자세한 설명은 이전 글을 참고해주세요. 코드 링크 : https://github.com/BaekKyunShin/Computer-Vision-Basic/blob/main/Project3-Emotion_Classification/Emotion_Classification_in_Video.ipynb 아래 코드는 구글 코랩(colab)을 바탕으로 설명합니다. 1. 구글 드라이브 마운트 & 이미지 데이터셋 불러오기 from google.colab import drive drive.mount('/content/dr..
이번에는 신경망을 활용해 얼굴 이미지에서 감정을 분류하는 모델을 만들어보겠습니다. 사실 감정 분류와 이미지 다중 분류는 다를 바 없습니다. 코드 링크 : https://github.com/BaekKyunShin/Computer-Vision-Basic/blob/main/Project3-Emotion_Classification/Emotion_Classification.ipynb 아래 코드는 구글 코랩(colab)을 바탕으로 설명합니다. 1. 구글 드라이브 마운트 & 이미지 데이터셋 불러오기 가장 먼저 구글 드라이브를 마운트합니다. from google.colab import drive drive.mount('/content/drive') 이어서 감정 분류에 사용할 이미지 데이터를 불러오겠습니다. FER(Fa..
이전 글에서 LBPH 알고리즘 개념에 관해 알아봤습니다. 이번에는 LBPH 알고리즘을 활용해서 얼굴 인식을 하는 실습을 해보겠습니다. 코드 링크 : https://github.com/BaekKyunShin/Computer-Vision-Basic/blob/main/Project2-Face_Recognition/Face_Recognition_with_LBPH.ipynb 아래 코드는 구글 코랩(colab)을 바탕으로 설명합니다. 1. 구글 드라이브 마운트 & 이미지 데이터셋 불러오기 가장 먼저 구글 드라이브를 마운트합니다. from google.colab import drive drive.mount('/content/drive') 이어서 얼굴 인식에 사용할 이미지 데이터를 불러옵니다. 여기서는 Yale fac..
이전 포스트들에서 얼굴 검출(face detection)을 알아봤습니다. 이번에는 얼굴 인식(face recognition)에 관해 알아보겠습니다. 둘은 비슷해 보이지만 다른 개념입니다. 얼굴 검출 : 이미지나 영상에서 사람의 얼굴을 찾는 작업 얼굴 인식 : 이미지나 영상에서 개개인의 고유한 얼굴을 인식하는 작업 얼굴 자체를 찾는 일만을 원한다면 얼굴 검출 작업을 하면 됩니다. 반면, 특정한 개인을 식별하고 싶으면 얼굴 인식 작업을 해야 한다. 코로나가 한창일 때, 우리는 실내 입장 시 카메라 앞에 얼굴을 대고 체온을 측정했었습니. 그때는 얼굴 검출 기술이 필요합니다. 그 사람이 홍길동인지 임꺽정인지는 중요하지 않죠. 그냥 사람의 '얼굴'만 찾아서 체온을 측정하면 되기 때문입니다. 반면, 사무실에 출입할..
이전 게시글에서는 하르 캐스케이드를 활용해 얼굴을 검출하는 방법을 알아봤습니다. 초기 객체 검출 모델이라서 성능이 썩 좋지는 않았습니다. 이번에는 HOG 검출기를 활용해 얼굴을 검출해보겠습니다. 일반적으로 HOG 검출기가 캐스케이드 검출기보다 성능이 좋습니다. HOG 개념에 관해서는 OpenCV - 33. HOG(Histogram of Oriented Gradient) 디스크립터를 참고해주세요. 이론을 설명해놨습니다. 이 게시글에서는 이론은 제외하고 바로 코드로 구현해보겠습니다. 코드 링크 : https://github.com/BaekKyunShin/Computer-Vision-Basic/blob/main/Project1-Face_Detection/HOG_Face_Detection.ipynb 아래 코드는..
하르 캐스케이드는 'Rapid Object Detection using a Boosted Cascade of Simple Features' 논문(2001년 발표)에서 제안한 객체 검출기입니다. 상세한 이론은 논문 리뷰 - 캐스케이드 검출기 (Cascade Detector) 톺아보기 게시글에 설명해놨습니다. 궁금하신 분은 참고해보세요. 여기서는 OpenCV 라이브러리를 활용해 캐스케이드 검출기로 얼굴을 검출하는 실습을 해보겠습니다. 구글 코랩 환경에서 구현했습니다. 아래 코드는 모두 구글 코랩 바탕이므로, 다른 에디터에서 작업하신다면 적당히 가감하시면 되겠습니다. 코드 링크 : https://github.com/BaekKyunShin/Computer-Vision-Basic/blob/main/Project1..