본문 바로가기

전체 글176

NMS(Non maximal supression) 계산하기, 파이썬 요약 Non maximal supression(NMS)은 예측된 오브젝트의 바운딩박스(bounding box)가 중복으로 여러 개가 할당 될 수 있을 때, 중복되는 바운딩박스를 제거하는 기술입니다. 기계적으로 무엇인가 학습하여 처리하는 것이 아닌, 사람이 고아낸 로직대로 제거하는 방식이기 때문에, 휴리스틱한(또는 hand-craft)한 방법으로도 논문에서 주로 소개가 됩니다. NMS을 구현하는 방식은 아래와 같습니다. 각 바운딩 박스별로 면적(area)을 구합니다. 특정 박스를 하나 정하고, 정해진 박스외에 나머지 박스와의 오버렙 비율을 구합니다. 두 박스의 x_min, y_min중에 최대를 구하면, 아래의 박스(//)의 좌상단 좌표를 구합니다. 두 박스의 x_max, y_max중에 최소를 구하면, 아래.. 2023. 3. 18.
온톨로지의 의미론적 유사도: Information content 란? Information content (IC)은 언어학에서 나왔던 개념으로,문맥상에 어떤 개념이 나타내면, 이 개념이 나타내는 것은 정보의 양을 나타냅니다. 주로, 추상적인 개념(상위 개념)일수록 정보량이 많지 않기 때문에, IC값이 낮아지도록 표현이 되고, 구체적인 개념을 일컫을 수록 IC값이 높아지게 됩니다. IC값을 적절하게 설계했으면, 각 개념(또는 단어)가 얼마나 모호한지(=상위개념인지)를 알 수 있습니다. 그리고, 이러한 IC값을 온톨로지들 간의 유사도로 사용할 수 있습니다. IC의 정의는 아래와 같습니다. 온톨로지 상에서 존재하는 모든 개념($C$)내에 특정 개념($c$) 은 $c \in C$이며, 0과 1사이 값을 가진다고 합니다[0, 1]. 그리고, 특정 두 개념이 IS-A 관계라고 하면,.. 2023. 1. 9.
클러스터 구성 / 쿠버네티스 설치(master, worker node) 요약 master node에 쿠버네티스를 세팅하고, 각 노드랑 연결해보려고합니다. 쿠버네티스로 클러스터를 구성하는 것은 1) control-plane을 설치해야합니다(단일 control-plane또는 복수의 control-plane도 가능), 2) 또한, 각 워커노드들을 등로갛여 파드들의 네트웍이 클러스터내에서 잘 통신되게 하는 것입니다. 시작전에 앞서 kubeadm을 이용해서 쿠버네티스를 세팅해보려고합니다. kubeadm으로 쿠버네티스를 세팅하는 것이 쿠버네티스 공식홈페이지에서도 "best practice"라고 설명되어있습니다. kubeadm은 쿠버네티스를 간단히 설치해서 사용해보기에 용이합니다. 사용 전 확인사항 쿠버네티스를 사용하기전에 장치에 아래의 스펙요구사항을 만족하는지 확인해야합니다. A co.. 2023. 1. 8.
[5분 컷 이해] CenterNet (Object as Points) 설명 요약 CenterNet은 기존의 Two stage detection방법(=한 객체에 대해서 여러 bounding box을 찾고, bounding box이 겹치는 영역을 줄이는 방법)이 비효율적인 것에 Motivaiton이 있습니다. 따라서, CenterNet은 효율적은 예측을 위해서 한 객체에는 하나의 Anchor(=center point, keypoint)만 있다고 가정하고, 이를 예측하는 문제로 바꿉니다. 일단 Anchor 을 찾고난 다음, 문제가 3D size, pose estimation이면 Anchor로부터 사이즈가 얼마인지 등을 추가로 예측하는 문제를 추가로 도입합니다. 모델 구조는 1) Heatmap: 각 객체의 Centerpoint 예측하는 출력층, 2) offset: Heatmap을 만드.. 2022. 12. 31.
[5분 컷 이해] 임상시험 IIT(intention to treat)이란? 요약 임상시험은 대부분 무작위 선정(Randomization)으로 시험군(case), 대조군(Control)을 나눈다. 이 시험군과 대조군에 중재를 할 때, 시험군 또는 대조군에 속해있는 대상자들이 모종의 이유로 중재를 못받게 되는 상황이 된다(중도 탈락, 중재 전 사망, 치료 불이행). 이 때, 어쩔수없는 이유로 중재를 못받은 사람을 분석에 포함해서 의학적 성과(outcome)을 측정해야하냐 말아야하나 고민되는 시점이 생긴다. IIT은 모종의 이유가 있다 하더라도, 일단 무작위 배정되었으면, 분석에 포함하는 것을 일컫는다(“once randomized, always analyzed”). 반대의 개념으로는 "Per-Protocol"이라고 하며, 중재를 못받은 샘플을 분석에 포함하지 않는 것을 의미한다. .. 2022. 12. 31.
도커 이미지에서 딥러닝 GPU가속 사용하기 딥러닝을 이용한 서비스를 배포할 목적이 있으면, 운영체제 등에서 독립적으로 S/W가 돌아갈 수 있게끔 배포하는 것이 중요하다. 이 때 주로쓰이는 것이 컨테이너 기술인데, 컨테이너 기술을 이용해서, 딥러닝의 GPU가속을 사용해보자. 단계는 아래와 같다 NVIDA driver (그레픽 드라이버) 와 docker은 설치 CUDA 이미지 풀하기 GPU 지원 컨테이너 만들기 방법 1: Native GPU support 방법 2: Nivida container Runtime을 이용하기 방법 3: Nivida GPus 을 위한 도커엔진 유틸리티 이용하기 확인: GPU 지원 컨테이너 내 접속 후 cuda확인 0. NVIDIA driver 확인 이미 설치된 경우, 다음의 코드로 CUDA Version을 확인한다.아래와 .. 2022. 12. 17.