본문 바로가기
인공지능 기초 수업/컴퓨터 비전 실습 코드

내 핸드폰을 파이썬 AI 카메라로 만들기!

by SwMaker_Jun 2026. 3. 24.
728x90
반응형

[수업] 내 핸드폰을 파이썬 AI 카메라로 만들기!

우리가 매일 쓰는 스마트폰을 무선 웹캠으로 변신시켜보고, 파이썬 코드로 그 영상을 실시간으로 불러오는 실습을 해보자

 

1단계: 준비물 설치하기 (스마트폰 & PC)

가장 먼저 스마트폰의 영상을 PC로 보내줄 통로가 필요합니다. **'DroidCam'**이라는 앱을 사용할 거예요.

  • 스마트폰: 앱스토어 또는 플레이스토어에서 **'DroidCam'**을 설치하세요.


    안드로이드 / IOS 앱 스토어에 검색후 설치,   실행하면 WiFi IP와 Port 번호 확인하기.

 

 

  • PC (윈도우): [DroidCam 공식 홈페이지]에서 윈도우용 클라이언트를 설치하세요.
    • 주의: PC 앱을 설치해야 컴퓨터가 핸드폰을 '카메라'로 인식할 수 있는 드라이버가 생깁니다.
    • https://droidcam.app/windows/
 

Windows Client | DroidCam

4 – Add your device, and the DroidCam client will attempt to connect with the app. Once active, re-open chat programs (Zoom, Teams, Discord) and select "DroidCam Video" as your camera – just like a regular webcam! If you are using an ARM based Windows

droidcam.app

         

            1) 윈도우 클라이언트 설치

다운로드 후 설치

         

             2)  클라이언트 실행 / 핸드폰 WiFi 설정하기.

     

 

2단계: IP 주소 이해하기 (중요 개념!) 🌐

여기서 잠깐! 영상을 보내려면 핸드폰의 **'주소'**를 알아야 합니다. 이걸 IP(Internet Protocol) 주소라고 해요.

💡 IP 주소란? 인터넷 세상에서 각 장치(핸드폰, 컴퓨터 등)가 가지는 **'집 주소'**와 같아요. 편지를 보낼 때 주소가 필요하듯, 핸드폰 영상 데이터를 컴퓨터로 보낼 때도 "이 데이터를 어느 주소로 보낼까?"를 정해야 합니다.

체크포인트! 핸드폰과 컴퓨터는 반드시 **같은 와이파이(Wi-Fi)**에 연결되어 있어야 합니다. 같은 마을(네트워크) 안에 있어야 서로의 주소를 찾을 수 있거든요!


3단계: 핸드폰과 PC 연결하기

  1. 핸드폰에서 DroidCam 앱을 실행합니다.
  2. 화면에 나오는 Wi-Fi IP (예: 192.168.0.15)와 Port (4747) 번호를 확인하세요.
  3. PC에서 DroidCam 프로그램을 켜고, 핸드폰에 적힌 숫자를 똑같이 입력한 뒤 **'Start'**를 누릅니다.
  4. 내 핸드폰 화면이 PC 앱에 잘 나오는지 확인하세요!

 

 


4단계: 파이썬으로 영상 데이터 낚아채기 🎣

이제 PC 앱은 잠시 꺼두거나 최소화하세요. (파이썬 코드가 직접 데이터를 가져올 거예요.) 어떻게 네트워크를 통해 영상이 전달될까요?

💡 네트워크 스트리밍의 원리 핸드폰은 영상을 아주 작은 조각(패킷)으로 나누어 네트워크라는 길 위로 던집니다. 파이썬의 OpenCV 라이브러리는 핸드폰의 IP 주소로 찾아가서 그 조각들을 실시간으로 다시 조립해 화면에 보여주는 역할을 합니다.

[실습 코드] 아래 코드를 복사해서 파이썬에서 실행해 보세요. url 부분의 IP 주소는 여러분의 핸드폰 화면에 뜬 번호로 바꿔야 합니다!

Python
 
import cv2

# 1. 내 핸드폰 주소 설정 (끝에 /video를 붙여야 영상 데이터만 쏙 가져와요)
url = "http://192.168.x.x:4747/video" 

# 2. 영상 캡처 도구 준비
cap = cv2.VideoCapture(url)

# 3. 실시간성을 위해 버퍼(대기실) 크기를 최소로 설정
cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)

while True:
    # 4. 한 프레임씩 읽어오기
    ret, frame = cap.read()
    
    if not ret:
        print("연결을 확인하세요!")
        break

    # 5. 화면에 보여주기
    cv2.imshow('Student AI Camera', frame)

    # 'q' 키를 누르면 종료!
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

5단계: 정리하며 생각하기

  • 왜 /video를 붙이나요? : IP 주소만 입력하면 대문 앞까지 간 것이고, /video를 붙여야 "거기 있는 영상 데이터를 줘!"라고 정확히 요청하는 문을 여는 것과 같습니다.
  • 영상이 왜 늦게 나오나요? : 무선 와이파이 신호가 약하면 데이터 조각들이 오다가 길을 잃거나 늦게 도착해서 화면이 멈추기도 합니다.

 

 

728x90
반응형