Skip to content

Latest commit

 

History

History
288 lines (183 loc) · 9.37 KB

README_KO.md

File metadata and controls

288 lines (183 loc) · 9.37 KB
hivision_logo

HivisionIDPhoto

English / 中文 / 日本語 / 한국어

GitHub GitHub stars SwanHub Demo zhihu Spaces

Zeyi-Lin%2FHivisionIDPhotos | Trendshift


관련 프로젝트

  • SwanLab:인물 사진 모델의 학습을 분석 및 모니터링하고 실험실 동료와 협업하여 학습 효율성을 크게 향상시키기 위해 사용되었습니다.

🤩 프로젝트 업데이트

  • 온라인 체험: SwanHub DemoSpaces
  • 2024.9.2: 사진 KB 크기 조정 업데이트,DockerHub
  • 2023.12.1: API 배포(fastapi 기반) 업데이트
  • 2023.6.20: 미리 설정된 사이즈 메뉴 업데이트
  • 2023.6.19: 레이아웃 사진 업데이트

개요

🚀 저희 작업에 관심을 가져주셔서 감사합니다. 이미지 분야의 다른 성과도 확인해보시기 바랍니다. 문의사항은 이메일로 연락주세요: zeyi.lin@swanhub.co.

HivisionIDPhoto는 실용적인 증명사진 자동 생성 알고리즘을 개발하는 것을 목표로 합니다.

이 프로젝트는 다양한 사용자 촬영 장면을 인식하고, 인물 사진을 배경에서 분리하여 증명사진을 생성할 수 있는 포괄적인 모델 워크플로우를 활용합니다.

HivisionIDPhoto는 다음을 수행할 수 있습니다:

  1. 경량화된 배경 제거 (CPU만으로도 빠르게 추론 가능)
  2. 다양한 크기 규격에 따라 표준 증명사진 및 여섯 컷 레이아웃 사진 생성
  3. 미화(추후 지원 예정)
  4. 지능형 정장 변경(추후 지원 예정)

HivisionIDPhoto가 유용하셨다면, 이 저장소에 별을 달거나 친구들에게 추천하여 증명사진 응급 제작 문제를 해결해보세요!


🔧 환경 설치 및 의존성

  • Python >= 3.7 (프로젝트는 주로 Python 3.10에서 테스트되었습니다)
  • onnxruntime
  • OpenCV
  • 선택 사항: Linux, Windows, MacOS

1. 프로젝트 클론

git clone https://github.com/Zeyi-Lin/HivisionIDPhotos.git
cd  HivisionIDPhotos

2. (중요함) 의존성 설치

conda를 사용하여 Python 3.10 가상 환경을 만든 다음 다음 명령을 실행하는 것이 좋습니다.

pip install -r requirements.txt
pip install -r requirements-app.txt

3. 모델 가중치 다운로드

Release에서 무게 파일 'hivision_modnet.onnx' (24.7MB)을 다운로드하여 프로젝트의 'hivision/creator/weights' 디렉토리에 저장하십시오.


🚀 Python 추론

1. 신분증 사진 제작

1장의 사진을 입력하여 1장의 표준 신분증 사진과 1장의 고화질 신분증 사진의 4채널 투명 PNG를 얻습니다.

python inference.py -i demo/images/test.jpg -o ./idphoto.png --height 413 --width 295

2. 배경색 추가

1장의 4채널 투명 PNG를 입력하여 배경색이 추가된 1장의 이미지를 얻습니다.

python inference.py -t add_background -i ./idphoto.png -o ./idhoto_ab.jpg  -c 000000 -k 30

3. 6인치 레이아웃 사진 얻기

1장의 3채널 사진을 입력하여 1장의 6인치 레이아웃 사진을 얻습니다.

python inference.py -t generate_layout_photos -i ./idhoto_ab.jpg -o ./idhoto_layout.jpg  --height 413 --width 295 -k 200

API 서비스 요청 - Python Request

1. 신분증 사진 제작

1장의 사진을 입력하여 1장의 표준 신분증 사진과 1장의 고화질 신분증 사진의 4채널 투명 PNG를 얻습니다.

import requests

url = "http://127.0.0.1:8080/idphoto"
input_image_path = "demo/images/test.jpg"

files = {"input_image": open(input_image_path, "rb")}
data = {"height": 413, "width": 295}

response = requests.post(url, files=files, data=data).json()

# response는 status, image_base64_standard, image_base64_hd를 포함한 JSON 형식의 딕셔너리입니다.
print(response)

2. 배경색 추가

1장의 4채널 투명 PNG를 입력하여 배경색이 추가된 1장의 이미지를 얻습니다.

import requests

url = "http://127.0.0.1:8080/add_background"
input_image_path = "test.png"

files = {"input_image": open(input_image_path, "rb")}
data = {"color": '638cce', 'kb': None}

response = requests.post(url, files=files, data=data).json()

# response는 status와 image_base64를 포함한 JSON 형식의 딕셔너리입니다.
print(response)

3. 6인치 레이아웃 사진 얻기

1장의 3채널 사진을 입력하여 1장의 6인치 레이아웃 사진을 얻습니다.

import requests

url = "http://127.0.0.1:8080/generate_layout_photos"
input_image_path = "test.jpg"

files = {"input_image": open(input_image_path, "rb")}
data = {"height": 413, "width": 295, "kb": 200}

response = requests.post(url, files=files, data=data).json()

# response는 status와 image_base64를 포함한 JSON 형식의 딕셔너리입니다.
print(response)

더 많은 요청 방법은 API 문서를 참조하세요. Python 스크립트 요청, Python Request 요청, Java 요청이 포함되어 있습니다.


🐳 Docker 배포

1. 이미지 가져오기 또는 빌드

다음 방법 중 하나를 선택하세요

방법 1: 이미지 가져오기:

docker pull linzeyi/hivision_idphotos:v1
docker tag linzeyi/hivision_idphotos:v1 hivision_idphotos

방법 2: Dockerfile로 직접 이미지 빌드:

모델 가중치 파일 hivision_modnet.onnxhivision/creator/weights 디렉토리에 넣은 후, 프로젝트 루트 디렉토리에서 다음을 실행합니다:

docker build -t hivision_idphotos .

방법 3: Docker compose로 빌드:

모델 가중치 파일 hivision_modnet.onnxhivision/creator/weights 디렉토리에 넣은 후, 프로젝트 루트 디렉토리에서 다음을 실행합니다:

docker compose build

이미지 패키징이 완료되면, 다음 명령을 실행하여 Gradio 서비스를 시작합니다:

docker compose up -d

2. Gradio Demo 실행

이미지 패키징이 완료되면, 다음 명령을 실행하여 Gradio Demo 서비스를 시작합니다:

docker run -p 7860:7860 hivision_idphotos

로컬에서 http://127.0.0.1:7860에 접속하여 사용할 수 있습니다.

3. API 백엔드 서비스 실행

docker run -p 8080:8080 hivision_idphotos python3 deploy_api.py

📖 프로젝트 인용

  1. MTCNN:
@software{ipazc_mtcnn_2021,
    author = {ipazc},
    title = {{MTCNN}},
    url = {https://github.com/ipazc/mtcnn},
    year = {2021},
    publisher = {GitHub}
}
  1. ModNet:
@software{zhkkke_modnet_2021,
    author = {ZHKKKe},
    title = {{ModNet}},
    url = {https://github.com/ZHKKKe/MODNet},
    year = {2021},
    publisher = {GitHub}
}

💻 개발 팁

1. 미리 설정된 사이즈를 어떻게 수정하나요?

size_list_CN.csv을 수정한 후 app.py 를 다시 실행하세요. 첫 번째 열은 사이즈 이름, 두 번째 열은 높이, 세 번째 열은 너비입니다.


📧 문의하기

문의사항이 있으시면 zeyi.lin@swanhub.co 로 이메일을 보내주세요.


기여자

Zeyi-LinSAKURA-CATFeudalmanswpfYKaikaikaifangShaohonChenKashiwaByte


StarHistory

Star History Chart