Loading [MathJax]/jax/output/CommonHTML/jax.js
프로그래밍 공부

전체 글 700

  • 우분투 패키지의 개요 리눅스에서 주로 사용하는 패키지 deb: 데비안, 우분투 계열에서 사용하는 패키지 RPM(Redhat Package Manager): 레드햇에서 만든 패키지 관리 도구 우분투 패키지의 특징 바이너리 파일로 되어 있어 컴파일이 필요 없다. 패키지의 파일들이 관련 디렉터리로 바로 설치된다. 한번에 설치된 패키지의 파일을 일괄적으로 삭제할 수 있다. 기존에 설치된 패키지를 삭제하지 않고 바로 업그레이드 할 수 있다. 패키지의 설치 상태를 검증할 수 있다. 패키지에 대한 정보를 제공한다. 해당 패키지와 의존성을 가지고 있는 패키지가 무엇인지 알려준다. 의존성이 있는 패키지를 미리 설치할 수도 있고, apt-get 명령을 사용하면 의존성이 있는 패키지가 자동으로 설치된다. 우분투 패키지의 카..

  • K-means 클러스터링 1. 군집에 센터벡터를 랜덤하게 만듬 군집에 데이터가 얼마나 가까운지 테스트 minkowski 거리 두 점 간의 거리척도 p=2 면 유클리디언 거리 2 p=1이면 맨하탄 거리 1 유클리디언 거리 멘하탄 거리 내적의 결과는 스칼라로 나오게 된다. 코사인 유사도 문서 검색 응용에서 주로 사용한다. 문서 내의 각 단어에 가중치를 넣어서 각 단어간 코사인 유사도를 계산하여 데이터간의 거리를 확인하고 측정한다. k-meas 군집화 결과 특징 추출 기법

  • 손실함수 J(0) [ Ross fungtion ] J(θ)=12Σi(hθ(x(i))y(i))2=12Σi(θx(i)y(i))2 추정치와 측정치의 오차를 표현한 식이다. 추정치와 측정치를 뺸 값을 데이터에 대한 값을 전부 더하고 2로 나눈다. 결국 손실함수 = 오차 의 합 이다. 이 손실함수 출력이 가장 작아야 한다. J세타의 값이 가장 작아지도록 하는 세타 값을 찾아야 한다. 손실함수는 작을수록 좋다. 파라미터 계산법 Full Serching Strategy ( 풀 서치 방법 ) 코드 그대로 모든 값을 다 넣어서 비교해보는것. 그러나, 계산양이 너무 많기 떄문에,..

  • 리눅스 파일 시스템의 종류 물리적 하드디스크 A : 트랙(Track) B : 지리적 섹터 (Geometrical sector) C : 트렉 섹터 (Track Sector) D : 클러스터(Cluster): 트랙 섹터의 집합 파일 시스템 파일과 디렉터리의 집합을 구조적으로 관리하는 체계 어떤 구조를 구성하여 파일이나 디렉터리를 관리하느냐에 따라 다양한 형식의 파일 시스템이 존재 리눅스 고유의 디스크 기반 파일 시스템 ext(ext1) Extended File System의 약자로 1992년 4월 리눅스 0.96.c에 포함되어 발표됨 파일 시스템의 최대 크기는 2G, 파일 이름의 길이는 255 바이트 까지 지원 inode 수정과 데이터의 수정 시간 지원이 안 되고, 파일 시스템이 복잡해지고 파편화되는 문제 ..

  • 영상 분할 (Image Segmentation) 영상을 의미있는 영역으로 나누는 과정. 입력 영상에서의 도로, 차, 건물 등 의 영역을 나누는 것 입력 데이터는 라벨값으로 표현된다. 라벨 값은 영상에서 분류하고자 하는 영역의 목록, 즉 부류(class)를 의미 이 픽셀이 사람인가, 나무인가, 건물인가 로 나눈다. 인스턴스 분할 ( Instance Segmentation ) 동일한 목록, 즉 동일한 부류( 도로, 사람, 양, 등) 에 대해서 독립된 개체를 다르게 인식하고 분할하는 방법 K-means Clustering ( K-평균 클러스터링 ) 데이터를 미리 정의된 척도에 따라, 예를 들어 거리, 색상 등과 같은 유사도를 측정해서 유사한 그룹으로 매핑하는 작업 비지도 학습으로 라벨값으로 분류하는 과정 k-..

  • 이진화 = 그레이 영상을 흑백 영상으로 변환하는 과정이다. 나무영역은 블랙, 하늘과 달은 화이트로 표현하였다. 좀 풀어서 쓴다면 이진화 = 그레이 영상을 두 그룹인 블랙, 화이트 의 두가지 생각. 이진화로 분할하여 표현해주는 과정 이진화 의 방법 : 임계값 방법 (Thresholding) 히스토그램을 분석하여 두 봉우리 사이의 계곡을 임계값 T로 결정한다. J(j,i) 의 값이T보다 크거나 같으면 1(255)로 T보다 작으면 0(0)으로 맵핑을 다시 해 주는것. 오츄 알고리즘 [Otsu 79] 이진화 했을 떄 흑 그룹과 백 그룹에 소속된 픽셀의 분포가 균일할수록 좋다는 점에 착안 여기서 균일성이란 분산을 의미한다. 따라서 두 그룹의 분산이 작을 수록 좋다. 목적함수( Objective Function) ..

작성일
2022. 11. 23. 02:09
작성자
WDmil
728x90

우분투 패키지의 개요

리눅스에서 주로 사용하는 패키지

  • deb: 데비안, 우분투 계열에서 사용하는 패키지
  • RPM(Redhat Package Manager): 레드햇에서 만든 패키지 관리 도구

 

우분투 패키지의 특징

  • 바이너리 파일로 되어 있어 컴파일이 필요 없다.
  • 패키지의 파일들이 관련 디렉터리로 바로 설치된다.
  • 한번에 설치된 패키지의 파일을 일괄적으로 삭제할 수 있다.
  • 기존에 설치된 패키지를 삭제하지 않고 바로 업그레이드 할 수 있다.
  • 패키지의 설치 상태를 검증할 수 있다.
  • 패키지에 대한 정보를 제공한다.
  • 해당 패키지와 의존성을 가지고 있는 패키지가 무엇인지 알려준다.
    • 의존성이 있는 패키지를 미리 설치할 수도 있고, apt-get 명령을 사용하면 의존성이 있는 패키지가 자동으로 설치된다.

우분투 패키지의 카테고리

공식적으로 데비안 배포판에 포함된 모든 패키지는 데비안 자유 소프트웨어 지침에 따라 자유롭게 사용하고 배포할 수 있음

우분투도 네 개의 카테고리로 나누어 소프트웨어를 제공한다.

  • main : 우분투에 의해 공식적으로 지원되며 자유롭게 배포 가능
  • restricted : 우분투에 의해 지원되나 완전한 자유 라이선스 소프트웨어는 아니다.
  • universe : 리눅스에서 사용할 수 있는 거의 대부분의 소프트웨어로 자유 소프트웨어일 수 도 있고 아닐 수도 있으며, 기술적 지원을 보장하지 않음.
  • multiverse : 자유 소프트웨어가 아닌 소프트웨어가 포함되어 있으며, 개인이 직접 라이선스를 확인해야 한다.

우분투 패키지 저장소

  • 우분투는 패키지와 패키지에 대한 정보를 저장하고 있는 서버인 패키지 저장소 라는 개념을 사용한다.
  • 패키지 저장소에서는 패키지의 기능 추가나 보안 패치 등 지속적인 업그레이드를 집중적으로 관리한다.
  • 사용자는 저장소에 접속하여 최신 패키지를 다운받아 설치 가능하다.
  • 패키지 저장소에 대한 정보는 /etcc/apt/sources.list 파일에 저장된다.
    • 패키지유형 ; deb 는 바이러니 패키지의 저장소를, deb-src는 패키지의 소스 저장소를 의미한다. 보통 한 저장소에 바이너리와 소스를 함께 저장한다.
    • 저장소 주소 : http프로토콜을 사용하는 URL주소를 사용한다.
    • 우분투 버전 정보 : 저장소에서 관리하는 패키지에 해당하는 우분투의 버전을 표시한다. 버전은 번호가 아니라 버전의 이름을 사용한다.
    • 카테고리 : 저장소가 가지고 있는 소프트웨어 카테고리 를 표시한다.

우분투 패키지 설치

APT 명령으로 패키지 설치

apt-cache 명령 : APT 캐시 에서 정보를 검색하여 출력한다.

apt-cache
기능 APT 캐시에 질의하여 여러가지 정보를 검색한다.
형식 apt-cache [옵션] 서브 명령
옵션 -f : 검색 결과로 패키지에 대한 전체 기록을 출력한다.
-h : 간단한 도움말을 출력한다.
서브 명령 stats : 캐시의 통계 정보를 출력한다.
dump : 현재 설치되어 있는 패키지를 업그레이드 한다.
search 키워드 : 캐시에서 키워드를 검색한다.
showpkg 패키지명 : 패키지의 의존성 정보와 역의존성 정보를 검색하여 출력한다.
show 패키지명 : 패키지의 간단한 정보를 출력한다.
pkgnames : 사용 가능한 모든 패키지의 이름을 출력한다.
사용 예 apt-cahce stats     pat-cache show vsftpd     apt-cache search vsftpd

apt-cache 명령

  • APT 캐시 통계 정보 보기 : stats
    • 전체 패키지 이름 : 패키지 이름의 전체 개수
    • 일반 패키지 : 일반적으로 사용하는 패키지의 개수
    • 순수 가상 패키지
      • 가상 패키지는 패키지의 이름만 제공하며 그 일므을 가진 별도의 패키지가 실제로 있는 것은 아니다.
    • 단일 가상 패키지
      • 한 패키지가 특정 가상 패키지의 기능을 제공한다.
    • 혼합 가상 패키지
      • 특정 가상 패키지를 제공하거나 가상 패키지의 이름을 패키지 이름으로 사용하는 경우
    • 빠짐 : 의존성은 있지만 어떠한 패키지도 제공하지 않는 패키지
    • 개별 버전 전체 : 캐시에 있는 패키지 버전의 개수를 의미

apt-cache 명령

사용 가능한 패키지 이름 보기 : pkgnames | grep mysql

패키지 이름 검색하기 : search

패키지 정보 검색하기 : show

  • 버전, 패키지 크기, 카테고리, 채크섬 등 패키지에 관한 정보를 확인하려면 show 서브 명령을 사용한다.

apt-get 명령

apt-get  
기능 패키지를 관리한다.
형식 apt-get [옵션]  서브명령
옵션 -d : 패키지를 내려받기만 한다.
-f : 의존성이 깨진 패키지를 수정하려고 시도한다.
-h : 간단한 도움말을 출력한다.
서브 명령 update : 패키지 저장소에서 새로운 패키지 정보를 가져온다.
ipgrade : 현재 설치되어 있는 패키지를 업그레이드 한다.
install 패키지명 : 패키지를 설치한다
remove 패키지명 : 패키지를 삭제한다
download 패키지명 : 패키지를 현재 디렉터리에 내려받는다.
autoclean : 불완전하게 내려받았거나 오래된 패키지를 삭제한다
clean : /var/cache/apt/crchives에 캐시되어 있는 모든 패키지를 삭제하여 디스크를 확보한다
check : 의존성이 깨진 패키지를 확인한다.
사용 예  apt-get update     apt-get install vsftpd

 

패키지 정보 업데이트하기 : update

  • /etc/apt/sources.list에 명시한 저장소에서 패키지 정보를 읽어 동기화.
  • 새로운 패키지 정보를 가져와서 APT 캐시를 수정
  • 사용 가능한 패키지들과 그 버전들의 리스트를 업데이트
  • 최신 버전 패키지가 있는 지를 확인하고 우분투에 알려준다.

패키지 업그레이드 하기 : upgrade

  • 현재 설치되어 있는 모든 패키지 중에서 새로운 버전이 있는 패키지를 모두 업그레이드
  • 우분투에 있는 패키지들을 실제로 최신버전으로 업그레이드

특정 패키지 설치 또는 업그레이드 하기 : install

  • 하나 이상의 패키지를 설치하거나 업그레이드 할 떄는 install 서브 명령을 사용한다.

  • 여러 패키지를 한번에 설치하려면 다음과 같이 패키지 이름을 나열

  • 패키지를 설치할 떄 업그레이드를 하지 않으려면 -no-upgrade 옵션을 사용

  • 새로운 패키지를 설치하지 않고 업그레이드만 할 떄는 --only-upgrade 옵션을 사용

패키지 삭제하기 : remove

  • 설정 파일을 포함하여 패키지를 삭제하려면 purge 서브 명령을 사용한다.

패키지 자동 정리 및 삭제하기 : autoremove

  • 자동으로 설치되었으나 필요 없는 패키지는 autoremove 서브 명령으로 정리한다.

디스크 공간 정리하기 : clean

  • 검색했거나 내려받은 패키지 파일들을 삭제하고 디스크 공간을 정리한다.

패키지 내려받기 : download

  • 패키지를 설치하지 않고 내려받기만 하려면 download 서브 명령을 사용

패키지의 소스 관련 서브 명령 : source

  • 특정 패키지의 소스코드를 내려받기만 하는 경우

  • 특정 패키지의 소스코드를 내려받고 압축을 푸는 경우

dpkg 명령으로 패키지 관리하기

dpkg  
기능 데비안의 패키지 관리 명령이다.
형식 dpkg [옵션] 파일명 또는 패키지명
옵션 -l : 설치된 패키지의 목록을 출력한다.
-l 패키지명 : 패키지의 설치 상태를 출력한다.
-s 패키지명 : 패키지의 살세 정보를 출력한다.
-s 패키지명 : 패키지의 상세 정보를 출력한다.
-S 경로명 : 경로명이 포함된 패키지를 검색한다.
-L 패키지명 : 패키지가 설치된 파일의 목록을 출력한다.
-c .deb 파일명 : 지정한 .deb 파일의 내용을 출력한다.
-i .deb 파일 : 해당 파일을 설치한다(sudo).
-r 패키지명 : 해당 패키지를 삭제한다(sudo)
-P 패키지명 : 해당 패키지와 설정 정보를 모두 삭제한다(sudo).
-x .deb 파일 디렉터리 : 해당 파일을 지정한 디렉터리에 풀어놓는다.
사용 예 dpkg -l
dpkg -s netcat
dpkg -S /bin/ls
sudo dpkg -i netcat_1.10-40_all.deb

패키지 목록 보기 -l 옵션

  • 출력 결과에서 첫 글자는 상단의 희망 상태를 나타내고, 두번째 글자는 상태를 표시한다.

aptitude 명령으로 패키지 관리하기

  • aptitude는 APT 명령처럼 패키지 관리를 자동화하여 쉽게 작업할 수 있도록 해줌
  • 옵션이나 서브명령 없이 실행할 경우 curses를 이용한 비주얼 모드로 동작한다.
aptitude  
기능 우분투에서 패키지를 관리한다.
형식 aptitude [ 서브명령 ]
서브 명령 단독 실행 : curses 프로그램이 나타난다.
search 키워드 : 키워드를 검색하여 일치하는 패키지의 목록을 출력한다.
update : 패키지 저장소를 업데이트 한다.
upgrade : 모든 패키지를 최신 버전으로 업그레이드 한다.
show 패키지명 : 패키지에 대한 자세한 정보를 보여준다.
download 패키지명 : 패키지를 내려받는다.
clean : 패키지 캐시 디렉터리에서 모든 패키지 파일을 삭제한다.
install : 패키지를 설치한다.
remove  : 패키지를 삭제한다.
purge : 패키지와 설정 파일을 모두 삭제한다.

Elasticsearch 설치 및 패키지 관리하기

  • Elasitcsearch 의 최신 저장소 목록 확인 업데이트
  • Sudo 명령어로 설치 및 apt-get 확인
    • sudo dpkg -s elasticsearch

파일 아카이브와 압축

파일 아카이브

파일을 묶어서 하나로 만든 것

tar(tape archive) 명령은 원래 여러 파일이나 디렉터리를 묶어서 마그네틱 테이브퐈 같은 이동식 저장 장치에 보관하기 위해 사용하는 명령

현재는 다른 시스템과 파일을 주고받거나, 백업을 하기 위해 여러 파일이나 디렉터리를 하나의 아카이브 파일로 생성하거나, 기존 아카이브에서 파일을 추출하기 위해 사용한다.

tar  
기능 파일과 디렉터리를 묶어 하나의 아카이브 파일을 생성한다.
형식 tar 명령[옵션] [ 아카이브 파일 ] 파일 이름
명령 c : 새로운 tar 파일을 생성한다.
t : tar 파일의 내용을 출력한다.
x : tar 파일에서 원본 파일을 추출한다.
r : 새로운 파일을 추가한다.
u : 수정된 파일을 업데이트 한다.
옵션 f : 아카이브 파일이나 테이프 장치를 지정한다. 파일 이름을 - 로 지정하면 tar 파일 대신 표준 입력에서 읽어들인다.
v : 처리하고 있는 파일의 정보를 출력한다.
h : 심벌릭 링크의 원본 파일을 포함한다.
p : 파일 복구 시 원래의 접근 권한을 유지한다.
j : bzip2로 압축하거나 해제한다.
z : gzip로 압축하거나 해제한다.
사용 예 tar cvf unix.tar Unix
tar xvf unix.tar

아카이브 생성하기 : cvf

아카이브 풀기 : xvf

아카이브 업데이트 하기 : uvf

  • u기능은 지정한 파일이 아카이브에 없는 파일이거나, 아카이브에 있는 파일이지만, 수정된 파일일 경우 아카이브의 마지막에 추가한다.
  • ch2/data 파일의 수정 시간을 touch 명령으로 수정 후 아카이브 업데이트

아카이브에 파일 추가하기 : rvf

  • r 기능은 지정한 파일을 무조건 아카이브의 마지막에 추가한다.

파일 압축과 아카이브

  • 아카이브를 생성하면서 동시에 압축 수행
  • 예 : gzip으로 압축

  • 예 bzip2 로 압축 실행 bzip2로 압축할 경우 j 옵션을 사용한다.

  • 압축한 아카이브 파일의 내용은 tvf로 확인이 가능하며, xvf로 추출이 가능하다.

파일 압축하기 : gzip/gunzip - .gz 파일

gzip
기능 파일을 압축한다.
형식 gzip [ 옵션 ] 파일 이름
옵션  -d : 파일 압축을 해제한다.
-l : 압축된 파일의 정보를 보여준다.
-r : 하위 디렉터리를 이동하여 파일을 압축한다.
-t : 압축 파일을 검사한다.
-v : 압축 정보를 화면에 출력한다.
-9 : 최대한 압축한다.
사용 예 gzip a.txt             gzip -v b.txt c.txt

압축 파일의 내용 보기 : zcat

zcat  
기능 gz로 압축된 파일의 내용을 출력한다.
형식 zcat 파일 이름
사용 예 zcat abc.gz          zcat abc

압축 풀기 : gunzip

gunzip
기능 gz로 압축된 파일의 압축을 푼다.
형식 gunzip 파일 이름
사용 예 gunzip abc.gz          gunzip abc

bzip2/bunzip2 : .bz2 파일

bzip2
기능 파일을 압축한다.
형식 bzip2 [ 옵션 ] 파일 이름
옵션 -d : 파일 압축을 해제한다.
-l : 압축된 파일의 내용을 보여준다.
-t : 압축 파일을 검사한다.
-v : 압축 정보를 화면에 출력한다.
--best : 최대한 압축한다.
사용 예 bzip2 abc.txt          bizp2 -v a.txt b.txt

728x90
작성일
2022. 11. 18. 01:17
작성자
WDmil
728x90

K-means 클러스터링

1. 군집에 센터벡터를 랜덤하게 만듬

 

군집에 데이터가 얼마나 가까운지 테스트

minkowski 거리

두 점 간의 거리척도

p=2 면 유클리디언 거리 2 

p=1이면 맨하탄 거리 1

 

유클리디언 거리 

멘하탄 거리 내적의 결과는 스칼라로 나오게 된다.

 

코사인 유사도

문서 검색 응용에서 주로 사용한다.

문서 내의 각 단어에 가중치를 넣어서 각 단어간 코사인 유사도를 계산하여

데이터간의 거리를 확인하고 측정한다.

 

k-meas

 

이미지 또한 분할이 가능하다.

군집화 결과

 

특징 추출 기법

728x90
작성일
2022. 11. 17. 22:27
작성자
WDmil
728x90

손실함수 J(0) [ Ross fungtion ]

J(θ)=12Σi(hθ(x(i))y(i))2=12Σi(θx(i)y(i))2

추정치와 측정치의 오차를 표현한 식이다.

추정치와 측정치를 뺸 값을 데이터에 대한 값을 전부 더하고 2로 나눈다.

 

결국 손실함수 = 오차 의 합 이다.

 

이 손실함수 출력이 가장 작아야 한다. J세타의 값이 가장 작아지도록 하는 세타 값을 찾아야 한다.

손실함수는 작을수록 좋다.

 

파라미터 계산법

Full Serching Strategy ( 풀 서치 방법 )

 

코드 그대로 모든 값을 다 넣어서 비교해보는것.

그러나, 계산양이 너무 많기 떄문에, 실제로 계산할 수 없다.

 

이런 서치를 최소화시키면서 최대의 효율을 보여야 한다. 이걸 최적화 기법 이라고 한다.

Optirnitation

 

최적화 기법

적용 분야 : 기계학습, 빅데이터 분석, 음성인식, 영상처리 등

1단계 : 최적화 문제로 공식화 한다 J(θ) 를 정의한다.

 

2단계 :  J(θ)  를 최대, 또는 최도로 하는 θ를 찾는다.

 

내리막 경사법

내리막 경사법은 J세타를 최소화 하는 알고리즘 방법이다.

이것을 어떻게 업데이트 시켜야 하는가?

오르막 경사법은 J세타를 최대화 하는 알고리즘 방법이다.

728x90
작성일
2022. 11. 17. 21:02
작성자
WDmil
728x90

리눅스 파일 시스템의 종류

물리적 하드디스크

  • A : 트랙(Track)
  • B : 지리적 섹터 (Geometrical sector)
  • C : 트렉 섹터 (Track Sector)
  • D : 클러스터(Cluster): 트랙 섹터의 집합

파일 시스템

파일과 디렉터리의 집합을 구조적으로 관리하는 체계

어떤 구조를 구성하여 파일이나 디렉터리를 관리하느냐에 따라 다양한 형식의 파일 시스템이 존재

리눅스 고유의 디스크 기반 파일 시스템

  • ext(ext1)
    • Extended File System의 약자로 1992년 4월 리눅스 0.96.c에 포함되어 발표됨
    • 파일 시스템의 최대 크기는 2G, 파일 이름의 길이는 255 바이트 까지 지원
    • inode 수정과 데이터의 수정 시간 지원이 안 되고, 파일 시스템이 복잡해지고 파편화되는 문제
  • ext2
    • ext 파일시스템이 가지고 있던 문제를 해결하고 1993년 1월 발표
    • ex2는 ex3 파일시스템이 도입되기 전 까지 사실상 리눅스의 표준 파일 시스템으로 사용
    • 이론적으로는 32TB까지 가능
  • ext3
    • ext3는 ext2를 기반으로 개발되어 호환이 가능하며, 2001년 11월 공개되었다.
    • ext3의 가장 큰 장점은 저널링 기능을 도입 복구기능 강화가 있다.
    • 파일 시스템의 최대 크기는 블록의 크기에 따라 2~32TB까지 지원한다.
  • ext4
    • ext4 파일 시스템은 1EB(엑사바이트, 1EB = 1,024x1,024TB) 이상의 볼륨과 16TB이상의 파일을 지원
    • ext2 및 ext3와 호환을 유지하며 2008년 12월 발표되었다.
    • 기가바이트 > 테라바이트 > 페타바이트 > 엑사바이트 > 제타바이트

리눅스에서 지원하는 다른 디스크 기반 파일 시스템

파일 시스템 기능
msdos MS-DOS 파티션을 사용하기 위한 파일 시스템 이다.
iso9660 CD-ROM,DVD의 표준 파일 시스템으로 읽기 전용으로 사용된다.
nfs Network File System으로 원격 서버의 디스크를 연결할 때 사용된다.
ufs Unix File System으로 유닉스의 표준 파일 시스템이다.
vfat 윈도 95, 98, NT를 지원하기 위한 파일 시스템 이다.
hpfs HPFS를 지원하기 위한 파일 시스템이다.
ntfs 윈도의 NTFS를 지원하기 위한 파일 시스템이다.
sysv 유닉스 시스템 V를 지원하기 위한 파일 시스템이다.
hfs 맥의 hfs 파일 시스템을 지원하기 위한 파일 시스템이다.

특수 용도의 가상 파일 시스템

파일 시스템 기능
swap 스왑 영역을 관리하기 위한 스왑 파일 시스템이다.
tmpfs Temporay File System으로 메모리에 임시 파일을 저장하기 위한 파일 시스템이며,ㅔ 시스템이 재시작할 때마다 기존 내용이 없어진다.(플레시메모리)
proc proc 파일 시스템으로 /proc  디렉터리이다.
커널의 현재 상태를 나타내는 파일을 가진다.
ramfs 램 디스크를 지원하는 파일 시스템이다.
rootfs RootFileSystem으로 / 디렉터리이다.
스시템 포기화와 관리에 필요한 내용을 관리한다.

/proc/[PID}의 구조

현재 실행중인 프로세스와 관련된 정보를 포함한다.

1 = 현재 운영중인 프로세스 정보

bash 의 이름은 2082이다
2082에 들어가서 ls를 찍어보면 현재 bash에 대한 데이터를 가지고 있는 모습을 볼 수 있다.

현재 시스템이 지원하는 파일 시스템 확인하기.

/proc/filesystems는 현재 커널이 지원하는 파일 시스템의 종류를 알려준다.

 

리눅스의 모든 파일시스템 기본개념

파일은 inode로 관리된다.

디렉터리는 단순히 파일 목록을 가지고 있는 파일일 뿐

특수파일 을 통해 장치에 접근이 가능하다.

 

ext4파일시스템의 구조

효율적으로 디스크를 사용하기 위해 저장장치를 논리적 블록의 집합으로 구분한다.

파일시스템을 구성하는 정보들은 각 Block Group에 분산된다.

Boot Block Block group 0 ....... Block group n-1 Block group n

일반적으로 블록은 4KB이고 실제 크기는 시스템의 설정에 따라 변경이 가능하다.

블록 그룹 유형

  • 그룹 0 : 파일 시스템의 첫번째 블록 그룹으로 특별하게 패딩, 수퍼블록, 그룹 디스크럽터를 가진다.
  • 그룹 a : 파일 시스템에서 첫번쨰 블록이 아닌 그룹으로 0 패딩이 없으나, 수퍼블록, 그룹디스크럽터를 가진다.
  • 그룹 b : 파일 시스템에서 첫번째 블록이 아닌 그룹으로 0 패딩, 수퍼블록, 그룹 디스크럽터가 없고 바로 데이터 블록 비트맵으로 시작한다.

 

그룹 0 패딩

블록 그룹의 첫 1024바이트는 Partition boot sector를 위해 예약된다.

Bootloader인 LINO 또는 GRUB가 들어간다.

수퍼블록

파일 시스템을 대표하는 블록으로 파일 시스템과 관련된 다양한 정보가 저장된다.

  • 전체 inode의 개수
  • 전체 블록의 개수
  • 할당되지 않은 블록 개수
  • 블록 크기
  • 그룹당 블록의 개수
  • 마운트 시간
  • 파일시스템 상태
  • 그룹 디스크립터의 크기

수퍼 블록에 문제가 생기면 전체 파일 시스템을 사용할 수 없게 된다.

수퍼블록을 다른 블록 그룹에 복사하고 블록 그룹 0의 수퍼 블록을 읽을 수 없을 경우 복사본을 사용하여 복구한다.

 

그룹 디스크립터와 GDT예약 블록

그룹 디스크립터도 블록 그룹 0에 있는 것으로 수퍼블록의 다음에 위치한다.

각 Block Group을 관리하는 정보를 저장한다.

  • 블록 비트맵의 주소
  • inode 테이블 주소
  • inode 비트맵의 주소
  • 할당되지 않은 inode의 개수
  • 할당되지 않은 블록 개수
  • 블록 비트맵, inode 비트맵 체크성
  • 디렉터리의 개수

데이터 블록 비트맵과 inode 비트맵

  • 데이터 블록 비트맵은 블록 그룹에 포함된 데이터 블록의 사용 여부를 확인하는데 사용된다.
  • inode 비트맵은 inode 테이블의 항목이 사용중인지를 표시한다.
  • 블록 그룹당 최대 블록의 개수
    • 4KB
    • 블록의 크기가 작을 수록 블록 그룹 개수 증가

inode 테이블과 데이터 블록

  • inode에는 파일 정보를 저장하고 데이터 블록에는 실제 데이터를 저장
  • 연속된 블록으로 연결, 각 블록은 미리 정의된 inode 개수를 포함한다.
  • inode의 첫번째 블록의 번호를 GDT에 저장한다.

 

inode의 구조

  • 파일이나 디렉터리의 모든 정보를 가진 자료구조이다.
  • 모든 inode들은 고유한 주소를 가진다.
  • inode의 주소를 기반으로 inode가 속한 블록 그룹 계산이 가능하다.
  • file system 생성 지정된 개수만큼의 inode를 생성한다.
    • 최대 파일 개수
  • indoe 1 : Super block
  • inode 2 : 루트 디렉토리
728x90
작성일
2022. 11. 13. 15:17
작성자
WDmil
728x90

영상 분할 (Image Segmentation)

영상을 의미있는 영역으로 나누는 과정.

입력 영상에서의 도로, 차, 건물 등 의 영역을 나누는 것

 

입력 데이터는 라벨값으로 표현된다.

라벨 값은 영상에서 분류하고자 하는 영역의 목록, 즉 부류(class)를 의미

이 픽셀이 사람인가, 나무인가, 건물인가 로 나눈다.

 

인스턴스 분할 ( Instance Segmentation )

동일한 목록, 즉 동일한 부류( 도로, 사람, 양, 등) 에 대해서 독립된 개체를 다르게 인식하고 분할하는 방법

왼쪽이 기존, 우측은 동일한 부류에 대해 개체별로 나누는것

K-means Clustering ( K-평균 클러스터링 )
데이터를 미리 정의된 척도에 따라, 예를 들어 거리, 색상 등과 같은 유사도를 측정해서 유사한 그룹으로 매핑하는 작업

비지도 학습으로 라벨값으로 분류하는 과정

k-means 알고리즘

샘플집합 X={x1,x2,....xn} 군집의 개수 k

출력 군집 해 C

알고리즘 방식

k개의 군집 중심 Z={z1,z2,z3,...zk}를 초기화

while ( True ) {

for ( i = 1 to N) xf를 가장 가까운 군집 중심에 배정

if ( 이전 루프의 배정과 같음) break;

for ( j = 1 to k) zj에 배정된 샘플의 평균으로 zj를 대치한다.

}

 

클러스터링은 비지도 학습이다. unsuperviezed Learing

 

 

728x90
작성일
2022. 11. 13. 13:50
작성자
WDmil
728x90

이진화 = 그레이 영상을 흑백 영상으로 변환하는 과정이다.

0과 255 의 두개로 분리 해 주는것

나무영역은 블랙, 하늘과 달은 화이트로 표현하였다.

 

좀 풀어서 쓴다면

이진화 = 그레이 영상을 두 그룹인 블랙, 화이트 의 두가지 생각. 이진화로 분할하여 표현해주는 과정

 

이진화 의 방법 : 임계값 방법 (Thresholding)

히스토그램을 분석하여 두 봉우리 사이의 계곡을 임계값 T로 결정한다.

 

J(j,i) 의 값이T보다 크거나 같으면 1(255)로 T보다 작으면 0(0)으로 맵핑을 다시 해 주는것.

 

오츄 알고리즘 [Otsu 79]

이진화 했을 떄 흑 그룹과 백 그룹에 소속된 픽셀의 분포가 균일할수록 좋다는 점에 착안 여기서 균일성이란 분산을 의미한다.

따라서 두 그룹의 분산이 작을 수록 좋다.

가능한 모든 t에 대해 점수를 계산 후 가장 좋은 최종 임계값을 선택, 일종의 최적화 알고리즘 이다.

 

목적함수( Objective Function) 정의

분산을 목적 함수로 사용한다.

목적함수는 두 그룹의 분산의 합으로 정의한다.

즉, 두 그릅위 분산의 합이 가장 작은 임계치인 t를 찾는다.

t를 0에서 1씩 증가하면서 255까지 조사한 후 가장 작은 Vwithin(.)을 갖는 t를 답으로 한다.

arg 값의 min값을 찾겠다.

h(i) 는 픽셀값의 i의 픽셀값이 전체 이미지 중 i의값을 가진 픽셀이 얼마나 있느냐?

 

 

두 그룹의 분산의 합.

이 이미지의 t1부분이 블랙그룹, t2가 white 그룹이 되는것이다. 또한 이러한 두 그룹에 대한 분산을 구한 다음 분산이 가장 작은 t를 찾는다.

t값은  = 0,1,2,3,.......,255 까지의 256개의 t값 중 1개를 선택하는 과정이다.

 

t가 0일 떄의 두 그룹의 분산을 계산한다.

t가 1일 때의 두 그룹의 분산을 계산한다..

반복하여

t가 255일 때의 두 그룹의 분산을 계산한다.

를 반복하여 총 256가지의 경우의 수가 t의 경우의 수가 된다.

모든 값을 계산하여 가장 작은 t값을 선정하여 t로 한다. ( 분산값이 최소가 될때 t값으로 한다)

 

이 그룹 내에서 왼쪽 수식 w0,v0은 1번째 그룹(블랙), w1v1은 두번째 그룹.(화이트)

이미지가 선명하게 두개가 나누어지는 이미지는 분산이 크기 때문에 분산이 쉬운 편 이지만, 이미지가 선명하게 나오지 않는다면, 어려울 수 있다.

 

 

 

728x90