python에서 실시간 차량 검사를 어떻게 실행합니까
본고에서, 나는 몇 줄 코드에서 OpenCV 라이브러리와 훈련을 거친 등급 분류기를 사용하여python에서 실시간 차량 검사를 하는 방법을 가르쳐 드리겠습니다.
차량 검측에 대해 간단히 이야기하다.
실시간 차량 검측은 목표 검측의 많은 응용 중 하나로 그 중점은 검측 영상 속의 차량과 위치 좌표이다.
어디에서 사용합니까?
당신은 무엇을 지을 것입니까?
본 강좌에서 우리는 OpenCV와 미리 훈련된 등급 연결 모델을 어떻게 사용하여 영상이나 카메라 흐름에서 실시간 차량 검측을 실행하는지 배울 것이다.
요구 사항
본 강좌를 완성할 수 있도록 당신의 기계에는 다음과 같은 내용이 있어야 합니다
설치하다.
$ pip install opencv-python
프리 트레이닝 레벨 분류기
앞서 설명한 바와 같이 우리는 우리의 모델이 0부터 영상 프레임에서 자동차를 식별하도록 훈련하지 않고 미리 훈련된 모델을 사용한다.
훈련된 등급별 분류기는 보통 XML 형식으로 저장되기 때문에 훈련된 차량의 등급을 검사하고 프로젝트 디렉터리에 저장해야 합니다.
숙련된 캐스케이드 모드 다운로드click-here
자동차 데모 영상
실제로 당신은 원하는 동영상을 사용할 수 있습니다. 동영상에 자동차가 있으면, 등급 연결 모형이 그것들을 검출할 수 있습니다.
만약 내가 본문에서 사용한 동영상을 사용하고 싶다면Download here;
프로젝트 디렉토리
프로젝트 디렉터리는 다음과 같습니다
.
├── app.py
├── cars.mp4
└── haarcascade_car.xml
손 더럽히래요.
이제 방금 논의한 내용을 구축하는 것부터 프로젝트 디렉터리에 있는 XML 모델과 프레젠테이션 영상을 사용합니다.
모델 로드
cv2를 사용합니다.CascadeClassifier()는 다음 코드와 같이 트레이닝된 haarcascade 모델을 로드합니다.
import cv2
cars_cascade = cv2.CascadeClassifier('haarcascade_car.xml')
영상에서 자동차를 검측하다
우리는 detectMultiScale () 방법을 사용하여 영상 프레임에 있는 차량의 좌표를 검측하고 가져올 것입니다.
detectMultiScale () 방법은 3개의 파라미터를 받아들여 실제 좌표를 나타낸다. 아래와 같다
ScaleFactor는 각 이미지 배율에서 이미지 크기를 줄일 수 있는 정도를 지정합니다. 여기서 더 많은 정보를 얻을 수 있습니다. 좋은 값은 보통 1.05로 선택됩니다.
Minneighbor는 감지된 면의 품질에 영향을 주는 각 후보 사각형에 몇 개의 이웃을 보존해야 하는지를 지정합니다.
값이 높을수록 검사 횟수는 줄어들지만 품질이 높을수록 보통 3-6은 좋은 값이다
차량 및 위치 좌표를 측정하는 문법
cars = cars_cascade.detectMultiScale(frame, scaleFactor, minNeighbors)
상기 코드 줄을 실행할 때, 프레임 이미지에서 차량 검사를 실행하고, 찾은 모든 차량 좌표 (대각선 좌표점) 를 우리에게 되돌려줍니다.검출된 차량 주위에 직사각형을 그립니다
한 프레임에 있는 모든 차량의 좌표를 검출한 후, 우리는 그 주변에 직사각형을 그려서 검출 과정을 직관적으로 볼 수 있도록 해야 한다.
우리는 cv2를 사용할 것이다.rectangle () 방법은 등급 분류기가 되돌아오는 대각선 좌표점을 사용하여 검출된 차량 주위에 직사각형을 그립니다.
cv2의 문법을 사용합니다.직사각형() 방법
cv2.rectangle(frame , point1, point2, color = (), thickness=value)
모든 검사 과정을 완성하기 위해 함수를 구축합니다.
우리는 방금 배운 내용을 함수로 압축해서 그림 프레임을 받은 다음 검출된 좌표를 사용하여 사각형을 그려야 한다. 아래와 같다.
def detect_cars(frame):
cars = cars_cascade.detectMultiScale(frame, 1.15, 4)
for (x, y, w, h) in cars:
cv2.rectangle(frame, (x, y), (x+w,y+h), color=(0, 255, 0), thickness=2)
return frame
아날로그 검사 과정의 함수 구축
마지막으로 영상을 불러오는 전체 과정을 모의하기 위해 함수를 추가하고 detect cars 함수를 호출하여 차량 검측을 실행한 다음에 화면에 검측된 차량을 포함하는 프레임을 보여 줍니다.
def Simulator():
CarVideo = cv2.VideoCapture('cars.mp4')
while CarVideo.isOpened():
ret, frame = CarVideo.read()
controlkey = cv2.waitKey(1)
if ret:
cars_frame = detect_cars(frame)
cv2.imshow('frame', cars_frame)
else:
break
if controlkey == ord('q'):
break
CarVideo.release()
cv2.destroyAllWindows()
스크립트 형식으로python 코드를 실행할 수 있도록 이 두 줄 코드를 추가합니다.if __name__ == '__main__':
Simulator()
모든 물건을 묶읍시다
이제 우리는 스크립트의 모든 독립된 부분을 어떻게 완성하는지 알게 되었다. 스크립트를 함께 놓을 때가 되었다. 그러면 스크립트를 실행할 수 있을 것이다.
일단 우리가 위에서 배운 모든 개념을 하나의 응용 프로그램에 넣으면py, 코드는 아래 그림과 같습니다
import cv2
cars_cascade = cv2.CascadeClassifier('haarcascade_car.xml')
def detect_cars(frame):
cars = cars_cascade.detectMultiScale(frame, 1.15, 4)
for (x, y, w, h) in cars:
cv2.rectangle(frame, (x, y), (x+w,y+h), color=(0, 255, 0), thickness=2)
return frame
def Simulator():
CarVideo = cv2.VideoCapture('cars.mp4')
while CarVideo.isOpened():
ret, frame = CarVideo.read()
controlkey = cv2.waitKey(1)
if ret:
cars_frame = detect_cars(frame)
cv2.imshow('frame', cars_frame)
else:
break
if controlkey == ord('q'):
break
CarVideo.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
Simulator()
우리는 이미 글의 결말에 이르렀습니다. 뭔가를 배웠으면 좋겠습니다. 지금 트위터와 다른 개발자 커뮤니티에서 당신의 친구들과 공유하고 있습니다.original article에서 찾을 수 있음kalebujordan.com
따라와.
너도 이것을 검사해 보라고 건의한다.
카레브 / 실시간 차량 검측
미리 훈련된 등급 연결 모형을 사용하여 실시간 차량 검측을 하는python 스크립트
실시간 차량 검측
안녕하십니까? 이 저장소는 스크립트 소스 코드로 구성되어 있으며, 영상/카메라 화면에 있는 차량을 검측한 다음에 그 주변에 직사각형 상자를 그립니다.
차량과 경계 프레임 좌표를 검출하는 데 사용되는 ML 알고리즘은 예비 훈련의 등급 연결 모델Haarcascade car이다.
전문은 어디에 있습니까?
본 프로젝트의 전문은 처음에 my blog에 발표되었는데, 제목은 Real-time vehicle detection in python이다.
개시하다
우선 프로젝트 저장소를 복제하거나 프로젝트의 zip 파일을 다운로드한 다음 압축을 풀어야 합니다.
git 클론https://github.com/Kalebu/Real-time-Vehicle-Dection-Python
cd 실시간 차량 검측
실시간 차량 검측 ->
의존 관계
현재, 로컬 디렉터리에 프로젝트 리포가 생기면, 스크립트를 실행하는 데 필요한 의존항을 설치합니다.
pip opencv python 설치
비디오 샘플
이 프로젝트에 사용된 예제 비디오는 cars.mp4입니다. 다운로드 또는 클론 저장소에 따라 로드됩니다.
View on GitHub
Reference
이 문제에 관하여(python에서 실시간 차량 검사를 어떻게 실행합니까), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kalebu/how-to-perform-real-time-vehicle-detection-in-python-4i9h
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(python에서 실시간 차량 검사를 어떻게 실행합니까), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kalebu/how-to-perform-real-time-vehicle-detection-in-python-4i9h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)