>  기사  >  기술 주변기기  >  딥러닝 이미지 분할: 네트워크 구조 설계 개요

딥러닝 이미지 분할: 네트워크 구조 설계 개요

WBOY
WBOY앞으로
2023-04-08 19:31:011714검색

이 기사에서는 이미지 의미론적 분할을 위해 CNN을 사용할 때 네트워크 구조의 혁신을 요약합니다. 이러한 혁신에는 주로 새로운 신경 아키텍처(다양한 깊이, 너비, 연결 및 토폴로지) 설계와 새로운 구성 요소 또는 레이어 설계가 포함됩니다. 전자는 기존 구성 요소를 사용하여 복잡한 대규모 네트워크를 조립하는 반면 후자는 기본 구성 요소를 설계하는 것을 선호합니다. 먼저 몇 가지 고전적인 의미론적 분할 네트워크와 그 혁신을 소개한 다음 의료 영상 분할 분야에서 네트워크 구조 설계의 일부 응용 프로그램을 소개합니다.

1. 이미지 의미 분할 네트워크 구조 혁신

1.1 FCN 네트워크

딥러닝 이미지 분할: 네트워크 구조 설계 개요

FCN 전체 아키텍처

간략화된 다이어그램FCN 네트워크는 FCN 네트워크가 처음이기 때문에 별도로 나열됩니다. 완전히 새로운 관점에서 의미 분할 문제를 해결하는 네트워크입니다. 신경망 기반의 기존 이미지 의미 분할 네트워크는 분류할 픽셀을 중심으로 이미지 블록을 사용하여 중앙 픽셀의 레이블을 예측합니다. 일반적으로 이 방법은 전역 컨텍스트 정보를 활용할 수 없습니다. FCN 네트워크는 완전 연결 레이어 FC를 버리고 컨볼루션 레이어를 사용하여 네트워크를 구축합니다. 네트워크 출력은 입력 이미지의 예측 마스크와 직접적으로 동일하며 효율성과 정확성이 크게 향상되었습니다.

딥러닝 이미지 분할: 네트워크 구조 설계 개요

FCN 다양한 레이어 기능 융합 개략도

혁신 포인트: 전치된 콘볼루션 deconv(deconvolution) 연결 건너뛰기(추가)

1.2 인코딩 구조(인코더-디코더)

  • SegNet은 기본적으로 FCN 네트워크와 동일한 아이디어입니다. 인코더 부분은 VGG16 컨볼루션의 처음 13개 레이어를 사용합니다. 차이점은 디코더 부분의 업샘플링 방법에 있습니다. FCN은 해당 인코더 크기의 특징 맵에 특징 맵을 역변환한 결과를 추가하여 업샘플링 결과를 얻고, SegNet은 인코더 부분의 maxpool 인덱스를 사용하여 Decoder 부분을 업샘플링합니다. 특히 디코더는 해당 인코더의 최대 풀링 단계에서 계산된 풀링 인덱스를 사용하여 비선형 업샘플링을 수행합니다.)

혁신 포인트: 인코더-디코더 구조;

딥러닝 이미지 분할: 네트워크 구조 설계 개요

SegNet 네트워크

딥러닝 이미지 분할: 네트워크 구조 설계 개요

SegNet과 FCN의 Upsample 방식 비교

  • U-Net 네트워크는 원래 생체의학 영상용으로 설계되었지만 성능이 좋지 않음 성능, 지금 UNet과 그 변형은 CV의 다양한 하위 필드에서 널리 사용되었습니다. UNet 네트워크는 U 채널과 건너뛰기 연결로 구성됩니다. U 채널은 SegNet의 인코딩 및 디코딩 구조와 유사합니다. 인코딩 부분(축소 경로)은 특징 추출을 수행하고 컨텍스트 정보를 캡처하며, 디코딩 부분(확장 경로) ) 디코딩 이미지를 사용하여 픽셀 레이블을 예측합니다. 단락 채널은 모델 정확도를 향상시키고 기울기가 사라지는 문제를 해결합니다. 위에서 사용된 단락 채널 특징 맵과 특징 맵은 추가되는 것이 아니라 접합되어 있다는 점에 특히 중요합니다(FCN과 다름).

혁신 포인트: U자형 구조, 단락 채널(연결 건너뛰기)

딥러닝 이미지 분할: 네트워크 구조 설계 개요

U-Net 네트워크

  • V-Net 네트워크 구조는 아키텍처가 건너뛰기 연결을 추가하고 2D 작업을 3D 작업으로 대체하여 3D 이미지(체적 이미지)를 처리한다는 점을 제외하면 U-Net과 유사합니다. Dice와 같이 널리 사용되는 세분화 측정항목에 최적화되었습니다.

딥러닝 이미지 분할: 네트워크 구조 설계 개요

V-Net 네트워크

혁신 포인트 : 3D 버전의 U-Net 네트워크와 동일

  • FC-DenseNet(100층 티라미수 네트워크) 제목: The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation) 네트워크 구조는 Dense Block과 UNet 아키텍처로 구성됩니다. 이 네트워크의 가장 간단한 버전은 아래쪽으로 전환하는 2개의 다운샘플링 경로와 위쪽으로 전환하는 2개의 업샘플링 경로로 구성됩니다. 또한 다운샘플링 경로의 기능 맵을 업샘플링 경로의 해당 기능 맵과 연결하기 위한 두 개의 수평 건너뛰기 연결도 포함되어 있습니다. 업샘플링 경로와 다운샘플링 경로의 연결 패턴은 정확히 동일하지 않습니다. 다운샘플링 경로에는 각 조밀한 블록 외부에 스플라이싱 경로 건너뛰기가 있으므로 특성 맵 수가 선형적으로 증가하는 반면, 업샘플링 경로에서는 선형적으로 증가합니다. 그런 조작은 없습니다. (한 가지 더, 이 네트워크의 약칭은 Dense Unet이라고 할 수 있는데, 광음향 영상 아티팩트 제거에 관한 논문인 Fully Dense UNet for 2D Sparse Photoacoustic Tomography Artifact Removal이라는 논문이 있습니다. 이 글을 인용한 블로그를 많이 봤습니다. . 논문의 그림은 의미론적 분할에 대해 이야기하는데 전혀 동일하지 않습니다 =_=|| 직접 구별할 수 있습니다)

딥러닝 이미지 분할: 네트워크 구조 설계 개요

FC-DenseNet (100층 티라미수 네트워크)

혁신 포인트: DenseNet 및 U-Net 네트워크 통합(정보 교환의 관점에서 보면 밀도가 높은 연결이 실제로 잔여 구조보다 강력함)

  • Deeplab 시리즈 네트워크는 인코딩 및 디코딩 구조를 기반으로 제안됩니다. 버전인 2018 DeeplabV3+ 네트워크는 VOC2012 및 Cityscapes 데이터 세트에서 탁월한 성능을 발휘하여 SOTA 수준에 도달했습니다. DeepLab 시리즈에는 V1, V2, V3 및 V3+의 네 가지 논문이 있습니다. 일부 논문의 핵심 내용을 간략하게 요약합니다.

1) DeepLabV1: 컨벌루션 신경망과 확률 그래프 모델의 융합: 분할 및 위치 정확도를 향상시키는 CNN+CRF 딥러닝 이미지 분할: 네트워크 구조 설계 개요

딥러닝 이미지 분할: 네트워크 구조 설계 개요

2) DeepLabV2: ASPP(확장) 공간 피라미드 풀링); CNN+CRF

딥러닝 이미지 분할: 네트워크 구조 설계 개요

딥러닝 이미지 분할: 네트워크 구조 설계 개요

3) DeepLabV3: 향상된 ASPP, 1*1 컨볼루션 및 글로벌 평균 풀링(글로벌 평균 풀) 비교 계단식 및 병렬 확장 컨볼루션 누적 효과.

딥러닝 이미지 분할: 네트워크 구조 설계 개요

Cascade Atrous Convolution

딥러닝 이미지 분할: 네트워크 구조 설계 개요

ASPP(Parallel Atrous Convolution)

4) DeepLabV3+: 코덱 아키텍처 아이디어 추가 및 데코 추가 DeepLabv3를 확장하기 위한 모듈; ASPP 및 디코더 모듈에 깊이별 분리 가능한 컨볼루션을 적용합니다. 백본으로 Xception이 향상되었습니다.

딥러닝 이미지 분할: 네트워크 구조 설계 개요

DeepLabV3+

일반적으로 DeepLab 시리즈의 핵심 기여: atrous convolution; 딥 네트워크 흐릿한 문제의 경우 CRF를 추가하는 것보다 효과가 더 좋습니다.)

  • PSPNet(피라미드 장면 구문 분석 네트워크)은 다양한 영역의 컨텍스트 정보를 집계하여 전역 컨텍스트 정보를 활용하는 네트워크의 능력을 향상시킵니다. SPPNet에서는 피라미드 풀링을 통해 생성된 서로 다른 수준의 특징 맵을 최종적으로 평면화하고 연결한 다음 분류를 위해 완전 연결 계층으로 전송하므로 이미지 분류에 고정된 입력 크기가 필요한 CNN의 한계가 제거됩니다. PSPNet에서 사용되는 전략은 pooling-conv-upsample을 사용한 후 splicing하여 특징 맵을 얻은 다음 레이블 예측을 수행하는 것입니다.

딥러닝 이미지 분할: 네트워크 구조 설계 개요

PSPNET 네트워크 pinnovation Points : multi-scale 풀링 글로벌 이미지 수준의 사전 지식을 더 잘 활용하여 복잡한 장면을 이해하기 위해 중간 활성화 맵을 수정하여 연결 선명도 손실을 방지하면서 다중 규모 활성화를 결합합니다. 네트워크는 독립적인 Refine 모듈로 구성되며, 각 Refine 모듈은 Residual Convolutional Unit(RCU), Multi-Resolution Fusion(MRF) 및 Chain Residual Pooling(CRP)의 세 가지 주요 모듈로 구성됩니다. 전체적인 구조는 U-Net과 다소 유사하지만 점프 연결(단순 연결이 아닌)에서 새로운 조합 방식을 설계했습니다. 개인적으로 이 구조는 실제로 자신의 네트워크 설계에 대한 아이디어로 매우 적합하다고 생각합니다. 다른 CV 문제에 사용되는 CNN 모듈을 많이 추가할 수 있으며 U-Net을 전체 프레임워크로 사용하면 효과도 나쁘지 않을 것입니다.

    RefineNet 네트워크
혁신 포인트: 모듈 개선

딥러닝 이미지 분할: 네트워크 구조 설계 개요

1.3 계산적으로 복잡한 네트워크 구조 감소

또한 의미론적 분할 네트워크의 계산 복잡성을 줄이기 위한 많은 작업이 있습니다. 심층 네트워크의 구조를 단순화하는 몇 가지 방법: 텐서 분해, 채널/네트워크 가지치기. 모듈의 구조나 전체 네트워크를 검색하기 위해 수동 설계를 대체하기 위해 NAS(Neural Architecture Search)를 사용하는 경우도 있습니다. 물론 AutoDL에 필요한 GPU 리소스는 많은 사람들을 설득할 것입니다. 따라서 일부 사람들은 무작위 검색을 사용하여 훨씬 작은 ASPP 모듈을 검색한 다음 작은 모듈을 기반으로 전체 네트워크 모델을 구축합니다. 경량 네트워크 설계는 업계의 합의입니다. 모바일 배포의 경우 각 시스템에 2080ti를 장착하는 것은 불가능합니다. 또한 전력 소비, 저장 및 기타 문제로 인해 모델의 홍보 및 적용이 제한됩니다. 하지만 5G가 대중화되면 모든 데이터를 클라우드에서 처리할 수 있다는 점은 매우 흥미롭다. 물론 단기(10년)에는 5G의 본격적인 전개가 가능할지는 알 수 없다.

1.4 주의 메커니즘 기반 네트워크 구조

주의 메커니즘은 다음과 같이 정의할 수 있습니다. 후속 레이어/특성 맵 정보를 사용하여 입력 특성 맵에서 가장 판단력이 있는(또는 두드러진) 부분을 선택하고 찾습니다. 간단히 말해서 특징 맵에 가중치를 부여하는 방식이라고 생각하면 됩니다(가중치는 네트워크를 통해 계산됩니다). 가중치의 다양한 기능에 따라 채널 주의 메커니즘(CA)과 공간 주의 메커니즘(PA)으로 나눌 수 있습니다. . FPA(Feature Pyramid Attention) 네트워크는 어텐션 메커니즘과 공간 피라미드를 결합하여 확장 및 인간이 설계한 디코더 네트워크를 사용하지 않고 픽셀 수준 라벨링을 위한 정확한 특징을 추출하는 어텐션 메커니즘을 기반으로 하는 의미론적 분할 네트워크입니다.

1.5 적대적 학습에 기반한 네트워크 구조

Goodfellow et al.은 2014년에 심층 생성 모델을 학습하기 위한 적대적 방법을 제안했습니다. 생성적 적대 네트워크(GAN)에서는 두 가지 모델을 동시에 훈련해야 합니다. 데이터 분포 G와 샘플이 훈련 데이터에서 나올 확률을 추정하는 판별 모델 D를 캡처합니다.

● G는 임의의 노이즈 z(난수)를 수신하고 이 노이즈를 통해 이미지를 생성하는 생성 네트워크입니다.

● D는 사진이 "실제"인지 판단하는 판별 네트워크입니다. 입력 매개변수는 x(사진)이고 출력 D(x)는 x가 실제 사진일 확률을 나타냅니다. 1이면 100%가 실제 사진이고 출력은 0이라는 의미입니다. 실제 사진이 될 수 없습니다.

G의 훈련 절차는 D 오류 확률을 최대화하는 것입니다. 모든 함수 G와 D의 공간에는 G가 훈련 데이터 분포를 재현하고 D=0.5라는 고유한 솔루션이 있음이 증명될 수 있습니다. 훈련 과정에서 생성 네트워크 G의 목표는 판별 네트워크 D를 속이기 위해 실제 그림을 생성하는 것입니다. D의 목표는 G가 생성한 가짜 이미지와 실제 이미지를 구별하는 것입니다. 이런 식으로 G와 D는 역동적인 "게임 프로세스"를 구성하며 최종 균형점은 내쉬 균형점입니다. G와 D가 신경망으로 정의된 경우 전체 시스템은 역전파를 통해 훈련될 수 있습니다.

딥러닝 이미지 분할: 네트워크 구조 설계 개요

GAN 네트워크 구조 설명 Luc et al.은 GAN에서 영감을 받아 의미론적 분할 네트워크(G)와 적대적 네트워크(D)를 훈련했습니다. G) 분할 다이어그램. G와 D는 계속 게임을 하고 학습하며, 그들의 손실 함수는 다음과 같이 정의됩니다. GAN은 0을 구현한다 게임과 아이디어를 바탕으로 원래 GAN의 손실 함수는 다음과 같다.

딥러닝 이미지 분할: 네트워크 구조 설계 개요

손실 계산 위치는 D(판별자)의 출력에 있고, D의 출력은 일반적으로 가짜/진짜 판단이므로 전체를 위와 같이 간주할 수 있습니다. 이진 교차 엔트로피 함수를 사용했습니다. GAN의 손실 함수 형태에서 훈련이 두 부분으로 나누어져 있음을 알 수 있습니다.

첫 번째는 maxD 부분입니다. 훈련은 일반적으로 먼저 G(생성기)를 변경하지 않은 채 D를 훈련하기 때문입니다. D의 학습 목표는 가짜/참을 올바르게 구별하는 것입니다. 1/0을 사용하여 참/가짜를 나타내는 경우 첫 번째 항목 E의 경우 입력이 실제 데이터에서 샘플링되므로 D(x)가 1에 접근할 것으로 예상됩니다. , 첫 번째 항목이 더 큽니다. 같은 방식으로 두 번째 항목 E 입력은 G에서 생성된 데이터를 샘플링하므로 D(G(z))가 0에 더 잘 접근할 것으로 예상합니다. 이는 두 번째 항목이 다시 더 크다는 것을 의미합니다. 그래서 이 부분이 훈련을 하면 전체가 커질 것이라는 기대가 바로 maxD의 의미이다. 이 부분은 D의 매개변수만 업데이트합니다. 두 번째 부분은 D를 변경하지 않고(매개변수 업데이트 없음) G를 학습합니다. 이때 D를 혼동하기 위해 두 번째 항목 E만 유용하므로 이제 레이블을 1로 설정합니다. 알아요. 가짜이므로 혼동이라고 합니다.) D(G(z))의 출력이 1에 가까울수록 좋습니다. 즉, 이 항이 작을수록 좋습니다. 물론 판별자는 속이기 쉽지 않기 때문에 이때 판별자는 상대적으로 큰 오류를 생성할 것입니다. 오류는 G를 업데이트하고, 그러면 G는 이번에는 속이지 않았으므로 할 수 있습니다. 다음에는 더 열심히 하세요. (https://www.cnblogs.com/walter-xh/p/10051634.html

에서 인용) 이때는 G의 매개변수만 업데이트됩니다.

딥러닝 이미지 분할: 네트워크 구조 설계 개요GAN을 다른 관점에서 보면 판별자(D)는 특수 손실 함수(신경망으로 구성되며 L1, L2, 교차 엔트로피 등과 같은 기존 손실 함수와 다름)와 동일합니다.

게다가 GAN은 특별한 훈련 방식이 있어 그래디언트 소멸, 모드 붕괴 등의 문제가 있지만(현재로서는 해결할 수 있는 방법이 있는 것 같습니다), 그 디자인 컨셉은 그야말로 시대의 위대한 발명품입니다. 딥러닝.

1.6 요약딥러닝 이미지 분할: 네트워크 구조 설계 개요

딥러닝 기반의 이미지 의미 분할 모델은 대부분 U-Net과 같은 인코더-디코더 아키텍처를 따릅니다. 최근 몇 년간의 연구 결과에 따르면 확장된 컨볼루션과 특징 피라미드 풀링이 U-Net 스타일 네트워크 성능을 향상시킬 수 있는 것으로 나타났습니다. 섹션 2에서는 이러한 방법과 그 변형이 의료 영상 분할에 어떻게 적용될 수 있는지 요약합니다.

2. 의료 영상 분할에 네트워크 구조 혁신 적용

이 부분에서는 2D/3D 의료 영상 분할에 네트워크 구조 혁신을 적용한 연구 결과를 소개합니다.

2.1 모델 압축을 기반으로 한 분할 방법

고해상도 2D/3D 의료 영상(CT, MRI, 조직병리학 영상 등)을 실시간 처리하기 위해 연구자들은 다양한 압축 방법을 제안했습니다. 모델. Weng 등은 NAS 기술을 사용하여 U-Net 네트워크에 적용하고 CT, MRI 및 초음파 이미지에서 더 나은 장기/종양 분할 성능을 갖춘 소규모 네트워크를 얻었습니다. Brugger는 3D 의료 영상 분할을 위한 네트워크의 저장 효율성을 더욱 효율적으로 만들기 위해 그룹 정규화 및 Leaky-ReLU(leaky ReLU 기능)를 활용하여 U-Net 아키텍처를 재설계했습니다. 어떤 사람들은 더 적은 수의 매개변수를 사용하여 확장된 컨볼루션 모듈을 설계하기도 했습니다. 다른 모델 압축 방법에는 가중치 양자화(16비트, 8비트, 이진 양자화), 증류, 가지치기 등이 포함됩니다.

2.2 인코딩-디코딩 구조의 분할 방법

Drozdal은 이미지를 분할 네트워크에 공급하기 전에 원본 입력 이미지를 정규화하기 위해 간단한 CNN을 적용하는 방법을 제안하여 단일 현미경 이미지 분할, 간 CT, 전립선 분할 정확도를 향상시킵니다. MRI. Gu는 문맥 정보를 유지하기 위해 백본 네트워크에서 확장 컨볼루션을 사용하는 방법을 제안했습니다. Vorontsov는 ROI가 있는 이미지를 ROI가 없는 이미지로 변환한 다음(예: 종양이 있는 이미지를 종양이 없는 건강한 이미지로 변환) 모델에 의해 제거된 종양을 새로운 건강한 이미지에 추가하는 그래프-그래프 네트워크 프레임워크를 제안했습니다. . , 객체의 세부 구조를 얻습니다. Zhou 등은 U-Net 네트워크의 연결 재배선을 건너뛰는 방법을 제안하고 이를 흉부 저선량 CT 스캔의 결절 분할, 현미경 이미지의 핵 분할, 복부 CT 스캔의 간 분할 및 대장내시경에서 수행했습니다. 검사 비디오의 폴립 분할 작업에 대해 설명합니다. Goyal은 피부 병변 부위를 추출하기 위해 DeepLabV3를 진피경 컬러 이미지 분할에 적용했습니다.

2.3 주의 메커니즘 기반 분할 방법

Nie는 기본 모델(V-Net 및 FCN)에 비해 전립선을 더 정확하게 분할할 수 있는 주의 모델을 제안했습니다. SinHa는 MRI 영상에서 복부 장기 분할을 위한 다층 주의 메커니즘을 기반으로 하는 네트워크를 제안했습니다. Qin 등은 3D 의료 영상의 더 많은 세부 정보를 보존하기 위해 확장된 컨볼루션 모듈을 제안했습니다. 주의 메커니즘을 기반으로 한 혈액 이미지 분할에 관한 다른 많은 논문이 있습니다.

2.4 적대적 학습 기반 분할 네트워크

Khosravan은 CT 스캔에서 췌장 분할을 위한 적대적 훈련 네트워크를 제안했습니다. Son은 망막 이미지 분할을 위해 생성적 적대 네트워크를 사용합니다. Xue는 MRI 이미지에서 뇌종양을 분할하기 위해 생성적 적대 프레임워크의 분할 네트워크로 완전 컨벌루션 네트워크를 사용합니다. 의료 영상 분할 문제에 GAN을 성공적으로 적용한 다른 논문도 있으므로 하나씩 나열하지는 않겠습니다.

2.5 RNN 기반 분할 모델

순환 신경망(RNN)은 주로 시퀀스 데이터를 처리하는 데 사용됩니다. LSTM(Long Short-Term Memory Network)은 RNN의 향상된 버전으로 자체 루프를 도입하여 경사 흐름을 만듭니다. .오랫동안 유지될 수 있습니다. 의료 영상 분석 분야에서 RNN은 영상 시퀀스의 시간적 종속성을 모델링하는 데 사용됩니다. Bin et al.은 완전 합성곱 신경망과 RNN을 통합하고 시간 차원의 정보를 분할 작업에 통합하는 이미지 시퀀스 분할 알고리즘을 제안했습니다. Gao 등은 4D 이미지의 분할 성능을 향상시키기 위해 CNN과 LSTM을 사용하여 뇌 MRI 슬라이스 시퀀스의 시간적 관계를 모델링했습니다. Li 등은 먼저 U-Net을 사용하여 초기 분할 확률 맵을 얻은 다음 LSTM을 사용하여 3D CT 이미지에서 췌장을 분할하여 분할 성능을 향상시켰습니다. 이외에도 의료영상 분할을 위해 RNN을 활용한 논문이 많아 하나씩 소개하지는 않겠습니다.

2.6 요약

이 부분은 주로 의료 영상 분할에 분할 알고리즘을 적용하는 내용을 다루기 때문에 주로 다양한 형식(CT 또는 RGB, 픽셀 범위)의 데이터 분석에 중점을 두는 부분이 없습니다. , 이미지 해상도 등) 데이터의 다양한 부분의 특성(노이즈, 객체 모양 등)으로 인해 다양한 데이터에 대해 입력 데이터 형식 및 특성에 적응할 수 있도록 클래식 네트워크를 개선해야 합니다. 세분화 작업을 더 잘 완료합니다. 딥러닝은 블랙박스이지만 모델의 전체 설계에는 여전히 따라야 할 규칙이 있습니다. 어떤 전략이 어떤 문제를 해결하고 어떤 문제를 일으키는지는 최적의 분할 성능을 달성하기 위해 특정 분할 문제를 기반으로 선택할 수 있습니다.

몇 가지 참고 자료:

1.Deep Semantic Segmentation of Natural and Medical Images: A Review

2.NAS-Unet: Neural Architecture search for Medical Image Segmentation, 7:44247–44257, 2019 .

3.이미지-이미지 변환에서 약한 감독으로 세분화 강화. arXiv 사전 인쇄 arXiv:1904.01636, 2019

4.

5.SegAN: 다중 규모 L1 손실이 있는 적대 네트워크. 의료 영상 분할.

6. 공동 4D 의료 영상 분할을 위한 완전 컨볼루션 구조의 LSTM 네트워크 2018 IEEE7 https://www.cnblogs .com/walter-xh/p/10051634.html

위 내용은 딥러닝 이미지 분할: 네트워크 구조 설계 개요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제