자율주행

Script Editer Spyder에서 Haarcascades OpenCV 보행자 인식 VI

coding art 2022. 9. 10. 20:13
728x90

참조: Vehicle-And-Pedestrian-Detection-Using-Haar-Cascades

https://github.com/AdityaPai2398/Vehicle-And-Pedestrian-Detection-Using-Haar-Cascades

 

셀(cell) 방식의 쥬파터 사용에서 통째로 코드 실행이 가능한 스크립트 편집기 Spyder를 사용하여 Haarcascades 지원 라이브러리인 ‘pedestrian’을 사용해 동영상 ‘pedestrian.avi’에서 보행자를 검출해 보자.

 

Anaconda Navigator 화면에서 opencv-python 이 이미 설치되어 있는 basic(root) 상태에서 아래 그림에서처럼 Spyder 편집기를 ‘Launch’ 버튼을 클릭하자. 만약 버튼이 ‘Install’ 로 남아 있다면 버튼을 틀릭하여 일정 시간 대기 후 ‘Launch’ 로 바뀌는지 확인하자.

편집기에서 활성화 시킨 부분 흰색 박스 친 Run current cell 버튼을 클릭하면 셀처럼 실행된다. 그 옆 버튼은 셀 실행 후 그 다음 명령으로 넘어감을 의미한다.

 

동영상 파일 ‘pedestrian.avi’과 라이브러리 ‘pedestrian.xml’ 과 실행 스크립트 파일을 하나의 폴더에 두어야 함에 유의하자. 카메라 디바이스 없이 동영상 파일을 이미지 입력으로 사용할 수 있도록 확장자가 avi 인 pedestrian.avi 파일을 video_src 로 두자.

 
 

무한 루프를 도는 while True 문은 영상 파일이 소진되거나 영상 입력에 따른 불리언 값 ret 가 거짓일 때 break 시킨 후 윈도우 창을 완전히 제거한다. 이미지가 정상적으로 입력 되었다면 color에서 흑백으로 변환시키자. 대부분의 이미지는 흑백 변환 후에도 충분히 각종 필터링이나 인공지능 분석이 가능하다.

detectMultiScale 명령을 사용하여 객체를 찾아낸다.

OpenCV 동영상 처리 과정에서 단위 시간당 즉 초당 frame 수는 fps=30 이다. 한 프레임당 33 miliseconds 이며 ‘27’ 은 ‘ESC“키의 ASCII 값을 의미한다. 즉 커서를 OpenCV 이미지 창 화면에 클릭한 후 ESC키 를 누르면 1 frame 에 해당하는 짧은 시간 안에 종료하게 된다.

 

 

실행 결과 영상을 관찰해 보자.

블로그에 첨부된 실행파일, 라이브러리 파일 및 동영상 파일을 다운받아 같은 폴더에 넣고 실행하여 보아라.

pedestrians.avi
7.75MB

detection_pedestrian.py
0.00MB