KG_KAIROS/DeepLearning

[DeepLearning] 손실 함수(Loss Functions), Padding, Harr Cascade (얼굴 검출)

projectlim 2024. 8. 20. 17:50
728x90
반응형
SMALL

network 문제로 어제 학습한거 리뷰!!

 

x = np.array([[1.0,0.5]])
W1 = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]])# A1을 계산하세요
B1 = np.array([[0.1,0.2,0.3]])

# A1을 계산하세요

 # sigmoid함수를 적용하여 Z1을 구하세요
W2 = np.array([[0.1, 0.4 ], [0.2, 0.5], [0.3, 0.6]])    # (3, 2)
B2 = np.array([[0.1, 0.2]])

#  A2  &  sigmoid 함수를 적용하여 Z2를 구하세요

W3 = np.array([[0.1,0.3],[0.2,0.4]])
B3 = np.array([0.1,0.2])

# 항등함수 (입력 그대로 출력하기)를 이용하여 아웃풋 y를 구하세요

 

가 문제 였습니다.

 

그래서 코드는

해결
network.ipynb
0.00MB

 

 

model.compile(loss = 'sparse_categrical_crossentropy',optimizer, metrics)

손실 함수 (Loss Functions)

  1. ASE (Absolute Squared Error)
    • 정의: 실제 값 (y_{\text{true}})와 예측 값 (y_{\text{predict}})의 차이를 제곱한 값.
    • 수식:

 

  1. MSE (Mean Squared Error)
    • 정의: ASE의 평균값으로, 예측 값과 실제 값의 차이를 제곱한 후 평균을 구한 값.
    • 수식:

 

  1. CEE (Cross-Entropy Error)
    • 정의: 분류 문제에서 주로 사용되며, 실제 값과 예측 값의 확률 분포 간의 차이를 측정.
    • 수식:

 

학습의 목표

  • 목표: 오차가 가장 적은 매개 변수의 값을 찾는 것. 모델의 예측 성능을 최적화.

지도 학습과 비지도 학습

  • 지도 학습 (Supervised Learning): 정답(label)이 있는 데이터를 사용하여 학습.
  • 예: MNIST 데이터셋에서 y_train, y_test로 정답을 받음.
  • 비지도 학습 (Unsupervised Learning): 정답이 없는 데이터를 사용하여 학습.
  • 데이터의 패턴이나 구조를 찾는 데 중점.

CNN (Convolutional Neural Network)

  • 정의: 이미지 분류(image classification)에 주로 사용되는 신경망.
  • 컨벌루션 (Convolution): 이미지의 특징을 추출하는 과정.
  • 사용 방법: keras.layers.Conv2D()를 사용하여 구현.
    • padding: 'valid’와 ‘same’ 옵션이 있으며, 'valid’는 패딩 없이, 'same’은 입력과 출력 크기를 동일하게 유지.
    • strides: 필터를 적용할 때의 이동 간격.

패딩 (Padding)

  • 정의: 이미지의 가장자리 픽셀을 처리하는 방법.
  • corner pixel의 역할: 가장자리 픽셀의 정보가 적기 때문에 패딩을 통해 이를 보완.
  • 계산식: (7-3+1) * (9-3+1)

이미지 분류와 객체 탐지(사람얼굴)

  • 이미지 분류 (Image Classification): 이미지 내의 객체를 분류.
  • 객체 탐지 (Object Detection): 이미지 내의 객체 위치를 사각형으로 제한.
    • YOLO (You Only Look Once): 실시간 객체 탐지 알고리즘.
    • COCO 데이터셋: 객체 탐지에 자주 사용되는 데이터셋.

미니 프로젝트(해보기)

  • 목표: 없는 햄스터를 학습하여 찾기.(해보자...)
  • 라벨: CIFAR-100 데이터셋을 사용.

세부 작업

  • Classification: 분류 작업.
  • Detection: 객체 탐지.
  • Tracking: 객체의 위치 추적.
  • Segmentation: 픽셀 단위로 객체를 분할.

Harr Cascade (얼굴 검출)



 

얼굴찾기 프로젝트

haar cascade git hub에서

haar cascade frontface default.xml 파일 다운로드

https://github.com/opencv/opencv/tree/master/data/haarcascades

 

opencv/data/haarcascades at master · opencv/opencv

Open Source Computer Vision Library. Contribute to opencv/opencv development by creating an account on GitHub.

github.com

Haar Cascade는 OpenCV에서 제공하는 얼굴 검출 방법 중 하나입니다

  1. Haar 특징 추출: 이미지에서 Haar 특징을 추출. Haar 특징은 이미지의 밝기 차이를 이용하여 객체를 구분.
  2. Cascade Classifier: 여러 단계의 분류기를 사용하여 점진적으로 얼굴을 검출. 각 단계는 이전 단계에서 검출된 영역을 더 세밀하게 분석.
  3. 얼굴 검출: 학습된 모델을 사용하여 입력 이미지에서 얼굴을 검출.
import cv2

face_cascade_path = 'haarcascade_frontalface_default.xml'

face_cascade = cv2.CascadeClassifier(face_cascade_path)

if face_cascade:
    print("ok")

cap = cv2.VideoCapture(0)

while True:
    _, frame = cap.read()
    frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces= face_cascade.detectMultiScale(frame_gray,scaleFactor= 1.1, minNeighbors=5, minSize=(30,30))
    if cv2.waitKey(5) & 0xFF == ord('q'):
        break
    if len(faces)>0:
        print("닝겐!")

    cv2.imshow("FACE DETECTION", frame_gray)

cap.release()
cv2.destroyAllWindows()

인원 추가

뒤에 친구도 인식해버려따...

import cv2

face_cascade_path = 'haarcascade_frontalface_default.xml'

face_cascade = cv2.CascadeClassifier(face_cascade_path)

if face_cascade:
    print("ok")

cap = cv2.VideoCapture(0)

while True:
    _, frame = cap.read()

    frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 얼굴 찾기
    faces = face_cascade.detectMultiScale(frame_gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
    
    if len(faces) > 0:
        # print("사람이다")
        # print(faces)
        x, y, w, h = faces[0]
        # cv2.circle(frame, (y, x), 5, (0, 0, 255), -1)
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255,0), 5)
    if cv2.waitKey(5) & 0xFF == ord('q'):
        break

    cv2.imshow("FACE DETECTION", frame)

cap.release()
cv2.destroyAllWindows()

 

728x90
반응형
LIST