비록 이중전공이긴 하나
그래도 졸업 요건을 충족해야하기 때문에
4학년 1학기 수업을 들으며 졸업 프로젝트를 진행했다.
우리 팀원은 총 4명이었고, 처음부터 끝까지 충돌 없이 프로젝트를 잘 마무리했다.
(가장 걱정하던 수업이었는데 함께 해준 팀원들 덕분에 한 학기 내내 큰 어려움 없이 잘 마무리 할 수 있었다.ㅠㅠ)
주제를 잘 선정하는 것이 중요하기 때문에 팀원들 각자 주제를 생각해서 공유하기로 했다.
프로젝트를 따로 진행해본 적이 없었기에 어떤 주제를 다루어야하며, 졸업 프로젝트에서 얼마만큼의 역량을 요구하는지 가늠할 수 없었기 때문에 상당히 난관이었다.
이중전공으로 컴퓨터를 배우긴 했지만..
이 실력으로 프로젝트를 진행하기에는 무리가 있다고 생각했었기 때문에..
(자세한 후기는 프로젝트 포스팅 마지막에 추가!)
어쨌든 우리 조가 선택한 주제는
'AI 품종 분류 기능을 도입한 유기견 입양 플랫폼 개발'이었다.
요새 AI 분야가 핫해서 다른 조에서도 꽤 다룬 것 같았다.
주제 선정 전 여러 아이디어들이 나왔지만 이 주제를 선정했던 결정적인 이유는,
유기견과 관련한 사회적 문제와도 연관되어있기 때문이다.
'연 평균 발생하는 유기견의 수는 무려 56000마리 정도로
분양되는 유기견은 약 31%, 그리고 32%는 안락사에 처해지고 있다'고 한다.
뿐만 아니라, 유기견을 관리하는 보호소의 관리 시스템이 굉장히 열악하며
이에 업계 관계자들 사이에서는 동물보호 관리 시스템 개선이 필요하다는 지적이 제기되고 있다고 한다.
이렇게 관련 자료를 찾던 도중,
'유실유기견의 약 73%정도는 품종을 알 수 없어 분양 사이트에 대부분 정확한 품종이 아닌 '믹스견'으로 기입되는 경우가 많으며, 품종 오류를 줄이고 정확한 집계를 하여 유기견을 제대로 관리한다면, 분양률을 높여 유실 유기 동물을 줄일 수 있을 것'이라는 자료를 보았다.
우리가 이 주제를 선택하게 된 결정적인 자료였다.
'유기견 보호소'는 우리가 만든 플랫폼을 이용하여 유기견의 품종을 검색할 수 있고,
입양 희망자 역시 플랫폼을 이용하여 원하는 품종의 유기견을 검색하고 그 유기견이 어느 보호소에 있는지를 알 수 있게 하는 방식으로 초기 방향을 설정하였다.
1. 시스템/GUI 구성도
전체적인 시스템 구성도는 다음과 같이 그렸다.
1. 로그인/회원가입 기능 -> 보호소 계정과 일반 사용자 계정을 구분한다.
2. 유기견 등록 기능 -> 보호소 계정이 유실 유기견을 등록한다. (이때, 머신러닝을 이용하여 품종을 구분하도록 한다.)
3. 유기견 검색 기능 -> 일반 사용자 계정이 유기견을 검색하여 정보를 찾는다.
필요한 시스템을 크게 3가지로 구분하여 GUI를 구성해보았다.
- 홈/로그인/회원가입 기능
- 유기견 등록 기능
- 유기견 검색 기능
2. 역할 분담
사실 가장 걱정되는 부분이었다. GUI 구성을 진행함과 동시에 각자 수행해야 할 역할을 분담하였는데,
생각보다 각자 하고싶은 부분이 있어서 수월하게 역할분담을 할 수 있었다.
우선, 진행해야 할 부분들을 조원 수대로 4가지로 나누었는데, 다음과 같다.
- 데이터셋 준비
- 유기견의 품종 분류를 해야하기 때문에 최대한 많은 수의 유기견(특히, 믹스견)의 사진이 많이 필요했다. 필요한 데이터셋은 KAGGLE을 통해 수집하고 이외의 추가적으로 필요한 부분은 크롤링을 하였다.
- 알고리즘 구현★
- 내가 맡은 부분으로, 이미지만으로 정확한 품종을 구분하는 데에 한계가 있다고 판단되었기 때문에 유기견의 추 가적인 정보를 더하여 분류를 구체화하고 성능을 높이는 알고리즘을 설계하고 구현하였다. 또한, 웹사이트에서 품종 분류에 따라 유기견의 정보를 검색하는 알고리즘을 추가로 구현하였다.
- 머신러닝 모델 성능 개선
- 유기견 품종 분류를 위해 google의 Teachable Machine을 사용하였는데, (이후, 직접 만든 모델로 대체하였다.)
여기 사용된 알고리즘을 분석하고, 이미지 모델의 정확도와 성능 개선을 탐색하였다.
- 웹 사이트 구현
- 웹을 구현하고 배포하였다.
나는 이전에 알고리즘 수업을 굉장히 재밌게 들었었기 때문에, 직접 알고리즘을 설계하고 구현해보고 싶어 '알고리즘 구현'파트를 맡아 진행하게 되었다.
(덧붙이자면, 프로젝트를 진행하면서 학교 수업으로 html,css,js등의 공부를 병행하며 웹개발에 관심이 생겼는데, 이 때 알고리즘 설계 파트를 맡아 공부하면서 본격적으로 백엔드 개발에 흥미가 생겼다!)
다음 포스팅부터는 내가 맡았던 파트를 중점적으로 정리해보려고 한다.
'컴퓨터 > Backend' 카테고리의 다른 글
[졸업 프로젝트]_3. 알고리즘 설계와 구현(2차 알고리즘)_+Teachable Machine 활용법 (0) | 2021.08.11 |
---|---|
[졸업 프로젝트]_2. 알고리즘 설계와 구현(1차 알고리즘) (0) | 2021.08.08 |
[웹 프로젝트]_영화관 홈페이지 제작하기 - 5. 예매 기능을 위한 Javascript 구현 설명 (0) | 2021.08.01 |
[웹 프로젝트]_영화관 홈페이지 제작하기 - 4. 예매 기능 추가 설명 & 변경된 페이지 설명 (0) | 2021.08.01 |
[웹 프로젝트]_영화관 홈페이지 제작하기 - 3. 구현 결과 화면 & 링크 연결 설명 (0) | 2021.07.17 |