<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" >
  <generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator>
  <link href="https://underhand-lab.github.io/feed.xml" rel="self" type="application/atom+xml" />
  <link href="https://underhand-lab.github.io/" rel="alternate" type="text/html" />
  <updated>2026-05-06T06:11:39+00:00</updated>
  <id>https://underhand-lab.github.io/</id>

  
    <title type="html">underhand-lab</title>
  

  
    <subtitle>컴퓨터 기술을 이용한 야구 이해</subtitle>
  

  

  
  
    <entry>
      <title type="html">Sit Val</title>
      <link href="https://underhand-lab.github.io/project/sit-val" rel="alternate" type="text/html" title="Sit Val" />
      <published>2026-01-01T00:00:00+00:00</published>
      <updated>2026-01-01T00:00:00+00:00</updated>
      <id>https://underhand-lab.github.io/project/sit-val</id>
      <content type="html" xml:base="https://underhand-lab.github.io/project/sit-val">&lt;!-- card:💡 프로젝트 개요 --&gt;

&lt;p&gt;야구 경기에서 발생하는 타격 결과를 주자, 아웃, 득점 상태를 포함한 상황으로 해석하고, 각 결과가 만들어내는 기대 득점 변화를 정량화하는 모델을 개발하는 프로젝트입니다. 해당 모델을 이용한 다양한 도구를 웹 애플리케이션으로 제공합니다.&lt;/p&gt;

&lt;p&gt;이 프로젝트는 AI 도구 Gemini를 이용하여 개발하였습니다. Gemini를 이용하여 마르코프 연쇄 모델의 계산 부분을 구현하였습니다.&lt;/p&gt;

&lt;!-- card: 🔧 기능 (Developments) --&gt;

&lt;h3 id=&quot;-리그&quot;&gt;🏆 리그&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;리그의 RE24를 계산합니다.&lt;/li&gt;
  &lt;li&gt;9이닝당 해당 리그의 기대 득점을 예측합니다.&lt;/li&gt;
  &lt;li&gt;세이버메트릭스 지표 계산에 사용되는 리그 확장 가치를 예측합니다.&lt;/li&gt;
  &lt;li&gt;추측된 리그 확장 가치를 이용하여 개인의 가치(세이버메트릭스)를 계산합니다.&lt;/li&gt;
  &lt;li&gt;리그 평균 능력에 따른 x점 이상 득점 확률을 계산합니다.&lt;/li&gt;
&lt;/ul&gt;

&lt;!-- card: 🔧 기능 (Developments) --&gt;
&lt;h3 id=&quot;-타선-기반&quot;&gt;📋 타선 기반&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;9이닝당 해당 라인업의 기대 득점을 예측합니다.&lt;/li&gt;
  &lt;li&gt;타순에 해당 타자 시점의 RE24를 계산합니다.&lt;/li&gt;
  &lt;li&gt;타순 구성에 따른 해당 타순의 선두타자 등장 확률, 9이닝당 횟수를 예측합니다.&lt;/li&gt;
  &lt;li&gt;타순 구성에 따른 x점 이상 득점 확률을 계산합니다.&lt;/li&gt;
&lt;/ul&gt;

&lt;!-- card: 🛠️ 기여 --&gt;

&lt;h3 id=&quot;-마르코프-엔진-데이터-정규화&quot;&gt;✨ 마르코프 엔진 데이터 정규화&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;모델 인터페이스 설계를 통한 재사용성 및 유지보수성 확보
    &lt;ul&gt;
      &lt;li&gt;v1: 간단한 상황 전이 모델링&lt;/li&gt;
      &lt;li&gt;v2: 타구 유형과 주자 상태별 다른 결과 전이 시나리오 추가 모델링&lt;/li&gt;
      &lt;li&gt;v3: 도루, 폭투 시나리오 추가 모델링&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;주자 상황, 능력 및 타격 결과에 따른 주자 이동, 득점 발생 모델 설계 및 구현&lt;/li&gt;
  &lt;li&gt;연쇄 이벤트(도루, 폭투) 파이프 라인 설계 및 구현&lt;/li&gt;
  &lt;li&gt;입력 데이터 유형에 따른 타선 전이 상태 모델 분리 구현&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;-인터페이스-및-결과-시각화&quot;&gt;✨ 인터페이스 및 결과 시각화&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;타격 기록, 주자 능력치 입력, 라인업 입력 시스템 구현
    &lt;ul&gt;
      &lt;li&gt;웹 컴포넌트 이용&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;마르코프 연쇄 모델 출력값 시각화
    &lt;ul&gt;
      &lt;li&gt;개인 확장 가치&lt;/li&gt;
      &lt;li&gt;리그 확장 가치&lt;/li&gt;
      &lt;li&gt;9이닝당 기대 득점&lt;/li&gt;
      &lt;li&gt;표(RE24, 득점 확률)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;번역 기능 구현
    &lt;ul&gt;
      &lt;li&gt;웹 컴포넌트, json 이용&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;</content>

      
      
      
      
      

      <author>
          <name></name>
        
        
      </author>

      

      
        <category term="개인 프로젝트" />
      
        <category term="도구" />
      
        <category term="야구" />
      

      
        <summary type="html"></summary>
      

      
      
    </entry>
  
    <entry>
      <title type="html">Cv Val</title>
      <link href="https://underhand-lab.github.io/project/cv-val" rel="alternate" type="text/html" title="Cv Val" />
      <published>2025-07-01T00:00:00+00:00</published>
      <updated>2025-07-01T00:00:00+00:00</updated>
      <id>https://underhand-lab.github.io/project/cv-val</id>
      <content type="html" xml:base="https://underhand-lab.github.io/project/cv-val">&lt;!-- card:💡 프로젝트 개요 --&gt;

&lt;p&gt;일반적인 카메라에서 얻은 동영상에서, 정확하지는 않더라도 얻기 힘든 다양한 야구 정보를 얻는 것을 목표로 하는 웹 애플리케이션 개발 프로젝트입니다.&lt;/p&gt;

&lt;p&gt;이 프로젝트는 AI 도구 Gemini를 이용하여 개발하였습니다. Gemini를 이용하여 자세 인식 및 공 인식, 일부 시각화 기능(three.js를 이용한 3d 자세, chart.js를 이용한 그래프)를 구현하였습니다.&lt;/p&gt;

&lt;!-- card: 🔧 기능 (Developments) --&gt;

&lt;h3 id=&quot;-자세-분석-자세-분석-및-관절-정보-추출&quot;&gt;🏃 자세 분석: 자세 분석 및 관절 정보 추출&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;MideaPipe를 이용하여 영상 속 인물의 자세를 인식합니다.
    &lt;ul&gt;
      &lt;li&gt;모델을 선택하여 분석의 정확도, 시간을 선택할 수 있습니다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;관절의 각도 정보를 추출하여 힘의 사용이 효율적인지 확인을 돕습니다.&lt;/li&gt;
  &lt;li&gt;관절의 속도 정보를 추출하여 힘의 사용 시작 시점 확인을 돕습니다.&lt;/li&gt;
  &lt;li&gt;관절의 높이 정보를 추출하여 선수에게 적합한 자세 확인을 돕습니다.&lt;/li&gt;
&lt;/ul&gt;

&lt;!-- card: 🔧 기능 (Developments) --&gt;
&lt;h3 id=&quot;-추적-공-추적-및-정보-추출&quot;&gt;💫 추적: 공 추적 및 정보 추출&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;YOLO의 객체 인식을 이용하여 영상에서 공을 추적합니다.
    &lt;ul&gt;
      &lt;li&gt;모델을 선택하여 분석의 정확도, 시간을 선택할 수 있습니다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;지면 대비 공의 이동 각도를 분석합니다.&lt;/li&gt;
  &lt;li&gt;공의 크기를 기반으로 공의 이동 속도를 추측합니다.&lt;/li&gt;
  &lt;li&gt;추출되는 정보는 공이 촬영자 기준으로 전후 운동을 하지 않는다고 가정한 결과입니다.
    &lt;ul&gt;
      &lt;li&gt;촬영 환경이 그렇지 않다면 지면 대비 각도는 더 크게, 공의 속도는 더 느리게 출력됩니다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;!-- card: 🔧 기능 (Developments) --&gt;

&lt;h3 id=&quot;-추적-배트-궤적-시각화&quot;&gt;💫 추적: 배트 궤적 시각화&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;YOLO의 객체 세그멘테이션 인식을 이용하여 영상에서 공을 추적합니다.
    &lt;ul&gt;
      &lt;li&gt;모델을 선택하여 분석의 정확도, 시간을 선택할 수 있습니다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;프레임 사이의 배트 궤적을 시각화합니다.&lt;/li&gt;
  &lt;li&gt;시각화된 정보를 동영상(mp4)로 저장합니다.&lt;/li&gt;
&lt;/ul&gt;

&lt;!-- card: 🛠️ 기여 --&gt;

&lt;h3 id=&quot;-리팩토링-모듈화&quot;&gt;🔥 리팩토링: 모듈화&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;개선 전: 기존에는 동영상 이미지 추출과 자세 인식, 객체 인식과 인식 내용 기반의 정보 추출이 통합
    &lt;ul&gt;
      &lt;li&gt;자세 인식, 객체 인식 라이브러리 수정 시 큰 개발 비용 소모&lt;/li&gt;
      &lt;li&gt;새로운 정보 추출 개발 시 중복 개발이 필요&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;개선 후: 동영상 이미지 추출, 자세 인식, 객체 인식과 인식 내용 기반의 정보 추출을 모듈화하여 분리
    &lt;ul&gt;
      &lt;li&gt;github 블로그를 이용한 웹 앱 배포시 Shared Array Buffer를 사용 못하여 오류가 생기던 것을 해결
        &lt;ul&gt;
          &lt;li&gt;Shared Array Buffer를 사용하지 않고 동영상 이미지 추출을 수행하는 클래스 개발을 통해 배포 성공&lt;/li&gt;
          &lt;li&gt;기존의 Shared Array Buffer를 이용하는 방법은 다른 플랫폼에 배포 시 사용하여 플랫폼에 적절한 기능 제공이 가능해짐&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;객체 인식, 자세 인식 라이브러리 수정 시 유연성 확보&lt;/li&gt;
      &lt;li&gt;새로운 정보 추출 기능을 효율적으로 추가
        &lt;ul&gt;
          &lt;li&gt;관절의 속도, 높이 분석 기능 추가&lt;/li&gt;
          &lt;li&gt;공의 지면 대비 각도 계산 기능 추가&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;</content>

      
      
      
      
      

      <author>
          <name></name>
        
        
      </author>

      

      
        <category term="개인 프로젝트" />
      
        <category term="도구" />
      
        <category term="야구" />
      

      
        <summary type="html"></summary>
      

      
      
    </entry>
  
</feed>
