본문 바로가기
CS231n lecture 03 Loss function and optimization Topic : How to choose weight for best accuracy Loss function w가 얼마나 좋은지 나쁜지를 결정하는 함수. 가장 덜 나쁜 w는 무엇인지를 결정하는 함수 - 최적화 과정 General formulation to determine Loss x : image, y : label(how many classes exist in data), N : number of image f : Loss function, W : weight, L : Loss Minimize the value L is the way to optimize algorithm Loss function 1. Hinge loss in Multiclass svm loss (이미지내 정답이 아닌 카테고리의 점수.. 2022. 1. 17.
[최종] 카메라 스티커 만들기 - 예외처리 포함 고양이 스티커 부착하기¶ 1. 필요 모듈 임포트¶ In [1]: from IPython.core.display import display, HTML display(HTML("")) In [2]: import os import cv2 import matplotlib.pyplot as plt import numpy as np import dlib 2. 이미지 경로 설정 및 이미지 전처리¶ 이미지를 가져와 사용할 준비를 한다. opencv 특징 상 BGR 색상계 사용하므로 사진 색이 변경될 수 있다. 따라서 cv2.cvtColor() 메서드를 통해 다시 RGB 색상계를 이용한 이미지로 변경해준다.¶ In [3]: #이미지 경로설정 my_image_path = os.getenv('HOME')+'/aiffel/c.. 2022. 1. 13.
카메라 스티커 만들기 snow나 snapchat같은 카메라 필터앱처럼 사진에서 얼굴을 인식하고 해당 위치에 스티커 사진을 삽입하는 프로그램을 만들어 보자. 기본 원리는 다음과 같다. 얼굴 검출 face detection Object detection 기술을 이용해서 얼굴의 위치를 찾는다. dlib의 face detector는 HOG(Histogram of Oriented Gradients)와 SVM(Support Vector Machine) 사용 HOG : 이미지에서 색상의 변화량을 나타낸 것 Deep-learning 나오기 이전 사용 多 이미지로부터 물체의 특징을 잡아내는 능력 大 얼굴 인식해 카메라 초점잡는 기능에 사용 SVM : 선형분류기, 한 이미지를 다차원 공간의 한 벡터로 보고, 벡터간 구분하는 방식 이미지의 색상.. 2022. 1. 11.
n면 주사위 클래스 함수 만들기 파이썬 클래스와 객체개념을 숙달하기 위해 n면체 주사위 클래스를 만들고, 랜덤으로 값을 받는 프로그램을 짜보았다. 먼저 main함수를 만들어, 실제 함수가 실행되는 부분을 만들었다 사용자가 직접 주사위의 면 수를 입력할 수 있게 input 함수를 사용했고 mydice라는 변수에 FunnyDice 인스턴스를 할당해 주사위 로직을 실행할 객체를 생성했다. 아래는 해당 코드이다. from random import randrange def main(): n = get_inputs() mydice = FunnyDice(n) mydice.throw() print(f"행운의 숫자는? {mydice.getval()}") class FunnyDice: def __init__(self, n = 6): # default o.. 2022. 1. 11.
CS231n Lecture 02 Image Classification 첫 강의, 이미지 분류에 대해- A core task in CV 룰 베이스로 이미지 이해하기 - 불가능! 사람과 달리, 컴퓨터에게 이미지는 아주 큰 격자 모양의 숫자 집합으로밖에 보이질 않는다. 과거의 기계는 [둥근 머리에 세모난 귀 = 고양이] 등과 같은 룰 베이스로 이해했다. 그러나 이것은 실용적이지 못하다. 각도에 따라, 조명에따라, 그리고 위치나 자세에 따라 달라지는 고양이사진을 컴퓨터가 룰베이스로 이해할 수 없다.또 다른 객체(다른 고양이사진)를 인식해야한다면, 별도의 룰을 또 만들어야하는 문제 발생하기 때문. -> 다양한 객체에 통용되는 유연한 알고리즘을 만들어야함! 해결방안 : Data-Driven Approach : Amount of Data set 인터넷에 있는 많은 양의 데이터 셋을 이.. 2022. 1. 11.
객체지향프로그래밍(OPP)이란? 파이썬은 객체지향 프로그램이라고 불린다. 여기서 객체는 무엇이고, 객체지향 프로그래밍은 무엇을 의미할까? 객체(Object)란 무엇인가? 변수에 할당되거나 인자로 넘겨질 수 있는 모든 것들, 파이썬의 경우 모든 것이 객체 - b에 4를 할당하면, b와 4의 주소는 동일 [In] : print(id(var), id(4)) #id 값은 pc마다 다릅니다. [Out] : 140655556567744 140655745104272 얕은 복사 vs 깊은복사 얕은 복사 – 원본 데이터의 주소 값 만 복사 깊은 복사 – 원본 데이터의 값을 복사 Class의 기원 A라는 자동차와 B라는 자동차를 각각의 변수로 만들고자 한다면 car_a_tire, car_b_tire, car_a_window, car_b_window, ... 2022. 1. 10.
김연수, 청춘의 문장들 좋아하는 유튜버가 있다. 희렌 최라는. 방송국 라디오 pd 출신으로 유튜브에서 사람들에게 소통에 대한 강의를 올리는 사람이다. 라디오 dj 일도 잠시 해서 그런지, 목소리와 말에 기품이 깃들어 있다. 사람을 매료시키는 목소리와 더불어 깊이 있는 내용을 담은 영상들을 보고 있노라면, 나도 저 사람처럼 우아하고 깊게 말하고, 사람들을 대할 수 있으면 좋겠다고 생각이 든다. 어느 날 그는 하나의 영상을 올렸다. 자기가 가장 좋아하는 작가에 대한 영상이었다. 김연수 작가라고, 꽤 유명하다고 하지만 문학에 문외한인 나로선 처음 들어보는 사람이었다. 궁금해졌다. 내가 동경하는 사람이 동경하는 사람이라니, 아득히 멀고 높은 사람처럼 느껴졌다. 하늘 위의 하늘을 맞이한 나는 홀린 듯 그의 대표작을 빌렸다. 이 책과는 .. 2021. 7. 16.
3D 모델링 프로그램 블렌더(blender) 무작정 따라하기(1) 2달여만에 포스팅을 한다. 삶이 바빠서, 일상에 치여서, 혹은 예전만큼 블로그에 대한 열정이 타오르지 않았기 때문일지도 모른다. 이유가 뭐가 되었든 간에 오랜만에 포스팅을 하려니 어떻게 써야할 지 막막하다. 새롭게 글을 안올림에도 불구하고 늘 방문해 주시는 모든 분들이 그저 감사할 따름이다. 간만에 포스팅하는 글은 일상도, 스케이트 보드에 관한 것도 아니다. 새로운 취미가 생겼다. 이 글은 그 새로운 취미에 관한 내용이다. 3D 모델링 프로그램 blender!최근에 새롭게 시작하게된 블렌더(blender)라는 프로그램이다. 주변 지인의 추천으로 시작하게 된 이 프로그램은 상상하는 것을 3D로 구현하는 소프트웨어 중 가장 배우기 쉽고 편리하다고 한다. '3D 모델링'이 뭐지?'3D 모델링'이라는 말은 생소.. 2020. 7. 19.
초보자 및 입문자용 롱보드 추천 - 코즈모(COSMO) 롱보드 오늘은 초보자 및 입문자가 살 만한 초보자 및 입문자용 롱보드를 추천하는 시간을 갖도록 하겠다. 롱보드를 타려고 한다면 당신이 갈 수 있는 길은 세 가지이다.바로 ‘댄싱’과 ‘트릭’, 그리고 ‘다운힐’이다. 다운힐은 말 그대로 내리막을 내려가는 것을 의미한다. 스노보드랑 비슷한 맥락이다. 트릭은 보드를 띄우고, 돌리고, 점프하는 등의 기술을 구사하는 것을 의미한다. 댄싱은 보드 위에서 스텝을 밟으며 낭창낭창하게 카빙을 주는 것을 의미한다. 물론 어떤 보드로도 위 세 가지를 다 할 수는 있지만, 종목마다 더 적합한 보드는 있다. 하지만 초보자나, 입문자라면 이 중 무엇을 더 하고 싶은지, 또 무엇을 더 잘 할 수 있을 것 같은지 모르는 사람이 많을 것이다. 또 시작부터 하나의 길을 정하는 것을 꺼리거나, .. 2020. 5. 5.