전체 글 195

파이썬을 이용해서 디렉토리 안의 파일들 이름 바꾸기! (리눅스에서)

디렉토리 안의 파일들의 이름을 바꾸기 위해서는 여러가지 방법이 있습니다. 리눅스 안에서는 mv 커맨드를 사용할 수 있고, rename 등 여러가지 다른 커맨드들을 활용할 수 있을 것 같습니다. 또, 리눅스 커맨드로 for loop를 사용할 수 있다고 합니다. (해보진 않았습니다.) 관련 코드 : # Declares variable with value set to 1 i=1 # Scans each text file in the working directory for file in *.txt; # Iterate the command below until all files are scanned do # Renames each file with "File" followed by incrementing numbe..

Utils 2022.01.19

Yolov5의 model을 Tx2 engine을 만들어봅시다 (Onnx, netron)

안녕하세요 Yolov5는 pytorch 기반의, 객체 검출을 쉽게 해 줄수 있는 프레임워크입니다. 하지만 yolov5에서 만든 모델을 다른곳에서 사용하려면, 그에 맞게 모델을 변환시켜 주어야 합니다. 그럴때 사용할 수 있는 기술이 Onnx 입니다. onnx소개 : https://github.com/onnx/onnx, https://www.megazone.com/techblog_180816_aws-deep-learning-amis/#:~:text=ONNX%20%EB%9E%80%20%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%3F,%EC%97%B0%EC%82%B0%EC%9E%90%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EC%A0%95%EC%9D%98%ED%95%A9%..

python으로 yolov5 label을 교체하는 script 만들기

오늘은 python을 이용해서 label을 교체하는 script를 만들어보도록 하겠습니다. yolov5의 경우, label 값은 Integer값으로 들어오게 됩니다. (0, 1, 등.. ) 실제로, 0으로 label되어야 하는 경우 1로 label 되는 경우, 어떻게 이를 바꿀 수 있을지 python script를 짜 보도록 하겠습니다. # 예를 들어, 이렇게 label 되어 있는 파일을 1 0.188281 0.603704 0.050521 0.205556 이렇게 바꿔주고 싶은 경우, 그리고 안에 있는 모든 파일들을 찾아 (txt 파일의 경우) 바꿔주는 script를 짜 보도록 하겠습니다. 0 0.188281 0.603704 0.050521 0.205556 change_label.py import os i..

Utils 2021.12.24

train test split 하는 커스텀 python 스크립트를 만들어봤습니다

한번 더 업그레이드 한 버전을 만들었습니다. 수정 된 버전은 좀 더 interactive 하게 만들었고, train/test/val 이외에 train/test, ratio도 shell script로 input할 수 있도록 만들었습니다. import os import random from shutil import copyfile # You should make train, test, val directory in target directory before executing this script # train test or train test val # also, images, labels directory should be made for all directories def main(): ldir = os..

Machine Learning 2021.12.23

awk를 이용해서 앞 뒤로 string 붙이기

text파일이 있는데, text 파일을 이용해서 앞뒤로 다른 string들을 붙여야 하는 경우가 발생하였습니다. 물론 파이썬을 활용해서 할 수도 있겠지만, awk를 배워보고자 시도했는데, 정말 쉽게 사용할 수 있었습니다. 예를 들어서, a b c d e f 이런 파일이 있다면, 그 각각의 라인에 str_front, str_back 을 붙이고 싶다고 하면, str_front a str_back str_front b str_back str_front c str_back str_front d str_back str_front e str_back 어떻게 할까요? awk '{print "str_front" $1 "str_back"}' file.txt 이렇게 하면 됩니다. 더한 awk에 대한 튜토리얼은 아래 링크를..

Utils 2021.12.21

Python3 에서 Dictionary 새로운 값 입력하기 및 수정

Python에서 Dictionary는 Java의 HashMap과 같은 기능을 하며, 가장 중요한 Data structure (자료구조) 중 하나입니다. Dictionary 를 만들고 나서 Key Value pair를 넣을 때, 두 가지 방법이 있는데, 그것은 value assignment로 subscription을 이용하여 데이터를 넣는 방법과, update를 사용하는 방법 두 가지가 있습니다. # dictionary 생성 this_dict = {} # dictionary value assignment this_dict["k"] = "v" # dictionary update method this_dict.update({"k": "v"}) 둘 다 하는 일은 같습니다. 심지어 새로 만드는 것 뿐만 아니라 있..

Python/Basics 2021.12.17

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..