본문 바로가기

머신러닝, 딥러닝

(43)
CCTV 이상행동 탐지 프로젝트 - 이상행동 분류하기 ai hub의 이상행동 CCTV 데이터로 학습을 하면서 다음과 같은 문제상황이 있었다. 학습 영상의 용량이 너무 크고(개별 500-700MB) 양이 너무 많다. 이상행동의 구간이 2-3분 정도로 길다 -> 용량이 많아진다 그러다보니 개별 학습을 시킬 때 램이 부족해서, 코랩으로는 감당할 수가 없었다. GCP에서 노트북 인스턴스를 구매하기도 했지만, 기본 학습의 경우는 일단 코랩에서 시키는 게 10배는 싸게 먹힐 것이었기에 일단 코랩에서 돌리고자 최선을 다했다. 그리고 가장 고민하던 지점은 "어떻게 그 크고 긴 이상행동을 탐지하고, 새로운 영상의 이상행동을 분류할 것인가" 였다. 고민해본 결과 일단 이상행동은 '시작 지점' 과 '끝 지점'의 중간 전후로 4초로 영상을 다 자르고, 새로 들어오는 동영상은 1..
Fast api로 머신러닝 기반 웹사이트 만들고 배포하기 고양이 사료 추천 시스템 만들기 : 여러 아이템 기반 추천(Item-item collaborative filtering)을 만들면서 웹사이트를 만드는 데는 Python + Fast API, DB는 MongoDB, 배포는 heroku로 진행하였다. Fast API를 사용한 이유는 다음과 같다. 성능이 뛰어나고 빠르다 배우기 쉽다 코드작업이 빠르다 에러가 적다 MongoDB는 다음의 이유로, json 형태로 데이터를 쉽게 넣을 수 있다 데이터의 확장이 용이하다(열 추가) Heroku는 촉박한 프로젝트 일정 상, 배포가 빠르다는 이유로 선택하였으나 다음 프로젝트는 꼭 AWS로 배포를 해보고 싶다. Fastapi는 다음의 간단한 코드로도 웹 화면을 만들고 띄울 수 있다. from fastapi import Fa..
스튜디오 4bpm 신메뉴 추천기 만들기 어제 스튜디오 포비피엠 studio 4bpm에 가서 신메뉴를 고민하며 시켜보다가 한 번의 실패를 맛본 후 (으엑 이게 무슨 맛이야... ㅜㅜㅜㅜ) 내가 좋아하는 베이스, 리큐르를 기반으로 메뉴를 추천받을 수 있는 추천기를 만들어보자 싶었다. 두번째로 시킨 메뉴에는 럼이 들어갔는데, 생각보다 내가 럼을 안 좋아했다... ㅋㅋㅋㅋㅋ 그래서 다시 시킨 메뉴가 (진)패션리더™인데, 패션후르츠 기반 리큐르(?), 스파클링 와인이 2개가 들어간다. 그래서 도수가 좀 높은 편이라고 하셨음. 생각보다 독해서 좀 덜 쎄게 해달라고 하니 토닉워터를 타주셨다. 하지만 그러니 이상한 뒷맛이 남았는데...!!!! 치즈말이 곶감은 입에서 사르르 녹았다. 존맛~~ 무튼 이제 메뉴를 기반으로 메뉴 분석, 추천을 시작해보겠다. 먼저 ..
고양이 사료 추천 시스템 만들기 : 여러 아이템 기반 추천(Item-item collaborative filtering) 내가 키우는 고양이는 입맛이 까다롭다. 습식을 한 박스로 시켜도 반은 잘 안 먹거나, 입에도 대지 않는 사료들이 있었다. 그래서 그때부터 우리 고양이가 잘 먹는, 안 먹는 사료를 기록하기 시작했다. 이번 2주간의 프로젝트로 "우리집 고양이의 입맛을 기반으로 하는 사료 추천"을 컨셉으로 잡았다. 방법은 크게 2가지가 있다. 1) 비슷한 입맛의 다른 고양이가 좋아한 사료 추천 2) 우리 고양이가 좋아한 사료와 비슷한 사료 추천 여기서 2) 아이템 기반 추천은 보통 한 아이템을 기반으로 한 추천(고양이의 선호도와 상관없다)이 많아서, 고양이 선호도를 반영한 아이템"들"을 기반으로 새 아이템들을 어떻게 추천할지 고민하면서 한참을 찾았다. 명쾌히 나오는 건 없었다. 다만, 고양이 1이 아이템 A, B, C, D,..
CCTV 영상인식 모델 만들기 1 - C3D 논문 공부+구현 CCTV로 이상행동 탐지를 해보고 싶어, 레파지토리를 찾아보다가 마땅히 잘 돌아가는 코드가 없어서 직접 논문을 읽어보고 코드를 짜야겠다 싶었다. 참조한 논문은 다음과 같다. https://arxiv.org/abs/1412.0767 Learning Spatiotemporal Features with 3D Convolutional Networks We propose a simple, yet effective approach for spatiotemporal feature learning using deep 3-dimensional convolutional networks (3D ConvNets) trained on a large scale supervised video dataset. Our findings..
딥러닝 프로젝트 4 : mT5 모델로 번역기 만들기 어제 한 것 [주의 : 삽질이 난무합니다] 데이터셋 용량이 큰데 구글 드라이브에 계속 버전 1 백업 1 샘플 1 추린 샘플 2 이런 식으로 저장하다 보니 용량 초과가 떴다. 그래서 100G 클라우드 결제... 결제하니 이렇게 프로필에 구글 One을 표시해주는 원이 뜬다. simple transfomer로 110만 pair의 데이터로 mT5 모델을 학습시키니 학습 시간만 10시간, 평가 시간만 6시간가량 걸렸다. (평가 시간 측정은 cpu 모드로 되어있어, gpu 모드로 바꾸니 1시간 정도만에 할 수 있었다..ㅎ) 속도를 개선하기 위해 구글 TPU 버킷도 만들고, 구글 TPU Research Cloud에서 31일 무료 TPU 클라우드를 쓸 수 있다고 해서 신청하고, 튜토리얼로 있는 번역 모델 한다고 따라 ..
딥러닝 프로젝트 3 : Tatoeba opus set, simpletransformers 오늘 한 것 : 모던패밀리 시즌 7-11, 알렉사&케이티 등 시트콤 자막 8만 줄 추가, 넷플릭스 자막 총 11만 줄 확보 하지만 어제 끝났다고 생각한 전처리에 함정이 있었으니... 이걸로 2시간 날렸다. T5 모델로 번역기 어떻게 만들지? 하고 찾아보는데 T5의 다국어 버전인 mT5로 huggingface를 이용해 번역기를 만드는 튜토리얼이 있어서 아싸 ㅠㅠ 이제 다 끝났다 ㅠㅠ 하고 생각했는데, ㅎ.... 이렇게 잘 풀릴 리가 없지. 튜토리얼은 hugging face의 transfomrers를 기반으로 만든 simpletransformer라는 라이브러리다. 쉽게 모델을 훈련할 수 있다는 게 장점인데, mT5 모델을 사용하는 경우 경우 토크나이저를 지정할 수 없다. ㅋㅋㅋㅋ,,, 실화인가... 튜토리얼..
딥러닝 프로젝트 2: 넷X릭스 자막 전처리 프렌즈 스크립트로 딥러닝 모델을 학습했다는 논문이 있어서, 프렌즈 한영자막을 넷플릭스에서 구해서 학습 데이터로 써볼까 하다가 프렌즈는 살짝 오래된 감이 있어서 모던 패밀리로 해보기로 했다. 이것도 오래되긴 했지만...! LLN 플러그인을 사용하면 한영자막을 쉽게 엑셀 파일로 추출할 수 있어서, 시즌 1-3 + 법정물(슈츠 5화 정도) + 스탠드업 코미디 5화 분량을 일단 추출했다. 꽤 노가다라 매크로로 할 수 있나 찾아보니, 파이썬에도 매크로 만드는 파일이 있어서 추후 학습 데이터가 더 필요하면 코드를 짜봐야겠다. 그리고 전처리 작업을 계속 했는데, 흡사 알고리즘 푸는 것 같았다. 넷플릭스로 추출한 자막은 영어 문장 스파팅이 이상하거나, 타임이 겹칠 때면 (LNN 플러그인으로 추출한 자막은) 저렇게 자막..