본문 바로가기
Project

[프로젝트] 치매측정플랫폼

by 테리는당근을좋아해 2020. 4. 9.

1. 소개

2019년도 2학기 종합설계프로젝트2에서 산학과제로 수행했던 프로젝트

 

플랫폼에서는 크게 세 가지 기능을 제공한다.

 

첫 번째는 이미지 자동 측정이다. 치매환자는 간이치매측정 시 일정시간동안 숫자와 매핑시킨 기호를 암기하고, 이 후에

 

숫자를 제공하면 답안으로 기호를 그려내는데 답안을 사람이 채점하는데 발생하는 오류와 비효율성을 줄이기 위해

 

플랫폼에서 인공지능을 활용해 채점할 수 있는 기능이다.

 

두 번째는 치매 척도 예측이다. 환자의 데이터와 치매 척도 간의 상관관계를 분석하고

 

특정환자의 데이터를 기반으로 치매척도를 예측하는 기능이다.

 

세 번째는 데이터베이스에 축적된 환자의 데이터 간 상관관계를 분석할 수 있게 시각적인 기능이다.

 

그래프를 사용해 상관관계를 보다 시각적으로 확인할 수 있도록 제공한다.

 

2. 팀원 및 역할

팀내에서 역할은 플랫폼 개발과 선형회귀분석이었다.

 

플랫폼 개발은 기본적인 틀을 구성하고,

 

개발한 이미지 인식 모듈과 선형회귀 분석 모델을 플랫폼에 이식해

 

플랫폼에서 이미지 인식과 회귀 분석을 할 수 있도록 만드는 것이다.

 

회귀분석은 치매환자와 관련된 데이터셋을 모아 치매척도를 회귀분석한 모델을 만들고,

 

환자의 데이터를 입력하면 치매척도를 예측할 수 있는 기능을 구현하는 것이다.

 

3. 사용 기술

백엔드 : Django, Python

 

프론트엔드: matarialize, html, css, javascript

 

데이터베이스: SQLite

 

회귀 분석 : skcitlearn, linear regression

 

이미지 딥러닝 : tensorflow, CNN, openCV 

 

장고를 사용한 이유?

장고는 파이썬 기반의 오픈소스 웹 프로그래밍 프레임워크로 로그인, 관리 등 많은 기능들과 ORM을 내장하고 있어 빠른 개발이 가능하다. 또한 파이썬을 사용하기 때문에 파이썬의 강력한 라이브러리를 그대로 사용할 수 있다는 이점을 가지고 있다

 

materialize?

materialize는 부트스트랩과 같은 jQuery 기반의 오픈소스 프론트엔드 라이브러리로, 레이아웃, 버튼 등 많은 컴포넌트가 구현되어 있고, 반응형 웹도 지원하기 때문에 빠른 프론트엔드 개발을 할 수 있다.

 

OpenCV?

OpenSource Computer Vision의 약자로, 실시간 컴퓨터 비전에 사용되는 알고리즘, 이미지 처리 등 많인 기능을 제공하는 오픈소스 라이브러리이다. 환자가 답안으로 작성하는 이미지 데이터는 raw한 상태이기 때문에, 중앙 정렬, 28by28사이즈로 입력된 이미지를 통일시키고, 0 ~ 255 로 입력되는 색상을 0, 1로 매핑시키는 등의 이미지 전처리를 해 예측 정확도를 높이기 위해 사용했다.

 

CNN(Convolution Neural Network)?

합성곱 신경망은 이미지 딥러닝에 많이 사용되는 알고리즘으로, 기존 인공신경망과 다르게 Convolution Layer와 Pooling Layer를 통해 3차원의 이미지를 flatten없이 그대로 학습해 이미지의 뒤틀림, 노이즈 등에도 정확하게 예측할 수 있다.

 

Linear Regression?

아마 이 프로젝트의 가장 큰 오점이라고 생각이 된다. 신경외과에서 환자의 데이터를 충분히 확보한다면 치매 척도를 예측할 수 있을 것이라는 기대로 치매 척도 예측이라는 기능을 구현했지만, 환자의 데이터셋을 확보할 수가 없었고 캐글에서 어찌어찌 구해온 데이터도 충분하지 않았다. 심지어 치매척도가 0.0, 1.0, 2.0 실수라서 연속형 데이터라고 생각했는데 프로젝트가 끝나고 보니 0.0(안전) 1.0(주의) 이런 형태의 범주형 데이터였다. 애초에 선형 회귀의 가정을 만족하지 못한다.

 

4. 후기

백과 프론트를 혼자서 개발해보는 경험은 처음이라서 힘들었지만 재밌는 프로젝트였다.

 

힘든 점이라면 이미지 인식을 위해서 데이터베이스에 저장된 이미지를 다시불러와야하는데 path를 지정하는데

 

힘들었다. views.py에서 함수가 실행되면 상대주소가 어떻게 되는지 몰라서 해맸던 것 같다.

 

또한 CNN을 사용해 모듈로 이미지 자동 측정을 구현하고 웹 애플리케이션과 합치는 과정에서 버전 이슈가 발생했다.

 

그래서 tensorflow의 버전을 1.x로 전부 다운그레이드 시켰다. 진짜 이미지 측정 구현한 팀원한테 너무 미안했다.

 

후회 되는 점은 회귀분석이다. 치매척도를 예측하기 위해서 회귀분석을 선택한 것 자체가 오류였다.

 

치매척도는 범주형 데이터였기 때문에 애초에 선형적 관계를 가지지 못하고 회귀분석 가정을 만족하지 못한다.

 

이전까지 배웠던 지식을 여러가지로 활용할 수 있었던 프로젝트였다.

 

5. 프로젝트

https://www.youtube.com/watch?v=xAICR0x3ynw

 

3. GIT

https://github.com/dheldh77/Character_recognition

 

dheldh77/Character_recognition

Contribute to dheldh77/Character_recognition development by creating an account on GitHub.

github.com

 

'Project' 카테고리의 다른 글

프로젝트 예시  (0) 2022.04.07
[프로젝트] 경북대 멋쟁이사자처럼 홈페이지  (3) 2020.04.09
[프로젝트] SNS  (0) 2020.04.09
[프로젝트] 스마트 기저귀  (0) 2020.04.09
[프로젝트] 어린이집 종합 플랫폼  (7) 2020.04.09

댓글