최신 글

AI

MLOps란?

MLOps란?MLOps란 머신 러닝(Machine Learning)과 운영(Operations)을 합친 용어로 프로덕션환경에서 머신 러닝(ML) 모델이 지속적이고 안정적으로 배포되도록 유지, 관리, 모니터링 해주는 것입니다. MLOps는 머신러닝 모델 개발과 운영을 통합해 ML 시스템을 자동으로 유지, 관리, 운영합니다. MLOps의 대상은 머신 러닝 모델을 개발하는 것뿐만 아니라 데이터를 수집하고 분석하는 단계와 학습하여 배포하는 과정, 즉 전체 AI 생애 주기가 포함됩니다. 출처 : elice https://elice.io/ko/newsroom/whats_mlops 개발에도 DevOps가 있듯이 머신러닝 개발에도 MLOps가 있다.인공지능 개발에는 데이터 전처리, 학습, 평가, 추론, 모니터링 등 복..

AI

Javascript로 AI모델 추론 - Read image as float32 with Javascript

대부분 인공지능 모델은 파이썬으로 개발된다.그렇다고 인공지능 모델 서빙을 파이썬 서버로 해야되느냐? 그건아니다.가장 많이 사용되는 추론 서버로는 Nvidia Triton이 있고, 다양한 형태로 서빙될 수 있다. js를 주언어를 사용하고 있는 곳에서는 js로 서빙하고 싶을 수 있다. 그럴때 어떤 모델이든 변환을 도와주는 ONNX를 사용할 수 있다.  tensorflow로 학습한 이미지 분류 모델을 js로 변환하여 추론을 하려했다.onnx로 변환은 성공했고, 그 다음 추론을 해보아야하는데 이미지를 float으로 읽어와야하는 문제를 마주했다..!파이썬은 pillow도 있고, opencv도 있고,,(글을 쓰면서 opencv가 python 라이브러리가 아니었다는 사실이 번뜩 떠오르면서 opencv.js 가 있다는..

Projects

pm2로 알림서버 배포하기 - 무중단배포

FCM 알림 서버를 만드는 프로젝트에 참여하게 되었다. 맡게 될 서버는 FCM 알림만 담당하게 되고, 저사양 서버에서(프리티어) 작동해야되어서 가벼워야해서 노드로 구축하기로 했다. 그리고 나서 찾아보니 firebase는 Node.js를 가장 잘 지원하고 있었다. https://firebase.google.com/docs/admin/setup?hl=ko Docs에서 찾아보니 Node에서 지원하는 기능이 가장 많다! 서버를 노드로 구성하기로 하고 배포 방법을 결정해야했다. 전에 참여했던 프로젝트에서는 Nginx, Docker, Github Action으로 Blue-Green 무중단 배포를 구현했었다. 이번에는 새로운 방법을 구현해보고 싶기도 했고 도커로 서버를 띄우는 것보다 pm2로 서버를 띄우는 게 더 가..

Programming

Lambda와 S3로 Image Resize하기 (근데 이제 React를 곁들인)

화면에 여러 장의 이미지를 렌더링 해야하는 상황에서 이미지들의 로딩 속도가 느려질 수 있다. 그럴 때 사용할 수 있는 솔루션으로는 썸네일을 만들어서 사용하는 방법이 있다. 여러 이미지의 목록을 보여주어야하는 상황에서는 보통 원본 사이즈의 이미지가 필요하지 않다. 따라서 이미지 크기를 줄여서 사용할 수 있는 것! 썸네일은 여러가지 방법으로 만들 수 있지만, 오늘 알아볼 방법은 S3와 Lambda를 이용하는 방법이다! Lambda & S3 Lambda 서버리스의 핵심 기능으로 서버를 프로비저닝하지 않고도 그저 코드(함수)만으로 원하는 동작을 작동시킬 수 있는 컴퓨팅 서비스이다. 람다는 이벤트 기반으로 동작한다. 람다함수를 작동시키는 이벤트가 발생하면 등록된 코드를 실행시킨다. S3 가장 오래된 AWS 서비스..

Projects

Swap 메모리의 힘은 대단했다

백엔드 서버를 t2.micro 프리티어에서 운영하고 있습니다. t2.micro의 스펙은 1 vCPU, 1GiB RAM이고 서버에서는 nginx 도커 컨테이너 1개, spring 애플리케이션 컨테이너 1개를 운영하고 있습니다 개발하면서 서버가 불규칙적으로 다운되는 현상이 있었는데요, nginx, docker를 이용한 블루그린 배포를 하고 있는데 그 과정도 버티지 못하고 응답없는 상태가 되는 일이 아주 많았습니다. Swap 적용하기 이 문제를 해결해보기 위해 swap 메모리가 떠올랐습니다. 조금 찾아보니 ec2 상에 swap 메모리를 추가하는 것은 매우 쉬웠습니다. AWS의 문서를 그대로 따라하면 가능했습니다. 스왑 파일을 사용하여 Amazon EC2 인스턴스의 스왑 공간으로 메모리 할당 Amazon Ela..

Diary

K-DEVCON에 다녀왔다 - 이월엔 그로스

어느날 인터넷을 방황하다 개발자 행사를 알려주는 레포를 만나고 K-DEVCON 행사를 알게되어 참여하게 되었다. GitHub - brave-people/Dev-Event: 🎉🎈 개발자 {웨비나, 컨퍼런스, 해커톤} 행사를 알려드립니다. [with 남 🎉🎈 개발자 {웨비나, 컨퍼런스, 해커톤} 행사를 알려드립니다. [with 남송리 삼번지] - brave-people/Dev-Event github.com 개발자 선배들의 이야기를 듣고 앞으로의 커리어방향에 대해서 생각을 해봐야겠다라는 다짐을 하기도하고 도움이 될 만한 말씀을 여럿 들을 수 있었다. 네트워킹도 하고 싶었는데 다리 근육통 이슈와 혼자서 이런 곳 처음 가봐서 어리둥절함때문에 소극적으로 있어서 아쉬움이 좀 남는다. 기억하고 싶은 이야기들 장기적인 ..

Programming

Vue.js - data, computed, watch, methods 정리

Vue에 Root Component는 const app = createApp({});으로 생성하고 mount 를 호출하여 Html에 마운트하여 렌더링에 적용할 수 있다. Vue를 새로 시작하면서 기본 DOM 조작 방식에 대해 배웠다. DOM에 변수, 이벤트를 바인딩하는 방법을 배웠고, 각각에 차이에 대해서 정리해보자 data binding 가장 기본적인 binding은 {{ }} 구문을 이용한다. 공식문서에서 Template Syntax라고 정의하고 있다. Message: {{ msg }} 위와 같은 형태이다. {{ }} 내에는 자바스크립트 문법을 사용할 수 있다. 또 다른 바인딩 방법으로 속성 바인딩이 있다. v-bind 키워드를 사용하고 속성에 값을 바인딩할 때 사용한다. 단축해서 :id로 사용할 수..

Java

Logback의 보안 취약점 알아보기 - DBAppender는 왜 제거되었을까?

서비스 운영 전에 Log를 남기는 작업을 했다. 서비스 운영 로그를 어떻게 누적해서 기록하고 분석에 이용할 수 있을지 고민이 필요했다. 이전 프로젝트에서는 파일로 로그를 남기곤 했다. 하지만 파일로 로그를 남기기만 하면 불편한 점이 있었다. 바로 로그를 확인하려 할 때마다 서버에 접속해서 파일을 하나씩 열어봐야했다는 것이다. 또한 레벨 별로 별도의 파일로 나누는 것말고 다른 검색 방법도 딱히 없었다. 개선 방법으로 두 가지를 생각했다. 1. 로그 분석 시스템 도입 흔히 ELK 스택으로 불리는 ElasticSearch, Kibana, Logstash에 Beats가 추가되었다. 로그를 파일로 저장하고 File beats로 Logstash로 전송 후 전처리하여 ElasticSearch에 저장... 이런 플로우..

Diary

2024년 1월 회고

2월 초에 적어보는 24년 첫째달의 회고 오늘은 일찍자야지! 아니! 이것만 하고...!의 반복 부캠에서 마지막 프로젝트를 함께한 팀원들과 서비스 출시를 목표로 프로젝트를 새로 시작하게 되었다. 조금은 빡빡한 개발일정을 짜두곤 시작했는데 그렇지 않았다면 큰일 날 뻔 했다. 그렇게 취준과 프로젝트를 병행하게 되었다. 항상 개발을 하다보면 이것만 하고..! 조금만 더 하면 될 것 같은데?가 반복되서 자는 시간이 더 늦어지게 된다. 1월에는 계속 이런 삶을 살았었다. 스프링 프로젝트, JPA, 테스트 코드 새로운 프로젝트는 스프링으로 진행하기로 했다. 백엔드 개발하는 팀원이 스프링을 많이 알고있어서 빠르게 배울 수 있었다. 그 전에는 혼자서 공부해볼 생각이었는데 참 다행이고 감사하다. 직전 프로젝트를 네스트로 ..

Projects

게시글 추천 시스템 도입을 고려하며 조사한 내용

단순히 추천수, 최신순으로 보여주는 것 → 정렬로 해결 가능 그 이외 개인화 추천 시스템 도입 : ML 도입이 필요하다 추천 시스템 종류 Contents-based Recommender System(컨텐츠 기반 추천시스템) 사용자가 과거에 좋아했던 아이템 파악 후 그 아이템과 비슷한 아이템 추천 코사인 유사도를 이용하여 유사도를 계산 데이터 획득 후 비정형 데이터로부터 관련 정보를 얻는 작업이 필요함. 즉 콘텐츠의 내용을 분석해야 함. Collaborative Filtering(협업 필터링) 비슷한 성향, 취향을 가진 다른 유저가 좋아한 아이템을 현재 유저에게 추천하는 것 memory based, model based 방법이 있다. 한계 콜드 스타트 : 앞의 결과를 이용하여 동작하는 특성상 신규 사용자에..

Projects

게시판 전체 글 랭킹 점수 데이터 업데이트 속도 77.72% 개선 (bulk update vs batch update)

커뮤니티 서비스를 구축하고 있다. 커뮤니티에 작성한 글을 최신순으로도 보여주지만, 인기순으로도 정렬하는 것도 필요했고, 이 방식을 구현하는 과정을 정리하였다. 선택한 랭킹 알고리즘 해커스 뉴스 알고리즘을 사용하여 각 게시글에 대한 점수를 계산하고 점수가 높은 순서대로 정렬하는 방법을 선택했다. 레딧 랭킹 알고리즘도 고려했으나, 레딧 시스템과 달리 '싫어요' 기능이 없고, 해커스 뉴스 알고리즘이 더 직관적이어서 선택하게 되었다. How Hacker News ranking algorithm works In this post I’ll try to explain how the Hacker News ranking algorithm works and how you can reuse it in your own app..

Projects

Querydsl을 이용한 커서 기반 페이지네이션 구현기

새로운 프로젝트에 들어가면서 게시판을 구현하게 되었다. 게시판의 글을 찾아 사용자에게 글을 어떻게 보여줄 수 있을까? 가장 쉬운 방법은 모든 글을 찾아 보내주는 것이다. 하지만 이 방법은 최악이라고 생각이 드는데 1. DB에 모든 데이터를 탐색해야하고 2. 사용자가 필요한 양 이상의 & 필요하지도 않을 정보를 보내는 낭비와 3. 한 번에 많은 데이터를 보내야해 네트워크 부하가 발생할 수 있다. 이를 보통 페이징을 통해 해결하는데, 페이징을 통해 한 번에 보여줄 게시글의 개수만큼만 데이터를 보낸다. 그 다음 요청에는 그 다음 데이터를 보내준다. 여러 웹사이트에서 위와 같은 형태로 찾아볼 수 있다. 페이징 또는 페이지네이션을 구현하는 방법은 두가지가 있다. 오프셋 기반 페이지네이션과 커서 기반 페이지 네이션..

CS

Web Socket 웹소켓

지난 프로젝트를 하면서 웹소켓을 이용한 양방향 통신을 많이 이용했다. 웹소켓은 무엇이고 어떻게 연결이 유지될까? 웹 소켓이란? 웹소켓(WebSocket)은 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜이다. 웹소켓 프로토콜은 2011년 IETF에 의해 RFC 6455로 표준화되었으며 웹 IDL의 웹소켓 API는 W3C에 의해 표준화되고 있다. https://ko.wikipedia.org/wiki/%EC%9B%B9%EC%86%8C%EC%BC%93 위키백과를 통해서 통신 프로토콜이라는 것을 알 수 있다. 웹에서 가장 많이 이용하는 통신 프로토콜을 HTTP이다. HTTP 대신 웹 소켓을 이용해야하는 이유는 무엇일까? HTTP와의 차이점 HTTP는 다음과 같은 특징을 가진다. 비연결성 ..

AI

Stable Diffusion WebUI 설치하고 사용해보기 - Apple Silicon

블로그를 쓰면서 가끔 썸네일 이미지를 생성형 AI를 이용해서 만들어서 사용했다. 주로 DALL-E 2를 이용했는데 원하는 퀄리티의 그림이 잘 안나와서 '무료버전이라 그런가' 생각했다. 그래서 배포된 서비스를 이용하지 말고 직접 모델을 돌리면 나아질까? 싶어서 직접 해보기로 했다. 설치 후 이용해 본 결과 원하는 퀄리티 이미지가 나오지 않는 것은 무료버전이 문제가 아니라 프롬프트의 문제였다. 이것이 프롬프트 엔지니어링의 중요성??!! Stable Diffusion을 WebUI로 제공하는 오픈소스가 있어서 이용했다. Mac을 이용하고 있으니 Apple Silicon에 설치하는 위키에 들어가서 하나씩 환경을 구축했다. Installation on Apple Silicon Stable Diffusion web ..

Algorithm

[백준][2343] python - 기타레슨문제로 알아보는 이분탐색과 파라미터 탐색

이분탐색 정렬되어 있는 배열에서 찾고자 하는 x를 가지고 배열을 둘로 나누어가면서(이분) 탐색하는 방법 정렬의 특성을 극대화한 알고리즘이다. 만약 N길이의 배열에서 x이하의 가장 큰 수를 찾는다는 문제가 있을 때 배열의 모든요소를 하나씩 탐색한다면 최대 시간복잡도는 O(N)이 나올 것이다. 하지만 이분탐색을 이용하면 처음부터 끝까지 순차적으로 배열을 탐색하지 않고, 탐색 시작지점(L, Left)과 끝지점(R, Right)을 설정해서 중간지점(mid)을 탐색하여 빠르게 탐색한다. 만약 중간지점의 값이 x이상이라면 그 이후의 값들은 고려할 필요가 없어진다. 반대로 x이하라면 그 이전의 값들을 고려할 필요가 없어진다. 이를 보장하기 위해서는 배열이 정렬되어있어야한다. 그러면 탐색의 끝지점(R)을 중간지점의 바..

Diary

부스트캠프 웹・모바일 8기를 마치며

부스트캠프가 끝이 났다. 후련하기도, 허탈하기도, 부스트캠프를 떠나 진짜 야생으로 나아갈 앞으로에 대해 걱정이 들기도한다. 부스트캠프를 지원하고 시작할 무렵 나는 인공지능에서 갓 백엔드로 넘어온 한 마리의 양..? 이었다. 지원하는 것에서부터 과정에 참여하기까지 정말 많이 고민했고 또 고민했다. 이 선택이 과연 맞는 선택일까? 시간 낭비가 되어버리진 않을까? 하지만 이런 생각들은 시간이 지날수록 '부스트캠프를 선택하기를 정말 잘했다'라는 생각들로 바뀌어갔다. 🧐 나는 성장했을까? 개발적인 것만으로 보면 엄청난 성장이 있었다. 부캠 전에는 그냥 남들 다한다는 영한님 강의를 조금 맛보기만 한 사람이었다. ??? : 영한님한테 배웠어요 DTO가 뭐죠? MVC가 뭐죠? 먹는건가요?? 하던 사람이 이젠 나름 개발..

Diary

부스트캠프 웹・모바일 그룹프로젝트 6주차 회고

끝났다....... 부스트캠프를 끝내며 하는 회고는 따로하기로하고 그룹프로젝트에 대한 회고만 해보자 Keep 프로젝트를 진행하면서 모든 고민에 대해서 문서화를 하지는 못했지만, 그대로 중요하게 고민했던 것들에 대해서는 문서화를 잘 해둔 것 같다. 문서화를 잘 하는 팀원들을 만나서 자극받아 열심히 했던 것 같다! 무한감사 🙏 쨋든 그 덕에 발표자료를 준비할 것이 많이 없었다. 기술적도전으로 적어둔 내용들을 거의 그대로 발표할 수 있었다. 앞으로도 모든 `'왜'`에 대한 나의 모든 고민들을 더 많이 문서화해야겠다. 수료식 커피챗에서 들었던 말 천천히 가더라도 아무도 뭐라고 하지 않아요. 그런데 급하게 가면 어떻게 되겠어요? 체할겁니다. Problem 발표자료를 만들때는 적절한 문자와 이미지가 배치되어야하는 ..

Projects

[코드실행기능 개발기 #3] 코드 실행 서버 부하테스트

저희의 아키텍처는 api 서버와 running 서버가 나뉘어있습니다. api 서버에서 클라이언트의 코드 실행 요청을 받고 running 서버에서 실제로 코드를 실행하게 됩니다. 코드 실행 요청 발전 과정 클라이언트 → api 서버 api서버 → running 서버 running 서버 → api 서버 V1 http 요청 http 요청 http 응답 V2 http 요청 Redis Message Queue Redis Key-Value, 주기적 탐색 V3 소켓 연결 후 소켓 메세지 Redis Message Queue Redis Pub-Sub 초기에는 코드 실행요청을 단순 http로 보냈습니다. 하지만 코드 실행이 오래걸린다면 http 요청을 보낸 후 계속 대기해야한다는 것이 문제가 있다고 생각했고 개선 방법을 ..

Projects

NestJS에 winston으로 로그 남기기

Winston Logger Winston의 Logging 레벨은 RFC5424 표준을 따르고 있다고 한다. RFC 5424: The Syslog Protocol Numerical Severity Code 0 Emergency: system is unusable 1 Alert: action must be taken immediately 2 Critical: critical conditions 3 Error: error conditions 4 Warning: warning conditions 5 Notice: normal but significant condition 6 Informational: informational messages 7 Debug: debug-level messages winston l..

Projects

refresh token 도입기

로그인시 JWT 토큰을 발행하기로 했다. JWT는 세션방식으로 로그인을 유지할 때보다 서버가 저장하고 있어야할 데이터가 줄어드는 장점이 있지만 탈취되었을 경우 더 위험하다. 서비스의 성격을 고려했을 때 개인정보를 거의 저장하고 있지 않았다. 개인정보를 많이 저장하고 있는 서비스 보다 보안의 위협이 덜하였기 때문에 JWT가 더 적절하다고 생각했다. 그럼에도 보안은 항상 중요하기 때문에 JWT Access Token를 보완하기위한 Refresh Token을 도입하기로 했다. JWT 토큰을 어디에 저장할 것인가? 발급한 토큰들을 어떻게 저장해야할지 정해야했다. 아래 두 이유로 토큰을 쿠키에 저장하기로 했다. 쿠키는 Http Only 옵션이 있어서 XSS 공격을 예방할 수 있다. 클라이언트가 저장 중이다가 필요..

AI

AI

MLOps란?

MLOps란?MLOps란 머신 러닝(Machine Learning)과 운영(Operations)을 합친 용어로 프로덕션환경에서 머신 러닝(ML) 모델이 지속적이고 안정적으로 배포되도록 유지, 관리, 모니터링 해주는 것입니다. MLOps는 머신러닝 모델 개발과 운영을 통합해 ML 시스템을 자동으로 유지, 관리, 운영합니다. MLOps의 대상은 머신 러닝 모델을 개발하는 것뿐만 아니라 데이터를 수집하고 분석하는 단계와 학습하여 배포하는 과정, 즉 전체 AI 생애 주기가 포함됩니다. 출처 : elice https://elice.io/ko/newsroom/whats_mlops 개발에도 DevOps가 있듯이 머신러닝 개발에도 MLOps가 있다.인공지능 개발에는 데이터 전처리, 학습, 평가, 추론, 모니터링 등 복..

AI

Javascript로 AI모델 추론 - Read image as float32 with Javascript

대부분 인공지능 모델은 파이썬으로 개발된다.그렇다고 인공지능 모델 서빙을 파이썬 서버로 해야되느냐? 그건아니다.가장 많이 사용되는 추론 서버로는 Nvidia Triton이 있고, 다양한 형태로 서빙될 수 있다. js를 주언어를 사용하고 있는 곳에서는 js로 서빙하고 싶을 수 있다. 그럴때 어떤 모델이든 변환을 도와주는 ONNX를 사용할 수 있다.  tensorflow로 학습한 이미지 분류 모델을 js로 변환하여 추론을 하려했다.onnx로 변환은 성공했고, 그 다음 추론을 해보아야하는데 이미지를 float으로 읽어와야하는 문제를 마주했다..!파이썬은 pillow도 있고, opencv도 있고,,(글을 쓰면서 opencv가 python 라이브러리가 아니었다는 사실이 번뜩 떠오르면서 opencv.js 가 있다는..

AI

Stable Diffusion WebUI 설치하고 사용해보기 - Apple Silicon

블로그를 쓰면서 가끔 썸네일 이미지를 생성형 AI를 이용해서 만들어서 사용했다. 주로 DALL-E 2를 이용했는데 원하는 퀄리티의 그림이 잘 안나와서 '무료버전이라 그런가' 생각했다. 그래서 배포된 서비스를 이용하지 말고 직접 모델을 돌리면 나아질까? 싶어서 직접 해보기로 했다. 설치 후 이용해 본 결과 원하는 퀄리티 이미지가 나오지 않는 것은 무료버전이 문제가 아니라 프롬프트의 문제였다. 이것이 프롬프트 엔지니어링의 중요성??!! Stable Diffusion을 WebUI로 제공하는 오픈소스가 있어서 이용했다. Mac을 이용하고 있으니 Apple Silicon에 설치하는 위키에 들어가서 하나씩 환경을 구축했다. Installation on Apple Silicon Stable Diffusion web ..

AI

Bytes Are All you Need: Transformers Operating Directly On File Bytes 리뷰

최근 애플에서 발표한 논문으로 기존 이미지 모델에서 이미지 파일들을 RGB 형식으로 디코딩하여 모델에 사용했던 것과 달리 디코딩 과정없이 바이트 형식으로 모델 학습 및 추론을 하는 내용의 연구이다. 바이트 데이터를 이용하여 LLM Transformer를 이용하여 바이트 데이터를 토큰별로 임베딩하여 추론을 진행한다. Bytes Are All You Need: Transformers Operating Directly On File Bytes Modern deep learning approaches usually transform inputs into a modality-specific form. For example, the most common deep learning approach to image cl..

AI

AutoEncoder 실습

In [ ]: import torch from torch import nn import torch.nn.functional as F from torch.utils.data import Dataset, DataLoader from torchvision import datasets import torch.optim as optim from torchvision.transforms import ToTensor import matplotlib.pyplot as plt import numpy as np import json from tqdm.auto import tqdm import time In [ ]: class Config: def __init__(self, path): self.path = path wit..

AI

AE, AutoEncoder

AutoEncoder AutoEncoder는 Manifold Learning의 비선형 변환 모델 중 하나로, 비지도 방식으로 신경망을 훈련하여 Encoder를 통해 입력 데이터를 최대한 압축하여 입력데이터를 잘 표현할 수 있는 z 벡터를 만들고 이를 다시 Decoder를 통해 원본 데이터로 복원하는 것을 말한다. AutoEncoder는 Representation Learning으로 구분할 수 있다. Manifold Learning Manifold 란? 모든 데이터를 최대한 오차없이 잘 아우를 수 있는 subspace(부분공간)을 의미 고차원의 manifold를 잘 찾아낸다면, 고차원의 manifold를 저차원으로 압축했을때 각 데이터들의 특징을 유지 stop-thinking-start-now.tistor..

AI

Manifold Learning

Manifold 란? 모든 데이터를 최대한 오차없이 잘 아우를 수 있는 subspace(부분공간)을 의미 고차원의 manifold를 잘 찾아낸다면, 고차원의 manifold를 저차원으로 압축했을때 각 데이터들의 특징을 유지하면서 압축이 가능하다. 장점 차원 축소, 의미있는 특징 추출, 데이터 가시화, 차원의 저주 해결 Data compression example : Lossy Image Compression with compressive Autoencoders, '17.03.01 CNN, 오토인토더을 이용하여 jpeg보다 손실이 적은 이미지 압축방식을 제안 Data visualization t-SNE UMAP Curse of dimensinality Manifold Hypothhesis : assumpt..

AI

GAN

D : disriminatorr, G : Generative $$ min_G max_V V(D,G) $$ $$ V(D, G) = E_{x~p_{data(x)}}[logD(x)] + E_{z~p_{z(z)}}[log(1-D(G(z))] $$ GAN Tutorial Google Colaboratory Notebook Run, share, and edit Python notebooks colab.research.google.com Coursera | Online Courses & Credentials From Top Educators. Join for Free | Coursera Learn online and earn valuable credentials from top universities like Yal..

AI

TAO Toolkit 관련 자료

TAO TAO Toolkit Quick Start Guide https://docs.nvidia.com/tao/tao-toolkit/text/tao_toolkit_quick_start_guide.html NVIDIA NGC 관련 docs https://ngc.nvidia.com/setup/installers/cli user interaction diagram for the TAO Launcher TAO 사용시 도커 환경 사용을 이해하는데 도움이 되었던 다이어그램 도커를 인터렉티브 모드로 들어가지 않아도 TAO 런처가 실행하고, 디렉토리가 연동되어 사용할 수 있다. TAO Usage Instruction TAO 설치 후 있는 기본 파일에 있는 튜토리얼 쥬피터 노트북에 있는 사용법 순서 목차이다. TAO 뿐..

AI

Human Pose Estimation

개념 사람의 관절, 신체부위 등을 key point로 지정하여 사람의 자세를 예측하는 기술 방식 Bottom-up : 상향식정확도는 top-down 방식에 비해 떨어지지만 detection 과정이 없어 빨라 real - time 에 적용하기 용이 대표적 오픈소스 : Openpose 영상에서 관절을 모두 추출하고, 관절간의 관계를 분석하여 자세를 추정하는 방법 Top down : 하향식multi-person의 경우 detection된 사람마다 crop하여 포즈를 추정하므로 느리다는 단점이 있음대표적 오픈소스 : AlphaPose, Mask-RCNN(Detectron) 정확도는 비교적 높은 편 영상에서 사람을 찾고, 바운딩박스 내부에서 자세를 추정하는 방법 AlphaPose는 multiperson에 대해서 ..

Heaea
일단 시작하자