- 프로젝트명: 푸바오 (푸른 바다로 오세요)
- 서비스 특징: 20, 30대 바다 낚시 입문자를 위한 바다 낚시 입문 가이드 앱 서비스
- 주요 기능
- 맞춤 정보 제공
- AI 이미지 인식
- 나만의 도감
- 어항
- 주요 기술
- 어종 판별
- 길이 측정
- 추천 알고리즘
- 홈 IoT
- 배포 환경
- URL: https://i10c104.p.ssafy.io/
- 테스트 계정: [ID] ssafy@ssafy.com [PW] ssafy1111
- Notion
-
맞춤 정보 제공
일정 등록 전, 일정 등록 후, 일정 당일에 따른 바다 낚시 입문자 맞춤 정보를 제공해준다. -
AI 이미지 인식
AI 카메라를 통해 물고기 사진을 찍으면 AI를 통해 해당 어류의 어종을 판별해준다.
또한 물고기 옆에 신용 카드 및 담뱃갑 등의 비교 물체를 놓고 사진을 찍으면 어류의 길이 측정도 동시에 해준다. -
나만의 도감
AI 카메라를 통해 판별된 어종이 도감에 자동으로 등록된다.
도감에서 각 어종의 잡은 횟수 및 최대 길이를 확인할 수 있다. -
어항
도감에 어종이 등록되면 해당 어종의 물고기 에셋이 어항 속에 추가되고,
어항 속을 헤엄치는 애니메이션을 볼 수 있다.
-
어종 판별
11,854개의 구글 크롤링 이미지 데이터셋을 MobileNet 구조의 CNN 모델로
학습시켜 인공지능 모델 파일 생성 -
길이 측정
- 어류 객체 탐지
Object Detection API 사용 - 카드 객체 탐지
OpenCV Canny 사용
-
추천 알고리즘
가중치 랜덤 알고리즘을 통한 사용자 설문 및 리뷰 기반 추천 -
홈 IoT
Three.js를 사용해 물고기 에셋을 추가하고 블랜더 툴을 이용해 애니메이션 수정
또한 라즈베리파이와 와이파이 모듈(ESP8266)간에 MQTT를 사용해 통신하여 조명 제어
- 고광현: FE / EMBEDDED
- 김민영: BE / INFRA
- 김지용: 팀장 / FE
- 박미성: AI
- 오유진: BE / FE / PT
Application | Domain | Language | Framework |
---|---|---|---|
🔲 Desktop Web | ✅ AI | ✅ JavaScript | 🔲 Vue.js |
🔲 Mobile Web | 🔲 Big Data | ✅ TypeScript | ✅ React |
🔲 Responsive Web | 🔲 Blockchain | 🔲 C/C++ | 🔲 Angular |
✅ Android App | ✅ IoT | 🔲 C# | ✅ Node.js |
🔲 iOS App | 🔲 AR/VR/Metaverse | ✅ Python | ✅ Flask/Django |
✅ Desktop App | 🔲 Game | 🔲 Java | 🔲 Spring/Springboot |
🔲 Kotlin |
커밋 메시지는 제목/본문/꼬리말로 구성
type: Subject // 제목 body(옵션) // 본문 footer(옵션) // 꼬리말
type : 어떤 의도로 커밋했는지를 type 에 명시(ex. feat, fix, docs)
Subject : 제목. 코드 변경사항에 대한 짧은 요약
body : 긴 설명이 필요한 경우, 어떻게 작성했는지가 아닌 무엇을 왜 했는지 를 작성(부연설명 혹은 커밋이유)
footer : issue tracker ID 를 명시하고 싶은 경우에 작성
- 태그(tag) + 제목(subject) 형식
- 첫 문자는 대문자
- "태그: 제목" 의 형태이며, ":" 뒤에 space 가 있음에 유의[ex) Feat: buy album api (Feat 가 태그이고, buy album api 가 제목)]
- Add : 코드나 테스트, 예제, 문서등의 추가 생성이 있는경우
- Implement : 코드가 추가된 정도보다 더 주목할만한 구현체를 완성시켰을 때
- Design : CSS 등 사용자가 UI 디자인을 변경했을 때
- Temp : 작업 중에 사정상 임시로 저장할 경우
- Docs : 문서를 수정한 경우
- Fix : 버그를 고친경우
- Style : 코드 포맷 변경, 세미콜론 누락, 코드 수정이 없는경우
- Refactor : 코드 리펙토링
- Test : 테스트 코드. 리펙토링 테스트 코드를 추가했을 때
- Rename : 파일명(or 폴더명) 을 수정한 경우
- Remove : 코드(파일) 의 삭제가 있을 때. "Clean", "Eliminate" 를 사용하기도 함
- Chore : 빌드 업무 수정, 패키지 매니저 수정
- Improve : 향상이 있는 경우. 호환성, 검증 기능, 접근성 등이 될수 있습니다.
- Move : 코드의 이동이 있는경우
- Feat : 새로운 기능을 추가하는 경우
- Updated : 계정이나 버전 업데이트가 있을 때 사용. 주로 코드보다는 문서나, 리소스, 라이브러리등에 사용합니다.
- Comment : 필요한 주석 추가 및 변경
- 제목은 최대 50글자가 넘지 않고, 마침표 및 특수기호는 사용 금지
- 동사(원형)를 가장 앞에 두고 첫 글자는 대문자로 표기
- 제목은 개조식 구문으로 작성 --> 완전한 서술형 문장이 아니라, 간결하고 요점적인 서술을 의미.
- Fixed --> Fix
- Added --> Add
- Modified --> Modify
- 본문은 한 줄 당 72자 내로 작성
- 본문 내용은 양에 구애받지 않고 최대한 상세히 작성
- 어떻게 변경했는지 보다 무엇을 변경했는지 또는 왜 변경했는지를 설명
- 꼬리말은 선택사항, 이슈 트래커 ID 작성
- "유형: #이슈 번호" 형식으로 사용
- 여러 개의 이슈 번호를 적을 때는 쉼표(,)로 구분
- 이슈 트래커 유형은 다음 중 하나를 사용
- Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
- Resolves: 이슈를 해결했을 때 사용
- Ref: 참고할 이슈가 있을 때 사용
- Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우) ex) Fixes: #45 Related to: #34, #23