전공 과목 이수2👨‍💻 75

얼굴 학습 훈련

출처 : https://kau-deeperent.tistory.com/53 LBF(Local Binary Pattern)을 이용한 얼굴인식 작성자 : 박승재 기본적인 흐름은 노트북의 카메라 웹캠을 통한 Training_data를 모으고, LBPFacerecognizer를 이용한 model을 training_data로 학습한 후에 노트북 웹캠으로 사람의 얼굴이 인지 되었을 때 회 kau-deeperent.tistory.com import cv2 import numpy as np import os from os import listdir from os.path import isfile, join def detect_face(img): #convert the test image to gray image as ..

객체 트랙킹

""" Tracking any object using dlib discriminative correlation filter tracker 동작 프로그램이 시작되면 마우스로 추적하고자 하는 물건을 드래그하여 4각영역을 선택한다. 키 1을 누르면 트래킹을 시작한다. 키 2를 누르면 중지한다. q를 누르면 종료한다. 참고: 마우스로 영역선택할 때 추적 대상을 얼굴로 추적하면 얼굴을 추적한다. 미션 현재의 프로그램을 동영상 버전으로 수정하시오. 스페이스 바를 누르면 재생이 잠시 중지된다. 이때 마우스 드래그로 목표 영역을 선택한다. """ # Import required packages: import cv2 import dlib def draw_text_info(): """Draw text information..

동시성 제어

- 한 트랜잭션이 락을 가지고 있는 동안에 다른 트랜잭션들은 락을 가질 수 없고 그 락이 해제될 때까지 기다려야 한다. 락킹 정책에 따라 한 순간에 단지 하나의 트랜잭션만 실행한다. 따라서 순차적 스케줄만 생성된다. - 직렬적이며 복구가능하며 비연쇄적임을 명백히 알 수 있다. - 트랜잭션에 의해 획득된 모든 락들은 그 트랜잭션이 커밋되거나 중단된 후에(abort) 전부 해제된다 충돌 직렬성 -> 락 기반 프로토콜로 구현 뷰 직렬성 -> 타임스탬프 기반 프로토콜로 구현 SQL -> 질의처리기 -> read/write 트랜잭션 -> 트랜잭션 매니저(여기서 lock request 명령어를 받음) -> 동시성 제어 컴포넌트 -> 스케줄 -> 직렬성 -> Lock Manage 충돌 발생 º 행렬값이 true일때는..

스케줄

- 동시 수행한 스케줄의 결과가 트랜잭션을 하나씩 순차적으로 수행하는 스케줄의 실행 결과와 동일하도록 함으로써 데이터베이스의 일관성을 보장할 수 있다. ** 동시 수행 스케줄이 순차 스케줄과 동 등해야 한다 -> 직렬 스케줄 - 순차 스케줄은 반드시 직렬성을 갖는다. # Serializability 직렬성 - 충돌 직렬성 - 뷰 직렬성 - 동시에 수행해도 일관성을 유지할 수 있다는 것을 보장 # 충돌 발생하는 상황 - 만약 트랜잭션이 서로 다른 데이터 항목을 액세스 하는 경우에 다른 명령어들에 순서 주지 않고 두 명령어의 순서를 바꿀 수 있다. - 하지만 같은 데이터 항목을 액세스한다면 두 명령어의 순서는 중요한 문제가 될 수 있다. - 트랜잭션 순서에 따라 내용이 변하므로 충돌이 발생한다. - 충돌 발..

Transaction 트랜잭션

# Transaction 거래 - 하나의 논리적 작업 단위를 이루는 연산들의 집합 - 논리적인 작업의 단위 - 데이터베이스 무결성을 지키기 위해 존재 - DB시스템은 비일관성 상태가 되지 않도록 하면서 트랜잭션들의 동시 실행을 지원해야 한다. - 트랜잭션은 항상 일관성 있는 값을 만들어야 한다. ## 꼭 지켜야 하는 규칙 ACID !! # 송금의 경우 ** All or Nothing (성공적인 경우) ** - 1~6까지 잘 이루어짐 - 두 번의 업데이트 작업 (write)도 잘 이루어짐 ** Atomicity 원자성 ** - 4,5,6 이 실행되지 않으면 돈은 증발됨 -> 비일관적인 데이터베이스 상태 (실패 원인 : sw or hw) - 1,2,3 단계에서 실패하면 데이터베이스에 기록하면 안 됨 -> 아..

다양한 영상처리 기법을 트랙바로 조절해보기

lut함수 없이 -> 따라서 he트랙바 조절시 변화 없음 import cv2 as cv import numpy as np import time def printImgAtt (string): global garo global saero print("\n" + string) data = eval(string) # eval(문자열) - 실행가능한 문자열을 바로 실행시켜주는 함수 print(' type :', type(data)) # imge type = print(' shape = ', data.shape) # 영상 어레이의 크기 알아내기. image shape = (세로, 가로, 3). (행, 열, 채널) saero = data.shape[0] garo ..

인덱스 정리

클러스터링인덱스 비클러스터링인덱스 희소 -> 클러스터링만 밀집 -> 클러스터링, 비클러스터링 희소 불가능 (pdf 11.2순서인덱스 10.9페이지~) # 인덱스 갱신 인덱스가 추가되면 검색키도 추가됨. 인덱스 삭제되면 검색키도 삭제됨 # 삽입 : 밀집 주인덱스(=클러스터링인덱스) 학과로 검색키를 만들었으며 클러스터링 인덱스이고, 학과 모두 반영 되어있으므로 밀집인덱스이다. 위 그림의 주 인덱스 상황은 중복을 허용한 인덱스로 밀집인덱스를 만든 상황 1) 검색키 값이 인덱스에 없을 경우 순서에 맞게 삽입 2) 동일한 검색키값을 가지는 데이터 레코드들 중 첫번째 레코드에 대한 포인터만 가지고 있다면 별도의 인덱스 수정이 불필요 # B+ 트리 동작 구조

밝기를 트랙바로 조절해보기

import numpy as np import cv2 as cv import matplotlib.pyplot as plt # 이미지 불러오고 정규화 Path = 'D:/dip/' Name = 'dark1.png' FullName = Path+Name img = cv.imread(FullName,1) img=img/255.0 cv.namedWindow('Brighter image') # scale 트랙바 움직일때 호출되는 콜백 함수 def Change_scale(pos) : global img2 bar = cv.getTrackbarPos("scale", "Brighter image") #-> scale값을 bar에 저장할 수 있다 scale = 1+pos*0.1 # 트랙바 값에 따른 밝기의 정도 img2 ..

화질 개선 기법(감마, 시그모이드, 히스토그램, 샤프닝, 메디언)

1~5절 - 대조비 강화 혹은 약화처리 6~7절 - 선명성 향상 8~9절 - 잡음 제거 # 감마변환 output = input의 감마승 (이때 input은 0~1사이로 정규화) 감마r 1 : 어둡게 처리, 어두운 부분은 어둡게 # LUT(look up table) 함수 연산의 단순화 방법 출력값 테이블 생성하고 처리하는 방법 # 시그모이드 변환 명암의 대조비 강화 m:중간값, w: 강화강도, E: 기울기정도 (대비와 비례) 분모가 0이 될 가능성이 있기에 1이라는 엡실론을 설정. m은 최소 0.5로 설정 w는 0위로 설정 # 히스토그램과 히스토그램 스트레칭 **중요** # 히스토그램이란 화소 값들 개별 누적 개수 히스토그램 방법 1) ** 중요 많이 쓰임 ** np.historgram()함수 이용. nd..