본문 바로가기

스파르타코딩개발일지

(83)
TIL 팀프로젝트 (딥러닝편) 이번프로젝트에서는 두이미지를 합치는 블랜딩을 사용한다. 수식으로보면 $g(x)=(1−α)f0(x)+αf1(x)$g(x)=(1−α)f0(x)+αf1(x)​ 인데 두이미지의 투명도(0~1)사이를 곱해서 더한다고 한다 img = cv2.addWeighted(im1, 0.5, im2 , 0.5, 0) (이미지1 x 비중) + (이미지2 *비중) +투명도 두 이미지의 합성하는방법에는 두가지 방법이있는데 add와 위의 방법이있다 add의경우에는 두 픽셀의 합의 255가되면 오버 플로우가 되서 밝게 빛나서 어색하다. add 를 사용했을떄 좌측상단이미지 +우측상단이미지 좌측하단에는 단순히 + 했을때 우측하단에는 add함수를 이용했을떄이다 블렌딩을 사용하게되면 훨씬 자연스러운 연출이가능하다.
TIL 팀프로젝트d-1 22일부터 팀프로젝트를 시작한다. 저번프로젝트를 제외하고는 금요일에끝났지만 저번프로젝트에는 월요일에끝났다.. 이번프로젝트도 마찬가지고 아직까지도 짧은시간이라고 생각하기에 열심히해야겠다는 생각이들지만 최근에들어 슬럼프에 빠진거같다 그냥 엄청 무기력하다.잡생각이 많아지고 집중을못하고 도전,호기심과같은 마인드보다 두려움,걱정 같은 부정적마인드가 먼저들어온다.. 오늘 처음으로 하루동안 회의한것도있지만 vs코드를 실행시키지도않았다. 이제는 팀프로젝트이기떄문에 집중해서 팀원들과 미래의나를위해 집중해야할시간이다
TIL Deep-Learning 3일차 지난 주차에서 배운것들은 일반 이미지 크기변환,모델적용,모델적용한부분 합성,얼굴인식,얼굴을통해 나이를인식하거나 마스크의유무를 나타내는 모델을 적용시키는 것이였다 이번 4주차에서는 다른이미지를 동영상에 합성시키는것으로 1>2주차 에서했듯이 3>4주차 했던것들과 매우유사했다. import cv2 import dlib detector = dlib.get_frontal_face_detector() predictor = dlib.shape_predictor('models/shape_predictor_5_face_landmarks.dat') cap = cv2.VideoCapture('videos/01.mp4') sticker_img = cv2.imread('imgs/pig.png', cv2.IMREAD_UNCHAN..
TIL Deep-Learning 2일차 어제 못다한 숙제를 마무리 지었다 원래과제는 가로로만 분할해서 4개의 모델을 적용시키는 것이였는데 조금더 욕심내서 가로또는 세로가아닌 가로와세로 둘다 합쳐서 사방면형식으로 만들어 보고싶었다 axis에 대한 공부가 덜된거 같았다고 생각해서 개념공부를 좀더 해보면서 정보를 찾아봤는데 한번에 사분할 하는 방법은 없었다. 그리고 오늘아침에 바로 튜터님한테 질문을했다 한번에 4분할하는것보다 이런식으로 2분할한것을 변수에담고 반대쪽 2분할한것을 변수에 담아서 그 변수끼리 합치면 된다고 하셔서 바로 했다. 결과는 대 성공이였다 원하는 만큼 딱절반씩 나눈건아니지만 만족스러웠다. 3주차에서는 사진과 동영상 사람얼굴을 인식하는 모델을 통해서 사람얼굴에 네모박스를 찍어주고 나이와성별을 나타내는모델 그리고 마스크를썼는지 안썻..
TIL Deep-Learning 1일 딥러닝 담당자로써 오늘 처음으로 딥러닝을 접하게되었는데 가장 기본인 anaconda설치 anaconda에 가상환경설치 및 필요한 라이브러리 설치했다 이후 이미지와 동영상을 간단하게 조작하는것을 배웠다 이미지와 사진을 불러오는 것부터해서 윈도우창띄우는방법,크기조절,크기자르기,png의경우 배경이없어서 채널이 하나더 추가,원하는 좌표에 도형,원 불러오기 두 이미지 합성 등 배웠다. 동영상의경우에는 while True: ret, img = cap.read() if ret == False: break 을 시작으로 if cv2.waitKey(1) == ord('q'): break 끝에써주고 중간에 원하는 동영상편집을 넣어준다. cv2.rectangle(img, pt1=(721, 183), pt2=(878, 465)..
TIL Docke&Linux 5일차 오늘 Docker수업에서는 volume 라는걸 배웠다. 기존 컨테이너는 사용을 종료하게되면 작업했던 데이터들이 저장되지않고 사라졌는데 volume을 통해서 작업내용들을 저장하는것이다. 우선 volume 을 이용하지않고 컨테이너만 사용했을때이다. sudo docker exec -it example /bin/bash 입력하여 컨테이너에 접속한다 이후 index.html에 "test" 라는 문구를 추가하게되면 정상적으로 html에 들어가있는것을 확인할수있다. 이후 컨테이너를 종료후 재시작하게되면 작업을통해 넣은 "test"가 사라진것을 확인할 수 있다. 이를 방지하기위해서 volume 을 사용하게 되는데 volume 이라고 종류가 하나만있는것이아니라 세종류가있다. 첫번째로 가장 많이쓰이는 docker volu..
TIL docker&linux 4일차 오늘도 제목은 docker&linux 지만 docker수업은 안듣고 프로젝트피드백 정리와 알고리즘 문제를 풀었다. 알고리즘이 재밌다. 오늘은 2주차 456번문제를 풀었으며 크게 어려움을 느꼈던 문제는 없다. 다만 저번주차에 못푼 문제인 비밀지도와 탐욕법에대해서 한번더 복습을했다. https://velog.io/@qhsh866/Python-split-join-map-%EB%AC%B8%EC%9E%90%EC%97%B4-%EA%B4%80%EB%A0%A8-%ED%95%A8%EC%88%98-%EC%A0%95%EB%A6%AC [Python] split(), join(), map() 문자열 관련 함수 정리 [Python] split(), join(), map() 문자열 관련 함수 정리 velog.io split과 jo..
TIL Docker&Linux 3일차 제목은 Docker&Linux 이지만 Docker&Linux 는 없고 프로젝트 와 알고리즘문제만 풀었다. linux가 싫어서 도피한게아니라 프로젝트 금방끝내고 수업을 들으려했는데 생각보다 길어져서 하루 프로젝트와 알고리즘의 문제푸는데에 썻다. 우선 알고리즘은 저번주에 못풀었던 비밀지도와 greedy(탐욕법)을 이용한 체육복의 문제다 비밀지도 첫 번쨰 핵심 포인트다 10진수로 입력받은것을 2진수로 바꾸는 함수 (bin) zfill은 비어있는 공간에 0을넣어준다 최대 n개만큼 ex)4를 진수로 변환 bin만 쓰게되면 0b100 [2:] 슬라이싱하게되면 100 zfill도 같이쓰게되면 00100을 출력하게된다. 문제를 풀면서 10진수를 2진수로 변환하는 bin()함수는 알았지만 슬라이스라던지 .zfill은 응..