[수업] 내 핸드폰을 파이썬 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 연결하기
- 핸드폰에서 DroidCam 앱을 실행합니다.
- 화면에 나오는 Wi-Fi IP (예: 192.168.0.15)와 Port (4747) 번호를 확인하세요.
- PC에서 DroidCam 프로그램을 켜고, 핸드폰에 적힌 숫자를 똑같이 입력한 뒤 **'Start'**를 누릅니다.
- 내 핸드폰 화면이 PC 앱에 잘 나오는지 확인하세요!

4단계: 파이썬으로 영상 데이터 낚아채기 🎣
이제 PC 앱은 잠시 꺼두거나 최소화하세요. (파이썬 코드가 직접 데이터를 가져올 거예요.) 어떻게 네트워크를 통해 영상이 전달될까요?
💡 네트워크 스트리밍의 원리 핸드폰은 영상을 아주 작은 조각(패킷)으로 나누어 네트워크라는 길 위로 던집니다. 파이썬의 OpenCV 라이브러리는 핸드폰의 IP 주소로 찾아가서 그 조각들을 실시간으로 다시 조립해 화면에 보여주는 역할을 합니다.
[실습 코드] 아래 코드를 복사해서 파이썬에서 실행해 보세요. url 부분의 IP 주소는 여러분의 핸드폰 화면에 뜬 번호로 바꿔야 합니다!
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를 붙여야 "거기 있는 영상 데이터를 줘!"라고 정확히 요청하는 문을 여는 것과 같습니다.
- 영상이 왜 늦게 나오나요? : 무선 와이파이 신호가 약하면 데이터 조각들이 오다가 길을 잃거나 늦게 도착해서 화면이 멈추기도 합니다.
'인공지능 기초 수업 > 컴퓨터 비전 실습 코드' 카테고리의 다른 글
| Mediapipe 메쉬 모델 입크기를 서보모터 각도 값으로 변환하기. (1) | 2025.09.03 |
|---|---|
| Mediapip 메쉬(Mesh)모델 활용하기. (0) | 2025.09.03 |
| mediapipe 매쉬 모델활용 얼굴 트레킹봇 만들기. (4) | 2025.08.14 |
| 포즈모델을 활용한 AI 구글 공룡 게임 (2) | 2025.06.23 |
| Mediapipe hands 모델 왼손, 오른손 구별 하기. (0) | 2025.04.15 |

