 Apple Lover Developer & Artist

영속적인 디자인에 현대의 공감을 채워넣는 공방입니다

반응형

전체 글 116

[Swift] 공식문서 씹어먹기: Strings and Characters

Overview String은 "hello, world" 혹은 "albatross"와 같은 문자들의 나열 (문자열) 이다. Swift에서의 문자열은 String type으로 사용된다. String의 내부값은 문자값들의 컬렉션을 포함하여 다양한 방식으로 접근할 수 있다. Swift의 String과 Character type은 코드에서 텍스트를 다룰 때 빠르고 유니코드 호환 방법을 제공한다. String을 생성(creation)하고 수정(manipulation)하는 문법은 가볍고 가독성이 좋으며 C와 유사한 String literal 문법을 제공한다. String Concatenation은 + 연산자를 사용하여 쉽게 두개의 String을 결합시켜준다. String mutability는 Swift에서의 다른 ..

[Computer Vision] Edge Detection - Part 2

이전 시간에는 프리윗 엣지, 로버트 엣지, 소벨 엣지를 학습했다. 좀 더 정교하게 엣지를 찾아주는 케니 엣지에 대하여 배워보자! gradient는 벡터의 특성을 갖고 있고 엣지와 직교하는 성질을 지늰다고 배웠다. 엣지에는 끊어지거나 가짜 엣지 그리고 얇은 엣지를 충족할 수록 좋다. 케니 엣지는 소벨 엣지와 프리윗 엣지가 갖은 단점을 보완하면서 엣지 디텍션의 본질에 집중한다. gradient의 방향값을 통해 특정 이상의 값만 선택해보았다. 모자 부분에 엣지가 검출되지 않아서 영역 구분이 안되고 있다. 몸체 부분에서 램프 엣지로 인해 두꺼워지는 문제가 있다. 케니 엣지는 나오지 않는 엣지를 잘 검출하고 굵게 표현되는 엣지에 대해서 얇게 표현할 수 있을까? 를 해결해준다. 캐니 엣지를 찾는데 있어서 첫번째 그..

[Computer Vision] Edge Detection - Part 1

Overview 디지털 영상으로부터 영상의 중요한 특징(Feature)을 어떻게 뽑을 것인가? 특징이 무엇이며 어떻게 뽑아낼 것인가를 공부해본다. 엣지는 가장 중요한 특징 중 하나이다. 영상에서 엣지는 물체의 경계를 표시해주는 것이며 물체에 대한 경계는 조명과 같이 다양한 환경에 강인하다. 따라서 내가 원하는 물체를 검색하거나 매칭할 때 용이한 선분 혹은 곡선으로 변환할 수 있다. 엣지는 어떤 명암값 또는 컬러값들에 변화가 큰 지역들을 모아둔 특징들을 의미한다. 엣지정보는 매칭 혹은 특징을 찾는데 중요하게 활용될 수 있다. 하지만 일부 끊겨있거나 몸체 부분에 불필요한 엣지가 감지될 수 있다. 따라서 사람이 정상적으로 추출되지 않는등의 오류가 발생할 수 있다. 사람의 얼굴 부분에 일부 끊겨있는 부분을 실종..

[Swift] 공식문서 씹어먹기: Basic Operators

Overview operator(연산자)는 값을 확인, 변경 또는 결합하는 데 사용되는 특수기호 또는 구문(phrase)이다. 예를 들어 덧셈 연산자 (+)는 두 수를 더해주며 논리 AND 연산자 (&&)은 두 개의 Boolean 값을 결합해준다. Swift는 C와 같은 다른 언어에서 사용되는 연산자를 지원한다. 코딩 과정에서 공통으로 발생될 수 있는 오류를 제거하여 연산자의 일부 능력을 향상시킨 형태로 제공한다. = 연산자는 == 연산자와 혼동하여 사용되지 않도록 값을 리턴하지 않는다. 산술 연산자 (+, -, *, /, %)는 type이 제공하는 값 범위를 벗어난 overflow를 감지하여 예측되지 않은 결과를 막기 위해 오류를 발생시킨다. Swift의 overflow 연산자를 활용하여 값 overf..

[보안 프로토콜] Triple-DES, AES 소개 - Part 1

표준 블록암호인 Triple DES 및 AES 256에 관하여 공부한다. DES Data Encription Standard의 약어이다. 1977년도 미국 표준 블록 암호로 재정되었다. 전 세계적으로 차분 분석, 선형분석에 의해서 안전하지 않음이 밝혀졌다. 1999년도에 DES가 56bit 키를 사용하기 때문에 22시간 15분만에 뚫린다는 사실이 밝혀졌다. Single DES 시스템은 legacy 시스템에서만 사용해야하며 이후 Triple DES를 사용했다. DES를 대체할 표준 암호 공모전을 통해 AES가 미국 표준 암호로 지정되었다. NIST (National Institude Technology) 표준 암호로 AES와 TDES가 지정되어있다. ISO/IEC 에는 위와 같은 9종의 블록 암호가 있다...

[Swift] 공식문서 씹어먹기: The Basics

Overview Swift는 iOS, macOS, watchOS, tvOS의 어플리케이션 개발을 위한 새로운 프로그래밍 언어이며 C와 Objectice-C 개발 경험이 있다면 Swift를 쉽게 활용할 수 있다. Swift는 C와 Objective-C에서의 타입과 콜렉션에 대해여 자신만의 버전을 갖고 있다. Int Integer Double, Float Floating-point values Bool Boolean String Texture data Array, Set, Dictionary Collection type C와 같이 Swift는 변수를 이름으로 식별하여 값을 저장(store)하고 참조(refer)하는 용도로 사용한다. C에서의 상수(constant) 개념처럼 Swift에서도 값이 변할 수 없는..

[Computer Vision] Morphology

모폴로지는 생물학에서 생물의 모양 변화를 표현하는 기법이다. 수학적 모폴로지는 컴퓨터 비전에서 패턴을 원하는 형태로 변환하는 기법을 의미한다. Binary 영상에 대해서 이진 모폴로지 Gray 영상에 대해서 명암 모폴로지로 나뉘며 후자의 경우 많이 사용되지 않는 개념이라고 한다. 이진 모폴리지 (영역 연산) 이진 영상에서의 모폴로지는 어느때에 효과를 보이는가? 어떻게 모폴로지 연산이 돌아가는지 이해해보자! 모폴로지 연산은 필터를 이용한 영역 연산으로 동작한다. 2진 영상에 대한 대표적인 모폴로지 적용을 보자! 모폴로지 연산은 4연결성, 8연결성 혹은 그보다 좀더 큰범위, x축과 y축에 대하여 적용할 수 있다. 주어진 픽셀이 1이라면 주변의 픽셀값을 0으로 바꿔준다. 주어진 픽셀이 1이라면 주변의 픽셀값을..

[Computer Vision] Transform

지난 시간에 이어서 세가지 연산 중 기하 연산 (변환, Tranform)에 관하여 학습해본다. 영상에서 Tranform이 어떤 방법이 있고 어떻게 이루어지는지 이해해본다. 기하 연산 일정한 기하 연산으로 결정된 화소의 명암값에 따라 새로운 값 결정되는 것을 의미한다. 기하 연산은 어떤 함수 f를 활용하여 현재 (x, y) 위치의 명암값을 A를 B로 변환될 때 어떤 기하학적 연산을 갖고 변환되는가? 에 관하여 생각해본다! 영상처리에서의 기하 연산 종류 Translation : 픽셀값을 평행 이동 시킨다. Rotation : 주어진 영상의 픽셀값을 각(세타) 만큼 회전시킨다. Aspect(Scale) : 확대, 축소시켜준다. 한쪽 방향 혹은 양쪽 방향으로 늘려준다, Affine : rotation과 tran..

[Computer Vision] Filter - Part 2

Convolution Neural Network 에서 컨볼루션 필터를 씌우기전에 영상 주변에 0값을 넣어 padding을 준다. 왜냐하면 필터를 씌울때 영상 밖을 나가는 영역에 대해서도 우리가 원하는 값을 얻기 위해서이다. 컨볼루션 연산이 진행될 때 윈도우를 몆칸씩 움직일지를 결정할 수 있으며 stride라고 부른다. 예를 들어 stride가 1인 경우는 윈도우를 한칸씩 이동시키는 것이다. 주어진 영상에 padding, stride, 필터의 크기에 따라 영상의 크기가 달라질 수 있다. 우리가 영상처리를 수행할 때에 영상의 크기가 바뀌지 않도록 한다. 주어진 영상에 대해서 컨볼루션을 수행한 후에는 pooling이라는 과정을 거친다. 주어진 영상에서 특정한 값을 뽑아 차원을 줄이게 된다. max poolin..

[보안프로토콜] 하이브리드 암호 시스템 - Part 2

하이브리드 암호 시스템에서 메시지를 암/복호화 할 때 대칭키 암호가 많이 사용된다. 대칭 키 암호 방식으로는 블록 암호와 스트림 암호가 존재한다. 현대에는 블록 암호가 많이 사용되고 있으며 긴 비트에 메시지를 암호화 처리 하기 위해서 블록암호 모드 방식이 필요하다. 블록 암호는 블록 단위를 암호화 하는 암호기술로서 특정 비트 수의 블록 집합을 한꺼번에 처리한다. 암호화 알고리즘에 따라 처리하는 블록 bit 단위가 다를 수 있다. 대칭키 암호의 또다른 기술인 스트림 암호도 존재한다. 보통 키스트림과 평문을 xor 연산하여 암호화가 진행된다. 블록 암호의 주요 모드에 대해서 살펴보자. 일반적인 상황을 생각해보자! AES-128을 갖고 암호화를 할 때 16바이트를 암호화를 하는데, 데이터 평문을 암호화 하게 ..

반응형