OpenCV에서 제공되는 haarcascade_fullbody.xml 라이브러리와
Python을 사용해서 인체를 감지하는 코드를 테스트 용도로 만들었다.
haarcascade_fullbody.xml 라이브러리는 openCV의 git에서 download 받아야 한다.
정확하게 받지 않으면 error frame에 빠지게 되므로 주의해야 한다.
아래와 같이 받고자 하는 파일을 선택하고 download link의 raw file을 받아야 정상 동작한다.
파일을 받았다면
Python에서 실행하기 전에
OpenCV가 설치되어 있어야 한다(OpenCV의 설치방법은 다른 blog에서 ref.)
import cv2
cap = cv2.VideoCapture('sample4.mp4')
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.namedWindow('Full Body Detection')
body_cascade = cv2.CascadeClassifier('haarcascade_fullbody.xml')
while True:
ret, frame = cap.read()
if not ret:
break
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
bodies = body_cascade.detectMultiScale(gray, 1.1, 4)
for (x, y, w, h) in bodies:
cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
cv2.putText(frame, 'Motoway Detection', (x, y - 10), font, 0.9, (36, 255, 12), 2)
cv2.imshow('Motoway Human Detection', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
들어오는 영상은 streaming으로 하지 않고 sample4라는 mp4파일로 지정했다.
아래에 sample1.mp4, sample2.mp4 파일을 첨부했다.
이 파일들을 사용하려면 코드에서 파일이름을 바꿔야만 한다.
실행 방법은 아래와 같다(파이썬 설치경로마다 다를 수 있지만 실행명령은 같다.).
C:\Python312> python bodydetect.py
위 영상과 같이 full body가 감지되면
지정된 컬러 박스와 사전 정의한 텍스트를 출력할 수 있다.
물론, 감지된 결과를 다른 시스템과 통신도 가능하다.
아래는 다른 샘플 파일로 테스트한 영상 결과다.
위 코드와 같이 테스트 할 수 있는 sample mp4 파일 2개를
같이 올린다. deep learning까지 이어지는 Try를 해보길. Good luck.
'디지털포렌식(Digital forensic) > 그림' 카테고리의 다른 글
스마트폰 패턴 생성 & 테스트 (0) | 2024.06.08 |
---|---|
JPG 파일 구조 분석 #1 (0) | 2023.11.14 |
[파일] JPG 파일 만드는 C# 코드 (0) | 2023.11.13 |
[파일] 태영호 영사 사진에 숨겨진 '주소추적보고' (1) | 2023.09.09 |
[파일]퍼즐맞추기 암호, (1) | 2023.09.03 |