Example of Deep Learning Style Transfer - 딥러닝 모델로 구축 할 수있는 작업의 예로, Style Transfer가 있다. - Style Transfer를 통해 유명한 그림을 찍고, 자신의 스타일로 자신의 이미지를 재현 할 수 있다 - 네트워크는 그 그림의 기본 기술을 배우고, 그 그림을 자체적으로 적용하는 방법을 파악한다. - 이 모델은 유명한 그림의 스타일에 대한 교육(학습)을 받았으며, - 이러한 스타일을 다른 이미지 및 비디오로 전송할 수 있다. - 직접 시도해 보려면 fast-style-transfer GitHub repo에서 코드를 찾으면 된다. - git을 사용하여 저장소를 복제하거나 전체를 Zip 아카이브로 다운로드하여 압축을 풀면 된다. - https://..
딥러닝? - 현재 컴퓨터 분야에서 가장 핫한 주제 - 자율주행차, 언어번역, 예술분야 등 접목분야가 점점 늘어나고 그 가능성 또한 무한 - 과거엔 SF영화에나 나올법한 기술(개념)이었으나, 너무나 실현가능하다. - 예를들면 안면인식, Amazon사의 Alexa(인간의 언어를 인지 및 해석) 등 그 가능성이 무한하다. 신경망(Neural Networks) - 파이썬을 사용하여 간단한 신경망을 만드는 법을 배운다. - 그라디언트 디센트 (gradient descent) 및 역 전파 (backpropagation)와 같은 네트워크 교육에 사용되는 알고리즘을 다룸. - 또한 신경 네트워크(신경망)를 훈련, 평가하는 중요한 기술인 모델 평가 및 유효성 검사(model evaluation and validation..
DLL(Dynamic Linking Library) - 프로그램 컴파일안에 포함되지 않고 실행할때만 잠깐 로딩되어 실행되는 모듈 또는 함수의 집합체 - 컴파일을 하여 exe파일이 생성된 것은 하나의 exe에 모든 코드를 적재하여 하나로 묶어서 만든것을 말한다. - DLL은 이런 하나의 exe에 들어가는 User 라이브러리 모듈(함수덩어리)을 DLL의 형태로 제공하여, exe를 가볍게 만들고 프로그램 실행시에 이 DLL을 exe가 참조되도록만 하는 기능을 한다. - DLL의 장점은 유지관리가 편리하다는 것이다. - 예시로 FTP 프로그램을 만들어서 배포했다고 했을 때, 제작자는 DLL 파일들을 각각 접속 및 다운로드 DLL, 유지 및 업데이트 DLL, 기타 기능 DLL과 같이 exe와 함께 배포를 했는데,..
BMP 파일포맷은 압축을 수행하지 않으며 헤드가 있는 여러 형식의 파일 중 구조가 가장 간단하다. · 파일헤드(BITMAPFILEHEADER) · 영상헤드(BITMAPINFOHEADER) · 팔레트정보(RGBQUAD) · 영상데이터(거꾸로 들어있음) 비트맵 파일에 대한 정보 (파일헤드) - '파일자체' 의 정보를 저장하고 있는 구조체로써 다음과 같이 미리 정의가 되어 있다. - 사용자는 단지 구조체 변수를 선언해서 사용만 하면 된다. typedef struct tagBITMAPFILEHEADER{ WORD bfType; // 'BM' 이라는 값을 저장함 DWORD bfSize; // 바이트 단위로 전체파일 크기 WORD bfReserved1; // 예약된 변수 WORD bfReserved2; // 예약된..
1-1) 컴퓨터 그래픽스의 응용분야 및 기술의 변천 컴퓨터 그래픽스 : 컴퓨터를 사용하여 그림을 생성하는 기술그림을 생성한다. 따라서 영상처리(Digital Image Processing)와는 구별된다. 영상처리 : 기존에 존재하는 그림을 개선(Enhancement) 또는 인식(Machine Perception)하는 분야 1-2) 컴퓨터 그래픽스 구성요소 컴퓨터 그래픽스는 모델링과 렌더링으로 구분할 수 있다. 모델링(Modeling) : What to Draw - 무엇을 그릴 것인지 즉, 그래픽으로 표현하고자 하는 장면(Scene) 내부의 물체(Object)를 정의하는 작업 - 선분의 양 끝점 위치를 명시 - 평면 다각형의 집합으로 다각형 정점의 위치를 명시 - 여러 물체를 조합하여 새로운 물체를 정의하..
1-1) OpenGL과 그래픽스 파이프라인 프로그램에서 만들어진 명령 → OpenGL → 그래픽스 하드웨어이 과정에서 효율적이고 더 많은 명령처리를위해 '병렬화'로 작업을 진행.'파이프라인 분할'과 '병렬화'를 조합하여 사용 → 그래픽 프로세서의 성능 극대화 OpenGL의 목표는 애플리케이션과 그 하부 그래픽스 subsystem의 '추상화 레이어'를 제공하는 것 # 출처 : 네이버 GPU(Graphics Processing Unit) : 그래픽카드의 핵심 칩게임에 입체감을 부여하고자 3D 그래픽이 본격적으로 도입되었고, 화면을 보다 현실적으로 만들기 위한 각종 광원 효과 및 질감 표현 기법이 점차 발전하기 시작했다. 이러한 작업들을 CPU 혼자서 처리하기에는 버겁기 때문에 이를 보조할 3D 그래픽 연산 ..
TCP 서버, 클라이언트의 함수호출 순서 및 관계 # 전체적인 TCP서버, 클라이언트의 함수 호출 순서 및 관계 흐름도 listen([소켓], [접속가능 최대 수]) - 첫번쨰 인자로 들어가는 소켓은 연결요청 대기상태에 두고자 하는 소켓을 의미한다. - 이 인자로 전달된 소켓이 서버소켓(리스닝소켓)이 된다. - 두번째 인자로 연결요청 대기 큐의 크기정보 즉, 접속가능 최대 수를 의미한다. accept([소켓], [주소정보구조체의 주소], [주소정보구조체 크기를 담는 변수의 주소]) - 연결요청을 수락 - accept된 소켓은 클라이언트와 데이터를 주고받을 수 있는 상태가 된다 따라서 주로 서버측에서는 소켓을 2개 생성한다listen용 소켓 : 서버 문지기 역할accept될 소켓 : 클라이언트 소켓, 즉 ..
TCP(Transmission Control Protocol) : 데이터 전송과정의 컨트롤 - 연결지향형, 스트림 기반 소켓 TCP/IP 프로토콜 스택 # 총 네개의 계층으로 나뉜다. 즉, 데이터 송수신의 과정을 네개의 영억으로 계층화 하였다.데이터 통신에 사용되는 프로토콜 스택은 7계층으로 세분회 되지만, 프로그래머의 관점에서는 4계층으로 볼 수 있다. LINK 계층 - LAN, WAN, MAN과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역 - 물리적인 연결에 대한 표준을 담당 IP 계층 - 목적지로 데이터를 전송하기위해 중간에 어떤 경로를 거칠지에대한 문제를 해결하는 계층 - 이 때 사용하는 프로토콜이 IP(Internet Protocol) - IP자체는 비연결지향적이고 전송경로가 일정하지 ..
이전 OR연산과 비슷한 방식으로 AND연산으로 특정비트를 0으로 만들어보도록 하자. # 일단 기본 설정은 동일하다. 2진수로 직접 명시해줘서 제어할 경우, 가장 직접적이긴 하지만 매우 불편하다. # 쉬프트연산과 반전연산을 이용하여 특정비트를 0으로 지정해 줄 수 있다. OR연산때와 마찬가지로 쉬프트연산을 사용하여 밀고자하는 갯수가 비트의 번호와 일치한다.그렇기 때문에 2진수로 모든 숫자를 명시해주지 않고도 특정 비트를 제어할때의 수고를 덜 수 있다. 쉬프트연산과 반전연산이 처리되는 과정을 풀어보면1
sockaddr_in에 주소정보를 저장하려면 선언된 멤버는 32비트 정수형이어야 한다.따라서 32비트 형태로 IP주소를 표현하기위해 사용되는 함수가 inet_addr([변환할 IP주소]) 이다. inet_addr(const char * string) - 문자열로 표현된 IP주소를 32비트 정수형으로 변환해주는 함수 - 변환과정에서 네트워크 바이트 순서로의 변환, 정렬도 동시진행 - 유효하지 못한 IP주소에 대한 오류검출 수행 - 변환된 IP주소정보를 구조체 sockaddr_in의 in_addr변수에 추가로 대입해주어야 함. 마찬가지로 유사한 역할을 하는 함수가 하나 더 있다. inet_aton([변환할 IP주소], [in_addr 구조체 변수의 주소값]) inet_aton(const char * stri..