영상처리 2019. 3. 27. 15:07

두 장의 LDR 영상을 이용한 HDR 영상 취득 기법


두 장의 초기 입력 LDR(Low Dynamic Range) 영상을 이용하여 장면의 밝기에 대한 노출 곡선을 초기 추정한 후, 장면 밝기 변화에 따른

최적의 셔터 속도를 시간 변화에 따라 지속적으로 추정하는 기법을 사용함. 이를 통해서 HDR 이미지를 취득


카메라의 CCD(빛의 세기를 전기적 신호로 변환)나 CMOS 센서를 통해서 실세계 장면의 밝기 범위를 모두 표현할 수 없다.


이런 카메라의 제한된 동적범위를 향상시키기 위해 HDR 영상 취득 연구가 진행중이다. 


대표적인 기법

1. 여러 장의 LDR 영상을 취득 후 각 영상의 복사량(radiance) 맵을 생성한 후, 각 복사량의 맵을 결합시켜 한 장의 HDR 영상을 생성시킨다.

2. 영상의 화소값과 장면의 방사량(irradiance)의 관계를 이용하여 HDR 영상을 생성하는 방법도 존재한다.


이런 기법들은 노출이 다른 여러 장의 LDR 영상을 취득해야 한 장의 HDR 영상을 만들기 때문에 많은 시간이 소요된다.

또한 주변광의 밝기가 변하는 환경이나 움직이는 물체에 대해서는 적용이 어렵다.



위 문제의 해결책

Meylan 등은 Retinex 이론에 근거하여 한 장의 LDR 영상의 명암 대비도를 향상시키며 후광효과를 보완한 

HDR 영상을 생성하는 방법을 제안하였다. 

-> BUT 후광효과를 보완하는 대신 에지의 디테일 보존이 어렵다.


박대근 등은 장면의 밝기 값에 대한 두 장의 셔터 속도를 얻기 위해 노출 이 다른 3장의 입력 영상을 이용한다.

따라서 한 장의 HDR 영상을 취득하기 위해 총 5장의 영상을 필요로 하므 로 고속 HDR 취득이 어려운 단점을 가진다.


Barakat 등은 장면의 최대/최소 방사량을 이용하여 최적의 노출 집합을 취득


Hirakawa 등은 영상의 화소와 방사량의 관계를 확률 모델을 이용하여 최적의 노출 집합을 취득하였다.



특정한 비율을 가지는 서로 다른 두 개의 셔터 속도에 의해 취득된 영상의 화소와 장면에서 카메라 센서에 

단위면적당 입사하는 방사도의 관계를 정의한다. 이를 바탕으로 화소와 각 화소간의 노출 증가량의 관계를

정의하는 카메라 노출 곡선을 추정한다.


추정된 노출 곡선을 이용하여 장면의 평균 밝기의 변화에 따라 적응적으로 최적의 셔터 속도를 가진 두 장의 LDR 영상을

취득하는 알고리즘을 제안한다.



기술적인 내용

1. 두 장의 초기 영상만을 이용하여 영상의 각 화소값 사이의 상대적인 노출 비율을 나타내는 노출 곡선을 추정한다. 

2. 추정된 노출 곡선을 이용하여 주어진 장면의 밝기에 가장 바람직한 두 장의 셔터 속도를 구함으로써 최적에 근사하는 LDR 영상 2장을 선별한다. 

3. HDR 영상을 생성한다

(핵심은 언제 찍을지 최적의 셔터 속도를 찾음으로  최적의 LDR영상 2장을 생성해야함)

주변광의 밝기가 연 속적으로 변하는 환경에서도 이전 평균 밝기 값과 현재 평균 밝기 값 사이의 상대적인 노출 비율을 이용하여 지속적으로 

최적의 LDR 영상을 취득함으로써 HDR 비디오 취득이 가능하다.



reference: http://image.inha.ac.kr/paper/HDR.pdf


posted by 마스터박 MasterPark

댓글을 달아 주세요

빅데이터 2019. 3. 26. 14:39

Python programming


객체지향적, 동적 타이핑 언어


파이썬 특징

1. 플랫폼

플랫폼 = OS   

플랫폼: 각자 다른 목적을 가지지만, 한 장소에 모여서 각자의 역할을 수행하는것

: 윈도우, 리눅스, 안드로이드, 맥OS, IOS등 프로그램이 실행되는 운영체제가 플랫폼


2. 독립적

OS에 상관없이 한번 프로그램을 작성하면 사용가능


3. 인터프리터언어

소스코드를 바로 실행할 수 있게 지원하는 프로그램 실행 방법



파이썬 특징 2

가독성

– 간결하고 가독성이 좋다.

– 코드블럭을 들여쓰기(indentation)로 구분.


풍부한 라이브러리

– 매우 광범위한 라이브러리가 기본으로 포함되어 있음.

– 외부 라이브러리가 풍부하며 확장이 쉬움.


접착성

– 쉽게 라이브러리를 추가할 수가 있습니다. 

– 파이썬에서 C로 구현된 부분을 사용할 수도 있으며, C에서 파이썬을 사용할 수도 있습니다.


무료

– 파이썬은 파이썬 소프트웨어 재단(Python Software Foundation)에서 관리하고 있음. 

– 무료와 다름없는 Python Software Foundation License.


유니코드

– 파이썬에서의 문자열들은 모두 유니코드입니다. 

– 우리가 한글, 한자 등을 표현하려고 특별한 노력을 할 필요가 없습니다.


동적타이핑

– 런타임 시에 타입 체크를 하는 동적타이핑을 지원하며, 

– 메모리 관리 자동으로 합니다.



파이썬 특징 3

객체 지향적 언어 

실행 순서가 아닌 단위 모듈(객체) 중심으로 프로그램을 작성 하나의 객체는 어떤 목적을 달성하기 위한 행동(method)와 데이터(attribute)를 

가지고 있음 


동적 타이핑 언어 

프로그램이 실행하는 시점 프로그램이 가지고 있는 데이터에 대한 타입을 검사함



파이썬을 사용하는 이유?

동적으로 메모리가 할당됨

인간 지향적인 간단한 문법

다양한 라이브러리, 넓은 활용범위

문자열을 자유롭게 처리할수 있다.



파이썬 2.0 3.0 차이

파이썬 2.0

프린트하고 한칸 뛰움

print "welcome"


파이썬 3.0

프린트하고 가로열고 가로 닫음

print("welcome")



코딩 컨벤션

ㆍ프로그래밍은 공동작업이 많기 때문에 프로그램을 작성하는 가이드라인 언어마다 정해져 있음 

ㆍ자신만의 방식으로만 프로그램을 작성할 경우, 다른 사용자의 이해가 떨어짐 

ㆍ컴퓨터가 이해할 수 있는 코드는 어느 바보나 다 짤 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다. - 마 틴 파울러 – 

ㆍ이를 위해 기본적인 코딩 작성법을 코딩 컨벤션이라 함



데이터 구조

파이썬 에서는 리스트, 튜플, 집합(Set), 사전(dictionary) 등의 기본 데이터 구조를 제공함

사전이 예를 들면 C++에서의 STL 역할과 동일한다.


스택, 큐


튜플(tuple)

ㆍ리스트와 동일한 개념이나 값의 변경이 불가능함

ㆍ선언시 “[ ]” 가 아닌 “( )”를 사용 

ㆍ리스트의 연산, 인덱싱, 슬라이싱 등을 동일하게 사용

값이 변하지 않고 고정되어있다. (리스트는 값이 변경이 가능하다)


t = (1,2,3) 

print t +t , t * 2     # (1, 2, 3, 1, 2, 3) (1, 2, 3, 1, 2, 3) 

len(t)                  # 3 

t[1] = 5               # Error 발생 (값을 변경할 수 없다.)



집합(set)

ㆍ값을 순서없이 저장, 중복 불허 하는 자료형 

ㆍset 객체 선언을 이용하여 객체 생성


s = set([1,2,3])              # set 함수를 사용 1,2,3을 집합 객체 생성 

s.add(1)                      # 1를 추가, 중복불허로 추가 되지 않음 s.remove(1) # 1 삭제 

s.update([1,4,5,6,7])       # [1,4,5,6,7] 추가 

s.discard(3)                  # 3 삭제

s.clear()                       # 모든 원소 삭제



사전 (Dictionary)

ㆍkey와 value를 매핑하여 key로 value를검색

ㆍ다른 언어에서는 HashTable이라는용어를사용

ㆍ{Key1:Value1, Key2:Value2, Key3:Value3 ...} 형태



※ 한글입력을 위해서 다음 행을 첫 줄에 삽입

# -*-coding: utf-8 -*

posted by 마스터박 MasterPark

댓글을 달아 주세요

빅데이터 2019. 3. 20. 11:38

• Supervised learning(지도학습)

-Classification and Categorization

-Regression

ex) 남자와 여자의 구별


지도학습 구조(이미 알고있는 데이터들)

1. 들어오는 데이터의 종류들: training text documents, images, sounds

2. 들어온 데이터의 특징을 잡는다. features vectors

3. 라벨링을 한 데이터(이런 특징을 가지면 남자이다, 이런 특징을 가지면 여자다 라벨링)


1,2를 통해 들어온 특징 지어진 데이터를 3으로 머신러닝 알고리즘을통해 data set(training set)을 만든다.


4. 새로운 데이터들이 들어온다.

5. 새로운 데이터의 특징을 잡는다.

6. 머신러닝 알고리즘으로 예측되는 모델을 만든다.

7. 예측되는 라벨이 생긴다.


Supervised application

• Face recognition: Pose, lighting, occlusion (glasses, beard), make-up, hair style 

• Character recognition: Different handwriting styles.

• Speech recognition: Temporal dependency.

• Use of a dictionary or the syntax of the language. 

• Sensor fusion: Combine multiple modalities; eg, visual (lip image) and acoustic for speech 

• Medical diagnosis: From symptoms to illnesses 

• Web Advertizing: Predict if a user clicks on an ad on the Internet.



• Unsupervised learning(비지도학습)

-Clustering

-Dimensionality reduction

데이터를 쪼갠다.

ex) 점에 대한 데이터가 있을 때, 점에 RGB값을 가진다. Red에 가까운 점 Green에 가까운 점, Blue에 가까운 점으로 나눈다.

만일 R,G,B 정중앙에 위치한점에 대한 처리는?

-> 먼저 잡혀가는 루프에 포함된다. (루프: Red에 가까운 점을 모을때 돌리는 루프)


비지도학습 구조

1. 들어오는 데이터의 종류들: training text documents, images, sounds

2. 들어온 데이터의 특징을 잡는다. features vectors

(지도학습처럼 라벨이 존재하지 않는다) 


1,2를 통해 들어온 특징지어진 데이터를 머신러닝 알고리즘을통해 data set(training set)을 만든다.


4. 새로운 데이터들이 들어온다.

5. 새로운 데이터의 특징을 잡는다.

6. 머신러닝 알고리즘으로 모델을 만든다.

8. 클러스터링 알고리즘이 라벨을 정한다.


Unsupervised application

• Learning “what normally happens”  데이터의 형태가 어떻게 구분되는지

• No output  결과물이 없을 수도 있고 있을 수도 있다.

• Clustering: Grouping similar instances  목적에 따라 같은 인스턴스들을 그룹화한다. 

• Other applications: Summarization, Association Analysis  데이터들의 상관관계를 확인한다, 연관 분석

• Example applications 

• Customer segmentation in CRM 

• Image compression: Color quantization 

• Bioinformatics: Learning motifs



• Semi-supervised learning(지도학습과 비지도학습을 혼합)




• Reinforcement learning 

-Decision making (robot, chess machine)



테스트 결과 확인

머신러닝의 결과가 얼마나 잘 됐고, 결과가 좋지 않은지 확인해야 한다.

-데이터의 결과를 이미 알고있지만, 모른다고 가정하고 데이터가 잘 분류되는지 확인해야한다.

                            <교차 검증>



MANY CLASSIFIERS TO CHOOSE FROM 다양한 알고리즘들

• SVM 

• Neural networks

• Naïve Bayes 

• Bayesian network 

• Logistic regression 

• Randomized Forests 

• Boosted Decision Trees

• K-nearest neighbor

• RBMs 

• Etc



posted by 마스터박 MasterPark

댓글을 달아 주세요

빅데이터 2019. 3. 19. 14:42


GRID COMPUTING

• 그리드 컴퓨팅이 필요한 사람들

- 특정 모델링이나 시뮬레이션을 필요로 하는 사람(단위 시간당 계산량이 많을 경우)

- 하드웨어나 컴퓨팅의 높은 요구를 필요로 하는 사람

- 큰 네티워크 대역폭을 사용하는 사람


• 생각해야 할 부분

- 병렬화

- 할당 받은 작업을 어떻게 분산할지



CLOUD COMPUTING

• What is cloud computing?

데이터가 컴퓨터에 저장되지 않고 클라우드 어딘가에 저장되는 것


• Cloud architecture

-Front end: seen by the user, such as a web browser 

-Back end: the cloud itself comprising computers, servers, data storage devices, etc.


• 한국에 초기 클라우드 버전: 웹하드


• 실생활에서 클라우드 컴퓨팅이 이용되는 방법

os에 독립적으로 사용할 수 있다 -> 다양한 os를 사용할 수 있다.



MACHINE LEARNING

WHAT IS MACHINE LEARNING?

인공지능의 한 분야이며 경험적 데이터를 통해서 알고리즘을 설계하고 개발하는, 행위를 진화시키는 분야

컴퓨터가 지식을 아는 것이 필수적이다.


머신러닝의 발달

인공지능에 대한 접근을 쉽게 만들어준 GPU 발전이후로 발달이 크게 이루어짐



WHAT IS AI? ML? 



ALGORITHMS 

• Supervised learning(지도 학습)

     -Prediction 

     -Classification (discrete labels), Regression (real values) 


• Unsupervised learning(비지도 학습)

-Clustering 

-Probability distribution estimation 

-Finding association (in features) 

-Dimension reduction 


• Semi-supervised learning(지도 학습과 비지도 학습을 혼합)


• Reinforcement learning 

 -Decision making (robot, chess machine)


posted by 마스터박 MasterPark

댓글을 달아 주세요

빅데이터 2019. 3. 12. 14:50

1회차 review

빅데이터란?

Big data is when the normal application of current technology does not enable users to be obtain timely, cost-effective, and quality answers to data-driven questions.

컴퓨터의 기술이 발전함에 따라 빅데이터를 처리할 컴퓨터 인프라가 구축되어, 빅데이터의 발달이 시작되었다.


key enables for the growth of "Big Data" are:

Increase of storage of capacities

Increase of processing power

Availability of data

현재 빅데이터의 발전이 급격히 이루어질수 있던 이유는 환경이 뒷받침이 가능해졌기 때문이다. 현재는 컴퓨팅환경이 많이 발전했기 때문에

2012년부터 빅데이터의 popularity가 증가했다.

과거에도 인공지능의 붐은 있었지만, 환경이나 시스템이 받쳐주지 못해서 오래가지 못했다. (인프라의 구축이 부족했다.)



2회차

컴퓨팅 파워의 발전에 따라서 새로운 os과 환경이 구성되었다.

새로운 환경에 따라 데이터의 양과 데이터를 처리하는 방식이 많이 생기게 되었다.


BIG DATA value chain

Big data constituencies

generate data -> aggregate data -> analyze data -> consume data and derive value



빅데이터는 언제 어려움을 겪을까?

-> 운영 데이터가 복잡할경우

Modeling and reasoning with data of different kinds can get extremely complex


빅데이터의 좋은 소식

often, because of vast amount of data, modeling techniques can get simpler

(ex. smart counting can replace complex model based analytics)

as long as we deal with the scale



posted by 마스터박 MasterPark

댓글을 달아 주세요

운영시스템(os) 2019. 3. 11. 16:15

Clustered Systems:컴퓨터와 컴퓨터끼리 연결되어 상호작용을 이룬다.

Like multiprocessor systems, but multiple systems working together 

- Usually sharing storage via a storage-area network (SAN)


- 장애를 견뎌낼 수 있는 고가용성(high-availability) 서비스를 제공 

• Asymmetric clustering has one machine in hot-standby mode

• Symmetric clustering has multiple nodes running applications, monitoring each other


Some clusters are for high-performance computing (HPC) 

• Applications must be written to use parallelization


- Some have distributed lock manager (DLM) to avoid conflicting operations




멀티프로그래밍/ 멀티태스킹/ 멀티프로세싱/ 멀티스레딩

Single Core

CPU안에서 기초적인 연산을 처리하고 담당하는 부분 


Multi Core 

하나의 CPU안에 여러 개의 코어를 구현해 놓은 아키텍처


Program 

메모리에 존재하는 코드뭉치로 실행상태가 아닌 실행하기 전에 저장된코드, 게임,도구(Word, Excel 등등) 등 


Process 

메모리에 존재하는 프로그램이 컴퓨터가 실행해서 CPU가 처리할 수 있게 메인 메모리에 load


Thread 

프로세스안에 있는 작은실행 단위로 프로세스와 Data, Code 영역은 공유하고 스레드 각자의 스택과 레지스터 보유

멀티프로그래밍 
초창기 싱글코어 싱글스레드 컴퓨터에서는 프로그램이 메모리에 하나만 올라가고 해당하는 프로그램만 CPU가 처리, 이런 과정에서 프로그램이 파일I/O을 하게 되면 중간에 idle(정지)상태가 되는 데 이때 다른 프로세스의 일부를 실행하는의미 

멀티프로세싱 
하나의 컴퓨터에 여러 개의 CPU를 장착하고(CPU속에 멀티코어도 가능) 하나 이상의 프로세스들을 동시에 처리, 더 넓은 범위로 해석하면 하나 또는그 이상의 프로세스를 여러 장치에서 병렬로 처리 하는 의미 

멀티태스킹 
테스크란 OS에서 처리하는 작업 단위를 의미하는데 그 여러 작업단위가 빠르게 처리되어 동시에 처리되는 것처럼 보이는 것을 의미하며 Concurrent라는 특징을 가짐, 여러 작업단위란 처리 해야하는 여러 프로세스들의 명령어들을 분할(쪼갠 상태)혹은 전체로 간주해도 됨. 
task: OS에서의 실행단위

멀티스레딩 
프로세스 내에서 하나의 스레드가 아닌 여러 개의 스레드를 형성하여 명령어들을 처리


Operating System Structure
Multiprogramming-OS의 효율성 관점에서 중요한 Point
- 단일사용자는 CPU 및 I / O 장치를 항상 사용상태로 유지 못함 
- 멀티프로그래밍은 작업(code, data)을 구성하여 CPU가 항상 실행할 작업을 갖도록 유지 가능 
- A subset of total jobs in system is kept in memory 
- One job selected and run via job scheduling 
- When it has to wait (for I/O for example), OS switches to another job 

Timesharing(multitasking): CPU가 작업을 너무 자주 전환하여 사용자가 실행되는 동안 각 작업과 상호 작용하여 interactive  컴퓨팅을 생성하는 논리적 확장
- Response time should be < 1 second 
- Each user has at least one program executing in memory ->process 
- If several jobs ready to run at the same time -> CPU scheduling 
- If processes don’t fit in memory, swapping moves them in and out to run 
- Virtual memory allows execution of processes not completely in memory


Memory Layout for Multiprogrammed System
Executing several program(task, process) in one CPU- multiprogramming



Operating-System Operations

1. 하드웨어에 의한 interrupt driven 시스템 프로그램 

2. dual-mode and multi-mode 존재 

3. Dual-mode; 다른 시스템 구성요소와 OS 자체 protect 가능 

  - User mode and kernel mode(monitor, supervisor, system, privileged mode) 

  - User mode : State of running with application program of user 

  - Kernel mode : State that OS hold the system and resource management 

  - Transition from User to Kernel Mode



Process Management
o A process -a program in execution, a unit of work within the system. 
  - Program is a passive entity, process is an active entity.
o Process needs resources to accomplish its task § CPU, memory, I/O, files 
  - Initialization data
o Typically system has many processes, some user, some operating system running concurrently on one or more CPUs 
  - Concurrency by multiplexing the CPUs among the processes / threads


Process Management Activities
운영체제의 프로세스관리와 관련한 기능;
- Scheduling processes and threads on the CPUs 

- Creating and deleting both user and system processes 

- Suspending and resuming processes 

- Providing mechanisms for process synchronization 

- Providing mechanisms for process communication 

- Providing mechanisms for deadlock handling


Memory Management
- All data in memory before and after processing

- All instructions in memory in order to execute

- 메모리관리는 메모리에 있는 것이 언제, 무엇인지 결정 
§ CPU 사용률및사용자에대한컴퓨터응답최적화

- Memory management activities 
§ 현재 사용중인 메모리 부분과 누구에 의해 사용되었는지 추적 
§ 어떤 프로세스(또는그부분)와 데이터가 메모리로 들어오고 나가는지 결정 
§ 필요에 따라 메모리 공간 할당 및 할당 취소


Storage Management
OS provides uniform, logical view of information storage 
§ Abstracts physical properties to logical storage unit  -file 
§ Each medium is controlled by device (i.e., disk drive, tape drive)
 • Varying properties include access speed, capacity, data-transfer rate, access method (sequential or random)

File-System management 
 § Files usually organized into directories 
 § Access control on most systems to determine who can access what 
 § OS activities include 
  • Creating and deleting files and directories 
  • Primitives to manipulate files and directories 
  • Mapping files onto secondary storage 
  • Backup files onto stable (non-volatile) storage media



Mass-Storage Management
일반적으로 주 메모리에 적합하지 않은 데이터와 "장기간" 보관해야 하는 데이터 저장을 위한 사용하는 디스크

컴퓨터 운영의 전체 속도는 디스크 하위시스템과 알고리즘에 의존

OS activities 
  § Free-space management 
  § Storage allocation 
  § Disk scheduling

Some storage need not be fast 
  § Tertiary storage includes optical storage, magnetic tape 
  § Still must be managed –by OS or applications 
  § Varies between WORM (write-once, read-many-times) and RW (read-write)


Migration of Integer A from Disk to Register

멀티태스킹 환경은 스토리지 계층에 저장되는 위치와 상관없이 가장 최근의 값을 사용


다중프로세서 환경은 모든 CPU가 캐시에 최신값을 갖도록 하드웨어에서 캐시일관성(cache coherency)을제공


 Distributed environment situation even more complex 

§ Several copies of a datum can exist 

§ Various solutions covered in Chapter 17



'운영시스템(os)' 카테고리의 다른 글

운영시스템(OS) 3회차 공부  (0) 2019.03.11
운영시스템(OS) 2회차 공부  (0) 2019.03.11
운영시스템(OS) 1회차 공부  (0) 2019.03.05
posted by 마스터박 MasterPark

댓글을 달아 주세요

운영시스템(os) 2019. 3. 11. 16:15

운영시스템 2회차 공부


Interrupt Process


프로세스들 사이의 요청, 프린터기에게 인쇄를 요청하는 것(명령어의 전달)


Process: 실제로 일을 하는 것


프로세서가 일을 하고 있음 -> 요청이 들어옴 -> 인터럽트 발생 작업을 중지 -> 작업 후 원래 하던 일로 돌아옴



CPU가 인터럽트가 발생했을 때

1. 실행중인 작업을 중단하고 즉시 실행을 고정 위치로 전송. 

2. 고정된 위치는 일반적으로 인터럽트에 대한 서비스 루틴이 있는 시작 주소를 포함. 

3. 인터럽트 서비스 루틴이 실행. 완료시, 

4. CPU는 인터럽트 계산을 재개



Storage Structure

프로그램이 일을 하기 위해서는 메모리에 올라와야 한다. (Load, 메인 메모리)

General purpose computers run most of programs from rewriteable memory 

- Called Main Memory 

- RAM, Random Access Memory 

- Implemented by Direct Random Access Memory(DRAM)



Main memory : CPU가 직접 액세스할 수 있는 대용량 저장매체 

-Random access

-Typically volatile(속성은 휘발성의 성질이다. 


Secondary storage : 대규모 비휘발성 저장 용량을 제공하는 메인메모리의 확장 


Magnetic disks : 경질 금속 또는 유리 플래터는 자기 기록 물질로 덮여 있다.

-Disk surface is logically divided into tracks, which are subdivided into sectors 

-디스크 컨트롤러(disk controller)는 디바이스와 컴퓨터 간의 논리적 상호 작용을 결정 


Solid-state disks : faster than magnetic disks, volatile

ssd 속도가 빠르다. 기술이 진보되었다.



스토리지 계층 Storage systems organized in hierarchy

결정 요소 4가지

-speed

-cost

-Volatility

-size

높을수록 휘발성이 강하고, access 시간이 빠르고, 효율적이며 가격이 비싸진다.



Caching(캐싱): 컴퓨터의 여러 수준에서 수행되는 중요한 원칙 혹은 기법(in hardware, operating system, software)

-정보를 보다 빠른 스토리지 시스템에 복사
-사용중인 정보가 느린 저장소에서 빠른 저장소로 임시 복사

-메인메모리는 second storage를 위한 캐시로 간주

 데이터나 정보를 저장장치에 저장하는 중간단계
Faster storage (cache) checked first to determine if information is there
저장하려는 곳에 저장하려는 정보가 있는지 먼저 확인한다.
Cache smaller than storage being cached 


Device Driver for each device controller to manage I/O 
- 주변 장치 작동 관리
- 컨트롤러와 커널간의 통일된 인터페이스 제공
ex) 각 기계에 맞는 컨트롤러이다. 자동차 운전자와 비행기 운전자는 다르다.
 - 키보드 드라이버, 프린터 드라이버, 스캐너 드라이버 모두 따로 존재한다.

OS는 각 디바이스별로 필요한 디바이스를 자동으로 설치하게 해준다. - easy of use 



Hard Disk is what kind of device ?

컴퓨터의 입장에서는 하드디스크의 정보를 읽어오고 출력을 기록한다.(입출력장치)

저장을 하는 저장장치도 될 수 있다.



How a Modern Computer Works?

컴퓨터 시스템에서의 모든 구성 요소의 상호작용


ex) USB를 꼳으면 이벤트가 발생하며 인터럽트 발생, USB에 맞는 드라이버가 실행된다.



Computer-System Architecture

분류

1) Single processor system 

2) Multi processor system 

cpu가 2개 이상의 코어를 가지는 경우

3) Cluster system


Most systems use a single general-purpose processor 
- PDAs(personal digital assistants) through mainframes 
- Most systems have special-purpose processors as well


Multiprocessors systems growing in use and importance 

- Also known as parallel systems, tightly-coupled systems 


Three advantages

1. Increased throughput

 – By increasing NO. of processor, expect to get more work done in less time 

 – Speed-up ratio with N processors is not N, less than N

 – log p model 


2. Economy of scale

 – Cost less than equivalent multiple single processor system

 – Because of sharing peripherals, mass storage, and power supplies 


3. Increased reliability 

– Functions can be distributed properly among several processors 

 ->하나의 프로세서가 고장나더라도 시스템이 멈추지 않고 속도가 느려짐



Multiprocessor

-tightly-coupled system

(추가필요)

-loosely-coupled system

(추가필요)



Multiprocessor has two types:

1. Asymmetric Multiprocessing 

• Each processor is assigned a specific task

• Boss processor controls the system; (하나의 프로세스가 다른 프로세스를 control)

• Other processor execute the boss of instructions or predefined task 


2. Symmetric Multiprocessing(대칭적인 프로세싱, 포지션별로 모두 같이 일을 한다)

• Use the most common system 

• Each processor performs all tasks within the OS



A Dual-Core Design(과거에는 듀얼시 하나는 그래픽연산, 나머지 한개가 나머지 연산을 한다.)

- 컴퓨터 성능 향상을 위하여 CPU 추가


- CPU에 내장메모리 컨트롤러가 있는 경우 

->CPU를 추가하면 시스템에서 처리할 수 있는 메모리의 양을 늘릴 수 있음 


- 두 가지 memory access models 

• UMA(Uniform memory access) : access to any RAM from any CPU takes the same amount time 

• Non-UMA : Some parts of memory may take longer to access than other parts, creating a performance penalty. Operating systems can minimize the NUMA 


-It is multi-chip and multicore

cpu내 동일한 칩 내에 2개의 코어가 들어가 있는 것 : 듀얼코어


단일 칩에 여러 컴퓨팅 코어를 포함하는 이유는?? -> 

1. 하나의 칩안에서 커뮤니케이션 정보 교환이 훨씬 효율적이다.

(cpu 2개의 정보교환보다 cpu 1개 내의 2개 코어의 정보교환이 더 효율적이다.) effeciency communication

2. 비용이 더 저렴하다. (전력소비가 더 적다. 파워를 더 낮은 걸 사용할수 있다)




Clustered Systems

Like multiprocessor systems, but multiple systems working together 

- Usually sharing storage via a storage-area network (SAN)


- 장애를 견뎌낼 수 있는 고가용성(high-availability) 서비스를 제공 

Asymmetric clustering has one machine in hot-standby mode

Symmetric clustering has multiple nodes running applications, monitoring each other


Some clusters are for high-performance computing (HPC) 

• Applications must be written to use parallelization


- Some have distributed lock manager (DLM) to avoid conflicting operations


'운영시스템(os)' 카테고리의 다른 글

운영시스템(OS) 3회차 공부  (0) 2019.03.11
운영시스템(OS) 2회차 공부  (0) 2019.03.11
운영시스템(OS) 1회차 공부  (0) 2019.03.05
posted by 마스터박 MasterPark

댓글을 달아 주세요

영상처리 2019. 3. 11. 12:18


Computational Approach for Obstruction-Free Photography


사진을 촬영할때 존재하는 여러 시각적 장애요소들(유리창에 반사되는 물체, 동물원 울타리)은 단지 카메라를 촬영하는 위치나 평면을 바꾼다고 해결할 수 없다.


이를 해결하기 위해서 사용되는 알고리즘은 다음과 같다.


Visual obstructions(반사되거나, 방해되는 평면들)은 일반적으로 카메라와 main scene 사이에 위치하며, 결과적으로 사용자가 촬영하고자하는 main scene과 depth가 다르다는 사실을 이용한다.


찍고자하는 scene을, 카메라를 약감 움직이면서 짧은 영상 sequence를 찍게 한다. 움직이면서 촬영된 이미지들은, visual parallax, 시각적 시차로 인한 layer's motions 층의 움직임의 차이를 기초로하여 시공간의 정보를 통합한 후 2가지의 이미지를 생성한다.


1. main scene의 배경 이미지(찍고자한 이미지)

2. main scene의 reflected or occluding content(찍고자한 이미지 앞에 있는 방해 요소들)


Motion Parallax를 이용한 layer decomposition은 새로운 방법은 아니다. 현재 설명하고자하는 논문은 새로운 알고리즘을 소개하고자 한다.


1) A pixel-wise flow field motion representation for each layer, which, in contrast to many previous image decomposition algorithms that use parametric motion models (affine or homography), is able to handle depth variation as well as small motions within each layer


2) An “edgeflow” method that produces a robust initial estimation of the motion of each layer in the presence of visual obstructions, as edges are less affected by the blending of the two layers



Occlusion removal

이미지나 영상에서, 사용자가 지우고자하는 부분을 표시하고, inpainting 알고리즘으로 그 표시된 부분을 제거하고, 구멍난 부분들은, 주변 다른 부분들의 정보를 통해서 propagating(채워넣어야) 한다.


이를 이용한 시각적 장애요소인 울타리는, 카메라를 움직이면서 촬영하며, 얻을 수 있는 visual parallax를 기반으로, 울타리의 패턴을 탐지하고,  움직이면서 촬영하며 얻어낸 다른 프레임 이미지를 통해서 가려진 내용을 가져오면서, 이미지에서 울타리를 제거하면서, 이미지나 비디오를 복원시킬 수 있다.




reference: SIGGRAPH2015 MIT 

https://people.csail.mit.edu/mrub/papers/ObstructionFreePhotography_SIGGRAPH2015.pdf

posted by 마스터박 MasterPark

댓글을 달아 주세요