반응형

컴퓨티 비전에서 영상을 표현하는 방법은 크게 두 가지로 나눌 수 있습니다.

하나는 흑백사진과 같은 그레이 스케일(grayscale) 영상!

그리고, 트루 컬러 영상 혹은 그냥 컬러 영상입니다..

 

먼저, 흑백사진인 그레이 스케일(grayscale) 영상에 대해서 알아보도록 하겠습니다.

그레이 스케일 영상은, 흑백 그림처럼 색상 정보가 전혀 없이 오직 밝기로만 구성된 영상입니다

 

보통 밝기 정보는 256단계로 나누어서 표현을 하게 됩니다.

흑백사진에서 어두우면 0, 밝으면 255로 나누어서 0과 255255 사이 내에서 밝기를 표현을 하게 되는 것입니다.

 

즉 사과 그림에서 어두운 부분(사과 그림)은 0, 밝은 부분(배경)은 255에 가깝다고 생각하시면 됩니다.

 

(참고로, 컴퓨터 내에서 그레이 스케일 영상을 저장하면, 용량은 영상의 가로 x 세로 x 1바이트로 크기를 나타낼 수 있습니다.)

 

다음으로 보실 표현 방법은 트루 컬러(True color), 즉 컬러 영상입니다..

다음으로 보실 표현 방법은 트루 컬러, 즉 컬러 영상입니다..

불과 몇 년 전까지만 해도, 언트루컬러(un-true color)인 256 컬러나 16 컬러를 구분 짓기 위해서 트루 컬러라는 표현을 하게 되었는데요..

요즘에는 대부분트루 컬러이기 때문에, 그냥 컬러 영상이라고 표현하고 있습니다.

 

빨간색과 초록색 그리고 파란색만 있으면, 우리는 모든 색상을 표현하실 수 있다는 것을 알고 계시나요?!

빨간색과 초록색을 합치면 노란색이 되듯이..

 

우리는 이 3가지 성분의 색상을 조합한다면 우리가 알고 있는 모든 색을 표현할 수 있습니다.

 

즉, Red, Green , Blue각 각의 밝기를 0단계에서 255단계로 나누고,

각 단계를 조합해서 모든 색을 표현할 수 있는 것입니다.

 

그레이 스케일과 같이 red, green, blue 각 해당 색 성분이 없으면 0 많으면 255로 표현이 됩니다.

경우의 수를 따지면,  256의 3 제곱으로 표현이 되며, 약 천 6백만 개 이상의 색을 표현할 수 있습니다.

 

(총 3가지 색상으로 이루어져 있으니 프로그램 내에서는 가로 x 세로 x 3바이트를 해주면 컬러 영상의 용량을 확인할 수 있습니다.)

 

 

이번에는 영상 내에서 주로 사용하는 좌표계에 대해서 알아보도록 하겠습니다.

 

보통 우리는 사진을 표현할 때, wide x high (너비 x 세로)의 크기로 표현을 합니다.

 

바둑판 모양이기 때문에, 우리는 프로그래밍을 할 때, 편하게 사용하기 위해 넘파이 행렬 구조로 바꾸게 됩니다.

 

하지만 우리는 행렬에서는 행 x 렬 (세로 x 너비)로 표현을 하게 됩니다.

 

그래서 우리는 만약 프로그래밍 내에서 영상을 넘파이 행렬로 보시게 된다면 이점에서 주의를 해주셔야 합니다.

 

자세한 것은 실습을 통해서 알아보겠습니다.

반응형

네.. 지금까지 컴퓨터 비전에 대한 큰 산을 소개하였습니다.

 

이제는 컴퓨터 비전을 다루기 위한.. 영상에 대해서 자세히 알아보도록 하겠습니다.

 

지난 포스팅에서 설명을 드렸었다시피, 우리가 말하는 영상은...!

동영상이 아닌 이미지 사진을 말하는 거이고요..

동영상은 그냥 동영상이라고 생각하시면 됩니다.

 

그러면 지금부터는, 이미 지라는 말보다는, 컴퓨터 비전 용어에 맞게끔,

영상이라고 설명을 드릴 테니...

 

다시 한번, 혼돈 없으시길 바라겠습니다.

 

영상이라는 것은 픽셀이 바둑판 모양처럼 2차원 평면 위에 나열되어 있는 것이고요...

여기서 픽셀은, 영상의 기본 단위입니다. 우리나라 말로 "화소"라고 말할 수 있겠습니다.

 

요새는 스마트폰에서 몇 만 화소 이런 표현을 잘 홍보하고 있지 않은 것 같은데요…

15년 전만 해도, 10 만화 소대 카메라폰의 등장부터...

위 사진에 나와 있는 것처럼 "200만 화소..."

이처럼 핸드폰에 카메라 화소에 대해서 홍보를 많이 하였습니다.

 

지금, 스마트폰에서는 카메라가 기본 옵션이었지만, 이때는 최고급 기종에만 달려 나왔었습니다.

또한, 이 때 당시, 200만 화소는 큰 혁신과 같은 존재였습니다.

 

결국 200만 화소라는 이야기는 사진을 찍으면, 픽셀이 200만 개가 있다.

바둑판 모양이 200만 개로 쪼개져서 사진을 표현한다.

라고 생각하시면 됩니다.

 

참고로, 요새 나오는 핸드폰은 대략 2억만 화소라고 합니다.

같은 사진이라도, 200만 장으로 바둑판이 쪼개져있는지, 2억만 개로 쪼개져있는지의 차이입니다.

 

사실, 조금 한 핸드폰 디스플레이로 200 만화 소나 2억만 화소에 차이는 크게 없을 것입니다.

그러나 사진 확대를 해보면 달라지는데요…

 

2억만 화소로 찍은 사진을 약 25만 배 확대를 해야,

200 만 화소에서 찍은 사진과 같은 화소를 볼 수 있게 되는 것입니다.

반응형

이번에는, 현재 컴퓨터 비전 응용 분야가 어느 산업에서 활발히 일어나고 있는지 보도록 하겠습니다.

 

첫째로, 머신 비전 (machine vision)입니다.

 

 

https://www.envision.co.kr/ko/business/machinevision.asp

 

머신 비전은 인간이 할 수 없는 작업들을...

기계(머신 비전)들을 통해서 제품 불량 검사, 위치 확인, 측정 등을 하는 것입니다.

 

예로 들어, 초소형 메모리 반도체들은 너무 작기 때문에

사람이 육안으로는 불량을 확인할 수 없지만

컴퓨터 비저닝을 통해서는 확인이 가능합니다.

 

또한, 정확도가 중요하거나 빠른 처리가 필요한 분야에 활용이 됩니다.

 

예로 들어, 1초에 100개씩 찍어내는 과자 공장에서 불량 과자를 찾아내는 것은

사람의 힘으로 가능 하나, 시간이 오래 걸릴거나 작업자가 많이 필요할 것입니다.

실시간으로 불량 확인 하기는 불가능하겠죠..?!

 

그렇기 때문에 실시간 처리가 필요한 곳에서도 활용을 하고 있습니다.

 

두 번째로는, 요새 가장 핫한 분야인 인공지능 서비스입니다.

 

https://www.supermarketnews.com/store-design-construction/amazon-go-goes-smaller

Amazon은 여러분들 잘 아시겠지만, 쿠팡의 모티프인 미국에서 가장 큰 온라인 쇼핑 매장입니다.

 

현재, 아마존은 아마존 고라는 오프라인 매장을 만들어서

우리가 흔히 알고 있는 무인 계산대의 개념이 아닌,

 

계산대에서 계산을 하지 않고, 소비자가 물건을 골라서 장바구니에 넣고 매장만 나가면

알아서 등록된 신용카드로 계산이 되게끔 하는 기술을 선보이고 있습니다.

(관련 영상 : www.youtube.com/watch?v=NrmMk1Myrxc&ab_channel=amazon )

 

 

https://www.hyundai.co.kr/TechInnovation/Autonomous/Roadmap.hub

또한, 자동차에 수많은 영상 센서를 달아서,

운전자 없이 자동차가 스스로 운전할 수 있는 자율 주행 자동차까지 만들고 있습니다.

 

(관련 영상 : www.youtube.com/watch?v=NrmMk1Myrxc&ab_channel=amazonwww.youtube.com/watch?v=UyDzr-LnKdg&ab_channel=%ED%98%84%EB%8C%80%EC%9E%90%EB%8F%99%EC%B0%A8%EA%B7%B8%EB%A3%B9%28HYUNDAI%29 )

반응형

지난 포스팅, 컴퓨터 비전 연구분야에서 소개드렸던 사례들은...

영상 처리분야에서도 쉽게 처리가 가능한 부분입니다.

 

이번에는 이러한 이미지 처리를 가지고 컴퓨터 비저닝 기술을 활용하는 연구분야에 대해서...

 

간단한 사진과 설명을 드리도록 하겠습니다.

 

→ 영상 속에서, 사람 얼굴을 검출하는 기술.

 

→ 영상 속에서 보행자들을 검출 해주는 장면.

 

영상 속 동전들을 파악해서, 몇 개인지..?

    더 나아가 얼마인지를 판단.

 

→ 영상 속 여러 사물중에서 이렇게 특정 영상을 추출하여,

    반듯한 이미지로 변환(스캔 기능)

 

→ 영상 속 특정한 물체들만 찾아서, 그 물체가 무엇인지.. 판단!

 

→ 영상 속 특정한 물체들만 찾아서, 그 물체가 어떤 도형인지.. 판단!

 

→ 영상 속 특정한 손 글씨들을 찾아서, 그 손 글씨가 어떤 숫자인지.. 판단!

 

→ 영상 속 특정한 인물들을 찾아서, 남자인지 여자인지.. 판단!

 

→ 영상 속 글씨를 찾고 무슨 단어인지.. 판단!

 

→ 영상 속 특정한 물체들을 찾아서, 그 물체가 각 각 무엇인지.. 판단!

 

 

반응형

이번에는, 컴퓨터 비전의 관련 연구 분야에 대해서 알아보도록 하겠습니다.

 

컴퓨터 비전의 영상 처리기술은... 위와 같이 많은 산업 분야와 관련이 되어있습니다.

 

우리가 계속 다루는 머신러닝 및 딥러닝 분야와 연관이 있을 것이며...

컴퓨터 과학과 수학 이론들과의 연관도 있을 것입니다.

 

그 외에도, 컴퓨터 그래픽스, 인지과학 신호처리 등… 여러 분야와 관련이 있습니다.

 

좀더 구체적으로, 컴퓨터 비전 연구 분야에서 활용되는 사례들을 보도록 하겠습니다.

 

1. Filtering

위 사진은, 필터링 기술인데요… 우리가 흔히 페이스북이나 인스타그램 같은 곳에 사진을 업로드할 때...

누구나 한번씩 사진을 보정하죠?!

흐릿한 사진을 밝게 해주거나, 강조하고 싶은 곳에 포커스를 주는 필터링 기술입니다.

 

2. HDR

https:// en.wikipedia.org/wiki/High-dynamic-range_imaging

위 사진은 HDR (High Dynamic Range)기술인데요...

영상의 가장 밝은 곳부터 가장 어두운 곳까지...!

마치 사람이 눈으로 보는 것과 최대한 가깝게 밝기의 범위를 확장하는 기술입니다.

 

3. Image Noise Reduction

위의 아기 사진은, 이미지 노이즈를 최소화 하여 애기를 더욱 깨끗하고 선명하게 만들어주는 기술입니다.

 

4. Super Resolution

https ://arxiv.org/pdf/1707.02921.pdf

위 사진은 기존 사진을 확대하였을 때, 좀더 선명하게 확대를 시켜줄 수 있는 Super Resolution이라는 기술입니다.

반응형

제가 지난 포스팅에서, 영상 처리를 위한 CV 컴퓨터 비저닝...이라고 소개를 드렸었는데요!

 

사실 여기서, 이미지 관련 전공하시거나 공부하셨던 분들이 안계신다면...

별로 궁금하지 않을 질문일 수도 있겠지만…

 

컴퓨터 비저닝과 영상 처리 기술 어떤게 더 큰 개념인지 궁금해하실 분들도 있을 것입니다.

 

참고로, 영상이라는 말을... 동영상이라고 인지를 하실 수 있는데요...

사실 영상을 영어로 표현하면, picture, image라는 것을 확인할 수 있습니다.

이러한 영상, 즉 사진들을 여러장 이어서 움직임을 표현 것을...

움직일 동(動) 자를 붙여서 동영상이라고 합니다.

(영상이라고 표현하더라도, 혼돈을 가지시면 안 됩니다.)

 

그렇다면, 컴퓨터 비전과 영상 처리.. 과연 어느게 더 큰 개념인지 알아보도록 하겠습니다.

 

주장 1 : 영상 처리 기술은 컴퓨터 비전의 일부분이다!

 

일단 우리는 컴퓨터 비전을 다뤄야 하는 입장에서...

영상 처리를 하나의 목적으로 사용할 것이기 때문에 더 큰 개념으로 바라볼 수 있을 것입니다.

 

왜냐하면, 우리는 컴퓨터비저닝을 통해서 영상 인식 등 수준 높은 영상을 활용할 것이기 때문입니다.

 

영상을 바꾸거나 수정을 하는 이유는...? 단순히 이쁘게 보여주려고, 하는 것이 아니라...

영상 수정을 통해서 사진 속에 물건은 어디있는지... 나아가 그 물건은 무엇인지를 찾아내기 위함이기 때문이다...!

 

주장 2 : 아니다 컴퓨터 비전이 영상 처리 기술의 일부분이다!

 

그러나 영상 처리 전문가들이 바라보는 시선은 조금 다를 것입니다.

어쨌든, 컴퓨터 비저닝을 사용하기 위해서는...

영상을 입력받고,, 다시 영상을 출력하는 과정이고...!

무엇이 되었건 영상들 기반으로 컴퓨터 비저닝이 존재하기 때문입니다.

 

그렇다면 어떻게… 우리는 어떻게 받아들여야 할까요?

 

그냥... 둘 다 맞고... 비슷한 개념이다!라고! 넘어가시면 되겠습니다.

 

사실 이것들을 설명드린 이유는...  우리가 갖고 있던 서적 intro에 소개되었던 내용 이기도 하고요……

 

실제, 이미지 처리 관련 업종에서...

컴퓨터 비저닝 전문가와 영상처리 전문가의 역할이 따로 있기 때문에 설명을 드린 것입니다.

 

개인적인 생각으로,

영상 처리 전문가는 포토샵이나 일러스트 등을 사용하는 예술 프로그래머이고

컴퓨터 비전 전문가는 파이썬이나 c++을 사용하는 일반 프로그래머이기 때문에...

 

아무래도 영상 처리 하나만을 두고 본다면, 컴퓨터 비저닝의 한계가 있지 않을까 싶습니다.

반응형

컴퓨터 비전은,

 

컴퓨터를 이용하여 사진 또는 동영상으로부터 의미 있는 정보를 추출하는 방법을 연구하는 학문입니다.

 

이전 포스팅에 소개드렸던 머신러닝은 컴퓨터에게 학습을 시키는 것에 중점을 두었다면,

컴퓨터 비저닝은, 사람이 눈으로 사물을 인지하는 것처럼...

 

컴퓨터가 사진이나 영상을 보고 인지하게 만드는 작업이라고 할 수 있습니다.

 

사실, 텐서플로우나 케라스 파이토치를 통해서 이미 이미지 인식 및 분류를 하였었고

mnist 숫자 이미지로 손글씨로 판단을 하였었습니다.

 

똑같이, 이미지 인식을 텐서플로우나 케라스를 이용하면 되지 않을까!?!

굳이 컴퓨터 비저닝이 왜 필요할까요?!

 

먼저, 사과 사진 한장을 보시죠!!

우리는 딱 보면 알죠.. 눈으로 보는 즉시 바로 뇌에서 "사과"구나… 하고 알아차리죠…

 

하지만 컴퓨터는… 뇌가 없으니까.. 1차적으로 다음과 같이 사과의 모양만을 기억할것 입니다.

 

그리고 나서, 이러한 둥근 모양이 어떠한 색상을 갖는지 판단할 것입니다.

 

그럼 컴퓨터는... "사과는 둥글고 빨갛다" 라고 인식을 할 것입니다.

 

이번에는, 이렇게 사과를 인식한 컴퓨터에게 둥글고 빨간 토마토 사진을 보여주도록 하겠습니다.

 

그러면 컴퓨터는 과연 이 토마토를 보고 사과가 아니다라고 판단 할 수 있을까요?!

 

또는컴퓨터에게 이렇게배경 없이 여러 색깔들의 사과들을 보여주면

 

컴퓨터는 과연 이것들을 여러 개의 사과.. 라고 판단 할 수 있을까요?!

 

아마, 둥글고 빨간 것은 사과다 라고 인식한 컴퓨터에게 위 두가지의 사진을 판단은 불가능 합니다.

 

사실 우리가 기존에 텐서플로우 등을 이용하여 이미지를 인식하는 작업들은 대부분...

 

위에 첫번째 사과와 같이 정제된 사진만을 가지고 테스트를 하였었습니다.

그래서 인식 정확도도 높았던 것이구요..

 

위와 같은 이유로, 이미지 관련 딥러닝 모델을 아무리 잘 만들었다고 하더라도...

우리 실생활까지 응용하고 사용 하기까지는 힘들것입니다.

 

그렇기 때문에, 우리는 정확도가 높은 영상 처리를 위해..!

CV 컴퓨터 비저닝에 대해서 연구해볼 필요가 있는 것입니다.

반응형

이번 섹션에서는, 컴퓨터 비전 CV(Computer Vision) 에 대해서 알아볼 것인데요!

 

아마 여러분들이 인공지능 관련하여 학습하였던 텐서플로, 케라스, 파이토치와는 많이 다를 것입니다.

 

물론, 같은 인공지능을 다루는 것은 맞는데요!

 

활용 분야가 많이 달라서, 만약 여러분들이 영상 인식 관련하여 전혀 관심이 없으시거나...

비 영상 인식 분야의 머신러닝이나 딥러닝에 더 관심 있으신 분들은,

 

이번 섹션은 크게 중요하지 않을 것 같습니다.

 

만약 여러분들이 텐서플로 전문가가 되고 싶으시다면...

케라스파이토치를 조금이라도 더 연구하시는게 맞습니다.

 

반대로, 케라스 전문가가 되고 싶으시다면...

텐서플로파이토치에 대해서 더 많은 실습을 하시는게 좋을 것 같습니다.

 

똑같이, 파이토치 전문가가 되고 싶으시다면...

텐서플로케라스를.....

 

Open cv를 제외하고, 3가지(텐서플로, 케라스, 파이토치)는... 서로를 알면 도움이 되지만,

 

컴퓨터 비저닝은 크게 도움이 되지는 않으실 겁니다.

 

저도 컴퓨터 비저닝에 관심이 많아서 현재 코로나 사태와 관련하여,

컴퓨터 비저닝 프로젝트를 진행하고 있는데요..

 

저는 너무 재밌습니다...

 

제가 포스팅전에 이런 말씀을 드리는 이유는...

혹시라도, 컴퓨터 비전에 관심이 없는데,

 

괜히 전반적인 인공지능을 접하기 위해 컴퓨터 비저닝을 학습하여서...

 

혹시라도, 인공지능에 흥미를 잃으실 분들도 있지 않을까.. 라는 두려움에 말씀을 드리는 것입니다!

 

CV에 궁금하신 분들과 관심있으신 분들은, 기본 내용과 실습부터 차근차근히 따라하시면 됩니다!

 

기본 내용만으로도 우리 실생활에서 활용이 가능한 프로그램 제작도 할 수 있다는 것을 보여드릴 예정입니다.

반응형

이번에 알아볼 회기 기법은 소프트맥스 회귀, 혹은 분류(classification)입니다

(다른 말로는 Multinomial Classification이라고 합니다.)

 

이전에, 로지스틱 회귀 기법은, 결과가 오로지 0이냐 1이냐로만 결정을 지었지만,

이번에는 좀 더 다양한 범주가 있고 그 범주안에 하나가 속하는 경우입니다.

 

대표적으로,

알파벳 성적표(A, B, C...),

시험 성적 결과 등급(1,2,3,4...)

이미지 분석에서 강아지인지 고양이인지 사슴인지…

또는 해당 숫자가 1부터 9까지 어떤 숫자인지...

 

등과 같이 3가지 이상 중에 어떤 것인지 판단할 때 쓰는 회귀 기법입니다.

 

머신러닝을 사용하기 위한 가설과 비용을 구하는 공식에 대해서 알아보도록 하겠습니다.

 

로지스틱 회귀 가설 sigmoid 함수와 비용 함수 Binary Crossentropy를 응용하여..

 

가설은 다음과 같이 나타낼 수 있습니다.

 

cost 함수는...

 

이렇게 표현할 수 있으며, 이러한 방법은 Categorical Crossentropy라고 합니다.

반응형

로지스틱 회귀는, 이진 분류로 답정 "두 가지" 일 때만 사용하는 회귀 방법이라고 설명을 드렸습니다.

 

그럼, sigmoid 함수가 어떻게 두가지 중 하나만을 나타낼 수 있는지 식을 통해 알아보도록 하겠습니다.

 

 

 

이 함수를 그래프로 그려 본다면, 다음과 같이 나타낼 수 있습니다.

 

 

 

sigmoid 함수의 변수 e^x를 따로 그래프로 그려 본다면,

다음과 같이 나타날 수 있을 것입니다.

 

그래프를 보시면 아시겠지만, x의 값이 커지면 무한대로 가고, 작아질수록 0에 가까워지는 것을 확인할 수 있습니다.

 

이 결과 값을, 시그모이드 함수에 다시 집어넣어보면,

이렇게 x값에 따라서 1과 0의 결과만을 가질 수 있는 것입니다.

 

 

다음으로는 cost를 구하는 식인 Binary Crossentropy 는

이렇게 표현합니다.

 

선형 회귀 모델에서는 cost값이 연속적인 숫자 형태를 갖고 있지만...

로지스틱 회귀에서는 지수함수로 인해 그래프 모양이 s자로 휘었던 것을 확인할 수 있습니다.

 

그래서 우리가 선형 회귀 방식 그대로 코스트 함수를 구하면 불규칙한 모양이 나올 것이고

시작하는 점에 따라서 최소값이 매번 달라질 것입니다.

 

그래서 정확한 값을 찾기 어렵기 때문에, cost함수도 0과 1의 값을 나누어서 정의를 한 것입니다.

 

밑에 식을 보시면 경우에 따라 두 가지의 식이 나타나 지는 것을 확일 할 수 있는데요,

이렇게 경우를 나누어 비용 함수를 구하였기 때문에 “Binary Crossentropy”이라고 불리어집니다.

 

저 두 가지의 식을 합치게 된다면 로지스틱 회귀의 cost인 식을 구할 수 있습니다.

 

지금까지의 수학공식 및 설명들이 이해가 안 되셔도 상관없습니다.

 

우리는 로지스틱 회귀가 무엇인지...! → "이진 분류"

로지스틱 회귀를 사용할 때, sigmoid함수를 사용한다!

로지스틱 회귀의 cost를 구하는 방법은, Binary Crossentropy이다!

 

라고만 이해하시면 됩니다.

반응형

+ Recent posts