일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 딥러닝
- html/css
- SQL
- 운영체제
- 코딩테스트
- 컴퓨터비전
- 자바 실습
- CNN
- pandas
- 데이터분석
- 머신러닝
- 파이썬
- 영어공부
- 컴퓨터구조
- 연습문제
- 정보처리기사필기
- JSP/Servlet
- 자바
- 텍스트마이닝
- 중학수학
- C++
- 데이터입출력구현
- 파이썬라이브러리
- 데이터베이스
- CSS
- numpy/pandas
- 정수와유리수
- 정보처리기사실기
- 중학1-1
- 혼공머신
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
인간의 시각을 흉내 내는 컴퓨터 비전 3 - 컴퓨터 비전이 어려운 이유와 역사 그리고 컴퓨터 비전 체험 서비스 소개 본문
인간의 시각을 흉내 내는 컴퓨터 비전 3 - 컴퓨터 비전이 어려운 이유와 역사 그리고 컴퓨터 비전 체험 서비스 소개
huenuri 2024. 11. 4. 07:01이제 본격적으로 컴퓨터 비전에 대해서 알아볼 것이다.
컴퓨터 비전은 왜 어려운가?
앞에서 보았듯이 특정한 과업에 국한하면 인간 시각에 가깝거나 우월한 능력을 보여실제로 활용할 수 있는 컴퓨터 비전 시스템이 많다. 하지만 일반적인 환경에서는 인간 시각에 크게 뒤지며, 인간에 가까운 성능을 달성할 수 있을지조차 불분명하다. 컴퓨터 비전이 어려운 이유는 명확하다.
1. 세상의 변화무쌍함
세상은 참으로 변화무쌍하다. 물체를 보는 위치와 방향에 따라 영상이 달라지며, 카메라나 물체가 이동하면 영상이 시시각각 변한다. 게다가 사람의 관심은 물질의 기본 단위인 원자부터 우주까지 스펙트럼이 아주 넓고 모든 수준에서 여상이 발생한다. 따라서 컴퓨터 비전이 취급해야 하는 영상의 종류도 방대하다.
이런 변화를 표현하는 규칙이나 알고리즘을 만드는 일은 매우 어렵다.
2. 컴퓨터는 넘버 크린처
넘버 크린처는 엄청난 양의 단순 계산을 반복하는 사람 또는 기계를 일컫는다. 컴퓨터는 방대한 양의 숫자를 메모리에 표현하고 사칙과 비교 연산을 아주 정확하고 빠르게 수행하는 기계다. 따라서 컴퓨터 비전이 처리해야 하는 영상은 아래 그림이 예시하는 숫자 배열일 뿐이다.
이 배열은 모나리자의 눈 부분을 오린 패치 영상이다. 이 배열을 보고 어떻게 사람의 눈이라는 사실을 알아낼 수 있을까? 사람의 시각이 명암 변화가 심한 곳을 물체 경계로 인식하듯이 컴퓨터 비전은 인접한 화소값의 차이를 계산하고 차이가 큰 곳을 물체 경계 특징으로 추출한다.
이런 저급 특징을 결합해 눈, 코, 입이라는 중급 특징을 알아내고, 중급 특징을 결합해 얼굴이라는 고급 특징을 알아내는 일은 단순하지 않다.
3. 인공지능의 미숙함
이전 포스트에서 소개했던 표이지만 여기서 한번 더 언급해 본다. 이 그림에서 설명하는 바와 같이 지능은 지식 표현, 학습, 추론, 계획이 유기적으로 작동하는 틀에서 발현된다. 이 틀을 움직이는 힘은 자각과 의도에서 나온다. 인간의 시각 체계는 이런 종합적이고 능동적인 지능 틀에서 작동한다.
70여 년의 역사를 거치면서 인공지능은 지식 표현, 학습, 추론, 계획의 지능 요소를 모두 중요하게 취급하고 연구를 진행한다. 하지만 학습이라는 지능 요소는 상대적으로 크게 발전한 반면 지식 표현, 추론, 계획의 연구 성과는 지지부진하다. 게다가 이들을 유기적으로 묶는 탄탄한 이론은 없다.
이 책에서는 강인공지능을 매우 긍정적으로 보며 이런 일은 먼 미래의 일이거나 영원한 불가능한 일이라고 주장했는데 난 여기에 결코 동의하지 않는다. 그리고 인공지능의 미숙함이라는 이 대목도 동의할 수 없다. 1년 전에 집필한 매우 최신 서적임에도 어떻게 이런 견해를 할 수 있는지 조금 의아했다.
인공지능은 지금 무한히 발전을 거듭하고 있다. 그렇기에 이번 장의 내용은 절대로 동의할 수 없는 내용이고 말도 안되는 주장이라고 생각한다. 저자라고 해서 무조건 옳은 이야기만을 하는 것이 아니라는 것도 알게 되었다. 정말 엉터리같은 이야기를 하기도 한다.
컴퓨터 비전의 역사
디지털 영상은 신문 산업에서 탄생했다. 1990년대 초 유럽과 북미 대륙 간에는 케이블을 통해 텍스트를 전송하는 기 술이 있어 제때 기사를 전달할 수 있었다. 하지만 사진은 배편을 이용하는 수밖에 없어 받을 시점에는 가치가 사라지기 일쑤였다. 1920년대에 두 대륙 간에 해저 케이블을 통해 사진을 전송하는 Bartlane 시스템이 구축되었는데 아래 그림은 그때 전송한 세계 최초의 디지털 영상이다.
당시 관심은 영상을 먼 곳으로 빨리 전송하는 것 뿐이었다. 1946년에 세계 최초의 전자식 컴퓨터인 에니악이 탄생했다. 초당 3000개 가량의 덧셈을 수행했고 거대한 뇌라는 찬사를 받았다. 당시 컴퓨터를 개발한 목적은 빠른 계산에 집중되어 있었고, 컴퓨터로 영상을 처리하려는 생각은 10여 년 동안 거의 하지 않았다.
미국 국립표준기술연구소에 근무하던 러셀 커쉬는 1957년에 스캐너를 개발하고 자기 아들 사진을 스캔해 연구소가 개발한 SEAC 컴퓨터에 저장했다. 아래 그림은 흑백 영상의 5 x 5cm 사진을 176 x 176 크기로 스캔한 커쉬의 아들 영상으로, 세계 최초로 컴퓨터에 저장된 디지털 영상으로 평가된다.
컴퓨터 비전의 태동이라 볼수 있다. 65여 년이 흐른 지금 컴퓨터 비전은 스스로 자동차를 운전하기에 이르렀다.
다음 표는 컴퓨터 비전의 역사를 개략적으로 요약한 것이다. 디지털 영상의 탄생과 더불어 비전 알고리즘, 신경망 모델, 자율주행, 데이터셋과 챌린지, 학술대회와 저널, OpenCV, 딥러닝 라이브러리 등의 발전 과정을 정리했다.
컴퓨터 비전 체험 서비스
웹 또는 앱에서 컴퓨터 비전을 체험할 수 있는 기회가 많다. 연구자들은 최고 수준의 성능을 달성하면 논문을 작성해 학술대회나 저널에 발표하는데, 많은 경우 소스 코드를 깃허브 등의 웹 사이트에 공개한다. 여기에 현재 컴퓨터 비전의 기술 수준을 확인하는데 도움이 될만한 몇 가지 서비스를 소개한다.
1. 구글 렌즈(google lens)
구글 렌즈 프로그램은 구글 앱에 통합되었다. 구글 앱을 스마트폰에 설치한 다음, 관심 있는 물체를 카메라로 찍으면 인식을 수행하고 관련 내용을 검색해 보여준다. 텍스트를 찍으면 문자 인식을 해서 텍스트로 변환해 읽어주고, 책 표지를 찍으면 책 정보를 검색해 보여준다.
집에 있는 식물 하나를 구글 렌즈로 찍어서 확인해보았다.
그랬더니 어떤 식물인지 정확하게 알려주었고 가방도 찍어보니 중고로 얼마에 팔 수 있는지, 원가가 얼마인지도 알려주었다. 정말 신기하고 놀라운 앱이 아닐 수 없었다. 전에 이런 게 있다고 들은 적이 있었지만 어떤 건지 몰라서 사용하지 못했다. 이제 유용하게 사용해 볼 수 있을 것 같다.
2. Which face is real?
생성 모델인 GAN을 이용해 진짜처럼 보이는 가짜 얼굴 영상을 생성하고 진짜와 나란히 배치하여 진짜를 골라내게 하는 흥미로운 서비스로, 워싱턴 대학교에서 제공하고 있다. 그림을 보고 어느 쪽이 진짜인지 추정해 보자.
진짜 구분이 안 되는 얼굴이다. 난 오른쪽일 것 같다. 오른쪽 남자는 점도 많고 왼쪽 여성은 너무 깨끗해서 인공지능 느낌이 난다.
몇 번 해보았는데 몇 개 틀릴 정도로 진짜와 가짜를 구분하기 어려웠다.
3. 얼굴 랜드마크 검출
웹 캠을 연결한 다음 얼굴을 보여주면 랜드마크를 검출하고 3차원 깊이 정보를 추청 해주는 사이트이다. mediapipe라는 파이썬 라이브러리를 설치하면 프로그래밍도 쉽게 할 수 있다. 앞으로 배울 코나 눈과 같은 곳에 장식을 다는 비전 에이전트를 제작할 때 얼굴 랜드마크 검출을 사용한다.
4. 영상 설명하기(image captioning)
Hugging Face 연구팀은 입력 영상을 몇 개 단어로 설명하는 기능을 데모하는 사이트를 운영한다.
앞의 두 가지 내용의 사이트 주소를 들어가니 지금은 사용할 수 없는 것 같았다.
5. 티처블 머신(teachable machine)
인식 프로그램을 만들 때는 데이터 수집, 모델 학습, 예측의 3단계를 거치는데, 티처블 머신 서비스를 통해 이 과정을 체험할 수 있다. 웹 캠을 연결한 다음, 웹 사이트에 접속하고 영상을 인식하는 메뉴를 따라 들어간다. 몇 종류의 물체를 웹 캠에 보여주고 영상 데이터를 수집한다.
데이터 수집을 마치면 학습 메뉴를 클릭해 모델을 학습한다. 학습을 마친 후 카메라에 물체를 보여주면 부류 정보를 확률과 함께 출력하는 예측 단계가 실행된다. 영상 인식뿐 아니라 소리 인식과 자세 인식 기능도 제공한다.
전에 어떤 선생님이 사용하는 법을 알려주셨는데 그때는 별로 중요하지 않은 것 같아서 넘어갔다. 아마 머신러닝 수업할 때 하루 잠깐 오신 선생님이었던 것 같다.
나중에 시간이 나면 이 서비스도 이용해보려고 한다.
학습을 마치고
컴퓨터 비전이 어려운 이유부터 역사 그리고 컴퓨터 비전이 활용된 서비스 등도 학습해 보았다. 특히 서비스 부분에서는 어떤 사이트인지 모두 직접 들어가서 확인하며 체험도 해보았는데 정말 유용하고 재미있는 것들이 많았다. 다만 티처블 머신의 경우 지난번에 들어가서 조금 살펴보기도 했고, 다음에 사용할 기회가 많을 것 같아 이번에는 건너뛰었다.
이제 남은 시간은 아침 루틴을 수행하고 운동을 하러 가면 충분할 것 같다. 오늘도 새벽에 3시 반부터 3시간 반 가까이 정말 열심히 공부했다.
'인공지능 > 컴퓨터 비전' 카테고리의 다른 글
인간의 시각을 흉내 내는 컴퓨터 비전 6 - 연습문제 풀기 2 : 문제 4~6번 (0) | 2024.11.04 |
---|---|
인간의 시각을 흉내 내는 컴퓨터 비전 5 - 연습문제 풀기 1 : 문제 1~3번 (1) | 2024.11.04 |
인간의 시각을 흉내 내는 컴퓨터 비전 4 - 컴퓨터 비전 만들기 및 읽을거리와 볼거리 (4) | 2024.11.04 |
인간의 시각을 흉내 내는 컴퓨터 비전 2 - 컴퓨터 비전이 활용되는 다양한 분야 (1) | 2024.11.04 |
인간의 시각을 흉내 내는 컴퓨터 비전 1 - 컴퓨터 비전과 인간의 시각과의 관계 (0) | 2024.11.04 |