728x90

전체 글 114

[Object Detection] RetinaFace(2019) 리뷰

Object Detection의 subtask인 Face Detection 연구 중 하나로, 2019년 발표된 논문이다. extra supervision (label을 손수 추가)과 self supervision을 joint하게 학습시킴(multi-task learning)으로써 WIDER FACE hard 데이터셋 기준 기존 SOTA보다 1.1% 정도의 face box AP를 끌어올렸다. RetinaFace WIDER FACE hard test set → 91.4%로 기존 SOTA보다 1.1% 앞섬. IJB-C test set, RetinaFace을 사용하면 face verification의 sota인 ArcFace도 성능 향상이 이루어짐 Backbone을 가볍게 한다면 싱글 코어 CPU 환경에서도 실..

[Linux] scp, sftp - 로컬과 서버 간 파일 전송, 서버 간 파일 전송

프로젝트를 하나 하고 있는데 이미지 전송을 서버끼리 할 필요가 있어서 적용해본 김에 정리합니다. vscode에서 drag and drop으로 옮기거나, filezilla 등의 gui 툴을 이용할 수 있지만 cli가 적응하면 훨씬 편하고 vscode 같은 경우엔 전송 속도가 너무 느려서 불편합니다. command를 알아보고 테스트하면서 깨달은 바를 나름대로 정리했습니다. 잘못된 정보가 있을 경우에는 댓글로 알려주세요! [참고] 제가 테스트한 환경은 local은 windows os이고, key파일을 통해 linux 서버에 접속하도록 되어 있습니다. 이 글에서는 파일 전송 명령어를 정리해놓은 것으로 자세한 개념정리 블로그는 아래에 링크 달아두겠습니다. https://nhj12311.tistory.com/76 ..

[Pytorch] 실험 재현(reproducibility)을 위한 실험 환경 randomness 제어하기

실험을 여러번 했을 때 똑같은 결과를 보장하는 것을 '재현성(reproducibility)' 라고 한다. 파이토치에서 실험 재현성을 보장하기 위해서 해주어야 하는 사전 절차는 다음과 같다. reproducibility 실험 재현성을 위해서 제어해야할 randomness는 다음과 같다. 1. torch의 randomness 2. torch.cuda의 randomness - multi-gpu를 사용할 경우에는 manual_seed_all로 제어해줘야 함 - pytorch document에 의하면 torch.manual_seed로 모든 device에서의 randomness를 제어 가능한 것으로 나오지만 다른 코드를 더 찾아보니 이 부분도 제어해주기에 추가 3. torch.backends.cudnn (bench..

11번가 코딩 테스트 후기

90분에 3문제였고 시간이 모자라진 않았던 것 같다. 문제는 알고리즘과 거의 손절한 나로서도 풀 정도였던 거 같고 히든 케이스를 어느 정도 잘 맞히느냐가 관건이지 않을까 1번은 정확성, 2번은 효율성을 체크하는 문제였는데 2번의 경우엔 O(N^2)으로 푼 느낌인데...잘 모르겠다.. 다만 2번 문제 설명에서 내가 영어를 이해를 못한 건지 아님 오타인 건지 문제 설명이 좀 이상했던 거 같다.. (답이 3인데 4라고 얘기했던 거 같음..) 마지막 문제는 조건 해석을 제대로 했는지가 관건인 거 같은데 중간에 좀 사고가 꼬여서 시간을 좀 많이 잡아먹었던 거 같다... 좋은 결과가 있으면 좋겠지만 아니어도 어쩔 수 없을 듯.. 항상 코테 볼 때마다 느끼는 건데 알고리즘 공부 좀 해야한다는 거... 근데 막상 다른..

Daily 2021.11.13

[CV] OCR의 data format

OCR 데이터셋 구성 bounding box, BBOX (검출할 영역의 좌표) 직사각형인 경우 $ (x,y,width,height) $, $ (x_1, y_1, x_3, y_3) $ 일반 사각형인 경우 4개의 좌표를 다 표기 다각형인 경우 모든 점의 좌표를 다 표기 text (영역 내의 존재하는 글자들의 시퀀스) don't care (검출해도 되고 안 해도 되는 영역; 학습 시 사용 X) file name (이미지 파일의 이름) image width (이미지 가로 길이) image height (이미지 세로 길이) ICDAR (International Conference on Document Analysis and Recognition) ICDAR 2015 Incidental Scene Text:..

[CV] OCR - 글자 영역 검출

upstage 이활석님의 부스트캠프 AI Tech OCR 강의를 듣고 정리한 글입니다. 1109 OCR 글자 객체 고밀도 위치 잡는 것 only (classification은 필요가 X → objectness만 잡는다고 생각하면 쉬움) 글자 영역 표현법 직사각형 (RECT) : (x1, y1, width, height) or (x1, y1, x2, y2) 직사각형+각도 (RBOX, Rotated Box) : (x1, y1, width, height, $\theta$) or (x1, y1, x2, y2, $\theta$) 사각형 (일반 사각형; QUAD, Quadrilateral) : (x1, y1, ..., x4, y4) →첫 글자의 좌상단이 (x1, y1) 그 후 시계방향으로 다각형 (polygon) ..

[Object Detection] Focal Loss

Focal Loss class imbalance in a one-stage detector inefficient training 대부분의 location이 easy negatives이고 이들은 학습에 어떠한 유용한 정보도 주지 않음. Loss overwhelmed Easy Negatives가 loss의 대부분을 차지하기 때문에 loss가 실질적으로 hard example을 제대로 반영할 수 없게 됨. 이전까지의 연구에서 이를 어떻게 해결해왔는가? Hard Negative mining! Ex) Boosting Classifier에서 hard example을 보다 잘 학습하기 위해 sampling을 더 많이 시키는 형태(sampling weight 부과)로 학습을 시킴. (명시적으로 hard example을..

[DL/CV] NN interpolation의 backward propagation

Nearest Neighbor Upsampling FPN(Feature Pyramids Network)에서는 top-down path를 통과할 때 high level feature와 low level feature를 섞기 위해서 upsampling 연산을 하는데, upsampling 방법으로는 Nearest Neighbor Upsampling을 사용한다. Nearest Neighbor Upsampling은 다음과 같은 연산이다. (나중에 Upsampling을 한 번에 정리할 필요가 있다고 느낌) 간단하게 생각하면 upsampling 시, 채워야 하는 부분을 가까운 값의 copy로 채우는 연산이다. NN(Nearest Neighbor) Upsampling의 Backward path NN Upsampling..

[Pytorch] hook (forward_hook, backward_hook)

Hook 패키지 중간에 자기가 원하는 코드 끼워넣을 수 있는 부분 정도로 이해하면 될 듯하다! (register hook) hook: 일반적으로 hook은 프로그램, 혹은 특정 함수 실행 후에 걸어놓는 경우를 일컬음. pre-hook: 프로그램 실행 전에 걸어놓는 hook forward hook register_forward_hook: forward 호출 후에 forward output 계산 후 걸어두는 hook # register_forward_hook should have the following signature hook(module, input, output) -> None or modified output input은 positional arguments만 담을 수 있으며 (index 같은?) ..

728x90