Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feat] AI기반 필기인식 기능 #27

Merged
merged 17 commits into from
Nov 20, 2024
Merged

[Feat] AI기반 필기인식 기능 #27

merged 17 commits into from
Nov 20, 2024

Conversation

semnisem
Copy link
Member

PR 타입

  • 새로운 기능 추가
  • 버그 수정
  • 테스트 추가, 테스트 리팩토링
  • 파일/폴더 수정/삭제
  • 코드 리팩토링
  • 주석 추가/수정

반영 브랜치

dev ➡️ main

작업 사항

📝AI 필기제거 API 개발

기존엔 POST요청과 process-color 엔드포인트였으며 색상기반으로 필기를 인식. 이는 그대로 두었으며 AI기반 필기인식 API인 process-shape 엔드포인트로 POST 요청 가능.
이미지 URL을 받아 다운로드, 전처리 및 필기제거 및 후처리 후, 입력, 중간, 중간1, 중간2, 결과 이미지를 모두 s3에 업로드.

📝AI 필기제거 로직 개발 및 경량화

AI 필기제거에 파인튜닝한 객체탐지모델(YOLOv11)과 파운데이션 세그멘테이션 모델(SAM-vit-h)을 활용했으나, 세그멘테이션 모델의 용량 및 연산 처리 속도가 1분이상이라 비현실적임을 감안하여, 모바일용도의 가벼운 경량화 모델로 변경하여 연산 처리 시간을 50% 이상 �감축하는 데 성공.

📝도커파일 & 패키지 버전 파일 수정

모델을 서버 도커 컨테이너 내 보관 및 디렉토리 생성이 필요해짐에 따라 도커파일의 RUN 명령어를 수정.
SAM을 위한 git 설치도 이루어지기 위해, 그리고 추가적으로 필요한 ML 패키지 설치를 위해 requirements.txt를 추가

📝기타 버그 수정

요청에 필드가 오지 않는 경우, 마스킹 중간 결과가 없는 경우 등을 고려하여 예외처리를 진행.
또한 동그란 마킹을 인식할 경우 후보정에서 모폴로지 변환을 통해서 원 내부를 제외.

테스트 방법

추가된 기능은 아래 방식으로 자유롭게 요청&응답 테스트가 가능합니다.

  • Dev/Prod 서버 Postman
  • Dev/Prod 서버 Swagger UI
    process-shape에 POST요청을 보내면 되며 형식은 아래와 같습니다.
    {
    "fullUrl": 이미지 URL,
    "points": [200,800,1400,2000],
    "labels": []
    }

테스트 결과

입력 마스킹 결과
image image image

s3에서 모델 다운로드 및 필기 제거 API
requirements.txt 및 import 추가
도커 작업 디렉토리 하위폴더 models 생성
requirements.txt 및 import 추가
도커 작업 디렉토리 하위폴더 models 생성
프롬프팅 및 루트 인사말
git Command가 없기 때문에 깃 액션에서 에러가 발생했음
update 후 -y로 git 설치해야 함.
수정: uuid는 자를 수 없음
이동: 디렉토리 생성 명령어는 도커파일 CMD에서
수정: 모델 없을 경우에만 다운로드
추가: 모델로드 기본 1회 실행
바운딩 박스 내 입력은 제외하기
세그멘팅 방식을 사각형 바운더리박스화
중간 마스킹 과정 이미지 업로드
@semnisem semnisem added bug Something isn't working fix All is working well labels Nov 20, 2024
@semnisem semnisem requested a review from KiSeungMin November 20, 2024 08:24
@semnisem semnisem self-assigned this Nov 20, 2024
@semnisem semnisem added enhancement New feature or request and removed bug Something isn't working labels Nov 20, 2024
@semnisem semnisem merged commit 6ed2e98 into main Nov 20, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request fix All is working well
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant