0과 1 사이
핵심 이미지 검출 시 단어 출력 본문
이 파트는 어렵지 않다. 우선 파이썬 딕셔너리(밑의 코드 내에서는 continuous) 내에 단어에 따른 핵심클래스를 모두 정의해둔다.
바로 이전의 결과를 before_result에 저장한다.(단, 결과가 null이면 저장하지 않을것.) 현재의 결과는 result에 저장되고, before_result와 result를 비교해 미리 정의된 딕셔너리 내에서 대응되는 단어를 가져온다.
핵심동작이 1개인 단어도 있고 2개인 단어도 있다. 핵심동작이 1개인 경우, 실행속도가 너무 빨라 단어가 0.1초만에 출력되고 지나가버린다. 따라서 핵심동작 1개인 수화는 15번 프레임동안 출력되게 했다.
또한 2개인 수화의 경우 딕셔너리 안의 value값과 비교한후, 대응되는 단어를 가져와 출력한다.
draw.text는 한글을 이미지 위에 입력하기 위한 코드이다.
#코드
continuous = {'감기':["cold1","cold2"], '아니':["no1","no2"], '콧물':["runnynose1","runnynose2"],
'쓰러지다':["fall1","fall2"], '설사':["diarrhea1","diarrhea2"], '메스껍다':["nauseous1", "nauseous2"]}
list_of_key = list(continuous.keys())
list_of_value = list(continuous.values())
for i in range(len(list_of_key)):
if before_result==list_of_value[i][0]:
if label==list_of_value[i][1]:
word = list_of_key[i]
draw.text((x1, y1), word, font=ImageFont.truetype('malgun.ttf', 36), fill=(0, 0, 0))
image = np.array(pill_image)
break
이 코드는 핵심 이미지가 1개, 2개인 단어까지만 출력할 수 있는 코드이다.
따라서 이후 코드를 개선했다.
개선된 코드는 다음 포스팅 참고!
https://go-ming.tistory.com/15?category=936238
'(0, 1) > 손마리' 카테고리의 다른 글
[파이썬] 큐(Queue) 자료구조, 코드 개선 (0) | 2022.01.28 |
---|---|
PYQT를 이용해 UI와 YOLO 연결 시키기 (0) | 2022.01.27 |
YOLO를 이용한 핵심 이미지 트레이닝 및 라벨링 (0) | 2022.01.27 |
수어 번역 프로그램(sign language translator in hospital) (9) | 2021.05.17 |
기존의 수어 번역 오픈소스 조사 (0) | 2021.04.24 |