>기술 주변기기 >일체 포함 >옴니겐 : 이미지 생성에 대한 통일 된 접근

옴니겐 : 이미지 생성에 대한 통일 된 접근

Joseph Gordon-Levitt
Joseph Gordon-Levitt원래의
2025-03-18 11:32:22336검색

Generative Foundation 모델은 다양한 작업에 걸쳐 대형 언어 모델 (LLMS)을 통해 자연 언어 처리 (NLP)에 혁명을 일으켰습니다. 그러나 시각적 생성 분야에는 여전히 단일 프레임 워크 내에서 여러 작업을 처리 할 수있는 통합 모델이 없습니다. 특정 도메인에서 안정적인 확산, Dall-e 및 Imagen과 같은 기존 모델은 컨트롤 또는 orructpix2pix와 같은 작업 별 확장에 의존하여 다양성과 확장 성을 제한합니다.

Omnigen은 이미지 생성을위한 통합 프레임 워크를 도입하여 이러한 격차를합니다. 기존 확산 모델과 달리 Omnigen은 변형 자동 인코더 (VAE)와 변압기 모델 만 포함하는 간결한 아키텍처를 특징으로하며 외부 작업 별 구성 요소의 필요성을 제거합니다. 이 설계를 통해 Omnigen은 임의로 인터리브 된 텍스트 및 이미지 입력을 처리 할 수 ​​있으므로 단일 모델 내에서 텍스트-이미지 생성, 이미지 편집 및 제어 가능한 생성과 같은 광범위한 작업을 가능하게합니다.

Omnigen은 텍스트-이미지 생성을위한 벤치 마크에서 탁월 할뿐만 아니라 보이지 않는 작업 및 도메인에서 강력한 전송 학습, 새로운 기능 및 추론을 보여줍니다.

학습 목표

  • 변형 자동 인코딩 (VAE)의 통합 및 통합 이미지 생성을위한 변압기 모델을 포함하여 옴니 겐의 아키텍처 및 설계 원리를 파악하십시오.
  • Omnigen이 텍스트-이미지 생성, 이미지 편집 및 주제 중심 사용자 정의와 같은 다양한 작업을 처리하기 위해 인터리브 된 텍스트 및 이미지 입력을 처리하는 방법을 알아보십시오.
  • 생성 성능 및 효율성에 미치는 영향을 이해하기 위해 Omnigen의 정류 흐름 기반 최적화 및 점진적 해상도 교육을 분석하십시오.
  • 복잡한 세부 사항과 보이지 않는 이미지 유형을 처리하는 데있어 제약을 인정하면서 생성 예술, 데이터 증강 및 대화식 설계를 포함한 Omnigen의 실제 응용 프로그램을 발견하십시오.

목차

  • 학습 목표
  • 옴니 겐 모델 아키텍처 및 교육 방법론
  • 주의 메커니즘을 이해합니다
  • 추론 과정 이해
  • 효과적인 훈련 전략
  • 통합 이미지 생성 발전
  • Omnigen 사용
  • 옴니겐의 한계
  • 응용 프로그램 및 향후 방향
  • 결론
  • 자주 묻는 질문

옴니 겐 모델 아키텍처 및 교육 방법론

이 섹션에서는 Omnigen 프레임 워크를 조사하여 모델 설계 원칙, 건축 및 혁신적인 교육 전략에 중점을 둘 것입니다.

모델 디자인 원칙

현재 확산 모델은 종종 한계에 직면하여 텍스트-이미지 생성과 같은 특정 작업에 대한 유용성을 제한합니다. 기능을 확장하려면 일반적으로 추가 작업 별 네트워크를 통합하는 것이 포함되며, 이는 다양한 작업에서 번거롭고 재사용 성이 부족합니다. Omnigen은 두 가지 핵심 설계 원칙을 준수하여 이러한 과제를 해결합니다.

  • 보편성 : 여러 작업에 대한 다양한 형태의 이미지 및 텍스트 입력을 수용하는 기능.
  • 간결함 : 지나치게 복잡한 디자인을 피하거나 수많은 추가 구성 요소가 필요합니다.

네트워크 아키텍처

Omnigen은 VAE (Variational Autoencoder)와 미리 훈련 된 대형 변압기 모델을 통합하는 혁신적인 아키텍처를 채택합니다.

  • VAE : 입력 이미지에서 지속적인 잠재 시각적 기능을 추출합니다. Omnigen은 훈련 중에 얼어 붙은 SDXL VAE를 사용합니다.
  • 변압기 모델 : PHI-3으로 초기화하여 강력한 텍스트 처리 기능을 활용하여 멀티 모달 입력을 기반으로 이미지를 생성합니다.

전처리 입력 조건에 대한 별도의 인코더 (예 : 클립 또는 이미지 인코더)에 의존하는 기존 확산 모델과 달리 Omnigen은 본질적으로 모든 조건부 정보를 인코딩하여 파이프 라인을 상당히 단순화합니다. 또한 단일 프레임 워크 내에서 텍스트와 이미지를 공동으로 모델링하여 양식 간의 상호 작용을 향상시킵니다.

옴니겐 : 이미지 생성에 대한 통일 된 접근

입력 형식 및 통합

Omnigen은 자유 형식의 멀티 모달 프롬프트, 인터리브 텍스트 및 이미지를 수락합니다.

  • 텍스트 : PHI-3 토큰 화기를 사용하여 토큰 화.
  • 이미지 : VAE를 통해 처리되고 간단한 선형 층을 사용하여 일련의 시각적 토큰으로 변환했습니다. 더 나은 표현을 위해이 토큰에 위치 임베딩이 적용됩니다.
  • 이미지 텍스트 통합 : 각 이미지 시퀀스에는 특수 토큰 ( "옴니겐 : 이미지 생성에 대한 통일 된 접근 및" ")이 캡슐화되고 시퀀스의 텍스트 토큰과 결합됩니다.

주의 메커니즘을 이해합니다

주의 메커니즘은 AI의 게임 체인저이며 모델이 복잡한 작업을 처리하면서 가장 관련성이 높은 데이터에 집중할 수있게합니다. 전원 변압기에서 NLP 및 컴퓨터 비전 혁명에 이르기 까지이 개념은 기계 학습 시스템에서 효율성과 정밀도를 재정의했습니다.

Omnigen은 이미지 모델링을 향상시키기 위해 표준 인과 관계 메커니즘을 수정합니다.

  • 모든 시퀀스 요소에 인과 적 관심을 적용합니다.
  • 개별 이미지 시퀀스 내에서 양방향주의를 사용하여 이미지의 패치가 상호 작용할 수있게하면서 이미지가 이전 시퀀스 (텍스트 또는 이전 이미지)에만 참석하도록합니다.

추론 과정 이해

추론 프로세스는 AI 모델이 새로운 데이터에 학습 된 패턴을 적용하여 교육을 실행 가능한 예측으로 전환하는 곳입니다. 그것은 실제 응용 프로그램을 사용하여 모델 교육을 다리로, 산업 전반에 걸쳐 통찰력 및 자동화를 이끌어내는 마지막 단계입니다.

Omnigen은 유동 매칭 방법을 사용합니다.

  • 가우스 노이즈는 표적 속도를 예측하기 위해 반복적으로 샘플링되고 정제됩니다.
  • 잠재적 표현은 VAE를 사용하여 이미지로 디코딩됩니다.
  • 기본적으로 50 개의 추론 단계를 통해 Omnigen은 KV-Cache 메커니즘을 활용하여 GPU에 키 값 상태를 저장하여 중복 계산을 줄임으로써 프로세스를 가속화합니다.

효과적인 훈련 전략

Omnigen은 기존 DDPM 방법과 다른 최적화를 위해 정류 흐름 접근법을 사용합니다. 노이즈와 데이터간에 선형으로 보간하여 노이드 데이터, 타임 스텝 및 조건 정보를 기반으로 대상 속도를 직접 회귀하도록 모델을 교육합니다.

훈련 목표는 가중 평균 제곱 오류 손실을 최소화하여 이미지 편집 작업에서 변경이 발생하는 영역을 강조하여 모델이 변하지 않은 영역에 과적되지 않도록합니다.

관로

Omnigen은 이미지 해상도를 증가시켜 데이터 효율성과 미적 품질의 균형을 유지합니다.

  • 최적화
    • β = (0.9,0.999)를 가진 ADAMW.
  • 하드웨어
    • 모든 실험은 104 A800 GPU에서 수행됩니다.
  • 단계

해상도, 단계, 배치 크기 및 학습 속도를 포함한 교육 세부 정보는 다음과 같습니다.

단계 이미지 해상도 훈련 단계 (k) 배치 크기 학습 속도
1 256 × 256 500 1040 1E-4
2 512 × 512 300 520 1E-4
3 1024 × 1024 100 208 4E-5
4 2240 × 2240 30 104 2E-5
5 다수의 80 104 2E-5

Omnigen은 혁신적인 아키텍처와 효율적인 교육 방법론을 통해 확산 모델에서 새로운 벤치 마크를 설정하여 광범위한 응용 프로그램을위한 다용도 및 고품질 이미지 생성을 가능하게합니다.

통합 이미지 생성 발전

이미지 생성에서 강력한 멀티 태스킹 처리를 가능하게하기 위해서는 대규모 및 다양한 기초를 구성하는 것이 필수적이었습니다. Omnigen은 모델이 다양한 작업에서 다양성과 적응성에 접근하는 방법을 재정의함으로써이를 달성합니다.

주요 혁신은 다음과 같습니다 .

  • 텍스트-이미지 생성 :
    • 광범위한 데이터 세트를 활용하여 광범위한 이미지 텍스트 관계를 캡처합니다.
    • 합성 주석 및 고해상도 이미지 컬렉션을 통해 출력 품질을 향상시킵니다.

옴니겐 : 이미지 생성에 대한 통일 된 접근

  • 멀티 모달 기능 :
    • 편집, 가상 트립 온 및 스타일 전송과 같은 작업에 대한 텍스트 및 이미지의 유연한 입력 조합을 활성화합니다.
    • 생성 중 정확한 공간 제어를위한 고급 시각적 조건을 통합합니다.

옴니겐 : 이미지 생성에 대한 통일 된 접근

  • 주제 중심 사용자 정의 :
    • 특정 객체 또는 엔티티를 중심으로 한 이미지를 생성하기위한 집중 데이터 세트 및 기술을 소개합니다.
    • 새로운 필터링 및 주석 방법을 사용하여 관련성과 품질을 향상시킵니다.

옴니겐 : 이미지 생성에 대한 통일 된 접근

  • 비전 작업 통합 :
    • 세분화, 깊이 매핑 및 입력과 같은 전통적인 컴퓨터 비전 작업을 이미지 생성과 결합합니다.
    • 새로운 시나리오에서 생성 성능을 향상시키기 위해 지식 전달을 촉진합니다.

옴니겐 : 이미지 생성에 대한 통일 된 접근

  • 소수의 샷 학습 :
    • 예제 중심의 교육 접근법을 통해 텍스트 내 학습을 강화합니다.
    • 효율성을 유지하면서 모델의 적응성을 향상시킵니다.

옴니겐 : 이미지 생성에 대한 통일 된 접근

이러한 발전을 통해 Omnigen은 통합적이고 지능적인 이미지 생성 기능을 달성하고 다양한 작업 간의 격차를 해소하고 획기적인 응용 프로그램을위한 길을 열어주는 벤치 마크를 설정합니다.

Omnigen 사용

Omnigen은 지역 환경에서 일하거나 Google Colab을 사용하든 쉽게 시작할 수 있습니다. 텍스트 또는 멀티 모달 입력에서 이미지를 생성하기 위해 Omnigen을 설치하고 사용하려면 아래 지침에 따라 Omnigen을 사용하십시오.

설치 및 설정

Omnigen을 설치하려면 Github 저장소를 복제하고 패키지를 설치하여 시작하십시오.

Omnigen 저장소를 복제하십시오.

 git 클론 https://github.com/vectorspacelab/omnigen.git
CD 옴니 겐
PIP 설치 -E 
PIP 설치 옴니 겐

선택 사항 : 갈등을 피하려면 전용 환경을 만드십시오.

 # Python 3.10.13 Conda 환경 생성 (VirtualEnV를 사용할 수도 있음)
콘다 생성 -n omnigen python = 3.10.13
콘다는 옴니 겐을 활성화합니다

# 적절한 CUDA 버전으로 Pytorch 설치 (예 : CU118)
PIP 설치 토치 == 2.3.1 Cu118 TorchVision -Extra-index-url https://download.pytorch.org/whl/cu118
! PIP 설치 OMNIGEN
# 복제 및 옴니 겐을 설치하십시오
git 클론 https://github.com/vectorspacelab/omnigen.git
CD 옴니 겐
PIP 설치 -E.

Omnigen이 설치되면 이미지 생성을 시작할 수 있습니다. 다음은 Omnigen 파이프 라인을 사용하는 방법의 예입니다.

이미지 생성에 대한 텍스트

Omnigen을 사용하면 텍스트 프롬프트에서 이미지를 생성 할 수 있습니다. 차를 마시는 남자의 이미지를 생성하는 간단한 예는 다음과 같습니다.

 Omnigen import OmnigenPipeline에서

파이프 = omnigenpipeline.from_pretrained ( "shitao/omnigen-v1")

# 텍스트에서 이미지를 생성합니다
이미지 = 파이프 (
    프롬프트 = '' '현실적인 사진. 한 젊은 여자는 소파에 앉아 
    책을 들고 카메라를 향하고 있습니다. 그녀는 섬세하다 
    작고 반짝이는 다이아몬드로 장식 된 실버 후프 귀걸이 
    그녀의 긴 밤나무 머리가 계단식으로 빛을 잡아 
    그녀의 어깨 너머. 그녀의 눈은 집중적이고 부드럽고 액자입니다 
    길고 어두운 속눈썹. 그녀는 아늑한 크림 스웨터를 입고 있습니다. 
    그녀의 따뜻하고 매력적인 미소를 보완합니다. 그녀의 뒤에, 거기 
    매끄럽고 미니멀리스트 블루 머그잔에 물 한 잔이있는 테이블입니다. 
    배경은 부드러운 자연광이있는 고요한 실내 환경입니다.
     창문을 통해 필터링, 세련된 예술과 꽃으로 장식 된 
     아늑하고 평화로운 분위기를 조성합니다. 4K, HD '' ', 
    높이 = 1024, 
    너비 = 1024, 
    Guidance_Scale = 2.5,
    종자 = 0,
))
이미지 [0] .save ( "example_t2i.png") # 생성 된 이미지를 저장합니다
이미지 [0] .show ()

옴니겐 : 이미지 생성에 대한 통일 된 접근

멀티 모달에서 이미지 생성

텍스트와 이미지가 결합 된 멀티 모달 생성에 Omnigen을 사용할 수도 있습니다. 다음은 이미지가 입력의 일부로 포함되는 예입니다.

 # 텍스트와 제공된 이미지로 이미지 생성
이미지 = 파이프 (
    프롬프트 = "<img  src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174226875770560.jpg" class="lazy" alt="옴니겐 : 이미지 생성에 대한 통일 된 접근" >  <img  src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174226875770560.jpg" class="lazy" alt="옴니겐 : 이미지 생성에 대한 통일 된 접근" > \ n 여자의 귀걸이를 제거하십시오. 스파클링 아이스 콜라로 채워진 투명 유리로 머그잔을 교체하십시오.
. ",
    input_images = [ "./ imgs/demo_cases/edit.png
"],
    높이 = 1024, 
    너비 = 1024,
    Guidance_Scale = 2.5, 
    img_guidance_scale = 1.6,
    종자 = 0
))
이미지 [0] .save ( "example_ti2i.png") # 생성 된 이미지를 저장합니다

옴니겐 : 이미지 생성에 대한 통일 된 접근

컴퓨터 비전 기능

다음 예는 Omnigen의 고급 컴퓨터 비전 (CV) 기능, 특히 이미지 입력에서 인간 골격을 감지하고 렌더링하는 능력을 보여줍니다. 이 작업은 텍스트 지침을 이미지와 결합하여 정확한 골격 감지 결과를 생성합니다.

 PIL 가져 오기 이미지에서

# 골격 감지 프롬프트를 정의하십시오
프롬프트 = "이 이미지에서 인간의 골격을 감지하십시오 : <img  alt="옴니겐 : 이미지 생성에 대한 통일 된 접근" >  <img  alt="옴니겐 : 이미지 생성에 대한 통일 된 접근" >"
input_images = [ "./imgs/demo_cases/edit.png"]]]

# 골격 감지로 출력 이미지를 생성합니다
이미지 = 파이프 (
    프롬프트 = 프롬프트, 
    input_images = input_images, 
    높이 = 1024, 
    너비 = 1024,
    Guidance_Scale = 2, 
    img_guidance_scale = 1.6,
    종자 = 333
))

# 출력을 저장하고 표시합니다
이미지 [0] .Save ( "./ IMGS/DEMO_CASES/skeletal.png")

# 입력 이미지를 표시합니다
인쇄 ( "입력 이미지 :")
input_images의 img의 경우 :
    image.open (img) .show ()

# 출력 이미지를 표시합니다
인쇄 ( "출력 :")
이미지 [0] .show ()

옴니겐 : 이미지 생성에 대한 통일 된 접근

옴니 겐과의 주제 중심 세대

이 예는 여러 입력 이미지의 프롬프트에 기술 된 개인을 식별하고 이러한 주제의 그룹 이미지를 생성하는 Omnigen의 주제 중심의 능력을 보여줍니다. 이 과정은 엔드 투 엔드이며, 복잡한 다중 소스 시나리오를 처리 할 때 Omnigen의 유연성을 보여주는 외부 인식 또는 세분화가 필요하지 않습니다.

 PIL 가져 오기 이미지에서

# 주제 중심 생성 프롬프트를 정의하십시오
프롬프트 = (
    "교수와 소년이 함께 책을 읽고 있습니다."
    "교수는 <img  alt="옴니겐 : 이미지 생성에 대한 통일 된 접근" >  의 중간 남자입니다."
    "소년은 <img  alt="옴니겐 : 이미지 생성에 대한 통일 된 접근" >  에서 책을 들고있는 소년입니다."
))
input_images = [ "./imgs/demo_cases/ai_pioneers.jpg", "./imgs/demo_cases/same_pose.png"]]]

# 설명 된 주제로 출력 이미지를 생성합니다
이미지 = 파이프 (
    프롬프트 = 프롬프트, 
    input_images = input_images, 
    높이 = 1024, 
    너비 = 1024,
    Guidance_Scale = 2.5, 
    img_guidance_scale = 1.6,
    ance_cfg_infer = true,
    종자 = 0
))

# 생성 된 이미지를 저장하고 표시합니다
이미지 [0] .save ( "./ imgs/demo_cases/entity.png")

# 입력 이미지 표시
인쇄 ( "입력 이미지 :")
input_images의 img의 경우 :
    image.open (img) .show ()

# 출력 이미지를 표시합니다
인쇄 ( "출력 :")
이미지 [0] .show ()

주제 중심의 능력 : 우리의 모델은 설명 된 주제를 여러 개인 이미지에서 식별하고 여러 출처에서 개인의 그룹 이미지를 생성 할 수 있습니다. 이 엔드 투 엔드 프로세스는 옴니 겐의 유연성과 다양성을 강조하는 추가 인식 또는 세분화가 필요하지 않습니다.

옴니겐 : 이미지 생성에 대한 통일 된 접근

옴니겐의 한계

  • 텍스트 렌더링 : 짧은 텍스트 세그먼트를 효과적으로 처리하지만 더 긴 텍스트에 대한 정확한 출력을 생성하는 데 어려움을 겪습니다.
  • 훈련 제약 조건 : 자원 제약으로 인해 교육 중 최대 3 개의 입력 이미지로 제한되어 긴 이미지 시퀀스를 관리하는 모델의 능력을 방해합니다.
  • 세부 정확도 : 생성 된 이미지에는 특히 작거나 복잡한 세부 사항에 부정확 한 이미지가 포함될 수 있습니다.
  • 보이지 않는 이미지 유형 : 표면 정상 추정에 사용되는 것과 같이 훈련되지 않은 이미지 유형을 처리 할 수 ​​없습니다.

응용 프로그램 및 향후 방향

옴니 겐의 다양성은 다른 분야에서 수많은 응용 프로그램을 열어줍니다.

  • 생성 예술 : 아티스트는 옴니 겐을 활용하여 텍스트 프롬프트 또는 거친 스케치에서 예술 작품을 만들 수 있습니다.
  • 데이터 확대 : 연구원은 컴퓨터 비전 모델을 훈련하기위한 다양한 데이터 세트를 생성 할 수 있습니다.
  • 대화식 디자인 도구 : 디자이너는 사용자 입력을 기반으로 실시간 이미지 편집 및 생성을 허용하는 도구에서 옴니 겐을 활용할 수 있습니다.

Omnigen이 계속 발전함에 따라 향후 반복은 더욱 진보 된 추론 메커니즘을 통합하고 복잡한 작업에 대한 성능을 향상시킬 수있는 기능을 더욱 확장 할 수 있습니다.

결론

Omnigen은 텍스트와 이미지 입력을 통합 프레임 워크로 결합하여 안정적인 확산 및 Dall-E와 같은 기존 모델의 한계를 극복하는 혁신적인 이미지 생성 모델입니다. VAE (변형 Autoencoder) 및 변압기 모델을 통합하면 워크 플로우를 단순화하면서 텍스트-이미지 생성 및 이미지 편집과 같은 다재다능한 작업을 가능하게합니다. Omnigen은 멀티 모달 생성, 주제 중심 사용자 정의 및 소수의 학습과 같은 기능을 통해 생성 예술 및 데이터 증강과 같은 분야의 새로운 가능성을 열어줍니다. 긴 텍스트 입력 및 미세한 세부 사항이있는 과제와 같은 일부 제한 사항에도 불구하고 Omnigen은 시각적 콘텐츠 생성의 미래를 형성하여 다양한 응용 프로그램을위한 강력하고 유연한 도구를 제공합니다.

주요 테이크 아웃

  • Omnigen은 VAE (Variational Autoencoder)와 Transformer 모델을 결합하여 이미지 생성 작업을 간소화하여 Controlnet 또는 InstructPix2Pix와 같은 작업 별 확장이 필요하지 않습니다.
  • 이 모델은 텍스트 및 이미지 입력을 효과적으로 통합하여 외부 인식 또는 세분화없이 텍스트 대 이미지 생성, 이미지 편집 및 주제 중심 그룹 이미지 생성과 같은 다목적 작업을 가능하게합니다.
  • 정류 된 흐름 최적화 및 점진적 해상도 스케일링과 같은 혁신적인 교육 전략을 통해 Omnigen은 효율성을 유지하면서 작업에서 강력한 성능과 적응성을 달성합니다.
  • Omnigen은 생성 예술, 데이터 확대 및 대화식 디자인 도구에 탁월하지만 복잡한 세부 사항을 렌더링하고 훈련되지 않은 이미지 유형을 처리하는 데 어려움을 겪고 향후 발전을위한 공간을 남깁니다.

자주 묻는 질문

Q1. Omnigen은 무엇입니까?

A. Omnigen은 텍스트-이미지 생성, 이미지 편집 및 다중 모달 생성 (텍스트 및 이미지 결합)을 포함한 다양한 작업을 처리하도록 설계된 통합 이미지 생성 모델입니다. 전통적인 모델과 달리 Omnigen은 작업 별 확장에 의존하지 않으므로보다 다재다능하고 확장 가능한 솔루션을 제공합니다.

Q2. Omnigen이 다른 이미지 생성 모델과 다른 점은 무엇입니까?

A. Omnigen은 변형 자동 인코더 (VAE)와 변압기 모델을 결합한 간단한 아키텍처로 인해 눈에 띄는 것입니다. 이를 통해 통합 프레임 워크에서 텍스트 및 이미지 입력을 모두 처리 할 수 ​​있으므로 추가 구성 요소 또는 수정없이 광범위한 작업을 수행 할 수 있습니다.

Q3. Omnigen을 실행하기위한 시스템 요구 사항은 무엇입니까?

A. Omnigen을 효율적으로 실행하려면 CUDA 지원 GPU가있는 시스템이 권장됩니다. 이 모델은 A800 GPU에 대한 교육을 받았으며 추론 프로세스는 키 값 캐시 메커니즘을 사용하여 GPU 가속으로부터 이점을 얻습니다.

이 기사에 표시된 미디어는 분석 Vidhya가 소유하지 않으며 저자의 재량에 따라 사용됩니다.

위 내용은 옴니겐 : 이미지 생성에 대한 통일 된 접근의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.