DRAW AI System
프로젝트 소개
DRAW의 AI System은 백엔드단에서 건축 도면 pdf와 찾으려는 도면 정보의 템플릿 이미지를 입력으로 받아 그에 해당하는 도면의 정보를 추출해 JSON 형식의 파일로 프론트엔드 단에 제공합니다. 도면 정보에 해당하는 요소는 도면의 사이즈, 페이지 내 존재하는 도면번호, 페이지 내 존재하는 심볼 정보 등이 있습니다
지원하는 기능
DRAW AI System이 지원하는 기능에 대한 리스트입니다.
- 페이지 내 도면번호 탐지
- 페이지 내 도면번호 인식
- 페이지 내 도면 심볼 객체 탐지
- 페이지 내 도면 심볼 정보 인식
- 도면 정보를 JSON 파일로 정리
시스템 흐름
사용법
본 프로젝트는 백엔드가 없이 프론트 단과 인공지능 시스템이 협업하는 시스템 이기 때문에 사용자단에서 DRAW AI System
을 사용할 수 없습니다. 개발자는 기능을 수정 및 확인하기 위해
'''
python3 main.py
'''
과 같이 실행시킴으로 결과를 확인할 수 있습니다. 이때 결과는 JSON 파일로 result/프로젝트명/json 폴더에서 확인가능합니다.
또한 main 함수에의 인자중 visualize = True
로 설정함으로써 결과의 sample file이 result에 저장됩니다.
사용 기술 및 언어
- Python
- Pytorch
- OpenCV
- EasyOCR
컴포넌트 구조
|- shopdrawing
|--- data
|-----|--- images
|-----|--- pdf
|--- files
|-----|--- DataLoader.py
|-----|--- feature_extract.py
|-----|--- nms_plot.py
|-----|--- utils.py
|--- models
|-----|--- EDSR_x4.pb
|-----|--- FSRCNN_x4.pb
|--- results
|--- template
|-----|-----|--- template_basic
|-----|-----|--- template_special
|-----|-----|--- thresh_template_basic.csv
|-----|-----|--- thresh_template_special.csv
|--- finder.py
|--- main.py
|--- main.sh
구동 방법
shopdrawing 내부에 main.sh 에서 직접 파라미터를 수정한다.
-
temp_dir
은 도면 내부에 찾으려는 심볼 이미지의 디렉토리 경로를 의미한다. -
project_name
은 도면 정보 추출을 하려는 pdf 혹은 이미지 파일의 이름을 의미한다. 해당 파라미터는 실제 pdf혹은 이미지 경로와 이름이 같아야한다. -
temp_name
은 심볼이미지의 종류에 따라 저장될 디렉토리의 이름을 의미한다. 기본값은 "drawing_number"이다.
temp_dir=/home/gpuadmin/shopdwg/shopdrawing/template/template_special
project_name=drawing
temp_name=toilet
echo "[Start find drawing info]"
python ./main.py --template_dir=${temp_dir} \
--project_name=${project_name} \
--temp_name=${temp_name} \