분류 전체보기 179

Node.js로 .env 활용하기

사용하는 이유: 개발서버에서 잘 돌아가던 서버가 라이브 프로덕션 서버에서 안돌아가는 것을 확인하였습니다. 확인해보니, 개발서버에서 Node.js 에서 Python process를 콜하기 위해서 파이썬을 부르는 과정에서 절대경로를 사용해야만 돌아가야 하는 라이브러리가 있었는데, (로깅과 nssm 서비스 관련) 파이썬 절대경로의 위치가 개발서버와 라이브서버가 다르기 때문이었습니다. 물론 이를 해결하는 방법으로는 여러 가지가 있겠지만, 가장 바람직한 방법으로는, .env 파일과 같은 파일을 만들어놓고, 그 파일에서 변수들을 가져오는 방법이 가장 좋은 방법이라고 생각됩니다. .env 파일 같은 경우에는 .gitignore 파일에 적어놓음으로써 업데이트 되지 않도록 합니다. 물론, example.env 같은 파일..

python opencv 를 이용해서 동영상에서 이미지 추출 (이미지에서 동영상)

먼저 opencv를 설치합니다. >>> pip install opencv-python #For python 2.x >>> pip3 install opencv-python #For python 3.x >>> conda install opencv-python #If you directly install in anaconda with all dependencies. 다음은 비디오에서 이미지를 추출하는 방법입니다. 레퍼런스에서는 없었지만 디렉토리 안에서 모든 파일들의 이미지들을 비디오에서 추출할 수 있게 만들었습니다. import cv2 import os pwd = os.getcwd() print(pwd) print(os.listdir(pwd)) files = os.listdir(pwd) def getFrame..

Recoil 에서 다른 페이지에서 Recoil Atom 값을 잘 불러들이지 못하는 경우

갑자기 Recoil 관련 컨텐츠를 올리게 되었네요. Recoil은, 상태 관리 library입니다. React를 사용하는데 있어서, Global State Management tool로 보통 대표적으로 Redux를 많이 씁니다. 하지만 Redux의 단점은, boilerplate 코드가 너무 많다는 점입니다. Reducer, Store, Action 등등, 알아야 하는 코드가 많고, 직관적이지 않다는 단점이 있습니다. 단, 여러 사람들이 같이 작업하는 경우 정형화하기 쉽다는 장점이 있습니다. 하지만 Recoil의 경우에는 간단하게 Atom이라는 단위만 가지고도 충분히 global State를 잘 구현할 수 있습니다. 하지만 Atom을 이용해서 global State를 구현했음에도 다른 페이지로 redire..

Web Programming 2021.12.06

labelImg 맥에다 설치하기

https://github.com/tzutalin/labelImg GitHub - tzutalin/labelImg: 🖍️ LabelImg is a graphical image annotation tool and label object bounding boxes in images 🖍️ LabelImg is a graphical image annotation tool and label object bounding boxes in images - GitHub - tzutalin/labelImg: 🖍️ LabelImg is a graphical image annotation tool and label object bounding b... github.com pipenv 로 설치하는 방법도 있지만, 파이썬 3.6..

nssm을 사용하여 node.js를 windows 서비스로 만들기(+ log)

node.js서버를 만들어서 windows server에 사용하였는데, 재부팅 할 때마다 새로 CLI를 열어서 node server.js를 해줘야 하는 불편함이 있었습니다. 이를 해결하기 위해서 찾은게 nssm입니다. nssm을 이용해서 node.js를 서비스로 만드는 법은, 의외로 간단합니다. nssm.exe file을 다운받은 후, command line에서 다음과 같이 쳐줍니다. $ nssm.exe install 그럼 gui가 뜨고, 알맞은 parameter들을 입력합니다. console.log를 print할 수도 있습니다. (io tab을 통해) 여기서 error 가 떠서 고생했었는데, 알고보니 Python script를 node가 부르는 과정에서 (spawn) 그냥 python을 부르는 것이 아..

Utils/Program 2021.11.08

Deep Learning이란? (인공 신경망)

Housing Price Prediction에서 보면, linear Regression의 형태로 이루어지는 걸 볼 수 있습니다. Deep Learning의 관점에서 보면, 하나의 Neuron을 여러 개로 연결하는 형태로 이루어져 있는 걸 볼 수 있습니다. 이 경우에는, 하나의 Neuron(신경)만 사용하면 될 거 같네요. 하나의 뉴런에는 인풋과 아웃풋이 있고, 그 인풋과 아웃풋을 연결하는 함수를 Activation function (활성화 함수) 라고 합니다. Activation function에는 여러가지가 있지만, 가장 많이 사용하는 것은 RELU(Rectified Linear Unit)입니다. Relu, Sigmoid, Step function등 여러가지가 있고, 나중에 정리를 하도록 하겠습니다. ..

Machine Learning 2021.10.02

Regularization과 Normalization

Machine Learning에서 Regularization과 normalization이라는 개념이 있는데, 둘다 정규화라고도 해석이 가능합니다. 네이버에 검색해보니, Regularization - 조직화, 규칙화 Normalization - 표준화, 정상화 라고 나오는군요. 하지만 많은 사람들이 Regularization과 normalization을 둘 다 정규화라고 사용하는 듯 합니다. Machine Learning에서 이 둘은 뜻이 완전히 다른데요, Normalization은 사실 Machine Learning뿐만 아니라 다른 개념에서도 사용되는 개념이기도 합니다. 수학에서도 사용하고, Database에서의 Normalization의 경우에는 테이블간의 서로 겹치는 정보를 배제한다는 의미로 사용하기..

Machine Learning 2021.09.03

Redux가 필요한 이유

참고 자료 : https://blog.logrocket.com/why-use-redux-reasons-with-clear-examples-d21bffd5835/ - Redux란 무엇일까요? state management tool 입니다. - Redux가 필요한 이유 Redux가 없다면, 모든 state들이 서로 통신하기 위해서는 공통의 부모까지 연결해서 다시 property로 내리는 상황이 반복되어야 할 겁니다. 다음 코드를 보면서 무슨 말인지 알아볼까요? class App extends React.Component { constructor(props) { super(props); // First the Parent creates a state for what will be passed this.stat..

Web Programming 2021.08.20

Nvidia Tx2에다가 yolov5 실행하기

yolov5는 PC(특히 Ubuntu)에서 굉장히 inference하기 쉬운 형태 입니다. GPU쓰는 방법만 알아낸다면, 말 그대로 github repository를 clone하고 실행하면 됩니다. 하지만 Tx2에서는 되지 않았습니다. 처음에는 Numpy 에러가 생기고, Illegal instruction (core dumped) 처음에는 numpy 타입이 1.19.5여서 1.19.4로 downgrade도 해보고, 그 와중에 pip install을 하는 와중에 compile하는 시간도 많이 걸리고, compile 하고 시스템 파일들이 저장공간에 많이 쌓여서 저장공간 부족도 생겼었습니다. 엄청난 삽질 끝에, Tx2 CPU의 ARRCH CPU type 때문에 torch와 torchvision을 다시 comp..