이 포트폴리오는 데스크톱 가로 화면 환경에 최적화된 화면으로 구성했습니다. 비율을 적당히 조절해서 보시면 최적의 화면에서 보실 수 있습니다.
.png)
<aside>
운동선수로 활동하며 팀 안에서 끝까지 함께 뛰는 법을 배웠고, 개발자가 된 뒤에는 기초를 튼튼히 다지고 그 위에 결과를 쌓아가는 태도를 키워왔습니다.
저는 낯선 영역을 익히는 데서 멈추지 않고, 문제의 구조를 이해하고 팀의 방향을 정리하며 실제 결과로 이어지는 기여를 만들어갑니다.
</aside>
Phone. 010-9465-2546
Mail. [email protected]
School. 부산SW마이스터고등학교 재학 중
Linkedin. https://www.linkedin.com/in/%EA%B8%B8%ED%98%84-%EA%B6%8C-a44978379/
Github. https://github.com/Hyun731
Velog. https://velog.io/@hyun_731/posts
Data Analysis & AI 4명
#K-ICT 데이터+AI 크리에이터 캠프 예선작
고등부 예선 2026.08.~ 2026.10.
PyTorch ResNet18 ultralytics YOLOv11n
https://github.com/Hyun731/surface_model
전체 파이프라인 설계와 모델 개발 담당
이번 캠프의 문제는 수위표(목자판)가 찍힌 이미지 한 장으로 실제 수위(m)를 예측하는 모델을 학습 및 가평이였습니다.
AI-Hub 수위 측정 데이터(308,085장)를 사용했고, 목자판 종류와 방해물이 다양해 한 번의 검출만으로는 풀기 어려운 문제였습니다.
개발 과정에서 가장 오래 고민한 것은 모델 성능보다 이 점수를 믿을 수 있는가 였습니다. 비슷한 사진이 많은 데이터, 오타가 섞인 정답 라벨, 한 장면이 점수를 좌우하는 문제를 하나씩 확인하며 해결했습니다.
<aside> 🛠
이번 프로젝트에서 저는 전체 파이프라인 설계와 모델 개발을 담당했습니다.
수위를 직접 회귀하지 않고 목자판의 눈금을 읽어 계산하는 방식을 선택했습니다. 오차 분석에서 수위 오차의 대부분이 cm가 아니라 m 숫자 오탐지에서 나온다는 것을 확인했고, 검출과 숫자 읽기를 분리하면 원인을 따로 볼 수 있다고 판단했습니다.
최종 결과는 계산 성공률 99.5%, RMSE 0.672 m, ±0.1 m 이내 94.5% 입니다. (test 30,808장, YOLO val mAP50 0.963)
</aside>
<aside> 🚨
<aside> 🚨
초기 모델은 미터 표기를 0m~20m의 21개 클래스로 직접 검출하도록 설계했습니다. 그러나 목자판 종류마다 숫자의 글꼴과 형태가 다르고, 장면 단위로 데이터를 분리하면서 학습에서 충분히 보지 못한 숫자·목자판 조합에 대한 일반화 성능이 떨어졌습니다.
혼동 행렬 분석 결과, **12m를 2m로 오독하는 비율이 88%**였습니다. 실제 이미지를 확인하니 YOLO가 검출한 박스에서 왼쪽 숫자 1이 잘리고 2만 남아 있었습니다.
특히 두 자리 숫자를 한 클래스로 검출하는 방식에서는 박스 위치가 조금만 어긋나도 미터 값 전체가 바뀌었습니다.


미터 값이 잘못되면 이후 눈금 계산의 기준점 자체가 바뀌기 때문에, 최종 수위가 수 m 이상 차이 나는 주요 원인이 됐습니다.
12m, 13m 등을 각각 별도 클래스로 검출하는 대신, 미터 표기의 위치를 찾는 단계와 실제 숫자를 읽는 단계를 분리했습니다.
검출 모델이 숫자의 위치를 찾고, 별도의 ResNet18 분류기가 잘라낸 영역에서 미터 값을 판별하도록 변경했습니다.
Data Analysis 1명 AI 1명 UX/UI 1명 Backend 1명 App 1명
#동계 해커톤 최우수상🥇
2025년 동계 해커톤 2025.12.~ 2025.12.
Tensorflow.js ultralytics YOLOv11n
https://github.com/Hyun731/TrashDetection-YOLOv11n-
YOLOv11n 모델 파인튜닝 모델 모바일 환경 최적화 모델 성능 가평 AIHub/Kaggle 데이터 분석 및 전처리 수행