목록전체 글 보기 (255)
귀퉁이 서재

문제작 호밀밭의 파수꾼 1980년 12월 8일 밤 11시, 비틀즈 멤버인 존 레논이 자신의 팬이었던 마크 채프먼의 총에 살해당했다. 살해 직후 마크 채프먼은 도망갔을까? 아니다. 그는 존 레논을 살해한 뒤 살해 현장에서 책을 읽었다. 바로 『호밀밭의 파수꾼』을 말이다. 경찰에 체포되는 순간까지도 책을 손에서 놓지 않았다. 『호밀밭의 파수꾼』은 당시 이미 유명한 작품이었지만 이 사건 이후도 더 유명세를 떨쳤다. 『호밀밭의 파수꾼』은 '청소년에게 읽히지 말아야 할 책', '살인자를 키우는 책'과 같은 수식어가 따라다니기도 했다. 비도덕적이라는 이유로 당시 논란이 많았다. 한편, 현대 미국 문학사에서 빼놓을 수 없는 걸작으로 평가받고 있다. 특히, 노벨상 수상작가인 윌리엄 포크너는 『호밀밭의 파수꾼』을 20세..

철학과 굴뚝청소부 1~2부에 이어 3~4부를 정리해본다. 1~2부에서는 대륙의 이성주의와 영국의 경험주의를 다루었다. 데카르트, 스피노자, 로크, 버클리, 흄이 여기에 속한다(이 책에선 라이프니츠가 빠져서 아쉽긴 하다). 인식하는 주체와 인식되는 대상이 서로 다르면 양자가 동일한지 어떻게 확인할 수 있는가 하는 '근대철학의 문제설정'을 바탕으로 1~2부를 설명했다. 3~4부에서도 계속 근대철학의 문제설정을 기준으로 설명한다. 3~4부에서는 독일 고전철학자 칸트, 피히테, 헤겔과 근대철학의 해체자 맑스, 프로이트, 니체를 다룬다. 이 포스팅에선 니체 정리는 뺐다. 니체는 하도 많이 다뤄서 여기서까지 중복해서 다루진 않았다. 『철학과 굴뚝청소부』는 근대철학과 현대철학 일부(언어학, 구조주의, 포스트 구조주의..

철학은 도대체 왜 하는 거고, 어디에 도움 되는 걸까? 가만 보면 하등 쓸모없어 보이는데 말이다. 지적 허영심만 가득한 학문 같기도 하다. 배부르고 등 따신 사람들이 할 일 없어서 하는 것 같기도 하고. 전혀 틀린 말은 아닌 게 실제로 철학자 상당수가 배부르고 등 따신 사람들이었다(몇몇 고대 철학자나 스피노자 정도는 예외지만). 하여간 철학자들은 무슨 까닭으로 철학을 했을까? 너무 다양한 철학자가 있는 현대는 논외로 하고, 근대까지만 생각해 보자. 내가 존재하는 이유도 궁금했을 테고(존재론), 내가 인식하는 게 사실인지 여부도 진심으로 궁금했을 것이다(인식론). 내가 어떻게 살아야 하는지도 알고 싶었을 게다(도덕론). 가령, 내가 사과를 보고 '빨갛다'고 생각한다고 하자. 사과가 '실제로' 빨간 걸까? ..

이번 포스팅에서는 스타일 전이(Style Transfer)의 원리를 알아보고, 코드로 실습까지 해보겠습니다. 스타일 전이(Style Transfer)의 원리 1. 스타일 전이란? 스타일 전이란 콘텐츠 이미지(content image)에 스타일 이미지(style image)의 화풍을 적용해 새로운 이미지를 생성하는 기법을 말합니다. 아래 예시를 보시죠. 원본 이미지인 A(이를 콘텐츠 이미지라고 부름)를 기준으로 각 화풍(이를 스타일 이미지라고 부름)에 맞게 스타일을 적용해 새로운 이미지를 만든 예시들입니다. 반 고흐의 작품이나 뭉크의 작품의 스타일을 적용해서 새로운 이미지를 만들었죠. 스타일 전이는 어떤 원리로 동작하는지 알아봅시다. 먼저, 스타일 전이를 적용하려면 사전 훈련된(pre-trained) CN..

딥드림이란 무엇인가? 딥드림(Deep Dream)이란 입력 이미지를 환영이나 꿈 같은 이미지로 만들어주는 알고리즘입니다. 마치 어린 아이들이 구름을 보며 구름과 비슷한 동물이나 사물을 떠올리는 것과 같습니다. 이미 훈련된 신경망 모델이 원본 이미지에서 특정 패턴을 더 부각해 몽환적이고 새로운 이미지를 만들어주는 방식이죠. 아래 그림을 보시죠. 왼쪽이 원본이고, 오른쪽이 딥드림 모델로 만든 그림입니다. 딥드림을 이해하려면 먼저 기존 딥러닝 신경망을 알아야 합니다. 기본적으로 딥러닝 신경망은 경사 하강법으로 손실값을 최소화하는 방향으로 훈련을 합니다. 여러 계층(레이어)을 거쳐 전결합층에 도달해 최종 분류값을 결과물로 출력합니다. 이어서 최종 분류값과 실제값 사이의 오차(손실)를 계산하죠. 오차값이 줄어드는..

자세 추정이란? 자세 추정(Pose Estimation)이란 이미지나 영상에 포함된 여러 인물을 탐지(detection)해서 인체 각 부위의 위치를 식별하고 부위를 연결하는 선을 구하는 기술입니다. 게임, 헬스케어, AR, 스포츠 등에 쓰이죠. 특히나 스포츠 분야에서 다양하게 활용될 수 있을 것 같습니다. 인체에서 중요한 지점(key point)의 위치를 찾는 방식으로 동작합니다. 머리, 어깨, 팔꿈치, 무릎, 발목 등을 말이죠. 이러한 주요 지점을 선으로 연결하면 전체 자세를 추정할 수 있습니다. 자세 추정의 형태는 크게 세 가지입니다. Skeleton-based 모델, Contour-based 모델, Volume-based 모델이죠. Skeleton-based 모델은 주요 부위를 중심으로 찾기 때문에..

내게 쇼펜하우어는 특별한 존재다. 나는 니체와 사르트르를 좋아하는데, 쇼펜하우어가 니체, 키르케고르, 베르그송, 사르트르, 까뮈로 이어지는 생철학, 실존철학의 뿌리이기 때문이다. 2,000년간 이어져온 서양 전통 이성 철학에 반기를 든 철학자여서 더 특별하게 느껴진다. 문학, 철학, 예술계에 쇼펜하우어의 영향력은 어마어마했다. 너무 많아 다 나열하기 힘들 정도다. 너무나 자명한 니체는 물론이거니와, 톨스토이, 도스토옙스키, 아인슈타인, 비트겐슈타인, 프루스트, 에밀 졸라, 토마스 만, 프란츠 카프카, 프로이트, 헤르만 헤세, 앙드레 지드, 찰스 다윈, 헨리 데이비드 소로, 랄프 왈도 에머슨, 바그너 등. 톨스토이는 유일하게 쇼펜하우어 초상화만을 집에 걸어두었다고 한다. 아인슈타인은 세 명의 초상화를 연구..

객체 탐지에 혁신을 가져다준 모델인 YOLO 계열의 초기 모델인 YOLO v1, v2, v3 모델의 전반적인 특징을 알아보고, 이 모델을 활용해 간단한 객체 탐지 실습까지 해보겠습니다. YOLO v1, YOLO v2, YOLO v3 소개 우선 YOLO v1, YOLO v2, YOLO v3를 알아봅시다. 이름을 보면 알겠지만 시리즈로 이어진 모델입니다. 버전 숫자가 클수록 개선된 모델이죠. YOLO v1 이후로 등장한 객체 탐지 모델을 간략히 살펴보죠. YOLO v1 : 2-stage 검출기를 1-stage 검출기로 바꾸는 데 지평을 연 모델입니다. 1-stage 검출기란 영역 추정(region proposal)과 이미지 분류(classification)를 동시에 수행하는 모델을 말합니다. YOLO v1은..

초창기 객체 탐지 모델인 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..

캐스케이드 검출기는 물체(특히 얼굴)를 탐지하는 데 사용하는 검출기입니다. 통합 이미지(integral image), AdaBoost를 활용한 피처 선택, 캐스케이드 구조를 사용한다는 특징이 있는 검출기죠. 캐스케이드 검출기에 관한 논문은 CVPR(Computer Vision and Pattern Recognition) 2001에서 발표되었습니다. 캐스케이드 검출기 논문을 번역/설명해 봤습니다. 논문에 나온 글을 번역하면서 추가로 필요한 설명도 상세하게 덧붙였고요. 틀린 내용이 있으면 피드백 부탁드립니다(퇴고를 하지 않아 문장이 매끄럽진 않을 수도 있습니다). 논문 제목: Rapid Object Detection using a Boosted Cascade of Simple Features 저자: Paul..