Pytorch 딥 러닝 실습 자습서 (1) : 시맨틱 분할 기반 및 환경 구축

Pytorch의 기본 사용 및 의미 분할 알고리즘 설명

가장 간단한 시맨틱 분할 기반 및 개발 환경 설정부터 시작하겠습니다.

2. 의미 론적 분할 의미 론적 분할
이란 무엇입니까?

시맨틱 분할 : "시맨틱"에 따라 이미지에서 대상 카테고리의 각 지점에 레이블을 지정하여 이미지에서 다른 종류의 사물을 구별 할 수 있습니다. 픽셀 단위의 분류 작업으로 이해 될 수 있으며, 핵심은 각 픽셀을 분류하는 것입니다.

간단히 말해, 우리의 목표는 RGB 컬러 이미지 (높이 x 너비 x3) 또는 회색조 이미지 (높이 x 너비 x1)에 각 픽셀의 범주 레이블 (높이 x 너비 x1)을 포함하는 분할 맵을 출력하는 것입니다. 자세한 내용은 다음 그림에 나와 있습니다.
여기에 사진 설명 삽입
참고 : 시각적 명확성을 위해 위의 예측 맵은 저해상도 맵입니다. 실제 애플리케이션에서 분할 주석의 해상도는 원본 이미지의 해상도와 동일해야합니다.

여기에있는 사진은 사람 (사람), 지갑 (패키지), 식물 / 잔디 (식물 / 잔디), 보도 (보도), 건물 / 구조물 (건물)의 다섯 가지 범주로 나뉩니다.

표준 범주 형 값과 유사하게 여기에는 원-핫 인코딩 된 대상 범주 레이블 생성도 있습니다. 본질적으로 각 범주에 대한 출력 채널을 생성합니다.
여기에 사진 설명 삽입
위 그림 에는 5 개의 카테고리가 있으므로 다음 그림과 같이 네트워크에서 출력하는 채널 수도 5 개입니다. 위 그림에서와 같이 예측 결과는 argmax를 깊이 계산하여 분할로 통합 할 수 있습니다. 그림의 각 픽셀에 대해. 또한 각 표적을 겹치는 방식으로 쉽게 관찰 할 수 있습니다.

argmax의 방법도 이해하기 쉽습니다. 위의 그림에서 볼 수 있듯이 각 채널에는 0 또는 1 만 있습니다. Person 채널을 예로 들면 빨간색 1은 Person 픽셀을 나타내고 다른 픽셀은 모두 0입니다. 다른 채널의 경우도 마찬가지이며 두 개 이상의 채널에서 동일한 픽셀이 1 인 경우는 없습니다. 따라서 각 픽셀의 최대 인덱스 채널 값은 argmax를 통해 구합니다. 최종 결과는 다음과 같습니다.
여기에 사진 설명 삽입
원본 이미지에서 하나의 채널 레이어 만 겹치는 경우이를 마스크라고 부르며 특정 범주가 존재하는 영역 만 나타냅니다.

고해상도 결과는 다른 범주를 나타내는 다른 색상으로 아래 그림에 나와 있습니다.

여기에 사진 설명 삽입
3. 데이터 세트
공통 시맨틱 분할 알고리즘은지도 학습에 속하므로 레이블이 잘 지정된 데이터 세트가 필수적입니다.

많은 공개 의미 론적 분할 데이터 세트가 있으며, 현재 학술 커뮤니티에는 모델 훈련 및 테스트를위한 세 가지 벤치 마크 (데이터 세트)가 있습니다.

가장 일반적으로 사용되는 데이터 세트는 Pascal VOC 시리즈입니다. 이 시리즈에서 가장 인기있는 것은 VOC2012이며 Pascal Context와 같은 유사한 데이터 세트도 유용합니다.

두 번째로 일반적으로 사용되는 데이터 세트는 Microsoft COCO입니다. COCO는 총 80 개의 카테고리를 가지고 있으며 상세한 픽셀 레벨 주석이 있지만 의미 론적 분할에 대한 공식적인 평가는 없습니다. 이 데이터 세트는 주로 인스턴스 레벨 분할 및 이미지 설명에 사용됩니다. 따라서 COCO 데이터 세트는 종종 모델 학습을위한 추가 학습 데이터 세트로 간주됩니다.

세 번째 데이터 세트는 평가를 위해 더 일반적인 19 개 카테고리를 사용하는 보조 운전 (자율 운전) 환경에 대한 도시 풍경입니다.

의미 론적 분할 훈련에 사용할 수있는 데이터 세트는 많습니다.

Pascal Voc 2012 :보다 일반적인 개체 분류, 21 개 범주,
MS COCO : Microsoft 후원, 이미지 의미 이해 알고리즘의 성능 평가를위한 "표준"데이터 세트, 총 80 개 범주,
도시 풍경 : 50 개의 유럽 도시 포함 다양한 장면, 다양한 배경 및 다양한 계절의 거리 장면에서 33 가지 유형의 라벨링 된 객체;
Pascal-Context : PASCAL-VOC 2010 인식 대회의 확장, 총 59 개 카테고리;
KITTI : 모바일 로봇 및 자율 주행에 가장 인기있는 연구 데이터 세트 중 하나, 총 11 개 범주,
NYUDv2 : 2.5 차원 데이터 세트, Microsoft Kinect 장비로 캡처 한 1449 개의 실내 RGB-D 이미지 포함,
SUN-RGBD : 10000 An을 포함하는 4 개의 RGB-D 센서로 획득 RGB-D 이미지, 크기는 PASCAL VOC와 동일합니다.
ADE20K_MIT : 장면 이해를위한 새로운 데이터 세트,이 데이터 세트는 총 151 개 범주의 무료로 다운로드 할 수 있습니다.
많은 데이터 세트가 있습니다.이 튜토리얼 시리즈는 특정 데이터 세트에 국한되지 않고 Kaggle 대회와 같은 데이터 세트를 사용할 수도 있습니다. 각 데이터 세트를 처리하는 방법, 데이터 세트의 형식 및 내용 이후 기사에서 사용 데이터 세트에 대해 자세히 설명합니다.

넷째, GPU 머신
시맨틱 분할 작업을 위해서는 고급 GPU 그래픽 카드가 장착 된 머신이 필요하며 그렇지 않은 경우 훈련 수렴 속도가 매우 느립니다.

최상의 개발 환경은 Linux입니다. 회사의 일상 업무는 기본적으로 모델 개발을 위해 Linux 클라우드 서버를 사용하는 것이므로 Linux 운영 체제에 미리 적응하는 것이 좋습니다.

학생 파티의 경우 실험실에서 딥 러닝 방향으로 연구를 수행하고 리소스가 완료되면 GPU 서버를 계속 사용할 수 있어야하며 GPU 서버에 대해 걱정할 필요가 없습니다.

그러나 제한된 조건으로 인해 실험실에는 GPU 서버가 장착되어 있지 않습니다. 딥 러닝 관련 지식을 배우고 싶다면 다음 세 가지 방법이 있습니다.

1.
간신히 사용할 수 있는 무료 클라우드 서버 인 Google Colab은 Google Colab입니다. 구글에서 제공하는 무료 GPU 서버입니다. 제공되는 GPU 컴퓨팅 성능은 나쁘지 않지만 그 주된 문제는 벽을 뒤집어 야한다는 것입니다. Google Colab의 저장 공간은 Google 드라이브를 탑재하여 확보합니다. Google 드라이브는 15G의 무료 저장 공간 만 제공합니다. 공간을 확장하려면 여전히 비용을 지출해야합니다.

무료 클라우드 서버 Google Colab을 사용하려면 Baidu 튜토리얼을 직접 사용할 수 있습니다.

2. Alibaba Cloud 유료 GPU 클라우드 서버
Alibaba Cloud는 GPU 클라우드 서버 리소스를 제공하며, 결제 방식은 월별 결제와 유료 결제 방식이 있습니다. P4 서버와 V100 서버도 있습니다. 성능이 강하고 가격이 매우 감동적이며 두 단어로 매우 비싸고 개인 사용자는 구매를 권장하지 않습니다. Alibaba Cloud에서 제공하는 GPU 클라우드 서비스 외에도 Tencent, Baidu 및 Huawei는 모두 해당 서비스를 제공하지만 모두 비쌉니다.

3. 컴퓨터 호스트
구성 데스크톱 호스트를 직접 구성 할 수 있으며 이는 자신에 대한 투자로 간주 될 수 있습니다. 딥 러닝 훈련에 사용할 수있는 좋은 호스트를 구성하는 데 약 6,000 위안이 소요됩니다.

딥 러닝 교육은 그래픽 카드의 성능에 크게 좌우되므로 더 나은 N 카드, 즉 NVIDIA 그래픽 카드를 구성해야합니다. 그래픽 카드를 선택하는 비결은 그래픽 카드 래더 차트를 보는 것입니다.
여기에 사진 설명 삽입
이 그래픽 카드 래더 차트에는 주로 시장에서 일반적으로 사용되는 그래픽 카드의 순위가 포함되어 있으며 V100과 같이 가격이 100,000 인 그래픽 카드는 제외됩니다.

래더 다이어그램이 높을수록 그래픽 카드의 성능이 높아집니다. 오른쪽의 AMD 그래픽 카드를 선택하지 마십시오. 성능은 좋지만 카드 A는 CUDA를 지원하지 않습니다.

예산에 따라 그래픽 카드를 선택하십시오. 그래픽 카드로 8G 이상의 비디오 메모리를 선택하십시오. 딥 러닝 모델 학습은 비디오 메모리 리소스를 사용합니다.

MSI의 RTX 2060 Super를 3,399 위안에 샀는데 그래픽 카드는 가치가없고 시간이지나면서 가격이 점점 낮아질 것입니다.

CPU, 컴퓨터 마더 보드, 전원 공급 장치, 메모리 및 라디에이터 등의 선택과 같이 컴퓨터 구성에 대해 작성할 수있는 내용이 많이 있으므로 여기서는 설명하지 않겠습니다. 자신의 데스크탑을 조립할 에너지가 없다면 해당 그래픽 카드가 장착 된 데스크탑을 직접 구입할 수 있지만 가격은 직접 조립 한 데스크탑보다 높습니다.

V. 개발 환경 구축
조건이 허락 한다면 Ubuntu 시스템을 사용하여 개발 환경을 구성하는 것이 좋습니다 Ubuntu는 친숙한 인터페이스와 간단한 조작으로 초보자에게 적합한 Linux 배포판 중 하나입니다.

구입 한 컴퓨터 마더 보드는 Linux 기반 시스템의 설치를 지원하지 않기 때문에 향후 개발 환경으로 Windows를 사용할 예정이지만 알고리즘 원리 및 코드 설명에는 영향을 미치지 않습니다.

내 데스크탑 구성 :

CPU : 인텔 i7 9700k

그래픽 : RTX 2060 Super

시스템 : Windows 10

Windows 시스템과 필요한 드라이버를 설치 한 후 설치해야하는 도구는 CUDA, Anaconda3, cuDNN, Pytorch-gpu, Fluent 터미널 (옵션)입니다.

1. CUDA
CUDA는 그래픽 카드 제조업체 NVIDIA에서 출시 한 컴퓨팅 플랫폼입니다. 그래픽 카드 모델에 따라 지원되는 CUDA 버전을 선택해야합니다. 예를 들어 RTX 2060 Super는 CUDA 10을 지원합니다. 다운로드 링크 : 클릭하여보기

여기에 사진 설명 삽입
바보 스타일의 설치는 매우 간단합니다.

설치 후 시스템, 컴퓨터-> 마우스 오른쪽 버튼-> 속성-> 고급 시스템 설정-> 환경 변수-> 경로
여기에 사진 설명 삽입
의 환경 변수를 구성해야합니다. 환경 변수에 고유 한 NVSMI 경로를 추가하고 기본값을 사용했습니다. 설치 주소 :
여기에 사진 설명 삽입
구성 cmd에서 nvidia-smi 명령을 사용하여 그래픽 카드를 볼 수 있습니다.

2. Anaconda3
Anaconda는 Python의 패키지 관리자 및 환경 관리자로, Python 용 타사 라이브러리 설치를 용이하게 할 수 있습니다.

다운로드 주소 : 클릭하여보기
여기에 사진 설명 삽입
Python 3.7 버전을 선택하면 설치도 매우 간단하며 다음 단계는 어리 석습니다.

설치 후 CUDA를 설치할 때와 동일한 방식으로 시스템 환경 변수를 추가해야합니다.

D:\Anaconda
D:\Anaconda\Scripts

경로는 직접 설치 한 Anaconda 경로로 변경할 수 있습니다.

구성이 완료된 후 cmd에서 conda -V를 실행하면 오류가보고되지 않고 버전 정보가 출력되어 구성이 성공했음을 나타냅니다.

3. cuDNN을 설치하고 Pytorch
cuDNN은 심층 신경망을위한 GPU 가속 라이브러리입니다. 성능, 사용 용이성 및 낮은 메모리 오버 헤드를 강조합니다.

Anaconda를 설치 한 후 conda를 사용하여 cuDNN 및 Pytorch를 설치할 수 있습니다.

Anaconda와 함께 제공되는 명령 줄 도구 인 Anaconda Prompt를 엽니 다. 먼저이 도구를 사용하여 환경을 만들어야합니다. 시스템과 함께 제공되는 cmd를 직접 사용하십시오. CondaHTTPError와 같은 이상한 문제가 발생할 수 있습니다. Anaconda 프롬프트에 입력 :


conda create -n your_name jupyter notebook

이 문장의 의미는 your_name이라는 가상 환경을 생성하는 것이며,이 가상 환경은 jupyter 노트북의 타사 라이브러리를 추가로 설치합니다. your_name을 원하는 이름으로 변경할 수 있습니다.이 이름은 가상 환경의 이름이며 jack과 같이 원하는대로 사용할 수 있습니다.

그런 다음 y를 입력하여 설치합니다.
여기에 사진 설명 삽입
설치가 완료된 conda info -e 명령을 통해 기존 환경을 확인할 수 있습니다.
여기에 사진 설명 삽입
위의 그림에서 볼 수 있듯이 두 가지 환경이 있습니다. 하나는 기본, 내장 된 기본 환경, 다른 하나는 잭이라는 새로 생성 된 환경입니다. 새로운 환경을 만드는 이유는 구성된 환경을 별도로 관리 할 수 ​​있기 때문입니다.

환경을 설치 한 후 잭 환경을 활성화하고 Pytorch의 cuDNN 및 GPU 버전을 설치할 수 있습니다. jack이라는 환경을 활성화합니다.


activate jack

여기에 사진 설명 삽입
보시다시피 우리 환경은베이스에서 잭으로 바뀌 었습니다. 잭 환경에 cuDNN 설치 :

conda 설치 cudnn

cuDNN을 설치 한 후 Pytorch를 설치하고 Pytorch 공식 웹 사이트를 엽니 다. 클릭하면
여기에 사진 설명 삽입
자신의 환경에 따라 선택 을 볼 수 있습니다. 선택하면 웹 페이지가 자동으로 실행 지침을 제공합니다. Python 버전과 CUDA 버전을 구분해야 할 수 있습니다.

Python 버전보기 방법 : 명령 줄에 직접 python을 입력하면 Python 버전이 표시됩니다.
여기에 사진 설명 삽입
CUDA 버전을 보려면 명령 줄에 nvidia-smi를 입력
여기에 사진 설명 삽입
합니다. 버전을 확인한 Pytorch 공식 웹 사이트에서 제공하는 지침에 따라 Pytorch의 GPU 버전을 설치할 수 있습니다.

이 시점에서 기본 환경 설정이 완료되었습니다. 축하합니다.

4. Fluent Terminal의
기본 환경 구성되어 있으며 정상적인 사용으로 충분합니다.

그러나 아름다움을 추구하는 사람들은 Windows와 함께 제공되는 명령 줄 도구와 Anaconda에서 제공하는 명령 줄 도구가 너무 추하다고 느낄 수 있습니다.

보기 좋고 사용하기 쉬운 터미널이 있습니까? 대답은 '예'이지만 직접 구성해야하며 천천히 밟아야하는 구덩이가 있습니다.

예를 들어 Fluent Terminal은 제가 추천하는 최신 터미널 도구입니다. Windows 플랫폼에 구축되고 UWP 기술을 사용하여 매우 높은 가치를 지닌 터미널 에뮬레이터입니다. 먼저 얼굴의 가치를 살펴보십시오.
여기에 사진 설명 삽입

추천

출처blog.csdn.net/weixin_44517301/article/details/114965350