프로메디우스 기술 블로그

비지도학습 기반 딥러닝 기술을 활용하여 의료 영상 재건부터 진단보조 솔루션을 개발하는 프로메디우스 Promedius 의 기술 블로그입니다.

FreeIPA를 이용한 통합 인증 (SSO)

들어가기 전에 이 게시물은 Ubuntu 20.04 , Ubuntu 21.10 에서 FreeIPA Server와 FreeIPA Client의 설치 및 작동원리에 대한 글입니다. 다른 배포판에서는 확인해보지 못하였으며, 명령어 또한 상이한 부분이 있을 수 있습니다. 개요 여러 대의 서버를 운영할 때 사용자의 인증은 중대한 문제 중 하나입니다. 프로메디우스는 Ubuntu 기반의 인프라용 서버 2대, GPU
4 min read
[Paper Review] UNet++와 U-Net3+ 논문 리뷰

[Paper Review] UNet++와 U-Net3+ 논문 리뷰

안녕하세요. 오늘은 segmentation에 많이 사용되는 architecture인 U-Net의 발전 architecture인 Nested U-Net과 U-Net3+ 논문에 대해 리뷰해보도록 하겠습니다. 참고 paper * Nested U-Net : https://arxiv.org/abs/1807.10165 * U-Net3+ : https://arxiv.org/abs/2004.08790 UNet++ : A Nested U-Net Architecture for Medical Image Segmentation 해당 논문은 2018년에 나온 논문입니다. [Abstract] UNet++는
11 min read
PyTorch

[PyTorch] 머신러닝, 딥러닝 프로젝트 설계하고 템플릿 구성하기

이번 포스트에서는 머신러닝, 딥러닝 프로젝트에서 효율적인 학습과 추론을 수행하기 위해 템플릿을 구성하는 방법에 대해 소개한다. 따라서, 이전에 소개한 DataLoder 가 템플릿 안에 포함되지만, 자세한 설명은 이전 포스트 [https://smha-61749.medium.com/pytorch-%EB%82%98%EB%A7%8C%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0%
10 min read
[논문리뷰] Adversarial Latent Autoencoders
논문리뷰

[논문리뷰] Adversarial Latent Autoencoders

-------------------------------------------------------------------------------- * 본 논문은, GAN의 Generator를 F, G로 Discriminator를 E, D로 각각 분리해서 연구를 진행했습니다. * F에서 나온 Latent space와 E를 통해 나온 latent space가 서로 동일한 분포를 가진다고 가정을 한 상태로 연구가 진행 되었으며, F는 deterministic하게 latent space mapping이 이루어지고, G와 E는 독립적이고 이미 알려진 분포의 노이즈인 \( \eta\)를 입력으로 주어
12 min read
[Flutter] Flutter에서 GraphQL을 잘 사용해보자!
Flutter

[Flutter] Flutter에서 GraphQL을 잘 사용해보자!

안녕하세요, 개발팀 톡기입니다. 오늘은 Flutter에서 GraphQL을 사용하면서 알게 된 것들을 글로 정리해 볼 거에요. 👀 코드들의 기본 틀은 graphql_flutter [https://pub.dev/packages/graphql_flutter] 패키지 문서에서 가져왔습니다. 패키지 가져오기 & 설정하기 우선 GraphQL API를 사용하기 위해 https://pub.dev/packages/graphql_flutter 패키지를 가져옵니다. dependencies: graphql_flutter: ^4.0.0-beta
7 min read
[GAN 시리즈][DCLGAN] Dual Contrastive Learning for Unsupervised Image-to-Image Translation - 1편
논문리뷰

[GAN 시리즈][DCLGAN] Dual Contrastive Learning for Unsupervised Image-to-Image Translation - 1편

Abstract Unsupervised image-to-image translation 개념 Unsupervised image-to-image translation tasks는 unpaired train data에서 source domain X와 target domain Y 간의 매핑(mapping)을 찾는걸 목표로 하는 task 입니다. CUT(Contrastive Learning for unpaired image-to-image Translation) Contrastive Learning for unpaired image-to-image Translation은 두개의 도메인 (X, Y) 모두에 대해 하나의 Encoder만 사용하여 입력
10 min read
docker

도커 컨테이너를 실행한 사용자 식별 방법 연구

개발팀 동료가 사내 서버들의 그래픽 카드 사용 현황을 종합하여 대시보드로 보여주는 프로젝트를 진행하고 있습니다. 대시보드에선 그래픽 카드를 사용하고 있는 프로세스와 해당 프로세스 사용자도 볼 수 있습니다. https://thefirstfamily.net/wp-content/uploads/2019/10/CMG-Editor-October-1-2019.png 그런데 도커 컨테이너로 실행된 프로세스는 사용자 식별이 불가했습니다. docker run ... 을 통해 컨테이너를 실행한 후
3 min read
T1, T2, FLAIR-Stacked Brain MRI Generation using StyleGAN2
StyleGAN

T1, T2, FLAIR-Stacked Brain MRI Generation using StyleGAN2

1. T1, T2, FLAIR image 1-1. MRI Parameters * MRI(자기공명영상)란 인체 내에 있는 원자핵에 외부로부터 에너지를 주어 그 핵에서 발생하는 신호(signal)를 얻어 영상화 하는 것이다. * MRI에서 주로 이용되는 원자핵은 수소원자핵 내의 양성자(proton)이다. * 즉, 해당 양성자와 외부 에너지와의 상호작용에 의해 MR 영상에 관련된 대조도를 묘사할 수
8 min read
[MemAE]Memorizing Normality to Detect Anomaly: Memory-augmented Deep Autoencoder for Unsupervised Anomaly Detection-1
Anomaly Detection

[MemAE]Memorizing Normality to Detect Anomaly: Memory-augmented Deep Autoencoder for Unsupervised Anomaly Detection-1

Abatract 정상 데이터를 이용하여 Autoencoder(AE)을 학습하면 정상보단 비정상 데이터에 대해 더 높은 재구성 오류(reconstruction error)을 얻게 됩니다. 하지만 AE는 일반화(Generalization)가 잘 이루어진다는 특징이 있어서 비정상 데이터가 입력되어도 정상을 재구성 해야하지만 결함이 있는 부분까지 포함하여 재구성 하는 경우가 발생하게 됩니다. 이런 AE기반 이상 탐지(Anomaly
9 min read
개발팀 인턴의 좌충우돌 Figma i18n 플러그인 제작기
피그마

개발팀 인턴의 좌충우돌 Figma i18n 플러그인 제작기

Figma [https://www.figma.com]를 아시나요? Figma Figma는 UI 프로토타이핑 툴인데요. 위처럼 단순히 와이어프레임을 만들 수 있을 뿐 아니라, [https://www.figma.com/prototyping/]이렇게 요소들의 상호작용도 표현할 수 있습니다. [https://www.figma.com/collaboration/] 무엇보다 이렇게 여러 사람이 함께 수정도 가능합니다. 게다가 웹 기반 툴이라 웹 브라우저에서 사용할
16 min read
[MRI basics] k-space 변화에 따른  이미지 변화 확인하기

[MRI basics] k-space 변화에 따른 이미지 변화 확인하기

1. k-space란? * MRI 촬영 시 RF Pulse를 주고 난 다음 위상 부호화(phase-encoding) 경사자계(Gradient, G)의 크기를 각 단계별로 변화시키면 여러 위치 정보를 가지고 있는 신호를 얻을 수 있는데 이러한 data를 raw data라고 부른다. 여기에는 위치 정보와 대조도 정보를 함께 갖고 있으며 k-space는 한 개의 영상을 만들 수 있는
7 min read
Transformer는 이렇게 말했다, "Attention is all you need."
transformer

Transformer는 이렇게 말했다, "Attention is all you need."

Transformer? 'Transformer'라는 말을 들었을 때 무엇이 연상되는가? 할리우드의 유명한 변신로봇 영화? 인공지능 번역 알고리즘? 구글에 따르면 여전히 전세계적으로 전자의 영화를 떠올리지만, 적어도 대한민국(과 일본)에서는 후자가 압도하고 있는 것으로 보인다. 그림1. 'Transformer movie'와 'Transformer attention'의 구글 트렌드 비교. 아직까지 전세계적으로는 영화가 압도적이지만 대한민국과 일본에서는 Transformer 알고리즘의 핵심 개념인 attention을
16 min read
[Self-Supervised Learning] Review: Bootstrap Your Own Latent -A New Approach to Self-Supervised Learning
paper review

[Self-Supervised Learning] Review: Bootstrap Your Own Latent -A New Approach to Self-Supervised Learning

최근 Self-Supervised Learning 에 관한 연구가 활발해지면서 자연스럽게 Bootstrap Your Own Latent [https://arxiv.org/abs/2006.07733] 에도 관심을 가지고 접하게 되었다. BYOL 이 발표되기 전 까지는 아마도 MoCo 나 SimCLR 정도가 좋은 성능을 내고 있었지만, supervised learning 과 더 가까운 수준의 top-1 classification accuracy 를 보여 주는 것은
10 min read
TorchIO를 이용한 3D Segmentation

TorchIO를 이용한 3D Segmentation

안녕하세요, 프로메디우스 ML팀 인턴사원 유환승입니다. 이번 포스팅에서는 Pytorch를 기반으로 한 TorchIO를 통해 간단하게 3D segmentation을 진행하는 튜토리얼을 진행해보려 합니다. 위의 Table은 3D U-Net : Learning Dense Volumentric Segmentation from Sparse Annotation에서 소개된 성능입니다. 2D segmentation에 비해서 상대적으로 3D를 통한 Segmentation 성능이 더 좋음을 확인할 수 있었습니다.저는 3D segmentation을 사용하기 쉽게
4 min read