일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬
- CNN
- 데이터베이스
- 정보처리기사필기
- html/css
- 혼공머신
- 데이터분석
- 자바
- numpy/pandas
- 정수와유리수
- JSP/Servlet
- 정보처리기사실기
- 머신러닝
- 연습문제
- 중학1-1
- CSS
- C++
- 자바 실습
- 파이썬라이브러리
- 운영체제
- 코딩테스트
- 컴퓨터비전
- 영어공부
- 중학수학
- pandas
- 데이터입출력구현
- 텍스트마이닝
- 컴퓨터구조
- 딥러닝
- SQL
- Today
- Total
목록인공지능/컴퓨터 비전 (77)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
조금 지루한 부분이 많지만 그래도 공부를 이어가 볼 것이다. 영역 연산은 이웃 화소를 같이 고려해 새로운 값을 결정한다. 영역 연산은 주로 컨볼루션을 통해 이루어진다. 컨볼루션컨볼루션은 입력 영상 f의 각 화소에 필터를 적용해 곱의 합을 구하는 연산이다. 아래 그림의 a는 1차원 영상을 1차원 필터 u로 컨볼루션 한 예다. 곱의 합은 해당하는 화소끼리 곱한 다음 결과를 더한다. 필터를 가장자리 화소에 씌우면 필터의 일부가 밖으로 나가기 때문에 적용할 수 없다. 컨볼루션은 연산 도중에 발생하는 값을 입력 영상 f 자체에 기록하는 제자리 연산으로 구현할 수 없다. 다양한 필터컨볼루션 자체는 특정한 목적이 없는 일반 연산이다. 필터가 정해지면 목적인 결정된다. 영상은 다양한 잡음이 있다. 밝은..
화소 입장에서 바라본 영상 처리 연산이란 화소가 새로운 값을 받는 과정이다. 새로운 값을 어디에서 받느냐에 따라 점 연산, 영역 연산, 기하 연산의 세 종류로 구분할 수 있다. 다음 그림은 세 종류의 연산을 설명한다. 점연산에서는 자기 자신으로부터 값을 받는다. 영역 연산에서는 이웃 화소의 값을 보고 새로운 값을 결정한다. 기하 연산에서는 기하학적 변환에 따라 다른 곳으로부터 값을 받는다.앞에서 공부한 오츄 이진화는 점 연산에 속하고, 모노폴리는 영역 연산에 속한다. 명암 조절식 (3.4)를 이용해 영상을 밝거나 어둡게 조정할 수 있다. 맨 위 식은 원래 영상에 양수 a를 더해 밝게 만드는데 화소가 가질 수 있는 최대값 L-1을 넘지 않게 min을 취한다. 가운데 식은 원래 영상에 양수 a를 빼..
이진 영상에 대해서 학습해 보려고 한다. 어제 낮잠을 정말 많이 자서 오늘은 철야를 하며 공부를 하기로 했다. 때로는 컬러 영상이나 명암 영상을 이진 영상으로 변환할 필요가 있다. 이진 영상은 화소가 0 또는 1인 영상이다. 따라서 화소당 1 비트면 정장할 수 있는데, 현재 컴퓨트를 메모리 용량이 크기 때문에 화소당 1바이트를 사용하여 메모리 효율보다 프로그래밍 편려성을 우선하는 경우가 많다. 컴퓨터비전에서는 에지를 검출한 후 에지만 1로 표현하거나 물체를 검출한 후 물체는 1, 배경을 0으로 표시하는 등의 일에 이진 영상을 활용한다. 이진화명암 영상을 이진화하려면 임계값 T보다 큰 화소는 1, 그렇지 않은 화소는 0으로 바뀌게 된다. 너무 낮게 또는 높게 설정하면 대부분 화소가 물체 또는 배경에 ..
컴퓨터 비전 수업은 총 5일 동안 진행되었는데 수업의 질이 많이 떨어지고 수업 영상도 제대로 출력되지 않아 절반 이상은 영상이 없었다. 그냥 첫날 수업 하나만 듣고 정리하는데서 만족하고 이제 나머지는 책을 통해 더욱 깊이있는 학습을 진행하기로 했다.오히려 책에서 더 많은 것들을 배울 수 있었다. 3장 영상 처리 공부를 시작해보겠다. 시작하기 전에자율주행차가 아래 왼쪽 그림과 같이 안개 낀 도로에 들어서면 행인이나 표지판을 인식하는 기능이 떨어질 수 있다. 이때 히스토그램 평활화라는 영상 처리 연산을 적용하면 오른쪽 그림의 개선된 영상을 얻는다. 개선된 영상에서 물체를 인식하면 기능을 회복할 수 있다. 영상 처리는 특정 목적을 달성하기 위해 원래 영상을 개선된 영상으로 변환하는 작업이다. 영상 처리는 화..
이어서 동영상을 실습하는 예제를 진행해 보겠다. 오늘은 낮잠을 많이 잔 관계로 밤늦게까지 공부를 이어갈 생각이다. 설치는 잘 되었는데 코드에 빨간줄이 떠서 제대로 된 코드인지 의심이 가기도 했다. 하지만 코드를 수행하면 이러한 오류가 뜬다. 코드 수정해보기 Jupyter Notebook 환경에서는 %pip install을 사용하는 것이 더 안정적이라고 한다. !로 하면 설치가 잘 되지 않을 수 있으니 %로 바꾸어서 다시 설치를 해주었다. 설치 후 제대로 설치되었는지 확인하는 코드를 하나 추가해 주었다. 이 코드는 youtube-dl을 최신 버전으로 설치하거나 다시 설치하기 위해 사용하는 명령어이다. 여기서는 git을 통해 youtube-dl의 최신 소스를 직접 가져와 설치..
이번에는 동영상을 읽고 출력하는 학습을 진행해보겠다. 이렇게 비디오 객체는 아스키 코드로 변환된다. 이제 실습을 진행해보겠다. 이 코드는 저장된 비디오 동영상을 읽고 출력한다. puppy.mp4 파일을 프레임 단위로 읽고, 25밀리초 간격으로 화면에 표시한다. q 키를 누르거나 비디오의 끝에 도달하면 프로그램이 종료되는데, 몇 초가 지나면 비디오 창이 꺼지도록 설정했다. 이러한 강아지 동영상이 출력된다. 너무 짧은 시간 재생이 되니 불편함이 있다면 WaitKey()값을 늘려줄 수도 있다. 처음에 코드를 실행할 때는 단순히 동영상을 길게 표시되는 줄 알았는데, 자세히 보니 동영상이 느리게 재생되기 때문에 늦게 꺼지는 거였다.이번에는 q를 누르면 동영상이 꺼지는 실습을 진행해..
이어서 이미지 실습을 진행해 볼 것이다. Gray와 Color 이미지에 대하여 Gray 색상 정보는 이처럼 단채널로 되어 있다. 이러한 컬러맵은 매플롯립 시각화할 때 많이 사용한다. 이제 간단한 실습을 한번 진행해 보겠다. 컬러 맵 실습해 보기 왜 이 코드가 실행이 안되는지 한참 고민했는데 인덱스 배열이 잘못되었던 거였다. np.array()는 리스트나 튜플을 인수로 받아들여야 하는데, 현재 코드는 리스트를 중첩하지 않았기 때문에 오류가 발생했다. 이 부분을 수정해서 다시 코드를 짜보자. 맷플로립은 이미지 컬러맵으로 접근하기 때문에 노란색과 보라로만 표현된다. 앞의 컬러맵을 살펴보면 가장 왼쪽에 있는 값이 보라색이고 오른쪽이 노란색이다. 하지만 이 컬러맵을 바꿀 수도 있다. 여..
오후에 공부를 하나도 하지 않고 계속 쉬었다. 컨디션이 좋지 않은 날은 쉬는 것도 좋은 방법인 것 같았다. 그리고 이제 다시 힘을 얻어 저녁 공부를 하며 하루를 마무리하려고 한다. 이번에는 컴퓨터 비전 수업을 들으며 해당 내용을 실습하며 정리해 볼 것이다. 이미지 읽고 출력하는 실습해보기비주얼 코드를 열고 라이브러리를 임포트 해주었다. 난 파이썬 코드를 낮은 것을 설치했고 cv2도 선생님에 비해 훨씬 낮은 버전이다. 컴퓨터 비전은 이미지로부터 시작한다. 이 여성은 컴퓨터 비전에서 가장 유명한 레나라는 여성이다. 이 코드를 실행하면 레나 여성 이미지가 나타나는데 창을 끄면 실행 화면이 꺼진다. imshow()라는 함수는 새로운 인터페이스에 그림을 그리는 형식이다. 주피터 노트북은 셀을 ..
이제 마지막 연습문제이므로 좀 더 힘을 내며 마무리를 잘해볼 것이다. 새벽 시간에 수업 영상을 들으려고 했는데 이건 좀 어려울 것 같다. 연습문제 풀기 세번째 문제 7번프로그램 2-7에서 왼쪽 버튼을 클릭하면 직사각형, 오른쪽 버튼을 클릭하면 원이 그려지도록 확장하시오. 하지만 마우스 오른쪽을 클릭했을 때는 파란색 원이 만들어지지 않았다. 그 이유가 뭘까? 오른쪽 클릭으로 원을 그릴 때 (x+100, y+100)을 중심으로 설정하는 부분이 문제임을 알게 되었다. cv.circle() 함수에서 중심 좌표 (x, y)는 고정해야 하며, 반지름만 설정해야 원이 원하는 위치에 올바르게 그려진다. 현재 코드는 반지름 대신 좌표 (x+100, y+100)이 들어가면서 올바른 원이 그려지지 않는 상태인 ..
이어서 4번 문제부터 풀어보겠다. 연습문제 풀기 두 번째 문제 4번프로그램 2-3을 0.1, 0.2, 0.3, ..., 0.9, 1.0으로 축소한 영상 10개를 서로 다른 윈도우에 디스플레이하도록 확장하시오. 하지만 이런 오류가 발생했다. 이것은 해당 줄에 예상치 못한 들여 쓰기가 있어서 발생합니다. 코드의 들여쓰기가 맞지 않거나, 불필요한 공백이 들어갔을 때 발생하는 오류이다. 이제 보니 14행에서 들어 쓰기 오류가 있었다. 코드 다시 수정하기 이렇게 배율별로 모든 창에 표시되고 있다. 포개져서 나타나는 몇 개의 창은 가려보았다. 문제 5번프로그램 2-4에서 사용자가 중간에 g를 입력하면 명암 영상을 디스플레이하고 c를 입력하면 컬러 영상을 디스플레이하도록 확장하시오. ..