목록(0, 1) (10)
0과 1 사이
아주 오래간만의 글이다. 그동안은 막학기와 졸업요건으로 인해 매우 바빴다.. 약 일년간의 프로젝트가 드디어 끝이 났다. 수상은 2주전부터 알았지만 오늘 드디어 상장이 왔다. 이노그리드에서 후원해주는 상인것 같다. 동상이다! 동상이지만 무려 200만원이나 주신다고 한다. (세금 4.4% 떼고 190만원 정도 준다.) 대상 타면 천만원! (세상에 넘 부럽다.) 수상도 한 김에, 대회에 참여하면서 얻게 된 것들에 대해 얘기해보려 한다. 기능테스트, 오픈소스 라이선스 1차 심사를 통과한 50팀에게는 기능테스트와 오픈소스 라이선스를 충족하는지 여부를 검사할 자격이 주어진다. 여기서 얻어낸 점수와 1차 심사 점수, 발표 점수를 합산해서 최종적으로 27팀에게 상을 수여한다. 그런데 기능테스트가 뭐야? 오픈소스 라이선..
이전에 잘 동작하던 프로그램이 갑자기 핵심 이미지가 세개인 수어를 인식할 때 매우 버벅거리는 문제가 생겼다. 이에 따라 코드 개선에 도전해봤다. 참고로 우리가 개발중인 손마리 프로그램은 detect한 결과들을 리스트에 저장한 뒤, 해당 리스트를 통해 최종 단어를 출력해주는 프로그램이다. 예를 들면 '쓰러지다1'과 '쓰러지다2'가 차례로 인식된 경우, ['쓰러지다1', '쓰러지다2'] 처럼 리스트에 결과를 저장한 뒤 '쓰러지다'를 출력하도록 코딩하는 것이다. 여기서는 이미지가 1,2로 두개로 나뉘어져있는 경우만 나와있지만 변비1,변비2,변비3 처럼 이미지가 세개인 단어들도 여럿 있다. 그렇다면 리스트에 결과를 저장하는 것은 어떻게 구현할까? 원래의 코드는 아래처럼 효율이 좀 떨어지고 직관적이지 않은 코드였..
pyqt를 잘 몰라서.. 의외로 이 파트가 어려웠다. ui는 간단하게 구현하기 위해 pyqt를 이용하였고 환자의 수어를 번역하여 출력하는 yolo 창만 남겨두고 최대한 단순화했다. 또한 내 노트북 상으로는 실행은 잘됐는데, 팀원 노트북에서는 실행도 되지 않았다. 다른 것들은 제외하고 pyqt로 darknet을 이용해 번역한 이미지를 가져오는 방법에 대해 설명해보겠다. 아래는 ui를 실행시키는 sonmari.py 코드이다. 핵심은 3중 쓰레드 마지막 줄에 보면 sonmari_video.drawing을 실행시키도록 되어있는데, self를 전달하여 해당 윈도우 객체를 전달해주는것이다. width = darknet.network_width(network) height = darknet.network_height..
이 파트는 어렵지 않다. 우선 파이썬 딕셔너리(밑의 코드 내에서는 continuous) 내에 단어에 따른 핵심클래스를 모두 정의해둔다. 바로 이전의 결과를 before_result에 저장한다.(단, 결과가 null이면 저장하지 않을것.) 현재의 결과는 result에 저장되고, before_result와 result를 비교해 미리 정의된 딕셔너리 내에서 대응되는 단어를 가져온다. 핵심동작이 1개인 단어도 있고 2개인 단어도 있다. 핵심동작이 1개인 경우, 실행속도가 너무 빨라 단어가 0.1초만에 출력되고 지나가버린다. 따라서 핵심동작 1개인 수화는 15번 프레임동안 출력되게 했다. 또한 2개인 수화의 경우 딕셔너리 안의 value값과 비교한후, 대응되는 단어를 가져와 출력한다. draw.text는 한글을 ..
커스텀 데이터를 이용해 YOLO를 트레이닝 하는 것은 인터넷에도 많이 나와있다. https://github.com/AlexeyAB/darknet#how-to-train-to-detect-your-custom-objects AlexeyAB/darknet YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet ) - AlexeyAB/darknet github.com 위 링크를 많이 참고했다. YOLO는 학습시킬 트레이닝 이미지와 그에 대한 라벨링 파일(txt), 테스트 이미지만 있다면 쉽게 딥러닝을 트레이닝 시킬 수 있는 오픈소스이다. 우선은 라벨링이 필수적이다. 이미지 데..
이름하여 Vegan restaurants in Seoul 이다. 본 프로젝트는 데이터를 응용한 웹개발 수업의 과제였고, 2주안에 만든 첫 웹개발이기 때문에 아주 뛰어난 퀄리티는 못된다. 또 주제가 흥미로웠으나 데이터가 부족하다는 단점이 있다. 그러나 서울시에서 서울 비건식당 목록 데이터를 공개해준 덕분에 '서울'에 한정해서만 레스토랑 목록을 보여주는 홈페이지를 개발했다. 해당 데이터는 https://news.seoul.go.kr/welfare/public_health/status-of-vegetarian-restaurants 에서 엑셀로 다운받을 수 있다. 엑셀로 다운받으면 sql로 가져와서 데이터를 이용하면 된다. 도메인을 사지는 않았기 때문에 localhost에서만 접속가능하다. 메인 화면에서 검색창..
대다수의 수어 번역 프로그램은 위와 같은 정지된 이미지(지화)에 대한 번역을 제공하고 있다. 또한 rnn을 이용하여 동적인 이미지를 번역하는 프로그램은 속도 저하로 인해 실시간 번역을 제공하기 어렵다는 문제가 있다. 이에 따라 동적인 이미지를 번역하면서도 실시간으로, 빠르게 수어를 번역할 수 있는 방법을 생각해보았다. 이 방법을 고민하는 데만 몇 달이 소요됐다. 방법은 수어 동작 별로 핵심 이미지를 검출하는 것. 예를 들면 '아파트'라는 단어의 경우, sldict.korean.go.kr/front/sign/signContentsView.do?origin_no=11964&top_category=CTE&category=&searchKeyword=%EC%95%84%ED%8C%8C%ED%8A%B8&searchC..