DataScience
article thumbnail
VGG-Net 리뷰
영상처리/기초 2023. 1. 25. 17:42

VGGNet VGGNet은 카렌 시모니안(Karen Simonyan)과 앤드류 지서만(Andrew Zisserman)이 2015 ICLR에 게재한 “Very deep convolutional networks for large-scale image recognition” 논문에서 처음 발표했습니다. VGGNet은 합성곱층의 파라미터 수를 줄이고 훈련 시간을 개선하려고 탄생했습니다. 즉, 네트워크를 깊게 만드는 것이 성능에 어떤 영향을 미치는지 확인하고자 나온 것이 VGG입니다. VGG 연구 팀은 깊이의 영향만 최대한 확인하고자 합성곱층에서 사용하는 필터/커널의 크기를 가장 작은 3×3으로 고정했습니다. 네트워크 계층의 총 개수에 따라 여러 유형의 VGGNet(VGG16, VGG19 등)이 있으며, 이 중 ..

article thumbnail
ResNet 리뷰
영상처리/기초 2023. 1. 24. 03:03

ResNet은 마이크로소프트에서 개발한 알고리즘으로 “Deep Residual Learning for Image Recognition”이라는 논문에서 발표되었습니다. ResNet 핵심은 깊어진 신경망을 효과적으로 학습하기 위한 방법으로 레지듀얼(residual) 개념을 고안한 것입니다. 일반적으로 신경망 깊이가 깊어질수록 딥러닝 성능은 좋아질 것 같지만, 실상은 그렇지 않습니다. “Deep Residual Learning for Image Recognition” 논문에 따르면, 신경망은 깊이가 깊어질수록 성능이 좋아지다가 일정한 단계에 다다르면 오히려 성능이 나빠진다고 합니다. 다음 그림과 같이 네트워크 56층이 20층보다 더 나쁜 성능을 보임을 알 수 있습니다. 즉, 네트워크 깊이가 깊다고 해서 무조건..

article thumbnail
Python slowfast설치 windows환경
영상처리/기초 2023. 1. 20. 18:26

https://github.com/facebookresearch/SlowFast GitHub - facebookresearch/SlowFast: PySlowFast: video understanding codebase from FAIR for reproducing state-of-the-art video mo PySlowFast: video understanding codebase from FAIR for reproducing state-of-the-art video models. - GitHub - facebookresearch/SlowFast: PySlowFast: video understanding codebase from FAIR for reprod... github.com Requirements..

article thumbnail
MediaPipe Hands Python 예제 소스
영상처리/Recognition 2023. 1. 12. 16:20

손의 모양과 움직임을 인식하는 능력은 다양한 기술 영역과 플랫폼에서 사용자 경험을 개선하는 데 중요한 구성 요소가 될 수 있습니다. 예를 들어, 수화 이해 및 손 제스처 제어를 위한 기반을 형성할 수 있으며 증강 현실에서 물리적 세계 위에 디지털 콘텐츠 및 정보를 오버레이할 수도 있습니다. 강력한 실시간 손 인식은 사람들에게 자연스럽게 다가오지만 손은 종종 스스로 또는 서로를 가리고(예: 손가락/손바닥 폐색 및 손 흔들기) 고대비 패턴이 부족하기 때문에 결정적으로 어려운 컴퓨터 비전 작업입니다. MediaPipe Hands는 정확도가 높은 손 및 손가락 추적 솔루션입니다. 기계 학습(ML)을 사용하여 단일 프레임에서 손의 21개 3D 랜드마크를 추출합니다. 주로 강력한 데스크톱 환경에 의존하는 반면, M..

article thumbnail
Instance Segmentation MASK R-CNN
영상처리/기초 2023. 1. 7. 00:01

OpenCV에서 Mask R-CNN을 사용하는 방법 Python 파일에서 모델이 OpenCV와 함께 작동하도록 하려면 로드할 파일의 올바른 경로를 입력하도록 주의하면서 cv2.dnn.readNetFromTensorflow 함수를 사용합니다. # Loading Mask RCNN net = cv2.dnn.readNetFromTensorflow("dnn/frozen_inference_graph_coco.pb", "dnn/mask_rcnn_inception_v2_coco_2018_01_28.pbtxt") 물체 감지(상자 그리기) 이미지를 모델이 읽을 수 있는 형식으로 변환해야 합니다. # Detect objects blob = cv2.dnn.blobFromImage(img, swapRB=True) net.set..

article thumbnail
Face swapping-Swap faces(part 5)
영상처리/기초 2023. 1. 6. 00:09

part4에서 한개의 삼각형만 맞춰봤는데 전체 삼각형에 대해 회전, 변형을 해서 타겟 얼굴 삼각형과 일치시켰다. 첫 번째 이미지에서 삼각형을 뒤틀린 후 두 번째 면과 같은 크기와 위치로 뒤틀린 첫 번째 면을 재구성합니다. # Reconstructing destination face img2_new_face_rect_area = img2_new_face[y: y + h, x: x + w] img2_new_face_rect_area = cv2.add(img2_new_face_rect_area, warped_triangle) img2_new_face[y: y + h, x: x + w] = img2_new_face_rect_area 얼굴이 삼각형을 결합하여 재구성되면 마스크를 만들어 얼굴을 선택하고 검은색은 i..

article thumbnail
Face swapping-Select and Warp triangles(part 4)
영상처리/기초 2023. 1. 6. 00:05

원본 얼굴의 삼각형이 타겟 얼굴의 삼각형과 모양과 크기가 정확히 일치하도록 해당 삼각형을 선택하고 왜곡하는 방법을 입니다. import cv2 import numpy as np import dlib def extract_index_nparray(nparray): index = None for num in nparray[0]: index = num break return index img = cv2.imread("bradley_cooper.jpg") img2 = cv2.imread("jim_carrey.jpg") img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img2_gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY) mask = np..