python에서 실시간 차량 검사를 어떻게 실행합니까

어이, 동료들,
본고에서, 나는 몇 줄 코드에서 OpenCV 라이브러리와 훈련을 거친 등급 분류기를 사용하여python에서 실시간 차량 검사를 하는 방법을 가르쳐 드리겠습니다.

차량 검측에 대해 간단히 이야기하다.


실시간 차량 검측은 목표 검측의 많은 응용 중 하나로 그 중점은 검측 영상 속의 차량과 위치 좌표이다.

어디에서 사용합니까?

  • 차량 검측과 도로 검측은 **오토매틱 자동차*에 광범위하게 응용되고 자동차가 도로에서 안전하게 주행하려면 반드시 다른 자동차의 위치를 알고 충돌을 피해야 한다.
  • 교통 감시 시스템에서도 차량 검측을 사용했는데 차량 수량에 따라 교통을 검측하고 이 데이터를 이용하여 이를 관리하고 통제할 수 있다
  • 당신은 무엇을 지을 것입니까?


    본 강좌에서 우리는 OpenCV와 미리 훈련된 등급 연결 모델을 어떻게 사용하여 영상이나 카메라 흐름에서 실시간 차량 검측을 실행하는지 배울 것이다.

    요구 사항


    본 강좌를 완성할 수 있도록 당신의 기계에는 다음과 같은 내용이 있어야 합니다
  • OpenCV
  • Cars Cascade model
  • Demo Video
  • 설치하다.


    $ 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
    따라와.

    너도 이것을 검사해 보라고 건의한다.

  • How to convert picture to sound in Python
  • Build a Real-time barcode reader in Python
  • Getting started with image processing using a pillow
  • How to detect Edges in a picture using OpenCV Canny algorithm
  • How to perform text classification using TensorFlow in python

  • 카레브 / 실시간 차량 검측


    미리 훈련된 등급 연결 모형을 사용하여 실시간 차량 검측을 하는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

    좋은 웹페이지 즐겨찾기