728x90
반응형
환경설정
1. Conda 환경 생성
[root@server ~]$ conda create -n deep_text_recognition python=3.7
[root@server ~]$ conda activate deep_text_recognition
(deep_text_recognition) [root@server ~]$ conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=10.2 -c pytorch
2. CRAFT-pytorch 소스 다운로드
(deep_text_recognition) [root@server ~]$ https://github.com/clovaai/deep-text-recognition-benchmark.git
(deep_text_recognition) [root@server ~]$ cd deep-text-recognition-benchmark
3. PIP 패키지 설치
(craft_model) [root@server deep-text-recognition-benchmark] pip3 install lmdb pillow nltk natsort
데이터 생성
1. 원시 데이터 준비
train, valid 훈련 데이터셋을 다음과 같이 준비한다.
(craft_model) [root@server deep-text-recognition-benchmark] mkdir dataset
(craft_model) [root@server deep-text-recognition-benchmark] tree -n 2 dataset
dataset/
├── gt_train.txt
├── gt_valid.txt
├── train
│ ├── train-sample1.jpg
│ └── train-sample2.jpg
└── valid
└── valid-sample1.jpg
2 directories, 5 files
텍스트 파일 내용은 탭 (\t) 기준으로 마지막에 개행(\n) 문자를 포함하여 생성하여 줍니다.
예) <이미지 경로>\t<문자>\n
(craft_model) [root@server deep-text-recognition-benchmark] cat dataset/gt_train.txt
train/train-sample1.jpg 가방
train/train-sample2.jpg 나비
(craft_model) [root@server deep-text-recognition-benchmark] cat dataset/gt_valid.txt
valid/valid-sample1.jpg 가방
valid/valid-sample2.jpg 나비
2. lmdb 파일 생성
train 데이터셋 생성
(craft_model) [root@server deep-text-recognition-benchmark] python create_lmdb_dataset.py \
--inputPath dataset/ \
--gtFile dataset/gt_char_train.txt \
--outputPath data_lmdb/train
valid 데이터셋 생성
(craft_model) [root@server deep-text-recognition-benchmark]$ python create_lmdb_dataset.py \
--inputPath dataset/ \
--gtFile dataset/gt_char_valid.txt \
--outputPath data_lmdb/valid
훈련
--character 반드시 학습할 문자로 설정 해줘야 합니다.
--select_data '/'로 수정합니다.
--batch-ratio를 1로 수정합니다. (커스텀 데이터셋)
(craft_model) [root@server deep-text-recognition-benchmark]$ python train.py \
--train_data data_lmdb/train \
--valid_data data_lmdb/valid \
--Transformation TPS \
--FeatureExtraction ResNet \
--SequenceModeling BiLSTM \
--Prediction CTC \
--data_filtering_off \
--character "0123456789abcdefghijklmnopqrstuvwxyz가각간갇갈감갑값갓강갖같갚갛개객걀걔거걱건걷걸검겁것겉게겨격겪견결겹경곁계고곡곤곧골곰곱곳공과관광괜괴굉교구국군굳굴굵굶굽궁권귀귓규균귤그극근글긁금급긋긍기긴길김깅깊까깍깎깐깔깜깝깡깥깨꺼꺾껌껍껏껑께껴꼬꼭꼴꼼꼽꽂꽃꽉꽤꾸꾼꿀꿈뀌끄끈끊끌끓끔끗끝끼낌나낙낚난날낡남납낫낭낮낯낱낳내냄냇냉냐냥너넉넌널넓넘넣네넥넷녀녁년념녕노녹논놀놈농높놓놔뇌뇨누눈눕뉘뉴늄느늑는늘늙능늦늬니닐님다닥닦단닫달닭닮담답닷당닿대댁댐댓더덕던덜덟덤덥덧덩덮데델도독돈돌돕돗동돼되된두둑둘둠둡둥뒤뒷드득든듣들듬듭듯등디딩딪따딱딴딸땀땅때땜떠떡떤떨떻떼또똑뚜뚫뚱뛰뜨뜩뜯뜰뜻띄라락란람랍랑랗래랜램랫략량러럭런럴럼럽럿렁렇레렉렌려력련렬렵령례로록론롬롭롯료루룩룹룻뤄류륙률륭르른름릇릎리릭린림립릿링마막만많말맑맘맙맛망맞맡맣매맥맨맵맺머먹먼멀멈멋멍멎메멘멩며면멸명몇모목몬몰몸몹못몽묘무묵묶문묻물뭄뭇뭐뭘뭣므미민믿밀밉밌및밑바박밖반받발밝밟밤밥방밭배백뱀뱃뱉버번벌범법벗베벤벨벼벽변별볍병볕보복볶본볼봄봇봉뵈뵙부북분불붉붐붓붕붙뷰브븐블비빌빔빗빚빛빠빡빨빵빼뺏뺨뻐뻔뻗뼈뼉뽑뿌뿐쁘쁨사삭산살삶삼삿상새색샌생샤서석섞선설섬섭섯성세섹센셈셋셔션소속손솔솜솟송솥쇄쇠쇼수숙순숟술숨숫숭숲쉬쉰쉽슈스슨슬슴습슷승시식신싣실싫심십싯싱싶싸싹싼쌀쌍쌓써썩썰썹쎄쏘쏟쑤쓰쓴쓸씀씌씨씩씬씹씻아악안앉않알앓암압앗앙앞애액앨야약얀얄얇양얕얗얘어억언얹얻얼엄업없엇엉엊엌엎에엔엘여역연열엷염엽엿영옆예옛오옥온올옮옳옷옹와완왕왜왠외왼요욕용우욱운울움웃웅워원월웨웬위윗유육율으윽은을음응의이익인일읽잃임입잇있잊잎자작잔잖잘잠잡잣장잦재쟁쟤저적전절젊점접젓정젖제젠젯져조족존졸좀좁종좋좌죄주죽준줄줌줍중쥐즈즉즌즐즘증지직진질짐집짓징짙짚짜짝짧째쨌쩌쩍쩐쩔쩜쪽쫓쭈쭉찌찍찢차착찬찮찰참찻창찾채책챔챙처척천철첩첫청체쳐초촉촌촛총촬최추축춘출춤춥춧충취츠측츰층치칙친칠침칫칭카칸칼캄캐캠커컨컬컴컵컷케켓켜코콘콜콤콩쾌쿄쿠퀴크큰클큼키킬타탁탄탈탑탓탕태택탤터턱턴털텅테텍텔템토톤톨톱통퇴투툴툼퉁튀튜트특튼튿틀틈티틱팀팅파팎판팔팝패팩팬퍼퍽페펜펴편펼평폐포폭폰표푸푹풀품풍퓨프플픔피픽필핏핑하학한할함합항해핵핸햄햇행향허헌험헤헬혀현혈협형혜호혹혼홀홈홉홍화확환활황회획횟횡효후훈훌훔훨휘휴흉흐흑흔흘흙흡흥흩희흰히힘?!" \
--select_data "/" \
--batch_ratio 1 \
--batch_size 10 \
--workers 0 \
--imgH 110 \
--imgW 110
다음과 같이 출력이 되며 학습이 진행된다.
...
[1/300000] Train loss: 170.54124, Valid loss: 169.87041, Elapsed_time: 1.47007
Current_accuracy : 0.000, Current_norm_ED : 0.00
Best_accuracy : 0.000, Best_norm_ED : 0.00
--------------------------------------------------------------------------------
Ground Truth | Prediction | Confidence Score & T/F
--------------------------------------------------------------------------------
가방 | 껏춘얻을든주을해든주약권 | 0.0000 False
나비 | 맡춘해얻을마을교마교짧교짧주을주해 | 0.0000 False
--------------------------------------------------------------------------------
...
<출력 생략>
728x90
반응형
'AI 인공지능 > AI Vision' 카테고리의 다른 글
Craft Model 사용법 (0) | 2022.12.01 |
---|---|
YOLOv7에 대해 알아보자 (0) | 2022.11.22 |
YOLOv7를 활용한 Object Detection (0) | 2022.11.21 |
이미지 유사도 embedding (1) | 2021.12.29 |
패션 의류 분류 (Fashion Classification) (0) | 2021.09.15 |