본문 바로가기

2020. 10. 29. 22:59
[논문] Video object segmentation using space-time memory networks Author : Seoung Wug Oh, Joon Young Lee, Ning Xu, Seon Joo Kim 1. 모델 기본 구조 비디오에서 움직이는 물체를 tracking 하는 모델을 만들 때 어떤 프레임의 정보를 참고하는 것이 가장 좋을까? 첫 번째 프레임에는 오브젝트의 정확한 경계선이 주어지기 때문에 reliable 하고, 직전 프레임은 가장 유사한 정보를 담고 있기 때문에 accurate 하다. 그래서 두 프레임을 모두 이용해 현재 프레임에서의 오브젝트를 찾는 것이 효과적이라고 알려져 있다. 이 연구에서는 더 나아가 첫 번째와 직전 프레임뿐 아니라 5 프레임 간격으로 수많은 프레임을 학습해 정확도를 높이는 방법을 개발하였다. 현재 프레임이 쿼리로서 메모리에 저장된 데이터를 바탕으로 오브젝트를 찾..
2020. 10. 24. 00:20
NumPy 초기화 함수 정리 - random, arange, zeros, ones import numpy as np np.random.rand(size) [0,1) 범위의 실수값을 생성하여 size 크기의 array 리턴. np.random.randn(size) rand 함수와 같음 + 랜덤값들이 정규분포를 따름 np.random.randint(m*, n, size, dtype) [m, n) 범위의 정수값을 생성하여 size 크기의 array 리턴. m값만 입력할 경우 m 미만의 정수값만 생성. np.random.choice(a*, size, replace=True, p=None) array a 의 element들로 size 크기의 랜덤 array 생성. (p: 각 element가 등장할 확률분포. None일 경우 정규분포를 따름) np.random.random(size) np.ran..
2020. 10. 16. 02:21
우리는 언제까지 경제적 성장을 추구해야 할까? - 국가 경제력이 국가 발전에 미치는 영향력 분석 (파이썬, Pandas) 경제적 여유는 윤택한 삶을 위한 기본 조건이라고 할 수 있다. 소득이 늘어날 수록 국가는 복지와 정책발전에 투자할 수 있고, 개인은 더 넓은 선택지에서 원하는 것을 선택할 수 있다. 그래서 우리는 종종 국가의 발전정도를 가늠하는 데 국내총생산 지표인 GDP*를 이용하며, GDP는 국가가 얼마나 잘 사는 지를 가늠하는 전통적이면서도 신뢰도 높은 지표로 여겨지고 있다. * GDP: 국가 내에서 생산된 재화와 서비스를 금전적 가치로 환산한 지표 하지만 소득수준이 국민 개개인이나 국가 전체의 행복의 기준이 될 수는 없으며, GDP가 그 국가가 사회, 문화, 정치적으로도 얼마나 발전했는지를 대변하지는 않는다. 이스털린의 역설에 따르면, 개인이 느끼는 삶의 질 수준은 빈곤할수록 소득과 강한 관련성이 있지만, 어느 ..
2020. 10. 5. 00:27
Image style transfer 이미지를 원하는 스타일로 바꿔주는 image style transfer에서는 정해진(또는 이미 학습된) DNN 모델을 사용한다. 모델의 파라미터를 업데이트하는 대신 generated image를 랜덤하게 초기화시켜놓고 이미지의 픽셀값을 업데이트하면서 content image, style image의 특징을 담은 이미지로 변화시킨다. import scipy content = scipy.misc.imread("content_image.jpg") style = scipy.misc.imread("style_image.jpg") content = np.reshape(content, ((1,) + content.shape)) style = np.reshape(style, ((1,) + style.shape)) ge..
2020. 9. 28. 20:36
Sign language image recognition (TensorFlow) Sign Language Dataset 수화로 숫자를 표현한 1200개의 이미지 데이터셋이다. 10%인 120개를 test set으로 두고 나머지는 training set으로 활용한다. 인풋 이미지는 64*64 사이즈로 화질을 낮춰 계산량을 줄여주었다. 훈련용 인풋 데이터 로드 시 (1080, 64, 64, 3) 형태인데, reshape함수를 이용해 샘플을 구분하는 index 0만 남기고 나머지는 flatten 하여 (1080, 12288) 형태로 만든다. 그 후 이미지 하나를 하나의 column으로 만들기 위해 transpose하고, 정규화를 위해 데이터를 255로 나누어준다(zero mean). X_train, Y_train, X_test, Y_test, classes = load_dataset() ..
2020. 9. 23. 16:10
Implementing convolution, padding, pooling, stride framework 없이 convolution 구현하기. Padding array = np.random.randn(3,3) pad = 1#(3,3) shape array에 padding을 1씩 줌 np.pad(array, (pad,pad), mode='constant', constant_values=(0,1)) # output [[ 0. 0. 0. 0. 1. ] [ 0. 0.16003707 0.87616892 0.31563495 1. ] [ 0. -2.02220122 -0.30620401 0.82797464 1. ] [ 0. 0.23009474 0.76201118 -0.22232814 1. ] [ 0. 1. 1. 1. 1. ]] * constant_values는 optional. 명시하지 않으면 zero-..
2020. 9. 9. 04:50
forward/back propagation 코드 구현 시 헷갈렸던 내용 정리 나중에 또 궁금할까봐 적어놓는데 나만 알아볼 수 있을듯. 1) Z = W.T · X에서 왜 transpose를 해야하는가? - data matrix X에서 하나의 열에 하나의 샘플이 배정되어있는데, W에는 데이터 샘플 하나가 가지는 여러 feature에 대한 w값들이 column vector로 나열되어있기 때문에 X와 매칭해서 dot product를 수행하려면 transpose해주어야 한다. 2) cost를 계산할 때는 np.sum으로 각 샘플의 loss를 더한 다음 m(샘플 개수)으로 나눠줘야 한다. 샘플이 하나가 아니니까 그냥 loss funtion을 통과시키면 각 샘플의 loss들이 벡터로 나오기 때문에 그걸 더하고 나눠서 하나의 실수값으로 만드는 것. 1) w에 대한 derivative (dw)를..
2020. 8. 27. 16:27
정기배송 서비스 기획, 그리고 value up에 대한 고민 나는 평균적으로 2주에 한 번, 삼다수 2L 12병을 주문한다. 그걸 정기배송받게 된다면 그 이유는? - 매번 주문하기 귀찮으니까. 정기배송을 받으면 2주에 한 번 겪어야 하는 주문의 귀찮음을 덜 수 있다. 그런데 왜 아직까지 정기배송을 받지 않는지? - 내가 구매하는 채널에서 정기배송 서비스를 제공하지 않는다. 쿠팡에서도 삼다수 정기배송은 불가능하다. 쿠팡에서 시도를 안했을리 없는데 불가능한 이유가 있는 것 같다. - (전문) 왜 한 번에 더 많이 주문하지 않는지? - 귀찮음과 가격적 메리트의 사이를 보는 것. 12병을 시키면 3주 정도 먹는데, 3주 뒤에 또 주문하는게 크게 귀찮게 느껴지지는 않는다. 또 주문량을 늘린다고 해서 가격적 메리트가 있지도 않다. 만약 가격이 더 내려갔다면 주문량을 늘렸을 ..
2020. 8. 27. 02:37
정기배송 서비스 detail & value up
2020. 8. 25. 20:36
Face recognition using model-encoded vector Siamese Network 두 입력데이터를 같은 네트워크에 통과시켜 다른 output을 얻어낸다. 마지막에 fully connected layer를 두어 output vector를 얻어내면 데이터베이스에 인코딩된 벡터를 저장하여 메모리 사용량을 줄일 수 있다. 얼굴 인식 태스크에서는 미리 얼굴 이미지들을 벡터로 인코딩해 저장해놓고, 테스트 환경에서 새로 인풋이 들어오면 같은 네트워크 모델을 이용해 벡터로 인코딩한 후 이를 데이터베이스와 비교한다. image = cv2.imread(image_path, 1) image_encoded = model.predict(np.array([image])) min = 100 for name, encoding in database.items():# 데이터베이스 내 인코..