전체 글

Programming/Coding Problem

BOJ 10813번: 공 바꾸기

핵심 포인트 반복문 : for문 제출코드 N, M = map(int, input().split()) switch = [map(int, input().split()) for _ in range(M)] backets = [i + 1 for i in range(N)] for i, j in switch: old_i, old_j = backets[i - 1], backets[j - 1] backets[i - 1], backets[j - 1] = old_j, old_i print(' '.join(map(str, backets))) 해설 switch 리스트에서는 각 바구니에 들어있는 공을 바꾸는 정보를 넣어주고 backets 리스트에는 현재 바구니안에 들어있는 공의 번호를 넣어줍니다. 초기화는 [1, 2, 3, 4,..

논문 함께 읽기/2D Image Segmentation (IS2D)

[IS2D] SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation (IEEE TPAMI2017)

안녕하세요. 지난 포스팅의 [IS2D] U-Net: Convolutional Networks for Biomedical Image Segmentation (MICCAI2016)에서는 현재 수많은 영상 분할 영상의 기초가 되는 UNet에 대해서 알아보았습니다. 오늘은 이를 좀 더 효율적으로 구현한 SegNet에 대해서 소개해드리도록 하겠습니다. SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation We present a novel and practical deep fully convolutional neural network architecture for semantic pixel-wise segmentation t..

Programming/Coding Problem

BOJ 10810번: 공 넣기

핵심 포인트 반복문 : for문 제출코드 N, M = map(int, input().split()) backets = [map(int, input().split()) for _ in range(M)] ball = [0] * N for start, end, number in backets: for idx in range(start, end + 1): ball[idx - 1] = number print(' '.join(map(str, ball))) 해설 backets 리스트에 공을 넣은 바구니의 시작 번호와 끝번호 그리고 공의 번호를 입력받아 줍니다. 그리고 반복문을 통해 순회하며 해당 바구니의 시작번호부터 끝번호까지 주어진 공의 번호를 넣어주면 됩니다. 참고자료 및 그림출처 백준 코딩 문제

Programming/Coding Problem

BOJ 10807번 : 개수 세기

완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 반복문 : for문 제출코드 N = int(input()) num_list = map(int, input().split()) v = int(input()) cnt = 0 for value in num_list: if value == v: cnt += 1 print(cnt) 해설 숫자 배열 num_list와 세고자 하는 숫자 v를 입력받으면 반복문을 순회하면서 v와 value가 동일한 경우에만 cnt에 1을 더해주면 됩니다. 참고자료 및 그림출처 백준 코딩 문제

논문 함께 읽기/2D Image Segmentation (IS2D)

[IS2D] U-Net: Convolutional Networks for Biomedical Image Segmentation (MICCAI2016)

안녕하세요. 오늘은 간단한 구조이지만 매우 강력한 성능을 자랑하는 segmentation 구조 중에 하나인 U-net에 대해서 다루어보겠습니다. 참고로 이전에 리뷰한 FCN과 연결되니 읽어보고 오시는 것을 추천드립니다. Network Architecture U-net의 네트워크 구조는 위와 같습니다. 실제로 U자형을 그리는 것을 볼 수 있습니다. 구조를 한번 뜯어보겠습니다. 본 논문에서는 크게 2개의 서브 네트워크로 나누어 설명합니다. 각각 contracting path, expansive path라고 합니다. contracting path는 왼쪽의 채널의 개수가 점점 많아지는 네트워크이고 expansive path는 오른쪽의 채널의 개수가 점점 줄어들어 최종적으로는 입력 이미지와의 shape이 동일해지..

논문 함께 읽기/2D Image Classification (IC2D)

[IC2D] Densely Connected Convolutional Networks (CVPR2017)

안녕하세요. 지난 포스팅의 [IC2D] Aggregated Residual Transformations for Deep Neural Networks (CVPR2017)에서는 깊이(depth)나 너비 (width)보다 cardinality의 중요성을 강조하는 ResNext를 제안하였습니다. ResNet과 유사한 복잡도를 가지지만 성능 향상은 꽤 높은 편이였죠. 오늘은 계층간의 연결성 (connection)을 강조한 DenseNet에 대해서 소개해드리도록 하겠습니다. Densely Connected Convolutional Networks Recent work has shown that convolutional networks can be substantially deeper, more accurate, a..

논문 함께 읽기/2D Image Classification (IC2D)

[IC2D] Aggregated Residual Transformations for Deep Neural Networks (CVPR2017)

안녕하세요. 지난 포스팅의 [IC2D] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (arxiv2017)에서는 휴대장치에서도 빠르게 동작할 수 있는 효율적인 모델인 MobileNet에 대해서 소개해드렸습니다. 저희는 이때 처음으로 nn.Conv2d의 인자인 groups에 대해서 알게 되었습니다. MobileNet에서는 이를 depthwise로 사용하여 연산량을 낮추는 데 사용하였죠. 오늘은 ResNet과 InceptionNet을 기반으로 연구된 ResNext에 대해서 소개해드리도록 하겠습니다. Aggregated Residual Transformations for Deep Neural Networks ..

논문 함께 읽기/2D Image Classification (IC2D)

[IC2D] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (arxiv2017)

안녕하세요. 지난 포스팅의 [IC2D] Wide Residual Networks (BMVC2016)에서는 모델의 깊이 (depth)보다는 너비 (width)에 초점을 맞추어 깊은 모델이 아니더라도 충분히 좋은 성능을 낼 수 있음을 증명하였습니다. 오늘은 효율적인 모델로 유명한 MobileNet에 대해서 소개해드리도록 하겠습니다. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications We present a class of efficient models called MobileNets for mobile and embedded vision applications. MobileNets are based on a st..

Johns Hohns
Everyday Image Processing