workSpace/PYTHON

workSpace/PYTHON

    맥북에 주피터 노트북 설치 방법

    맥북에 주피터 노트북 설치 방법

    맥북 Jupyter Notebook을 설치하는 방법 Anaconda 설치: 먼저 Anaconda를 설치해야 합니다. Anaconda는 데이터 과학과 머신러닝을 위한 Python 패키지 관리자입니다. 다음 링크에서 Anaconda를 다운로드하여 설치할 수 있습니다: https://www.anaconda.com/products/individual 설치 프로세스 완료 후, Anaconda Navigator를 엽니다. Anaconda Navigator는 설치된 패키지 및 환경을 관리하는 그래픽 사용자 인터페이스입니다. Anaconda Navigator에서 "Environments" 탭을 선택하고, "Create" 버튼을 클릭하여 새로운 가상 환경을 생성합니다. 가상 환경을 만들 때 Python 버전을 선택할 수..

    파이썬으로 달력 만들기

    파이썬으로 달력 만들기

    # This is a sample Python script. # Press ⌃R to execute it or replace it with your code. # Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings. def calendar_1(): import calendar # 년도와 월 입력 받기 year = int(input("연도를 입력하세요(예. 2022) : ")) month = int(input("월을 입력하세요(1~12) : ")) month_dict = { 1: "January", 2: "February", 3: "March", 4: "April", 5: "May", 6: "J..

    이진 탐색 알고리즘(Binary search algorithm)

    이진 탐색 알고리즘(Binary search algorithm)

    먼저 탐색 방법에는 크게 2가지가 있다. 1. 선형 탐색 알고리즘 2. 이진 탐색 알고리즘 이 글에서는 이진 탐색 알고리즘에 대해서 다룰 예정 이다. 이진 탐색 알고리즘은 반씩 제외시키면서 목표물을 찾는 방법이다. 선형 탐색 알고리즘처럼 순서대로 하나하나씩 찾는 방법은 시간이 좀더 걸리게 되어 이진 탐색 알고리즘이 생겼다. (그렇다고 선형 탐색 알고리즘이 안 좋은건 아니다. 정렬되지 않은 데이터를 찾을때에는 선형 탐색을 쓸수 밖에없다.)

    버블 정렬(bubble sort)이란

    버블 정렬(bubble sort)이란

    버블 정렬 알고리즘의 개념 요약 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 - 인접한 2개의 레코드를 비교하여 ㅋ크기가 순서대로 되어 있지 않으면 서로 교환한다. 선택 정렬과 기본 개념이 유사하다. 버블 정렬 알고리즘의 구체적인 개념 버블 정렬은 첫 번째 자료와 두 번째 자료를 두 번째 자료와 세번째 이런식으로 마지막(-1) 번째 자료와 마지막 자료를 비교하여 교환 하면서 자료를 정렬한다. 1회전을 수행하고 나면 가장 큰 자료가 맨 뒤로 이동하므로 2회전에서는 맨끝에 있는 자료는 정렬 에서 제외되고 2최전을 수행하고 나면 끝에서 두 번째 자료까지는 정렬에서 제외된다. 이렇게 정렬을 1회전 수행할 때 마다 정렬에서 제외 되는 데이터가 하나씩 늘어난다.

    Struct (tutorial)

    Struct (tutorial)

    Struct를 사용하는 이유는 소스 중에서도, 파일에 저장되었거나 네트워크 연결에서 온 바이너리 데이터를 처리하는 데 사용하기 위해서 입니다. from struct import * packed_data = pack('iif', 6, 19, 5.23) print(f'내용 : {packed_data}') 위와같이 b'' : 바이트 타입으로 변환되는걸 볼 수 있습니다. 위와 같이 바이트 타입으로 변경하는 이유는 네트워크를 통해 데이터를 전송할 때 마다 실제로 전송되는 것이 많을때 컴퓨터가 연산을 쉽게 하기 위해서 사용됩니다. i = calcsize('i') f = calcsize('f') iif = calcsize('iif') print(f'i 사이즈 : {i}') print(f'f 사이즈 : {f}') pr..

    What is Pytorch

    What is Pytorch

    1. 파이토치란 무엇일까? 파이토치는 2017년 초에 공개된 딥러닝 프레임워크로 개발자들과 연구자들이 쉽게 GPU를 활용하여 인공 신경망 모델을 만들고 학습시킬 수 있게 도와준다. 파이토치의 전신이라고 할 수 있는 토치(torch)는 루아 프로그래밍 언어로 되어 있었지만, 파이토치는 파이썬으로 작성되어 파이썬의 언어 특징을 많이 가지고 있다. 파이토치는 페이스북의 인공지능 연구팀 멤버들이 주로 관리하며, 독자적으로 운영되는 파이토치 포럼은 사람들이 질문을 올리면 프레임워크 개발자를 비롯한 많은 사람이 답을 해주는 등 활발히 교류가 일어나고 있다. 2. 다른 프레임 워크와의 비교 파이토치의 장점을 설명하기 위해 먼저 파이썬에서 많이 쓰이는 Numpy 라이브러리와 파이토치를 비교해보고, 현재 많은 사람이 사..

    OD Tech Tree for knowledge

    보호되어 있는 글입니다.

    [openCV] opencv 작업에 도움되는 로직

    [openCV] opencv 작업에 도움되는 로직

    1. 이미지 연산 전처리 => 영상을 이진화하고(정보를 단순화) > 중요한 부분만 남기고 버린다. 영상을 이진화 한다는 건 0 아니면 1(255)로 표현한다는건데 검은색 또는 흰색으로 출력이 되는것을 말한다. cv2.Threshold(src, 임계값, maxval(255), type(이진화 종류)) > 임계값, 결과영상 반환 cv2.THRESH_OTSU : 자동 이진화, 임계값을 스스로 계산한다. (임계값은 히스토그램 분석을 하면 배경과 객체로 다뒤는데 중간의 값을 추출해 임계값을 스스로 계산한다.) threahold 작업을 모르면 안된다 그 이유는 opencv를 다룰때 필요 없는 부분이 없기 때문이다. 지역 이진화 : cv2.adaptiveThreshold(src, maxVal, adaptiveMeth..

    [openCV] opencv를 활용한 머신러닝

    [openCV] opencv를 활용한 머신러닝

    1. 머신 러닝 알고리즘 객체 생성 cv2.ml.ANN_MLP_create() -> retval cv2.ml.KNearest_create() -> retval cv2.ml.SVM_create() -> retval retval : 각 머신 러닝 알고리즘 객체 2. 머신 러닝 알고리즘 학습 cv2.ml_StatModel.train(samples, layout, responses) -> retval samples: 학습 데이터 행렬. numpy.ndarray. shape=(N, d), dtype=numpy.float32 layout: 학습 데이터 배치 방법 =>cv2.ROW_SAMPLE: 하나의 데이터가 한 행으로 구성됨 cv2.COL_SAMPLE: 하나의 데이터가 한 열로 구성됨 responses: 각 학습..

    [openCV] 특징점 검출과 매칭

    [openCV] 특징점 검출과 매칭

    1. 코너 검출 코너 검출 코너의 특징 • 평탄한 영역(flat) & 에지(edge) 영역은 고유한 위치를 찾기 어려움 • 코너(corner)는 변별력이 높은 편이며, 영상의 이동, 회전 변환에 강인함 해리스(Harris): 영상 내부 작은 영역이 모든 방향에 대해 변화가 큰 경우 코너로 규정 코너 응답 함수 R을 반환 → R(x,y)가 충분히 크면 코너로 구분 cv2.cornerHarris() 함수 사용 추적하기 좋은 특징(Good Features to Track): 해리스 코너 검출 방법을 기반으로 향상된 방법 비최대 억제 수행 코너 품질 함수를 정의 → 가장 값이 큰 순서대로 정렬하여 반환 cv2.goodFeaturesToTrack() 함수 사용 FAST(Features from Accelerate..

    [openCV] 이진 영상 처리

    [openCV] 이진 영상 처리

    이진 영상 처리¶ 영상 이진화 영상 픽셀값을 0과 255로 만드는 연산 임계값 픽셀값이 특정값보다 크면 255, 이하이면 0으로 처리하여 이진화하는데 이 특정값을 임계값이라 한다. 이진화함수 cv2.threshold(src, 임계값, maxval(255), type(이진화 종류)) -> 임계값, 결과영상 반환 type> cv2.THRESH_BINARY - 임계값 기준으로 0, maxval로 표현 cv2.THRESH_BINARY_INV - THRESH_BINARY 반전 cv2.THRESH_TRUNC - 임계값 이상은 maxval, 나머지는 그대로 cv2.THRESH_TOZERO - 임계값 이상은 그대로, 나머지는 0 cv2.THRESH_TOZERO_INV - THRESH_TOZERO 반전 케니를 사용하기전..

    [openCV] harrcascade train 시키기.

    보호되어 있는 글입니다.

    [DL] End 2 End OD with Transformers (DETR)

    [DL] End 2 End OD with Transformers (DETR)

    NMS : 여러개의 바운딩 박스중 불필요한 박스를 제거, 압축해 하나의 바운딩 박스가 나오게 해야된다 ... 하지만 이 박스들은 전체 아키텍쳐를 복잡하게 만들어서 간단한 아키텍쳐를 만들기 위해 이분매칭을 이 논문에서 사용했다. 이분매칭 set prediction problem을 직접적으로 해결한다 (NMS을 사용 x 이분매칭 사용 o) 그래서 각 객체의 갯수만큼 n개 만큼 박스를 셋한다. 그래서 1:1 매칭을 할 수 있도록 한다. 바운딩 박스의 크기와 객체의 정보와 비슷한거 끼리 매칭이 된다. 만약 잘못 연산된 박스가 생기게됬을떈 객체가 없으므로 0의 값이 나오기 때문에 바운딩박스가 나타나지 않는다. N 값을 크게 크게 설정해줘야 한다. 이유는 객체를 놓칠수 있기 때문이다. 이미지에 존재할수 있는 100..

    ReLU 참고 사이트

    pythonkim.tistory.com/40

    Final Logic

    보호되어 있는 글입니다.

    [DL] Object Detection YOLO V3

    [DL] Object Detection YOLO V3

    욜로3 는 Bbox를 9개 씩뽑아낸다. 1, 2, 3 (위그림)에서 순서대로 3개씩 뽑아낸다. 같은 위치에 있는 값들 끼리 더해진다. Residual Block을 사용하는 이유 레이어를 엄청 길게 쌓아도 Gradient Vanishing(사라짐)이 발생하지 않는다. ResNet이 나오기 전에는 레이어를 여러개 쌓으면 학습이 잘 되지 않았다. Gradient Vanishing(사라짐)이 발생하지 않는다는 곳은 Backward에서 발생한다. 1번부터 8번 순으로 backward작업을 하게되면 gradient(책임) 값이 0으로 수렴 되어 버린다. 반복적으로 0.9 씩 곱해지다 보면 0에 가까워 지기 때문이다. 하지만 ResNet을 사용하면 존제한다. Residual Block을 사용하면 처음부터 마지막까지의..

    윈도우에서 우분투 설치하는 블로그

    윈도우에서 우분투 설치하는 블로그

    m.blog.naver.com/6116949/221244246623

    [DL] Object Detection YOLO V2

    [DL] Object Detection YOLO V2

    Batch Normalization > 없어서 사용 못함 High resolution classifier > 448x448 을 테스트 에서 사용했다 train 한 크기는 224x224이다. 고 해상도... Multi-scaling Training 으로 좋아짐... Google Net 대신 Darknet-19(본인이 만듦)으로 Transfer Learning 자리에 배치시켰다. anchor box로 인해 ver1에서 ver2로 큰 향상을 이뤘다. 416사이즈가 들어온 이유 : 맨 마지막단 보면 13 x13 이잖아요 보통 물체가 가운데에 있는데 홀수로 만들면 한 셀에 물체가 들어올 확률이 높기때문에,,, 짝수가되면 4개의 셀에 겹칠수가 있잖아요 마지막에 13x13x125가 나온다. ver1는 7 7 30 이..

    [DL] Object Detection YOLO V1

    [DL] Object Detection YOLO V1

    mAP : mean Average Pression (욜로에서 성능, 정확도를 표기하는 지표이다. 0 ~ 100의 수치를 갖는데 100일 수록 정확도가 높다.) 이유는 군대에서 사람들을 살상하는 무기로 사용되서 자괴감으로 인해 하차함. 인공지능은 항상 어떤 데이터가 들어오고 나오는지 알 수 있어야 한다. 입력했을때 448x448x3 이엇고 출력은 7x7x30으로 출력된다. 레이어 20개 써서 압축한다. C.R = convolution, ReLU. FC.R = Fully Connected, ReLU FC = Fully Connected Scratch 한 부분을 모델이 train한다. google Net 을통해 이미지의 특징을 추출한 것들이 14x14x1024에 저장 시켰다. google Net 을 사용한 이..

    [DL] MP

    보호되어 있는 글입니다.

    [DL] Object Detection

    [DL] Object Detection

    YOLO는 위에 포함 되지 않는데 YOLO코드를 알면 다른 버전의 코드들도 다룰수 있는 능력이 생긴다. R-CNN은 OD의 원조 이다. 지금은 yolo5까지 나옴... 위 아래 의 구조가 다르다... EfficientDet 은 비싸서 보통 대기업들이 사서 사용한다. bounding box1 (x,y,h,w,dog) x와 y에 2배씩 해주면 박스의 높이와 넓이를 알수 있다. 후처리 하다가 스트레스 많이 받을수 있음. RCNN모델 Selective Search 알고리즘은 1. 색으로 판단 2. 질감으로 나눔 R-CNN 최대 단점 forwarding이 2천번 돌아간다!! 1장이 47초~!! 걸린다 mAP 는 Accuracy와 비슷하다. 결론 욜로가 짱.

    [DL] Threshold

    [DL] Threshold

    Threshold는 임계값으로 지정 할 수 있는데, 임계값이란 0.5(50%)를 기준으로 바이너리가 1개 잡힐때는 Threshold로 잡을 수 있다. 결론은 - Threshold 값만 조정하면 개인지 아닌지 암인지 암이 아닌지를 조절 할 수 있다. 만약 암 같은 경우는 위험하면서 민감한 부분이니까 threshold를 낮게 잡아서 0.05로 5% 이상이면 암을 진단하는 프로그램을 만들 수 있다. 모델에서 바이너리를 출력하는데 최종 출력값이 1이면 값이 0~1이 나옴 1에 가깝게 나오면, loss가 낮아진다. 0에 가깝게 나오면 loss가 커짐. 예측값이 나오면 채점을 할수 있고 loss값을 뽑을 수 있다. 예측값과 loss값은 (trade off 관계이다.)

    [DL] UNet Segmentation (Overview)

    [DL] UNet Segmentation (Overview)

    padding is same with previous convolution input image에서 concatenation 할때 중앙 부분만 Cropping을 했기 때문에 output의 size가 변동된다.

    [DL] UNet Segmentation with Object Detection (Super Detail)

    [DL] UNet Segmentation with Object Detection (Super Detail)

    전에 배웠던 부분과 좀 다른 내용이 있는데 어떤 내용이 달랐는지 확인해보자. 다른 부분 1. 라벨 2. UNet (모델) Segmentation은 각 픽셀값에 점을 찍는 방식이다. 어느 카테고리에 속하는지 알아 낼 수 있다. FCN 이랑 CNN은 기본이다. 4,5 번은 od인데 5번같은 경우는 박스 안에서 객체들을 하나하나 segmentation하는 것이다. instance Segmentation > Semantic Segmentation > OD instance Segmentation이 가장 computation cost가 가장 높다. 보통 Segmentation을 Semantic 으로 말한다. 실제 코딩가치로는 OD가 가장 높다. 가장 높은 이유는 코드가 어렵기도 하고 박사들은 수식으로만 잘 알지,,..

    [DL] get CIFAR10 Custom Datasets

    [DL] get CIFAR10 Custom Datasets

    라벨 1은 dog 라벨 2은 bird 라벨 3은 frag 라벨 4은 cat 라벨 5은 ariplane... 이런식으로 이미지명을 쓰면 직관적으로 보기 용이하다 언더바 뒤에는 라벨명이다. CIFAR10은 [ http://pjreddie.com/media/files/cifar.tgz ]을 주소에 입력하면 다운 받아진다. 참고 블로그 : [ pjreddie.com/projects/cifar-10-dataset-mirror/ ] 참고 www.cs.toronto.edu/~kriz/cifar.html CIFAR-10 and CIFAR-100 datasets < Back to Alex Krizhevsky's home page The CIFAR-10 and CIFAR-100 are labeled subsets of t..

    [DL] MNIST analysis with CNN model using keras ( Accuracy 98.94 % )

    [DL] MNIST analysis with CNN model using keras ( Accuracy 98.94 % )

    In [1]: import numpy as np from keras import models, layers, datasets, backend from keras.utils import np_utils import matplotlib.pyplot as plt import numpy as np import keras In [2]: num_classes = 10 (X_train, y_train),(X_test, y_test) = datasets.mnist.load_data() In [3]: ''' cnn을 다룰때는 1차원으로 값을 펼치지 않고, 이미지를 통으로 넣기 때문에 채널이 중요하다 흑백이미지라도 1이라는 값을 넣어줘야한다. 채널을 표현하는 방법 1) channel First 1,28,28 2) chan..

    [DL] FashionMNIST analysis with CNN model using Keras ( Accuracy  94.41 % )

    [DL] FashionMNIST analysis with CNN model using Keras ( Accuracy 94.41 % )

    In [1]: import numpy as np from keras import models, layers, datasets, backend from keras.utils import np_utils import matplotlib.pyplot as plt import numpy as np import keras In [2]: (X_train, y_train),(X_test, y_test) = datasets.fashion_mnist.load_data() In [3]: plt.imshow(X_train[0]) Out[3]: In [4]: num_classes = 10 num_batch_size = 100 num_epochs = 50 validation_split = 0.1 In [5]: ''' cnn을 ..

    [DL] CIFAR10 with CNN

    [DL] CIFAR10 with CNN

    In [1]: import torch import torchvision # 이미지 프로세싱이랑 직결된 모듈이다. import torchvision.transforms as transforms import numpy as np import matplotlib.pyplot as plt import warnings # 에러를 제거하는 라이브러리 warnings.filterwarnings('ignore') CIFAR10 Datasets Loading¶딥러닝에서 로딩은 2단계 걸쳐서 할 것 이다. 1. First Load(Save)¶ In [2]: # root 는 경로를 설정해 torchvision에서 가져온 이미지가 저장될 경로를 설정해준다. # train=True는 트레이닝할 데이터를 가져오겠다..

    [DL] Warming up

    보호되어 있는 글입니다.