머신 러닝 및 신경망 - 페이지 40

 

차량 추적 / 교통 모니터링 yolov5+deepsort



차량 추적 / 교통 모니터링 yolov5+deepsort

모두가 YouTube에서 여기로 오거나 추론을 위해 내 저장소를 사용하고 싶습니다. 이것은 제가 학교에 있을 때 이력서를 배우기 위한 아주 오래된 프로젝트입니다. 너무 오랜만이라 이 장난감 프로젝트에서 했던 일을 다 잊어버렸어요. 이 리포지토리 에서 편집하고 일부 제약 조건에 대한 몇 줄의 코드를 추가했습니다. 여러분은 해당 저장소를 참조용으로 사용할 수 있습니다. 감사해요.

YOLOv5 에 의해 생성된 탐지는 개체를 추적하는 Deep Sort 알고리즘 으로 전달됩니다.

코드: https://github.com/duongcongnha/Vehicle-tracking

GitHub - mikel-brostrom/yolov8_tracking: Real-time multi-object tracking and segmentation using YOLOv8 with DeepOCSORT and OSNet
GitHub - mikel-brostrom/yolov8_tracking: Real-time multi-object tracking and segmentation using YOLOv8 with DeepOCSORT and OSNet
  • mikel-brostrom
  • github.com
This repository contains a highly configurable two-stage-tracker that adjusts to different deployment scenarios. It can jointly perform multiple object tracking and instance segmentation (MOTS). The detections generated by YOLOv8, a family of object detection architectures and models pretrained on the COCO dataset, are passed to the tracker of...
 

CVPR 2018의 제2회 AI City Challenge Workshop에서 차량 추적 및 속도 추정 시연



CVPR 2018의 제2회 AI City Challenge Workshop에서 차량 추적 및 속도 추정 시연

워싱턴 대학의 우리 팀은 CVPR 2018의 2nd AI City Challenge Workshop에서 트랙 1(교통 흐름 분석)의 우승자입니다.

2nd AI City Challenge(2018)의 데이터 세트는 더 이상 공개되지 않습니다. 그러나 제3회 AI City Challenge(2019)의 데이터 세트에 계속 액세스하거나 CVPR 2020에서 최신 제4회 AI City Challenge에 참가할 수 있습니다.

그들은 다중 카메라 차량 추적 및 이미지 기반 재식별을 위한 새로운 도시 규모의 데이터 세트를 제공했습니다. 또한 트래픽 이상 탐지를 위한 새로운 데이터 세트도 있었습니다. 데이터 세트의 규모와 평가에 사용되는 차량의 수는 모두 전례가 없는 수준입니다. AI City Challenges의 웹사이트는 https://www.aicitychallenge.org/ 입니다.

코드: https://github.com/zhengthomastang/2018AICity_TeamUW

 

Opencv 및 Python을 사용한 개체 추적

코드 : https://pysource.com/2021/01/28/object-tracking-with-opencv-and-python/



Opencv 및 Python을 사용한 개체 추적

OpenCV 및 Python을 사용한 개체 추적에 대한 비디오 자습서에서는 개체 감지와 개체 추적의 차이점을 설명하고 효율적인 추적을 위해 개체 추적기 파일을 만드는 방법을 보여줍니다. 비디오는 비디오 및 개체 추적기 파일과 같은 필요한 필수 파일을 설명하고 실시간 비디오 표시를 위해 main.py 파일을 코딩하는 방법을 보여줍니다. 튜토리얼은 또한 마스크에서 작은 요소를 제거하고 차량에 초점을 맞추기 위해 이미지의 일부를 추출하기 위해 관심 영역을 정의하는 방법을 다룹니다. 비디오는 개체 추적 프로세스를 설명하고 개체에 고유 ID를 추가하여 개체를 올바르게 계산하는 것으로 끝납니다. 그러나 튜토리얼에는 이 방법이 완벽하지는 않지만 객체 추적에 대한 훌륭한 입문서 역할을 하며 OpenCV 및 딥 러닝에 대한 보다 심도 있는 과정이 권장된다고 명시되어 있습니다.

  • 00:00:00 이 섹션에서 발표자는 물체 감지와 물체 추적의 차이점을 소개합니다. 전자는 프레임마다 객체를 감지하고 후자는 프레임 전체에서 객체를 추적하여 기록을 추적합니다. 개체 추적은 사람 수 계산, 개체 궤적 추적, 고속도로를 통과하는 자동차 수 계산과 같은 다양한 응용 프로그램에서 중요합니다. 그런 다음 연사는 비디오 및 개체 추적기 파일을 포함하여 프로젝트를 시작하는 데 필요한 파일을 소개합니다. 다음으로 발표자는 OpenCV 라이브러리를 가져오고 비디오에서 프레임을 읽을 캡처 개체를 만드는 것부터 시작하여 main.py 파일을 코딩하기 시작합니다. 마지막으로 화자는 영상을 실시간으로 보여주고 키 이벤트를 만들어 영상을 종료하는 방법을 보여줍니다.

  • 00:05:00 이 섹션에서는 발표자가 OpenCV 및 Python을 사용한 개체 추적에 대해 설명합니다. 그들은 이 특정한 방법을 위해서는 안정적인 카메라가 필요하다고 설명합니다. 즉, 배경은 시간이 지나도 변하지 않고 움직이는 물체만 변한다는 의미입니다. 객체 감지기를 사용하여 안정적인 카메라에서 움직이는 객체를 추출할 수 있습니다. 탐지기는 마스크를 생성하고 마스크의 목표는 필요하지 않은 모든 것을 검은색으로 만들고 감지해야 하는 차량은 흰색으로 만드는 것입니다. 그런 다음 흰색 요소의 좌표를 추출하고 너무 작은 요소를 제거합니다. 그런 다음 OpenCV의 윤곽 찾기 기능을 사용하여 흰색 개체의 경계를 찾아 프레임에 녹색으로 그립니다.

  • 00:10:00 이 섹션에서 비디오 자습서는 윤곽선 영역을 계산하고 영역이 100픽셀 미만인 윤곽선을 제거하여 마스크에서 작은 요소를 제거하는 방법을 설명합니다. 그런 다음 튜토리얼에서는 ROI(관심 영역)를 정의하여 도로의 특정 부분에 있는 차량에만 초점을 맞추기 위해 이미지의 일부를 추출하여 감지 프로세스를 훨씬 쉽게 만드는 방법에 대해 설명합니다. 이 자습서에서는 추적하려는 차량이 포함된 섹션의 위치, 높이 및 너비를 지정하여 ROI를 정의하는 방법을 설명합니다. 튜토리얼은 해당 특정 영역에서만 개체 추적을 수행하기 위해 ROI에 마스크를 적용하는 방법을 설명하는 것으로 끝납니다.

  • 00:15:00 비디오의 이 섹션에서 화자는 전체 프레임이 아닌 ROI에 물체 감지 알고리즘을 적용하고 감지가 어떻게 개선되었는지 보여줍니다. 그러나 오 탐지 및 탐지 알고리즘에는 여전히 문제가 있습니다. 개체 감지를 개선하기 위해 화자는 기록의 크기와 잘못된 긍정의 양에 영향을 미치는 var 임계값을 조정합니다. 그런 다음 스피커는 감지된 각 개체를 둘러싼 사각형을 추출하여 ROI에 녹색으로 그립니다. 마지막으로 화자는 임계값 연산자를 사용하여 이미지의 흰색 요소만 유지하여 이미지에서 그림자를 제거하여 보다 정확한 개체 감지를 수행합니다.

  • 00:20:00 이 섹션에서는 OpenCV와 Python을 사용하여 객체를 추적하는 과정을 설명하는 동영상입니다. 효율적인 추적을 위해 "tracker.py" 파일을 가져와서 "tracker" 개체를 생성해야 합니다. "추적기"는 개체의 경계 상자를 수집하고 "감지"라는 이름의 배열에 저장합니다. 각 경계 상자에는 고유한 x, y 위치, 너비 및 높이 값 세트가 있습니다. 이 상자의 최소값은 100이어야 추적기가 관련 없는 개체를 버립니다. 일련의 감지된 객체가 프레임별로 표시되고 감지 배열이 추적기 객체로 전달됩니다. 그런 다음 추적기는 추적된 각 개체의 기록 및 고유 ID를 반환합니다. 개체 추적의 초기 단계는 개체 감지이며, 개체가 프레임 1에서 감지된 경우에만 가능합니다.

  • 00:25:00 이 섹션에서는 비디오에서 OpenCV 및 Python의 객체 추적 기능에 고유 ID를 추가하는 방법에 대해 설명합니다. 이제 각 개체에는 다른 ID가 있어 개체를 계산할 때 실수하는 것을 방지합니다. ID를 사용하여 개체를 올바르게 계산할 수 있으며 개체가 교차할 때 감지하도록 선을 그릴 수 있습니다. 비디오는 표시된 방법이 간단하고 완벽하지는 않지만 객체 추적에 대한 좋은 소개를 설명하면서 끝납니다. 객체 감지 및 추적에 대한 심층 지식을 얻으려면 제작자는 OpenCV 및 딥 러닝에 대한 비디오 과정을 볼 것을 권장합니다.
Object Tracking with Opencv and Python - Pysource
Object Tracking with Opencv and Python - Pysource
  • Sergio Canu Hi there, I’m the founder of Pysource. I’m a Computer Vision Consultant, developer and Course instructor. I help Companies and Freelancers to easily and efficiently build Computer Vision Software .
  • pysource.com
In this tutorial we will learn how to use Object Tracking with Opencv and Python. First of all it must be clear that what is the difference between object detection and object tracking: Object detection is the detection on every single frame and frame after frame. Object tracking does frame-by-frame tracking but keeps the history of where the...
 

컴퓨터 비전 로드맵 | 컴퓨터 비전 엔지니어가 되는 방법



컴퓨터 비전 로드맵 | 컴퓨터 비전 엔지니어가 되는 방법

이 비디오는 컴퓨터 비전 엔지니어가 되기 위한 로드맵을 제공하며 학습 프로세스를 Python 및 OpenCV, 로봇 공학 및 저수준 프로그래밍, 인공 지능 및 고급 주제의 네 가지 모듈로 구분합니다. 수학에 대한 기본적인 이해의 필요성과 함께 로봇공학 및 아두이노와 같은 물리적 장치와 관련된 실습 프로젝트의 중요성이 강조됩니다. 연사는 컴퓨터 비전 엔지니어가 자신의 기술을 연마하는 데 도움이 될 수 있는 대회 및 프로젝트에 대해서도 논의합니다. 또한 Git 및 Docker와 같은 소프트웨어 도구에 대한 문서 및 지식과 같은 소프트 스킬의 중요성이 강조됩니다. 마지막으로 수학, 데이터 과학, 컴퓨터 과학 또는 공학 학위를 취득하는 것이 좋지만 프로젝트 및 과정을 통해 독립적으로 학습하는 것도 가능합니다.

  • 00:00:00 비디오의 이 섹션에서 연사는 컴퓨터 비전 개발자가 되기 위해 배워야 하는 모든 것을 다루는 컴퓨터 비전 로드맵을 제시합니다. 로드맵은 세 가지 주요 질문에 대한 답변을 제공합니다. 어떤 기술이 필요한지, 이러한 기술을 습득하기 위해 어떤 프로젝트를 수행할 수 있는지, 이러한 기술을 배우기 위해 어떤 대학 학위를 취득할 수 있는지입니다. 로드맵은 4가지 모델로 나뉘는데 첫 번째 모델은 컴퓨터 비전 문제의 70%를 해결하는 데 필수적인 Python 및 OpenCV를 다루고 있습니다. 두 번째 모델은 C++ 및 전자 공학 작업을 포함하는 로보틱스와 저수준 프로그래밍에 관한 것입니다. 세 번째와 네 번째 모델은 각각 인공 지능과 고급 주제를 다룹니다. 연사는 지식과 기술을 쌓기 위해 라인 팔로어 로봇이나 QR 코드 리더 작업과 같이 각 모델에 대한 초보자 프로젝트를 제안합니다.

  • 00:05:00 비디오의 이 섹션에서 연사는 로봇 공학 및 Arduinos와 같은 물리적 장치를 포함하는 프로젝트 작업의 중요성에 대해 논의합니다. 연사는 센서 노이즈 및 조명 변화와 같은 요인으로 인해 동일한 코드가 다른 결과를 생성할 수 있기 때문에 이러한 장치에 대한 프로그래밍에는 다른 접근 방식이 필요하다고 설명합니다. 화자가 언급하는 세 번째 모듈은 이미지 분류 및 객체 감지와 같은 작업에 사용할 수 있는 인기 있는 Python 라이브러리 Scikit-learn을 사용한 인공 지능 및 기계 학습에 중점을 둡니다. 마지막으로 발표자는 수학에 대한 기본적인 이해의 중요성과 수학이 컴퓨터 비전과 어떻게 관련되는지 강조합니다.

  • 00:10:00 이 섹션에서 발표자는 환경을 여러 지역으로 나누는 것의 중요성과 기본 지오메트리로 구분된 여러 지역이 있는 간단한 이미지를 보여주면서 차선 횡단과 같은 상황을 감지하는 데 어떻게 사용할 수 있는지 설명합니다. 그는 컴퓨터 비전 엔지니어가 수학에 능통할 필요성을 강조하고 기계 학습, 수학 및 전자 분야의 고급 기술로 이동하기 전에 이미지 분류 및 물체 감지, 비밀 학습 및 기하학의 기본 학습을 권장합니다. 그는 생성적 적대적 네트워크와 같은 프로젝트를 제안하고 고급 기계 학습을 배우기 위해 컴퓨터 비전에서 최신 논문을 구현하는 한편 고급 Arduino 프로젝트를 시작하거나 전자 지식을 향상시키기 위해 로봇 공학 대회에 참가합니다.

  • 00:15:00 이 섹션에서 발표자는 컴퓨터 비전 엔지니어가 자신의 기술을 연마하는 데 도움이 될 수 있는 다양한 대회 및 프로젝트에 대해 논의합니다. 이러한 경쟁에는 복잡한 작업을 수행하고 다른 팀과 경쟁할 수 있는 로봇과 에이전트를 만드는 것이 포함됩니다. 발표자는 사용 가능한 문제의 70%를 해결하는 데 도움이 될 수 있는 Python 및 OpenCV를 포함하여 컴퓨터 비전의 기초를 배우는 것이 중요하다고 강조합니다. 언급된 네 가지 모듈은 기본, 로봇 공학, 인공 의도 및 고급 모듈입니다. 고급 모듈이 중요하지만 연사는 성공적인 컴퓨터 비전 엔지니어가 되기 위해 필요한 필수 기술을 다루는 다른 모듈에 먼저 집중할 것을 제안합니다.

  • 00:20:00 이 섹션에서 연사는 컴퓨터 비전, 기계 학습 및 Python에 대한 지식 외에도 컴퓨터 비전 개발자가 갖추어야 할 다양한 소프트웨어 관련 기술에 대해 논의합니다. 이러한 기술에는 Git 및 Docker와 같은 도구의 기본 지식과 AWS 또는 Google Cloud와 같은 클라우드 공급자에 대한 지식이 포함됩니다. 가치 있는 것으로 간주되는 추가 기술에는 웹 또는 모바일 개발, JavaScript 지식, GitHub 리포지토리에 대한 readme 파일 또는 전체 프로세스 문서화와 같은 적절한 문서 작성 방법에 대한 지식이 포함됩니다. 이러한 모든 기술이 필수는 아니지만 개발자의 작업을 보여주고 다양한 문제를 해결하는 데 도움이 될 수 있습니다.

  • 00:25:00 이 섹션에서 연사는 컴퓨터 비전 개발자를 위한 문서화의 중요성을 강조합니다. 그들은 또한 컴퓨터 비전 개발자뿐만 아니라 모든 개발자가 중요한 기술인 문서를 숙달해야 한다고 제안합니다. 그런 다음 연사는 다양한 소프트웨어 도구에 익숙해지는 것의 중요성을 강조하고 컴퓨터 비전 엔지니어가 될 수 있는 한 많이 배우도록 격려합니다. 연사는 대학 학위 취득에 관심이 있는 사람들에게 문제에 접근하고 해결책을 제시할 수 있는 토대를 제공하는 수학, 데이터 과학, 컴퓨터 과학, 전기 공학 또는 모든 공학 학위를 추천합니다. 그러나 화자는 프로젝트와 과정을 수강함으로써 모든 것을 독립적으로 배우는 것이 전적으로 가능하다고 말합니다.
 

Yolov8 사용자 지정 데이터 세트를 사용한 이미지 분류 | 컴퓨터 비전 자습서

코드: https://github.com/computervisioneng/image-classification-yolov8



Yolov8 사용자 지정 데이터 세트를 사용한 이미지 분류 | 컴퓨터 비전 자습서

이 섹션에서 발표자는 프로젝트에 가장 적합한 모델을 선택하는 방법을 설명하고 교육 프로세스에서 생성된 마지막 모델을 선택하거나 가장 높은 정확도를 가진 모델을 선택하는 것 중에서 제안합니다. 결정은 데이터, 문제, 사용 사례 및 교육 프로세스를 비롯한 다양한 요인에 따라 달라집니다. 연사는 또한 YOLO를 가져오고 모델에 대한 절대 경로를 지정하고 로컬 컴퓨터의 이미지를 사용하고 결과를 표시하여 모든 추론을 수행하고 새 샘플을 예측하는 방법을 설명합니다. 결과는 이미지 분류기가 학습한 카테고리의 확률과 이름을 포함하여 많은 정보를 제공합니다.

  • 00:00:00 이 섹션에서 YouTube 사용자는 사용자 지정 데이터 세트에서 YOLOv8을 사용하여 이미지 분류자를 빌드하는 방법을 보여줍니다. 그는 구름, 비, 빛, 일출의 이미지가 포함된 데이터 세트를 보여주는 것으로 시작합니다. 그는 또한 YOLOv8이 데이터 입력을 위해 기대하는 파일 구조를 설명합니다. 그런 다음 Felipe는 YOLOv8을 사용하여 이미지 분류기를 교육하는 세 가지 다른 방법을 설명합니다. 첫 번째는 Python 스크립트를 사용하는 것이고, 두 번째는 Google Colab Notebook을 사용하는 것이고, 세 번째는 YOLOv8의 기본 프레임워크인 darknet을 사용하는 것입니다.

  • 00:05:00 이 섹션에서는 자습서에서 Yolov8을 사용하여 이미지 분류 모델을 교육하는 데 필요한 종속성과 PyCharm에서 Python 인터프리터를 사용하여 이를 설치하는 방법을 살펴봅니다. 필요한 두 가지 주요 패키지는 Ultralytics와 NumPy이며 Ultralytics는 모델 훈련에 필요한 데이터를 가져오는 데 중요합니다. 그런 다음 자습서에서는 모델을 교육하는 데 필요한 코드를 살펴보고 올바른 형식의 데이터에 대한 절대 경로를 설정해야 합니다. 추가 교육을 계속하기 전에 모든 것이 제대로 작동하는지 확인하기 위해 하나의 Epoch에 대해서만 테스트 실행이 수행됩니다.

  • 00:10:00 이 섹션에서 발표자는 교육 프로세스의 결과가 있는 위치를 보여주고 실행 폴더 내의 폴더 구조를 설명합니다. 그런 다음 그는 특정 유틸리티와 필요한 인수를 사용하여 명령줄을 통해 Yolov8을 사용하여 이미지 분류기를 교육하는 방법을 시연합니다. 그는 한 에포크 동안만 모델을 훈련하여 이 접근 방식의 단순함을 보여주고 결과가 "trained 13"이라는 새 디렉토리에 저장되는 위치를 보여줍니다. 마지막으로 발표자는 Google Collab을 사용하여 모델을 교육하는 또 다른 방법에 대해 논의하고 설정 프로세스에 대한 간략한 설명을 제공합니다.

  • 00:15:00 이 섹션에서 발표자는 "train.ipymb"라는 Yolov8 모델을 교육하기 위해 이미 생성된 노트북을 보여줍니다. 데이터세트를 Google Drive에 업로드하는 것은 사용자가 Google Collab과 Google Drive를 연결하는 셀을 실행해야 하므로 사용자가 Google Collab에서 데이터에 액세스하는 데 필수적인 단계입니다. 사용자가 데이터세트를 제대로 사용하려면 노트북에 이 경로를 입력해야 하므로 Google 드라이브에서 사용자 데이터세트의 경로를 아는 것이 중요합니다. 마지막으로 발표자는 사용자가 Yolov8 모델을 교육하는 데 필요한 필수 라이브러리를 설치하기 위해 실행할 수 있는 간단한 명령을 제공합니다.

  • 00:20:00 비디오의 이 섹션에서 강사는 YOLOv8 및 사용자 정의 데이터 세트를 사용하여 이미지 분류기를 교육하는 방법과 Google Colab 환경에서 얻은 결과를 Google 드라이브에 복사하는 방법을 시연합니다. 한 epoch 동안 학습 프로세스를 실행하고 결과를 Google 드라이브에 복사한 다음 20 epoch 동안 학습 프로세스를 실행합니다. 마지막으로 훈련 프로세스가 우수한 이미지 분류기를 생성했는지 여부를 분석하는 방법을 보여줍니다. 강사는 데이터 디렉토리 변수를 적절하게 설정하는 것의 중요성을 강조하고 다운로드 및 분석을 단순화하기 위해 결과를 Google 드라이브에 복사할 것을 제안합니다.

  • 00:25:00 이 섹션에서는 YOLOv8을 사용하여 사용자 지정 데이터 세트에 대한 교육 프로세스의 결과를 분석합니다. 교육 프로세스 중에 사용된 모든 EPA 매개변수를 나열하는 구성 파일과 교육 및 검증 손실, 정확도를 포함하는 결과 파일을 포함하여 로컬 컴퓨터에 저장된 파일을 검사합니다. 서로 다른 에포크에 걸쳐 손실과 정확도를 플로팅하는 Python 파일을 사용하여 손실이 감소하고 있는지, 훈련 프로세스를 통해 정확도가 증가하고 있는지 확인했습니다. 간단하지만 강력한 접근 방식은 정확도가 올라가는 동안 훈련 손실과 검증 손실이 감소하는지 확인하는 것입니다.

  • 00:30:00 이 섹션에서 발표자는 에포크 수를 늘릴 때 평가 정확도가 어떻게 보이는지 설명하여 정확도가 증가한 다음 정체됨을 보여줍니다. 더 나은 모델을 얻기 위해 프로세스를 개선하기 위해 다른 매개변수와 보다 맞춤화된 교육을 사용할 수 있습니다. 두 개의 서로 다른 파일인 "last.pt"와 "best.pt"가 저장되어 있는 "weights" 디렉토리도 설명되어 있습니다. "last.pt" 파일은 교육의 마지막 에포크가 끝날 때 생성된 모델이고 "best.pt" 파일은 최고의 교육 에포크가 끝날 때 생성된 모델입니다. 실제로는 마지막 모델을 사용하여 최종 결과를 얻습니다.

  • 00:35:00 이 섹션에서 발표자는 프로젝트에 가장 적합한 모델을 선택하는 방법에 대해 논의하고 학습 프로세스에서 생성된 마지막 모델을 선택하거나 가장 높은 정확도를 가진 모델을 선택하는 것 중에서 제안합니다. 결정은 데이터, 문제, 사용 사례 및 교육 프로세스를 비롯한 다양한 요인에 따라 달라집니다. 연사는 또한 YOLO를 가져오고 모델에 대한 절대 경로를 지정하고 로컬 컴퓨터의 이미지를 사용하고 결과를 표시하여 모든 추론을 수행하고 새 샘플을 예측하는 방법을 설명합니다. 결과는 이미지 분류기가 학습한 카테고리의 확률과 이름을 포함하여 많은 정보를 제공합니다.

  • 00:40:00 비디오의 이 섹션에서 발표자는 사전을 사용하여 YOLOv8을 사용하여 이미지의 분류를 식별하는 방법을 설명합니다. 이미지 분류기의 결과는 서로 다른 범주에 해당하는 정수이며 각 정수가 나타내는 범주를 식별하기 위해 사전이 사용됩니다. 또한 주어진 이미지에 대한 모든 다른 클래스의 확률 벡터를 구하고 발표자는 numpy를 사용하여 최대 확률과 해당 범주를 식별하는 방법을 시연합니다. 발표자는 YOLOv8 모델을 사용하여 이미지를 분류하는 방법을 보여주면서 결론을 내리고 더 많은 컴퓨터 비전 엔지니어링 프로젝트를 위해 채널을 구독할 것을 제안합니다.
GitHub - computervisioneng/image-classification-yolov8
GitHub - computervisioneng/image-classification-yolov8
  • computervisioneng
  • github.com
You can download the same dataset I use in the video here. Ajayi, Gbeminiyi (2018), “Multi-class Weather Dataset for Image Classification”, Mendeley Data, V1, doi: 10.17632/4drtyfjtfy.1
 

맞춤형 데이터 세트에서 Yolov8 개체 감지 교육 | 단계별 가이드 | 컴퓨터 비전 자습서

코드: https://github.com/computervisioneng/train-yolov8-custom-dataset-step-by-step-guide



맞춤형 데이터 세트에서 Yolov8 개체 감지 교육 | 단계별 가이드 | 컴퓨터 비전 자습서

이 비디오 자습서는 컴퓨터 비전 애플리케이션용 사용자 지정 데이터 세트에서 YOLOv8을 사용하여 물체 감지기를 교육하는 방법에 대한 단계별 가이드를 제공합니다. 이 자습서에서는 데이터 수집, 주석, 서식 지정 및 교육과 같은 중요한 측면과 모델의 성능을 평가하기 위한 손실 함수 플롯 및 실제 예제 분석의 중요성을 다룹니다. 이 자습서에서는 주석에 CVAT 도구를 사용하고 필요한 YOLOv8 데이터 형식을 준수하고 구성 YAML 파일을 만드는 방법을 강조합니다. 튜토리얼은 또한 Google Colab 및 PyCharm을 사용하여 물체 감지기를 훈련하고 테스트하는 방법을 보여줍니다.

이 동영상은 알파카 데이터 세트에서 훈련된 YOLOv8 객체 감지 모델의 성능을 보여줍니다. 화자는 Python 스크립트를 사용하여 비디오를 로드하고 예측을 실행하여 어떤 경우에는 거의 완벽한 감지를 보여주고 다른 경우에는 안정적인 감지를 보여주며 하나의 비디오에서 일부 감지가 누락되었습니다. 연사는 더 강력하고 성능이 좋은 모델을 얻기 위해 모델을 다시 훈련하기 전에 훈련 및 검증 손실 기능을 분석하고 개선의 여지가 있는지 결정할 것을 권장합니다.

  • 00:00:00 비디오의 이 섹션에서 발표자는 YOLOv8을 사용하여 물체 감지기를 교육할 때 데이터 수집의 중요성과 자신의 사진을 찍거나 공개적으로 사용 가능한 데이터 세트를 사용하는 등 데이터를 수집할 수 있는 다양한 방법을 설명합니다. Open Images Set처럼. 발표자는 시연 목적으로 알파카 데이터 세트를 사용하고 시청자에게는 데이터 세트에 포함된 이미지의 예가 표시됩니다. 또한 발표자는 시청자에게 자습서에 필요한 정확한 방식으로 Open Images Set에서 데이터를 다운로드하고 형식을 지정하는 스크립트를 제공할 수 있다고 언급합니다.

  • 00:05:00 비디오의 이 섹션에서 내레이터는 개체 감지 및 컴퓨터 비전 관련 주석 작업에 사용할 수 있는 레이블 지정 도구인 CVAT 도구를 사용하여 데이터 주석을 지정하는 프로세스에 대해 설명합니다. 내레이터는 CVAT 도구를 사용하여 사용자 지정 데이터 세트에 대한 이미지 집합에 주석을 추가하는 방법을 시연하고, 새 프로젝트 및 작업을 생성하고, 이미지를 업로드하고, 감지할 개체에 대한 레이블을 추가하는 방법을 설명합니다. 내레이터는 이미 사용된 이미지에 대한 주석을 가지고 있지만 데이터에 주석을 달아야 하는 사용자를 위한 단계별 가이드를 제공합니다. 비디오는 또한 다양한 주석 도구의 장단점을 강조하면서 CVAT 사용의 이점을 강조합니다.

  • 00:10:00 이 섹션에서는 비디오 제작자가 YOLOv8 알고리즘을 사용하여 물체 감지를 위해 이미지 데이터 세트의 물체에 레이블을 지정하는 방법을 보여줍니다. 제작자는 알파카의 이미지를 사용하고 알고리즘이 물체를 감지하고 식별할 수 있도록 물체를 본딩 상자에 넣는 방법을 시연합니다. 또한 주석 중에 발생할 수 있는 다양한 상황에 더 익숙해지고 감지되는 개체에 대한 명확성을 제공하기 위해 자신의 데이터에 주석을 다는 것의 중요성을 설명합니다. 작성자는 외부 서비스를 사용하여 데이터 주석을 수행할 수 있지만 데이터를 더 잘 이해하려면 일부 이미지에 직접 주석을 추가하는 것이 중요하다고 지적합니다.

  • 00:15:00 이 섹션에서는 알파카 데이터 세트의 예와 함께 이미지에 주석을 다는 기준의 중요성에 대해 설명합니다. 상자를 개체에 단단히 맞추거나 보다 편안한 경계 상자를 갖는 것을 포함하여 개체에 대한 경계 상자를 정의하는 다양한 방법도 표시됩니다. 주석 도구 cb80은 훈련 객체 감지 알고리즘에서 데이터 주석의 중요성을 강조하면서 데이터 형식 지정 및 주석 달기를 위한 유용하고 사용하기 쉬운 웹 응용 프로그램으로 강조됩니다.

  • 00:20:00 비디오의 이 섹션에서 발표자는 객체 감지기를 교육하기 위해 YOLOv8에 필요한 특정 데이터 형식을 설명합니다. 기계 학습의 모든 알고리즘에는 고유한 데이터 입력 요구 사항이 있으며 YOLO에는 매우 특정한 형식의 데이터가 필요합니다. 발표자는 CV80에서 주석이 달린 데이터를 내보내고 YOLO 형식으로 변환하는 방법을 시연합니다. YOLO 형식을 사용하려면 주석과 해당 이미지가 동일한 이름과 다른 파일 확장자를 가져야 하며 각 경계 상자 주석에는 클래스 번호와 경계 상자의 중심 위치, 너비 및 높이를 정의하는 4개의 플로트 숫자가 포함됩니다. 올바른 형식의 데이터를 보유하는 것이 물체 감지기를 훈련하는 데 중요하다는 점을 강조합니다.

  • 00:25:00 이 섹션에서 발표자는 사용자 지정 데이터 세트에서 YOLOv8을 사용하여 훈련 개체 감지를 위한 데이터를 구조화하는 방법을 설명합니다. 첫 번째 단계는 두 개의 디렉토리를 생성하는 것입니다. 하나는 이미지용이고 다른 하나는 레이블용이며 특정 디렉토리 이름은 변경할 수 없습니다. 이미지 디렉토리 내에는 학습에 사용될 모든 이미지가 위치해야 하며 편의를 위해 학습 디렉토리를 사용할 수 있습니다. 레이블 디렉토리 내에는 각 행이 클래스 ID, 경계 상자 중심의 X/Y 위치, 경계 상자의 너비와 높이를 지정하는 표준 형식에 따라 각 이미지에 대한 주석 파일이 있어야 합니다. 발표자는 유효성 검사 또는 테스트 데이터 또는 다양한 버전의 데이터에 대해 추가 디렉터리를 사용하는 방법도 설명합니다.

  • 00:30:00 이 섹션에서 비디오 자습서는 Python 또는 명령줄 유틸리티를 사용하여 YOLO V8로 물체 감지기를 교육하는 과정에 대해 설명합니다. YOLO V8 공식 리포지토리는 몇 가지 Python 지침을 사용하거나 터미널에서 명령을 실행하여 훈련할 수 있는 옵션을 제공합니다. 그런 다음 이 튜토리얼에서는 Ultralytics 라이브러리 가져오기 및 구성 YAML 파일 생성을 포함하여 PyCharm 프로젝트에서 YOLO V8을 사용하여 물체 감지기를 교육하는 방법에 대한 단계별 가이드를 진행합니다. 튜토리얼은 또한 사용자가 로컬 환경 또는 Google Colab에서 작업하는 것 중에서 선택할 수 있음을 강조합니다.

  • 00:35:00 비디오의 이 섹션에서 발표자는 사용자 정의 데이터 세트에서 YOLO V8을 사용하여 물체 감지기를 교육하기 위한 구성 파일에 대해 논의합니다. 감지되는 다양한 클래스의 이름을 설정하는 방법, 이미지와 주석이 포함된 디렉토리의 절대 경로, 이미지가 있는 위치의 상대 경로를 설명합니다. 화자는 또한 훈련 및 검증 데이터를 각각 참조하는 "train" 및 "val"이라는 두 개의 키워드를 언급합니다. 그들은 문제를 피하기 위해 상대 경로 대신 절대 경로를 사용하는 것의 중요성을 강조합니다. 그런 다음 화자는 파일을 실행하는 방법을 시연하고 한 에포크에 대한 교육 프로세스를 시작하며 프로세스가 완료될 때까지 기다려야 함을 강조합니다. 마지막으로 학습 프로세스가 완료된 후 생성된 출력 파일을 보여줍니다.

  • 00:40:00 비디오 자습서의 이 섹션에서 발표자는 YOLOv8 개체 감지 알고리즘을 훈련하는 데 사용되는 이미지 배치와 검증을 위한 유사한 이미지를 보여줍니다. 화자는 얕고 더미 훈련을 하고 있다고 설명하고 이 목적으로 사용되는 파일을 보여줍니다. 그런 다음 연사는 터미널을 사용하여 명령줄과 Google 공동 작업 노트북에서 알고리즘을 교육하는 방법을 보여줍니다. 노트북은 5개의 셀로 구성되어 있으며 발표자는 데이터 위치에 대한 상대 경로를 지정하기만 하면 데이터를 업로드하고 Google 드라이브를 마운트하고 알고리즘을 훈련하는 것이 얼마나 간단한지 보여줍니다.

  • 00:45:00 이 섹션에서 비디오 자습서는 Google Colab을 사용하여 사용자 지정 데이터 세트에서 YOLOv8 개체 탐지기를 교육하는 방법을 보여줍니다. 이 프로세스에는 느낌표 명령을 통해 Google Colab 환경에서 특정 변수를 저장하고 "pip install ultralytics" 명령을 실행하는 작업이 포함됩니다. 이 튜토리얼은 로컬 환경에서 사용되는 것과 동일한 코드 줄을 입력하는 방법과 Google 드라이브 디렉토리에 대한 절대 경로를 지정하는 방법을 보여줍니다. 파일이 업로드되고 명령이 실행되면 학습 프로세스는 로컬 환경과 유사합니다. 튜토리얼은 사용자에게 실행이 완료될 때까지 기다리도록 지시하고 Google Colab에서 선택한 디렉토리에 결과 디렉토리를 복사하는 명령을 실행하는 것을 기억하십시오.

  • 00:50:00 이 섹션에서 비디오 자습서는 사용자 지정 데이터 세트에서 학습된 Yolov8 객체 감지기의 성능을 테스트하는 데 중점을 둡니다. 모델 테스트의 첫 번째 단계는 훈련 프로세스에 관한 모든 정보가 저장된 디렉토리로 이동하는 것입니다. 그런 다음 비디오는 혼동 행렬, F1 신뢰 곡선 및 손실 함수 플롯을 포함하여 모델의 성능을 분석하는 데 사용할 수 있는 다양한 출력 및 플롯을 보여줍니다. 비디오는 모델의 성능을 분석하는 간단하면서도 강력한 방법이므로 모든 손실이 감소하는지 확인하면서 손실 플롯에 집중할 것을 권장합니다. 모델이 학습에 필요한 모든 것을 학습했음을 나타낼 수 있는 플랫라이닝 손실 함수와 같은 손실 함수 플롯의 다양한 상황에 대해서도 설명합니다.

  • 00:55:00 비디오의 이 섹션에서 발표자는 개체 감지 모델의 교육 프로세스에 대한 통찰력을 얻기 위해 손실 함수 분석에 대해 논의합니다. 손실 함수가 내려가면 모든 것이 잘 되는 것이지만, 올라가면 훈련에 문제가 있는 것입니다. 플롯을 보고 이 정보를 분석하는 것은 연구에 관한 것이지만 발표자는 모델의 성능을 평가하는 보다 시각적인 방법을 제안합니다. 즉, 실제 예를 보고 모델이 실제 데이터에서 어떻게 수행되는지 확인하는 것입니다. 발표자는 모델의 성능을 테스트하기 위해 완전히 보이지 않는 데이터인 실제 알파카를 비디오에서 감지하는 모델의 예를 보여줍니다. 결과가 완벽하지는 않지만 성능은 양호하며 발표자는 이 시각적 평가가 클라이언트의 프로젝트에서 작업하는 프리랜서와 더 관련이 있다고 주장합니다. 클라이언트는 플롯과 메트릭에 관심이 없을 수 있기 때문입니다. 모델은 실제 데이터에서 수행됩니다.
  • 01:00:00 이 섹션에서 발표자는 비디오를 로드하고 예측을 실행하는 Python 스크립트를 통해 보이지 않는 데이터에 대한 알파카 데이터 세트에서 훈련된 YOLOv8 개체 감지 모델의 성능을 시연합니다. 하나의 비디오에서 일부 누락된 감지를 제외하고 어떤 경우에는 거의 완벽하게 감지되고 다른 경우에는 안정적인 감지로 감지가 잘 작동하는 것 같습니다. 연사는 학습 및 유효성 검사 손실 함수를 분석하고, 하향 추세를 확인하고, 모델을 다시 학습할지 여부를 결정하기 위해 개선의 여지가 있는지 조언합니다.
GitHub - computervisioneng/train-yolov8-custom-dataset-step-by-step-guide
GitHub - computervisioneng/train-yolov8-custom-dataset-step-by-step-guide
  • computervisioneng
  • github.com
In this video I show you a super comprehensive step by step tutorial on how to use yolov8 to train an object detector on your own custom dataset! dataset If you want to train yolov8 with the same dataset I use in the video, this is what you should do: Go to prepare_data directory. Execute...
 

Yolov8 객체 감지 + 심층 정렬 객체 추적 | 컴퓨터 비전 자습서

코드: https://github.com/computervisioneng/object-tracking-yolov8-deep-sort



Yolov8 객체 감지 + 심층 정렬 객체 추적 | 컴퓨터 비전 자습서

이 비디오 자습서는 YOLOv8 및 심층 정렬을 사용하여 개체 감지 및 추적 시스템을 구현하는 방법을 보여줍니다. 발표자는 환경 설정, YOLOv8을 사용하여 비디오에서 개체 로드 및 감지, 딥 정렬을 사용하여 시간이 지남에 따라 감지된 개체 추적에 이르기까지 프로세스를 단계별로 진행합니다. 또한 올바른 파일 구조를 만들고 필요한 종속 항목을 설치하는 것의 중요성에 대해서도 설명합니다. YOLOv8에서 탐지가 추출되면 Deep Sort 개체 추적이 적용되어 시간이 지남에 따라 탐지된 개체를 추적합니다. 마지막으로 발표자는 최종 출력 프레임을 비디오 파일로 저장하는 방법을 설명하고 시청자가 더 나은 정확도를 위해 감지 임계값을 수정하도록 권장합니다.

  • 00:00:00 비디오의 이 섹션에서 호스트는 YOLOv8을 사용한 개체 감지 작업과 심층 정렬을 사용한 개체 추적 작업 프로젝트를 소개합니다. 목표는 비디오에서 움직이는 사람을 추적하고 다양한 색상의 경계 상자를 사용하여 추적 중인 개체를 나타낼 수 있는 추적 알고리즘을 만드는 것입니다. 호스트는 사용할 YOLOv8 및 심층 정렬 리포지토리와 테스트할 비디오 데이터를 보여줍니다. 마지막으로 호스트는 "tracker.py"라는 파일을 소개합니다. 이 파일은 고급 기능을 사용하여 개체 추적 프로세스를 단순화하는 심층 정렬을 둘러싼 래퍼입니다.

  • 00:05:00 비디오의 이 섹션에서 발표자는 필요한 리포지토리를 복제하고, 필요한 파일을 다운로드하고, 필요한 라이브러리를 가져와서 자습서에 대한 환경을 설정하는 방법을 설명합니다. 코드와의 호환성을 보장하기 위해 올바른 파일 구조를 만들고 올바른 종속성을 설치하는 것의 중요성을 설명합니다. 그런 다음 발표자는 OpenCV를 사용하여 비디오를 로드하고 프레임을 읽는 방법과 프레임을 창에 표시하는 방법을 시연합니다.

  • 00:10:00 이 섹션에서 발표자는 YOLOv8 사전 훈련된 모델을 사용하여 비디오에서 탐지를 생성하는 방법을 시연합니다. Ultralytics를 사용하여 사전 훈련된 모델을 가져오고 비디오 프레임에서 함수를 호출합니다. 출력 감지 결과는 출력되지만 결과는 사용자 정의 개체 유형이므로 for 루프를 사용하여 래핑을 풀고 목록으로 변환해야 합니다. 최종 출력 감지는 새 개체에 저장됩니다. 코드가 성공적으로 실행되면 결과를 개체 추적 알고리즘의 입력 데이터로 사용할 수 있습니다.

  • 00:15:00 비디오 자습서의 이 섹션에서 발표자는 YOLOv8 개체 탐지기에서 모든 중요한 탐지 정보를 풀고 심층 정렬 개체 추적을 사용하여 탐지된 개체를 추적하는 방법을 시연합니다. 추적 알고리즘에 전달하기 위해 각 감지에 대한 클래스 ID, 신뢰도 값 및 좌표와 같은 정보를 추출하는 방법을 보여줍니다. 스피커는 또한 시간이 지남에 따라 감지된 개체를 추적하기 위해 감지 및 프레임을 사용하여 심층 정렬 추적기를 초기화하고 호출하는 방법을 보여줍니다.

  • 00:20:00 이 섹션에서 발표자는 프레임 상단의 컴퓨팅 기능과 감지된 개체를 포함하는 심층 정렬 개체 추적 프로세스를 설명합니다. 알고리즘은 프레임을 자르고 기능을 추출하며 모든 트랙을 반복하기 위해 발표자는 루프를 사용하여 경계 상자와 트랙 ID에 액세스합니다. 비디오에서 감지된 각 사람이나 물체에는 모든 프레임에서 안정적으로 유지되는 ID가 할당되어 있습니다. 발표자는 감지된 모든 새 ID에 대해 시각화의 임의 색상 목록을 사용하여 다른 색상으로 표시합니다.

  • 00:25:00 비디오의 이 섹션에서 화자는 모든 다른 프레임 및 감지와 함께 비디오를 로컬 컴퓨터에 다시 저장하는 문제를 해결합니다. 비디오를 지정된 이름과 위치로 저장하기 위해 새 개체인 CV2 비디오 작성기가 생성됩니다. 비디오는 MP4 코덱과 원본 비디오와 동일한 프레임 속도를 사용하여 저장됩니다. 연사는 많은 개체가 업로드되고 실행이 CPU에서 실행되어 실시간 감지가 이루어지지 않더라도 모든 것이 제대로 작동한다고 강조합니다. 전반적으로 YOLOv8을 사용한 객체 감지 및 Deep SORT를 사용한 객체 추적 문제가 성공적으로 해결되었습니다.

  • 00:30:00 이 섹션에서 연사는 YOLOv8 및 심층 정렬을 사용하여 성공적인 객체 감지 및 추적 시스템을 구현하는 데 필요한 최종 단계를 검토하여 자습서를 마무리합니다. 출력 프레임을 out.mp4 파일에 저장하고 성공적인 완료를 보여주는 방법을 보여줍니다. 또한 화자는 감지 오류 가능성을 언급하고 새와 같은 물체를 감지하는 시스템의 정확도를 개선하기 위해 감지 임계값을 수정할 것을 시청자에게 권장합니다. 전반적으로 이 튜토리얼은 컴퓨터 비전 기술을 사용하여 물체 감지 및 추적 시스템을 구현하려는 모든 사람에게 유용한 가이드 역할을 합니다.
GitHub - computervisioneng/object-tracking-yolov8-deep-sort
GitHub - computervisioneng/object-tracking-yolov8-deep-sort
  • computervisioneng
  • github.com
Yolov8 object detection + deep sort object tracking ! requirements Deep Sort We are working on this fork from deep sort official implementation. You can download deep sort feature extraction model here. data You can download the same data I use in the video here.
 

Yolov8 사용자 지정 데이터 세트를 사용한 이미지 세분화 | 컴퓨터 비전 자습서

코드: https://github.com/computervisioneng/image-segmentation-yolov8

데이터: https://drive.google.com/drive/folders/1JvA2IvHBy2QOnAtPtoy4JbEEmtbz5dnK



Yolov8 사용자 지정 데이터 세트를 사용한 이미지 세분화 | 컴퓨터 비전 자습서

이 튜토리얼은 이미지에 주석을 달고 시맨틱 분할을 위한 이진 마스크 생성, YoloV8을 사용한 훈련을 위한 데이터 세트의 형식 및 구조화, Google Collab에서 모델 훈련, 훈련 결과 분석 및 Python 스크립트를 사용하여 예측하는 과정을 다룹니다. 발표자는 YoloV8 사용자 지정 데이터 세트에 대한 좋은 모델을 교육하기 위해 파일 시스템을 구성하고 손실 함수 및 유효성 검사 메트릭을 분석하는 것의 중요성을 강조합니다. 또한 결함이 있는 데이터가 예측 품질에 미치는 영향에 대해 논의하고 현재 모델의 예측을 사용하여 새롭고 개선된 모델을 교육할 것을 권장합니다. 전반적으로 이 튜토리얼은 YoloV8 사용자 지정 데이터 세트를 사용한 이미지 분할에 대한 포괄적인 가이드를 제공합니다.

  • 00:00:00 비디오의 이 섹션에서 강사는 시맨틱 분할에 사용될 데이터 세트(해당 이진 마스크가 있는 오리 이미지 세트)를 보여줍니다. 이진 마스크에는 이미지의 개체에 대한 모든 흰색 픽셀과 다른 모든 항목에 대한 모든 검은색 픽셀이 있습니다. 강사는 열린 이미지 자산 버전 7에서 이 데이터 세트를 다운로드하고 자신의 이미지 데이터에 주석을 달아야 하는 경우 웹사이트 cvat.ai를 보여줍니다. 그런 다음 강사는 단 하나의 이미지 주석으로 이미지에 대한 이진 마스크를 만들기 위해 이 도구를 사용하는 방법을 보여줍니다.

  • 00:05:00 튜토리얼의 이 섹션에서 발표자는 이미지에 주석을 달고 시맨틱 분할을 위한 이진 마스크를 만드는 방법을 보여줍니다. 예를 들어 오리 이미지를 사용하여 오리의 일부로 물 아래의 특정 부분에 주석을 달 것인지 여부에 대한 토론을 포함하여 오리의 몸 주위에 마스크를 만들기 위해 다각형을 그리는 과정을 통해 시청자를 안내합니다. 발표자는 마스크가 완벽할 필요는 없지만 좋은 마스크를 만들 수 있을 만큼 정확해야 한다고 강조합니다. 마지막으로 데이터 세트 생성에 사용하기 위해 주석이 달린 데이터를 저장하고 다운로드하는 방법을 보여줍니다.

  • 00:10:00 이 섹션에서 화자는 YoloV8로 의미론적 분할 모델을 훈련하기 위해 데이터 세트의 형식을 지정하고 구조화하는 방법을 설명합니다. 첫 번째 단계는 작업 데이터 세트 내보내기 옵션을 사용하고 세분화 마스크를 선택하여 필요한 데이터를 다운로드하는 것입니다. 데이터가 다운로드되면 이미지, 마스크 및 레이블을 포함하는 디렉토리 구조로 구성해야 합니다. 이미지에서 생성된 마스크는 화자가 제공하는 Python 스크립트를 통해 다른 파일 형식으로 변환해야 합니다. 이 파일 형식은 YoloV8에 필요하며 바이너리 마스크와 동일한 정보를 포함합니다. 연사는 또한 YoloV8이 데이터를 찾고 사용할 수 있도록 특정 방식으로 파일 시스템을 구성하는 것의 중요성을 강조합니다.

  • 00:15:00 이 섹션에서 발표자는 Yolov8 사용자 정의 데이터 세트로 이미지 분할에 필요한 필수 디렉토리 구조를 설명합니다. 사용자는 두 개의 디렉토리가 필요합니다. 하나는 시맨틱 분할 모델에 대한 모든 교육 데이터를 포함하는 "train"이고 다른 하나는 모델의 유효성을 검사하는 데 사용할 이미지를 포함하는 "ball"입니다. 이 디렉토리 내에는 "images"와 "labels"라는 두 개의 다른 디렉토리가 있으며 둘 다 "train"과 "ball"이라는 두 개의 하위 디렉토리가 있습니다. 전자는 트레이닝 마스크에서 생성된 모든 주석을 포함합니다. 발표자는 pycharm에서 구조를 설정하고 코드 구현 및 구성 파일 편집을 포함하여 Ultralytics에서 사전 훈련된 Yolov8 모델을 사용하여 모델을 훈련하는 방법을 설명합니다.

  • 00:20:00 이 섹션에서 발표자는 시맨틱 분할 모델이 무료 GPU에 대한 액세스로 인해 Google Collab에서 학습되어 프로세스가 훨씬 빨라진다고 설명합니다. 발표자는 프로세스를 시작하기 전에 디렉터리 및 이미지와 config.yaml 파일을 포함한 데이터를 업로드할 것을 권장합니다. 또한 발표자는 Jupiter Notebook의 모든 단일 셀을 실행하는 방법을 보여주고 설명하며 Google 드라이브에서 데이터 위치를 공유하여 사용자가 데이터를 업로드할 때 동일한 작업을 수행하도록 권장합니다. 마지막으로 발표자는 노트북에서 YOLOv8을 사용할 수 있도록 Ultralytics 설치를 언급하고 런타임 유형을 확인하면서 GPU와 함께 Google Collab을 사용하도록 보장하는 것을 강조합니다.

  • 00:25:00 튜토리얼의 이 섹션에서 화자는 10세대 동안 모델을 학습하고 결과를 세그먼트 학습 2 폴더 아래에 저장합니다. 다음 단계는 학습 결과를 분석하여 모든 것이 제대로 작동하는지 확인하는 것입니다. 가장 쉬운 방법은 결과가 Google 드라이브에 저장되는 디렉터리의 모든 콘텐츠를 복사하는 것입니다. 결과가 로컬 컴퓨터에 다운로드되면 연사는 손실 함수, 분할 손실, 훈련 손실 및 유효성 검사 손실 플롯을 분석하여 손실 함수가 내려가는지 확인하는 데 집중할 것을 권장합니다. 이것은 일이 잘 진행되고 있다는 좋은 신호이며 손실 함수가 증가하면 심각한 문제가 있음을 나타냅니다.

  • 00:30:00 이 섹션에서 발표자는 Yolov8 사용자 지정 데이터 세트에 대한 좋은 모델을 교육하기 위해 손실 함수 및 유효성 검사 메트릭을 분석하는 방법에 대해 이야기합니다. 학습 및 검증 손실이 감소하고 예측 품질이 개선되는 추세를 나타내는 좋은 신호입니다. 그러나 발표자는 교육 데이터의 누락된 주석 및 기타 결함이 예측 품질에 영향을 미쳐 손실 함수 플롯에서 예기치 않은 경향을 초래할 수 있다고 경고합니다. 따라서 화자는 이러한 플롯을 미친 듯이 분석하지 말고 예측 분석을 포함하여 모델의 전반적인 성능을 평가할 것을 조언합니다.

  • 00:35:00 이 섹션에서 화자는 완벽하지 않고 오류가 있는 데이터 세트에 대해 훈련된 모델의 검증 및 평가 결과를 분석하는 것의 중요성에 대해 논의합니다. 이러한 오류는 현재 모델의 예측을 사용하여 새롭고 개선된 모델을 훈련함으로써 해결할 수 있습니다. 발표자는 모델의 가중치가 저장된 디렉토리를 보여주며 last.pt와 best.pt는 각각 훈련 중 마지막 모델과 최고 성능 모델을 나타낸다고 설명합니다. 마지막으로 화자는 best.pt 모델보다 훨씬 더 많은 정보를 고려하기 때문에 less.pt를 사용할 것을 권장합니다.

  • 00:40:00 YOLOv8 사용자 지정 데이터 세트를 사용한 이미지 분할에 대한 비디오 자습서의 이 섹션에서 발표자는 Python 스크립트를 사용하여 예측하는 방법을 시연합니다. 그는 Ultralytics에서 YOLO 패키지를 가져오는 것으로 시작하여 결과 디렉토리에서 less.pt를 사용하여 모델을 정의합니다. 그런 다음 이미지 경로를 지정하고 CV2를 가져와 이 이미지를 열고 읽습니다. 프리젠터는 이미지에서 모델을 호출하여 모델 결과를 얻고 결과를 반복하여 예측된 마스크를 얻습니다. 마스크를 원본 이미지 크기로 조정하고 output.png로 저장합니다. 발표자는 또한 좋은 예측을 보장하기 위해 원본 이미지에 마스크를 오버레이하는 방법을 보여줍니다.

  • 00:45:00 이 섹션에서 발표자는 YOLOv8로 훈련한 시맨틱 분할 모델의 결과를 보여줍니다. 오버레이된 이미지와 투명도를 사용하여 마스크가 100% 완벽하지는 않지만 데이터의 오류를 고려하면 매우 좋은 결과임을 보여줍니다. 그런 다음 발표자는 데이터에 주석을 달고, 모델을 훈련하고, 이를 검증하고 예측하는 것까지의 전체 프로세스를 요약합니다. 마지막으로 시청자가 자신의 채널을 구독하고 자신이 게시한 다른 동영상을 확인하도록 권장합니다.
GitHub - computervisioneng/image-segmentation-yolov8
GitHub - computervisioneng/image-segmentation-yolov8
  • computervisioneng
  • github.com
Contribute to computervisioneng/image-segmentation-yolov8 development by creating an account on GitHub.
 

Python으로 5시간 만에 Tensorflow 객체 감지 | 3개의 프로젝트가 포함된 풀 코스

코드 받기 Tensorflow 객체 감지 Python 코스 코드: https://github.com/nicknochnack/TFODCourse

Tensorflow 객체 감지 반응 앱: https://github.com/nicknochnack/TFODApp

Raspberry Pi용 Tensorflow 객체 감지: https://github.com/nicknochnack/TFODRPi



Python으로 5시간 만에 Tensorflow 객체 감지 | 3개의 프로젝트가 포함된 풀 코스


00:00:00 - 01:00:00 "Python으로 5시간 만에 Tensorflow 객체 감지" 자습서는 객체 감지 초보자에게 능숙한 실무자가 되는 방법을 알려줍니다. 종합 과정에서는 TensorFlow Object Detection API의 설치 및 설정, 이미지 수집 및 레이블 지정, 객체 감지 모델 교육, "동결" 및 변환을 사용하여 TensorFlow.js 및 TF Lite와 같은 다양한 형식으로 내보내기를 다룹니다. 이 과정은 Python 및 TensorFlow 객체 감지와 같은 오픈 소스 도구를 사용하여 진행되며, 이를 통해 코드를 용도 변경하여 다양한 객체를 감지할 수 있습니다. 시연된 프로젝트에는 USB 현미경을 사용하여 작은 부품의 결함을 감지하고, 웹캠을 통과하는 물체의 수를 세고, 비디오 게임에서 물체를 감지하는 것이 포함됩니다. 강사는 TensorFlow 객체 감지를 위한 가상 환경을 설정하고 다양한 각도, 조명 조건 및 녹색 화면이 없는 양호한 이미지를 수집하고 레이블을 지정하는 것의 중요성을 강조합니다.

01:00:00 - 02:00:00 TensorFlow 객체 감지에 대한 이 동영상은 이미지 데이터의 프로토타입을 신속하게 만들고 라벨을 지정하고 준비하고 TensorFlow를 사용하여 객체 감지를 위한 모델을 선택하는 단계별 가이드를 제공합니다. 발표자는 타당성을 확립하고 모델에 적합한 센서를 결정하기 위해 신속하게 프로토타이핑하는 것의 중요성을 강조합니다. 비디오는 Label Image 패키지 및 OpenCV Labeling 소프트웨어와 객체 감지를 위해 이미지에 레이블을 지정하는 주석 파일을 만드는 프로세스를 안내합니다. 또한 발표자는 모델 성능을 평가하는 데 사용되는 평가 메트릭과 속도와 정확도 간의 균형을 고려하여 각 사용 사례에 적합한 모델 아키텍처를 선택하는 방법을 설명합니다. 비디오는 TensorFlow, CUDA 및 객체 감지에 필요한 기타 패키지를 설치하는 방법을 시연하며 끝납니다. 02:00:00 - 03:00:00 "Python으로 5시간 동안 Tensorflow 객체 감지 | 3개 프로젝트가 포함된 전체 과정"에서는 객체 감지의 전체 프로세스를 단계별로 다룹니다. Nvidia cuDNN, TensorFlow 및 사전 훈련된 모델 zoo를 설치하는 것으로 시작하여 레이블 맵을 만들고 tf 레코드를 생성합니다. 그런 다음 교육을 위한 구성 파일 설정, 오류 문제 해결, TensorFlow 개체 감지 라이브러리를 사용하여 모델 평가, 성능 지표 생성을 위한 평가 스크립트 실행이 이어집니다. TensorBoard는 교육 및 평가 중에 메트릭을 보고 추적하는 데 사용됩니다. 마지막으로 훈련된 모델이 체크포인트에서 로드되고 이미지에서 객체 감지가 수행된 다음 다양한 플랫폼에서 사용할 수 있도록 모델을 변환합니다. 성능 조정에 대해 논의하고 데모에서는 성능이 낮은 클래스에 대해 더 관련성 높은 훈련 이미지를 수집하여 성능을 개선하는 방법을 보여줍니다.

03:00:00
- 04:00:00 "Python으로 5시간 만에 Tensorflow 객체 감지" 비디오는 TensorFlow에서 객체 감지 모델을 빌드하는 방법에 대한 포괄적인 자습서를 제공합니다. 강사는 이미지에 레이블을 지정하고, 파이프라인을 구성하고, 모델을 훈련 및 조정하고, 모델을 실시간으로 테스트하는 방법을 보여줍니다. 개체 감지를 위한 현미경 사용, TensorFlow.js 웹 앱 빌드, Raspberry Pi 감정 감지 수행을 포함하여 세 가지 프로젝트가 시연됩니다. 이 비디오는 이미지 품질의 중요성과 개체 감지 성능을 향상시키기 위한 절충 조정을 강조합니다. 시청자는 댓글 섹션이나 Discord 서버에서 설명을 요청하거나 피드백을 제공하는 것이 좋습니다.

04:00:00
- 05:00:00 이 비디오 자습서는 레이블 설정 및 재설정, 모델에서 사용할 이미지 레이블 지정, 레이블 맵 업데이트, 모델 교육, 평가 및 개선 방법을 포함하여 Tensorflow 객체 감지의 다양한 측면을 다룹니다. 정확성, 내보내기 및 tensorflow.js로 변환, Raspberry Pi에서 실행. 강사는 앱 디버깅 및 결과 배열 조작에 대한 지침도 제공합니다. 자습서 전체에서 강사는 대소문자 구분의 중요성을 강조하고 이미지 디렉토리를 구성 및 이동하고 사용자 지정 모델을 만들고 수집된 이미지에 레이블을 지정하는 방법을 보여줍니다. 튜토리얼은 시청자가 다양한 장치에서 여러 모델을 실행하는 방법에 대한 아이디어를 공유하도록 권장하는 것으로 끝납니다.

05:00:00 - 05:25:00 Python을 사용한 TensorFlow 개체 감지에 대한 이 전체 과정에서 강사는 GPU 머신에서 감정 분석과 같은 모델 애플리케이션을 교육할 때 발생하는 일반적인 오류 및 솔루션에 대해 논의합니다. 이 과정에서는 TensorFlow 객체 감지를 사용하여 Raspberry Pi 감지 모델의 빌드 및 설치, OpenCV Python, TensorFlow Lite 런타임과 같은 필수 종속성 설치, 더 많은 이미지 및 교육을 추가하여 임계값을 조정하고 모델 성능을 개선하여 사용자 정의 객체 감지를 다룹니다. 더 오랜 시간 동안. 이 과정은 성능 조정의 힘을 강조하고 시청자가 필요할 때 도움을 구하도록 권장하는 것으로 끝납니다.


1 부

  • 00:00:00 이 섹션에서 강사는 객체 감지의 완전한 초보자를 실무자로서 숙련된 수준으로 끌어올리기 위한 객체 감지 과정을 소개합니다. 이 과정은 포괄적이며 TensorFlow 객체 감지 API의 설치 및 설정, 이미지 수집 및 레이블 지정, 모델 교육, 다양한 형식으로 감지 모델 내보내기, 다양한 사용 사례에서 모델 테스트를 다룹니다. 이 과정은 주로 Python 및 TensorFlow 개체 감지와 같은 오픈 소스 도구를 사용하여 수행되므로 다양한 개체를 감지하도록 코드의 용도를 쉽게 변경할 수 있습니다. 또한 강사는 TensorFlow 객체 감지 API를 사용하여 제공하는 다양한 추가 기능으로 인해 객체 감지 모델을 구축하는 프로세스의 속도를 높일 수 있는 이점에 대해 설명합니다.

  • 00:05:00 이 섹션에서 강사는 전통적인 프로그래밍과 머신 러닝의 차이점을 설명합니다. 여기서 머신 러닝은 객체를 감지하기 위해 명시적인 규칙을 정의하는 대신 데이터와 답변을 사용하여 객체 감지 모델을 학습시켜 규칙을 학습합니다. 모델은 정적 이미지 및 실시간 비디오 피드에서 개체를 감지할 수 있으며 고정 및 변환을 사용하여 tensorflow.js 및 tf lite와 같은 다양한 형식으로 내보내고 변환할 수 있습니다. 성능 조정은 모델의 정확도를 개선하는 데 매우 중요하며 강사는 6단계에서 이 주제를 다룹니다. 마지막으로 강사는 USB 현미경을 사용하여 작은 부품의 결함을 감지하고, 비디오 게임에서 물체를 감지하고, 웹캠을 통과하는 물체의 수를 세는 등 세 가지 프로젝트를 시연합니다.

  • 00:10:00 이 섹션에서 강사는 자습서에서 다룰 세 가지 프로젝트를 소개합니다. 여기에는 인쇄 회로 기판의 결함을 식별하기 위한 물체 감지 모델 교육, 손 제스처 감지 및 모델을 웹 앱에 통합하는 작업이 포함됩니다. Raspberry Pi를 사용하여 실시간 객체 감지를 수행합니다. 강사는 Github에서 각 프로젝트에 대해 단계별로 모델을 구축하는 데 사용할 세 가지 코드 세트를 제공합니다. 첫 번째 단계는 코드를 복제하고 가상 환경을 만드는 것입니다. 이는 집의 별실과 같다고 설명됩니다. 이 섹션에는 계속 진행하기 전에 각 단계를 검토하고, 메모를 작성하고, 필요한 경우 제공된 Discord 서버를 통해 도움을 요청하는 등 튜토리얼을 따르는 데 도움이 되는 팁도 포함되어 있습니다.

  • 00:15:00 비디오의 이 섹션에서 강사는 TensorFlow 개체 감지 모델로 작업하는 동안 가상 환경을 사용하는 것의 중요성을 설명합니다. 그는 이전에 설치된 라이브러리와 충돌하지 않도록 하기 위해 모든 객체 감지 종속성이 설치된 집에 새 방을 만드는 것으로 설명합니다. 그런 다음 강사는 Visual C++ 빌드 도구, GPU 기반 가속을 위한 CUDA 및 CUDNN을 포함하여 TensorFlow로 작업하는 데 필요한 종속성에 대해 이야기합니다. 그는 이러한 라이브러리가 개체 감지 모델의 빠른 교육에 필수적이라고 설명하고 라이브러리를 다운로드하고 설치하는 방법을 보여줍니다. 전반적으로 이 섹션에서는 TensorFlow 객체 감지 모델을 만들기 위한 개발 환경을 설정하는 데 필요한 필수 기반을 제공합니다.

  • 00:20:00 비디오 자습서의 이 섹션에서 강사는 필요한 Python, GCC 컴파일러, Bazel, CUDA 및 cuDNN의 특정 버전을 포함하여 TensorFlow 객체 감지 설치에 필요한 요구 사항에 대해 설명합니다. 강사는 TensorFlow, CUDA 및 cuDNN의 버전 일치가 교육 중에 GPU를 활용하는 데 필수적이라고 강조합니다. 그들은 Windows 및 Linux/macOS용 설치 가이드에 대한 링크를 제공하고 시청자에게 TensorFlow 버전을 확인하고 적절한 CUDA 및 cuDNN 버전을 얻도록 조언합니다. 또한 강사는 물체 감지 노트북을 설치하거나 실행하는 동안 발생하는 일반적인 문제에 대한 오류 가이드를 만들었다고 언급합니다. 이 가이드에는 다양한 오류에 대한 솔루션이 포함되어 있으며 제공된 GitHub 리포지토리 링크에서 찾을 수 있습니다.

  • 00:25:00 이 섹션에서 강사는 Python을 사용하여 TensorFlow 객체 감지를 위한 가상 환경을 설정하는 방법을 보여줍니다. 그는 필요한 코드와 종속성이 있는 리포지토리 복제, Python의 venv 패키지를 사용하여 가상 환경 생성 및 환경 활성화를 포함하여 환경을 생성하기 위해 따라야 할 단계를 나타냅니다. 가상 환경을 만드는 것은 집에 새 방을 만드는 것과 유사하며, 격리된 환경에서 TensorFlow 객체 감지 프로젝트 작업을 위해 라이브러리와 종속성을 격리할 수 있습니다.

  • 00:30:00 이 섹션에서는 동영상 제작자가 교육, 앱 및 Raspberry Pi 코드를 별도로 유지하기 위해 TFOD(TensorFlow Object Detection)용 가상 환경을 만드는 과정에 대해 설명합니다. 비디오 제작자는 환경을 활성화하기 위해 Windows 시스템에서 명령을 실행하는 것을 포함하여 가상 환경을 활성화하는 단계를 거칩니다. pip 설치 프로그램을 업데이트한 다음 TensorFlow를 설치하는 데모가 있습니다. 이러한 업데이트의 이점은 사이트 패키지 폴더 내에서 실시간 설치를 볼 수 있다는 것입니다. 때때로 TensorFlow를 설치하려면 여러 번의 시도가 필요하며 비디오 제작자는 모든 것이 올바르게 설치되었는지 확인하는 확인 스크립트를 가지고 있습니다.

  • 00:35:00 이 섹션에서는 iPy Kernel을 사용하여 Jupyter Notebook에서 필요한 패키지를 설치하고 가상 환경을 설정하는 방법을 발표자가 설명합니다. 또한 Anaconda Python 및 Jupyter Notebook을 처음 사용하는 사용자를 위한 설치 지침도 제공합니다. 그런 다음 iPy Kernel을 설치하고 이를 Jupyter Notebook과 연결하여 보다 효율적인 데이터 사이언스 워크로드를 활성화하는 방법을 설명합니다. 마지막으로 연사는 TensorFlow 객체 감지 모델 구축을 향한 다음 단계의 일환으로 가상 환경을 검증하고 이미지 수집 및 레이블 지정을 시작하는 방법을 보여줍니다.

  • 00:40:00 이 섹션에서 강사는 개체 감지 모델을 교육할 때 좋은 이미지를 수집하고 레이블을 지정하는 것의 중요성을 강조합니다. 이를 시연하기 위해 그는 Jupyter 노트북을 사용하여 웹캠에서 이미지를 수집하고 LabelImg 라이브러리를 사용하여 이미지에 레이블을 지정합니다. 강사는 레이블을 가능한 한 단단히 유지하고 다른 각도와 다른 조명 조건에서 물체의 사진을 포함하는 것과 같이 레이블을 지정할 때 염두에 두어야 할 모범 사례를 공유합니다. 또 다른 중요한 모범 사례는 각 클래스의 사진 10~20장으로 시작하는 것이지만 강사는 더 적은 수로 시작하여 성능이 최적이 아닌 경우 모델을 재교육하기 위해 사진을 추가하는 방법을 보여줍니다. 마지막으로 강사는 개체 뒤에 녹색 화면이 없는 다양한 이미지를 모델에 제공하면 모델이 더 일반화되고 개체를 더 잘 감지할 수 있다고 설명합니다.

  • 00:45:00 이 섹션에서 강사는 TensorFlow 객체 감지 자습서의 이미지 수집 구성 요소를 통해 시청자를 안내합니다. 이 자습서는 웹캠에 액세스하고 이미지를 수집하는 데 사용되는 인기 있는 컴퓨터 비전 라이브러리인 OpenCV를 설치하는 것으로 시작합니다. 강사는 제어를 유지하고 원활한 작동을 보장하기 위해 종속성이 가상 환경에 설치되는지 확인하는 것의 중요성을 강조합니다. 그런 다음 코드는 UUID, OS 및 시간을 포함하여 필요한 종속성을 가져옵니다. 이는 다양한 파일 경로를 준수하고 다양한 각도에서 이미지를 캡처하는 데 사용됩니다. 그런 다음 자습서에서는 수집할 여러 레이블을 정의하고 감지하려는 개체에 따라 레이블을 변경할 수 있음을 설명합니다. 레이블은 목록에 저장되며 강사는 각 레이블에 대해 수집된 이미지 수가 변수 "이미지 수"로 정의된다고 설명합니다.

  • 00:50:00 이 섹션에서 강사는 개체 감지를 위한 폴더 구조 설정, 시작할 때 충분한 수의 이미지를 갖는 것의 중요성, 웹캠 또는 기타 캡처 장치를 사용하여 이미지를 캡처하는 방법에 대해 설명합니다. 폴더 구조는 자습서 전체에서 따라야 하는 특정 파일 경로를 사용하여 생성됩니다. 코드는 모든 레이블을 반복하고 웹캠에 연결하며 각 레이블의 이미지를 캡처합니다. 강사는 올바르지 않으면 오류가 발생할 수 있으므로 웹캠의 비디오 캡처 장치 번호를 올바르게 지정하는 것의 중요성을 강조합니다.

  • 00:55:00 이 섹션에서는 강사가 개체 감지를 위해 이미지를 수집하는 코드를 설명합니다. 코드는 레이블을 반복하고 웹캠을 사용하여 프레임을 캡처합니다. 새 이미지를 생성하고 고유한 식별자 이름을 가진 각 레이블 폴더 안에 배치합니다. cv2.iamwrite 명령은 이미지를 파일에 쓰고 화면에 표시하는 데 사용됩니다. 이 코드는 또한 사용자가 q 키를 눌러 어느 지점에서든 탈출하고 완료되면 모든 것을 닫을 수 있도록 합니다. 강사는 일반화된 모델을 구축하기 위해 다양한 위치에서 이미지를 캡처하는 것이 필수적이라고 강조합니다.

2 부

  • 01:00:00 이 섹션에서 화자는 과학 프로젝트가 프로젝트의 타당성과 가능성을 확립하기 위해 가능한 한 빨리 프로토타입을 만드는 것이 중요함을 강조합니다. 설명을 위해 스피커는 매우 정확한 모델이나 현미경과 같은 센서가 필요한 구부러진 LED를 감지하는 예를 제공합니다. 모바일 네트워크 모델과 웹캠으로 신속하게 프로토타이핑하면 성능이 저하될 수 있으며 이는 다른 기술이나 센서가 필요함을 나타냅니다. 프로토타이핑은 개선을 위한 기준선을 신속하게 설정하는 데 도움이 되며, 발표자는 수집된 이미지를 사용하여 엄지손가락 감지를 위한 모델 교육을 진행하는 동시에 더 나은 감지를 위해 저품질 이미지를 삭제하고 더 좋은 품질의 이미지를 캡처하는 것의 중요성을 강조합니다.

  • 01:05:00 이 섹션에서 강사는 이미지에 레이블을 지정하는 데 사용할 Label Image 패키지를 소개합니다. 사용자는 Github 저장소로 이동하여 패키지를 확인할 수 있습니다. 그런 다음 강사는 필수 종속성인 pi qt5 및 lxml을 설치하고 tensorflow라는 새 폴더를 만들고 이미지에 레이블을 지정하여 패키지를 저장하는 방법을 보여줍니다. 그런 다음 강사는 특정 명령을 실행하여 Github 리포지토리를 복제하고 레이블 이미지 패키지를 설치하는 방법을 시연합니다. 마지막으로 강사는 라벨 이미지 애플리케이션을 열고 이미지에 라벨을 붙일 준비를 합니다.

  • 01:10:00 이 섹션에서 강사는 OpenCV 라벨링 소프트웨어를 사용하여 객체 감지를 위해 이미지에 라벨을 지정하는 과정을 시연합니다. 이 프로세스에는 소프트웨어에서 특정 디렉토리를 열고 레이블을 지정할 이미지를 선택하는 작업이 포함됩니다. 강사는 탐지 레이블을 최대한 정확하게 지정하고 레이블 이름이 주석 및 훈련 단계의 이름과 일치하는지 확인하도록 조언합니다. 또한 강사는 시청자가 객체 감지의 다양한 응용 프로그램을 생각하고 레이블을 정의하고 이미지를 수집하고 레이블을 지정하는 동일한 프로세스를 사용하여 시도하도록 권장합니다. 각 이미지에 해당 주석이 존재하는지 확인하는 것의 중요성도 강조됩니다.

  • 01:15:00 이 섹션에서는 강사가 주석 파일을 만들어 이미지에 레이블을 지정하는 방법을 설명합니다. 주석 파일은 이미지에서 개체의 위치를 설명하는 xml 파일입니다. 강사는 여러 개체로 이미지에 레이블을 지정하는 방법을 보여주고 주석을 올바르게 저장하는 방법을 설명합니다. 이미지에 레이블을 지정하는 프로세스는 아웃소싱을 통해 또는 경량 개체 감지 모델을 사용하여 레이블 지정 프로세스를 자동화하는 최신 도구를 사용하여 확장할 수 있습니다.

  • 01:20:00 이 섹션에서 비디오 강사는 레이블 이미지를 사용하여 이미지에 레이블을 지정하는 방법과 수천 개의 이미지로 거대한 물체 감지 모델을 구축하기 전에 올바른 기술을 사용하고 있는지 확인하기 위해 프로토타입을 만드는 방법을 보여줍니다. 그는 10-25개의 이미지에 레이블을 지정하여 초고속으로 유지하고 올바른 센서를 사용하여 올바른 수준의 데이터를 얻을 것을 권장합니다. 강사는 또한 이미지 세그먼트에서 모델을 교육하고 이전에 본 적이 없는 이미지 세트에서 테스트하기 위해 이미지를 교육 및 테스트 파티션으로 분할하는 것의 중요성을 설명합니다. 교육 및 테스트 이미지와 주석을 저장하기 위해 이미지 폴더 내에 train 및 test라는 두 개의 새 폴더를 만듭니다.

  • 01:25:00 이 섹션에서는 개체 감지 모델을 교육하기 위해 수집하고 레이블을 지정한 이미지 데이터를 준비하는 방법을 알아봅니다. 이미지와 주석을 저장하기 위해 훈련과 테스트라는 두 개의 폴더를 만들고 각 클래스에 대한 이미지와 주석 파일을 모두 가져옵니다. 그런 다음 학습에 사용할 TensorFlow 레코드로 변환하는 방법을 설명합니다. 또한 데이터 이름 지정 및 구성에 대한 몇 가지 모범 사례도 다룹니다. 마지막으로 TensorFlow 객체 감지 모델을 교육하는 데 필요한 종속성과 평가 메트릭을 사용하여 모델을 평가하는 방법을 소개합니다.

  • 01:30:00 이 섹션에서는 발표자가 객체 감지 모델을 교육한 후 얻게 되는 평가 메트릭에 대해 설명합니다. 이러한 메트릭에는 정확한 감지 비율을 계산하는 정밀도 및 평균 평균 정밀도(MAP)가 포함됩니다. 참양성, 거짓양성, 참음성, 거짓음성의 수를 기반으로 계산됩니다. 발표자는 모델의 성능을 평가할 때 정밀도와 재현율이 매우 중요하다고 설명합니다. 또한 화자는 TensorFlow 모델 동물원의 선택이 모델의 정확성과 속도에 영향을 미친다고 언급합니다. 모델마다 아키텍처가 다르므로 정확도와 속도가 다르므로 실무자는 사용 사례에 적합한 모델을 선택해야 합니다.

  • 01:35:00 이 섹션에서 스크립트는 TensorFlow 객체 감지를 위한 모델 아키텍처를 선택할 때 모델 속도와 정확도 사이의 장단점에 대해 설명합니다. 비디오는 다양한 모델 옵션과 해당 프레임 속도 및 평균 평균 정밀도 점수를 보여줍니다. 발표자는 특정 아키텍처가 빠르고 매우 정확할 수 있는 반면 다른 아키텍처는 느리지만 더 정확할 수 있다고 언급합니다. TensorFlow Update Detection 모델 API를 사용할 때의 이점에 대해서도 전처리 및 후처리 기술과 이미지 확대 사용 등을 언급합니다. 이 섹션은 원하는 경우 클라우드 인스턴스를 사용하여 모델을 교육하는 방법에 대한 논의로 마무리됩니다.

  • 01:40:00 이 섹션에서 강사는 TensorFlow 객체 감지 모델 설정에 대해 설명합니다. 여기에는 선행 학습된 모델 이름 및 URL 설정과 tf 레코드 스크립트 생성 및 레이블 맵 이름과 같은 변수가 포함됩니다. 주석, 이미지, 모델 및 검사점에 대한 폴더가 포함된 작업 공간과 함께 모델의 폴더 구조도 표시됩니다. 다음 단계는 TensorFlow 모델 동물원에서 TensorFlow 모델을 다운로드하고 TensorFlow 객체 감지 패키지를 설치하는 것입니다. 강사는 성공적인 설치를 위해 단계별로 안내합니다. 이 프로세스에는 TensorFlow 객체 감지 리포지토리를 복제하고 필요한 종속 항목을 설치하는 작업이 포함됩니다.

  • 01:45:00 이 섹션에서는 발표자가 TensorFlow 객체 감지 모델 API를 복제하고 설치하는 방법을 설명합니다. 모델 API는 많은 문서와 오픈 소스 자습서가 있는 TensorFlow 모델 정원에서 다운로드할 수 있습니다. 그런 다음 발표자는 TensorFlow 객체 감지 모델 API를 사용하는 데 필요한 모든 파일이 포함된 연구 폴더로 이동하는 방법을 시연합니다. 연구 폴더를 복제한 후 발표자는 protoc 설치 방법 및 TensorFlow Object Detection 모델 API를 성공적으로 설치하는 데 필요한 기타 구성 요소에 대한 설명을 진행합니다. 마지막으로 발표자는 TensorFlow Object Detection API가 성공적으로 설치되었는지 확인하는 확인 스크립트를 실행하여 설치를 확인하는 방법을 보여줍니다.

  • 01:50:00 이 섹션에서는 강사가 개체 감지를 위한 Tensorflow를 확인하고 설치하는 과정을 진행합니다. 그는 확인 스크립트를 사용하여 Tensorflow가 올바르게 설치되었는지 확인하고 오류를 확인하기 위해 실행할 수 있다고 설명합니다. 스크립트는 실행 시 Tensorflow가 설치되었는지 여부를 나타내는 표준 Tensorflow 객체 감지 스크립트입니다. Tensorflow가 올바르게 설치되지 않은 경우 강사는 matplotlib 및 yaml과 같은 추가 패키지 설치를 포함하여 구성 방법에 대한 지침을 제공합니다. 강사는 시청자에게 오류가 발생하면 일반적으로 발생하고 해결하기 쉽기 때문에 Google에서 오류를 검색할 수 있다고 확신합니다. 마지막으로 그는 확인 스크립트 하단의 "OK" 표시에 성공적으로 도달하면 Tensorflow가 올바르게 설치되었음을 의미한다고 말합니다.

  • 01:55:00 이 섹션에서는 TensorFlow의 설치 프로세스와 객체 감지에 필요한 패키지에 대한 비디오를 다룹니다. 강사는 TensorFlow, Matplotlib, Protobuf, Pillow 및 Pymel을 설치하는 방법을 보여줍니다. 강사는 환경에 따라 설치 과정이 다를 수 있으므로 확인을 권장합니다. 비디오는 교육용으로 GPU를 사용하려는 경우 필요한 CUDA 및 CuDNN 설치 단계도 거칩니다. 강사는 올바른 CUDA 및 CuDNN 버전을 찾는 방법을 설명하고 설치 프로세스를 진행합니다. 마지막으로 강사는 커널을 다시 시작하여 객체 감지 API를 노트북으로 성공적으로 가져오는 방법을 시연합니다.

파트 3

  • 02:00:00 이 섹션에서 강사는 GPU에서 훈련하는 경우 필요한 Nvidia cuDNN을 다운로드하고 설치하는 프로세스를 진행합니다. 먼저 무료 Nvidia 개발자 계정에 가입한 다음 cuDNN 다운로드를 선택하고 로그인해야 합니다. 사용 가능한 두 가지 버전이 있으며 TensorFlow 버전과 호환되는 버전을 다운로드해야 합니다. 강사는 압축 파일을 추출하고 CUDA 설치 위치 내의 해당 폴더에 cuDNN 파일을 복사하는 방법을 설명합니다. 파일을 복사한 후 마지막 단계는 CUDA 폴더가 Windows 시스템의 경로에 추가되었는지 확인하는 것입니다.

  • 02:05:00 동영상의 이 섹션에서는 강사가 TensorFlow 설치 프로세스와 제대로 작동하는지 테스트하는 방법을 설명합니다. 그런 다음 비디오는 TensorFlow 모델 동물원에서 사전 훈련된 객체 감지 모델을 다운로드하는 프로세스로 이동합니다. 이 모델은 사용자 정의 객체를 감지하기 위한 전이 학습에 사용됩니다. 강사는 모델을 다운로드하는 방법을 시연하고 다운로드한 파일의 다양한 구성 요소를 설명합니다. 마지막으로 사용자 지정 개체 감지를 위한 다양한 레이블을 나타내는 레이블 맵이 생성됩니다.

  • 02:10:00 이 섹션에서는 강사가 레이블 맵 생성 및 tf 레코드 생성에 대해 설명합니다. 그는 레이블 맵 파일이 교육 프로세스 전체에서 이후에 사용되므로 적절한 레이블 지정의 중요성을 강조합니다. 비디오는 기차 및 테스트 레코드 생성과 모델의 경로 구성 요소, 특히 미세 조정 체크포인트, 레이블 맵 경로 및 입력 경로를 업데이트하는 방법을 안내합니다. 마지막으로 그는 모델의 아키텍처를 결정하고 특정 모델에 맞게 사용자 지정해야 하는 파이프라인 구성 파일의 관련성을 강조합니다.

  • 02:15:00 비디오의 이 섹션에서 강사는 모델 학습을 위한 구성 파일을 설정하는 방법을 설명합니다. 사전 학습된 모델 폴더에서 파이프라인 파일을 복사한 다음 클래스 수와 함께 다른 파일 경로를 모두 설정하고 미세 조정 체크포인트, 레이블 맵 경로, 입력 경로 등을 설정하여 코드를 통해 구성을 수행합니다. 설정이 완료되면 pipeline.config 파일 경로, 파이프라인 구성 및 교육 단계 수와 같은 필수 인수와 함께 모델 교육 스크립트를 실행하여 모델을 교육할 수 있습니다. 모델 학습의 진행 상황을 보려면 노트북 외부의 별도 명령 프롬프트에서 명령을 실행하는 것이 좋습니다.

  • 02:20:00 이 섹션에서는 강사가 개체 감지 교육 프로세스 중에 발생하는 오류를 해결합니다. 그는 올바른 라이브러리를 설치하거나 온라인에서 솔루션을 검색하면 대부분의 오류가 해결된다고 설명합니다. 그는 또한 사용자가 GPU를 활용하려면 올바른 버전의 TensorFlow GPU를 설치했는지 확인해야 한다고 말합니다. 그런 다음 강사는 특정 오류를 해결하기 위해 라이브러리를 제거하고 다시 설치하는 프로세스를 통해 뷰어를 안내하고 이 프로세스는 시간이 다소 걸릴 수 있지만 성공적인 개체 감지 교육 실행에 필요함을 강조합니다. 궁극적으로 시청자에게 올바른 라이브러리를 설치했는지 확인하는 방법과 교육 진행 상황을 모니터링하는 방법을 보여줍니다.

  • 02:25:00 이 섹션에서 강사는 모델을 교육하고 성능 메트릭을 평가하는 프로세스에 대해 설명합니다. 학습이 시작되면 100단계마다 손실 메트릭이 나타나 모델이 올바르게 학습되고 있음을 나타냅니다. 2000단계에 대한 교육 모델의 출력이 생성되어 모델이 0.188의 최종 손실로 성공적으로 교육되었음을 나타냅니다. 그런 다음 강사는 TensorFlow 객체 감지 라이브러리를 사용하여 모델을 평가하고 훈련된 모델에 대한 성능 메트릭을 생성하는 평가 스크립트를 실행하는 방법을 설명합니다. 그런 다음 TensorFlow용 대화형 모니터링 도구인 TensorBoard를 사용하여 평균 정밀도 및 재현율 메트릭을 볼 수 있습니다.

  • 02:30:00 이 섹션에서 강사는 Tensorboard를 사용하여 학습 및 평가 중에 메트릭을 보고 추적하는 과정을 시청자에게 안내합니다. train 폴더로 이동하여 시간 경과에 따른 손실 메트릭을 볼 수 있고 eval 폴더로 이동하여 평균 평균 정밀도, 정밀도 및 재현율과 같은 평가 메트릭을 볼 수 있습니다. 뷰어는 이미지를 보고 모델이 올바르게 분류했는지 실시간으로 모델의 성능을 확인할 수 있으며 그래프를 고정한 후 내보내는 방법을 배웁니다.

  • 02:35:00 이 섹션에서는 학습된 모델이 체크포인트에서 로드되고 객체 감지가 이미지에서 수행됩니다. 최신 체크포인트는 파이프라인과 모든 체크포인트가 포함된 사용자 지정 모델 폴더에서 찾을 수 있습니다. 최신 체크포인트를 가져오면 이미지를 선택하고 감지 기능을 사용하여 객체 감지를 수행할 수 있습니다. 감지 기능은 웹캠에서 실시간으로 물체를 감지하는 데에도 사용됩니다. 이미지가 많지 않은 2000단계의 훈련에도 불구하고 이 모델은 다양한 손 제스처를 잘 감지합니다.

  • 02:40:00 이 섹션에서 강사는 엄지손가락 올리기, 엄지손가락 내리기, 라이브 롱, 양손과 같은 다양한 손 제스처에 대한 물체 감지 모델의 성능을 시연합니다. 모델의 성능은 손 제스처와 카메라로부터의 거리에 따라 다르지만 훈련 세트에 더 많은 이미지를 추가하여 미세 조정할 수 있습니다. 그런 다음 이 섹션은 정지된 그래프를 생성하고 TensorFlow.js 및 TFLite로 내보내 모델을 정지 및 변환하는 단계로 이동합니다. 변환된 모델은 웹 앱 또는 Raspberry Pi 프로젝트에 사용할 수 있습니다. 사용자 지정 모델의 최종 출력은 체크포인트, 저장된 모델 자산, 변수 및 파이프라인 구성이 포함된 선행 학습된 모델과 유사합니다.

  • 02:45:00 이 섹션에서 화자는 수행해야 하는 마지막 변환, 즉 tf 라이트로의 변환에 대해 논의합니다. 이것은 두 부분으로 이루어집니다. 먼저 그래프를 tf lite 그래프로 내보낸 다음 tf lite 변환기를 사용하여 실행하여 이를 활용하는 데 필요한 정확한 출력을 출력합니다. 발표자는 이것이 엔드-투-엔드 모델이며 그래프를 고정하고 tfjs 및 tf lite로 내보냈으므로 tensorflow 객체 감지 API 작업의 전체 연습을 완료했다고 말합니다. 연사는 또한 성능 튜닝에 대해 논의하고 모델의 성능을 개선하기 위해 수행할 수 있는 세 가지 주요 사항에 대해 언급합니다. 성능이 낮은 클래스의 이미지를 교육 데이터 세트에 더 추가하고, 모델을 더 오래 교육하고, 모델 아키텍처를 변경합니다.

  • 02:50:00 비디오의 이 섹션에서 발표자는 더 관련성 있는 학습 이미지를 추가하여 개체 감지 모델에서 성능이 낮은 클래스의 성능을 개선하는 방법을 시연합니다. 발표자는 모든 클래스의 이미지를 수집하는 것보다 서로 다른 손에서 잘 수행되지 않는 엄지 손가락 이미지를 더 많이 수집합니다. 프레젠터는 OpenCV를 가져오고 엄지 손가락 이미지만 수집하기 전에 레이블 맵을 업데이트합니다. 수집된 이미지는 발표자가 이를 평가하고 품질이 낮은 이미지를 제거하는 Tensorflow 작업 공간에 저장됩니다. 마지막으로 발표자는 모델의 성능을 향상시키기 위해 다른 손으로 거절하는 이미지를 몇 개 더 추가합니다.

  • 02:55:00 비디오의 이 섹션에서 강사는 코드를 실행하여 엄지손가락을 위로 및 아래로 내리는 손 제스처에 대한 더 많은 이미지를 캡처합니다. 이미지를 캡처한 후 강사는 이미지의 품질을 확인하고 엄지손가락을 위로 올린 이미지는 모두 유지하고 화면에서 벗어난 엄지손가락을 아래로 내린 이미지 중 일부를 제거하기로 결정합니다. 그런 다음 강사는 LabelImg 도구를 열고 레이블 이름의 대소문자 구분에 주의하면서 새 이미지에 다시 레이블을 지정합니다. 강사는 이미지에 레이블을 지정하는 이 단계는 시행착오이며 모델 성능을 향상시키는 요소를 평가하고 확인할 수 있다고 언급합니다. 강사는 효율성을 개선하기 위해 자동 레이블 지정 도구를 살펴볼 것을 제안하지만 수동 조정이 필요하지 않도록 성능에 주의를 기울일 것을 조언합니다.

파트 4

  • 03:00:00 이 섹션에서 강사는 TensorFlow 객체 감지 모델의 교육을 개선하기 위해 이미지에 빠르게 레이블을 지정하는 방법을 시연합니다. 그는 모델의 정확성을 평가하기 위해 레이블이 지정된 이미지를 교육 및 테스트 폴더 모두에 복사하는 것이 중요하다고 설명합니다. 다음으로 교육 및 검색 노트북에서 사용자 지정 모델 이름을 변경하여 새 폴더를 만들어 "조정된" 모델을 교육하는 방법을 보여줍니다. 그런 다음 사전 훈련된 파이프라인 구성을 조정된 새 모델에 복사하고 파이프라인 구성을 업데이트하는 방법에 대해 설명합니다. 마지막으로 교육에 필요한 새 tf 레코드 파일을 생성하기 위해 제공된 코드를 사용하여 필요한 모든 경로를 구성합니다.

  • 03:05:00 이 섹션에서 강사는 표준 구성을 사용하여 교육을 위한 모든 레이블 맵 경로를 정의하는 파이프라인 구성을 업데이트합니다. 파이프라인 업데이트는 훈련 스크립트를 실행하기 위한 길을 닦기 때문에 필수적인 단계입니다. 학습 단계의 수가 이전 구성에서 3000으로 업데이트되고 명령이 실행되어 학습된 모델을 생성합니다. 학습 단계 완료 후 이 모델을 평가하고 7단계의 코드를 실행하여 이전 모델과 비교합니다. 평가 메트릭은 평균 정밀도가 0.7에서 0.834로 증가했으며 감지가 더 빠르고 정확함을 보여줍니다. 강사는 더 많은 이미지, 추가 레이블 및 다양한 위치를 추가하여 모델을 개선하고 더 나은 개체 감지 모델을 생성하는 방법을 보여줍니다. 마지막으로 새 모델이 로드되고 객체를 매우 빠르고 정확하게 감지하는 실시간 감지를 위한 코드가 실행됩니다.

  • 03:10:00 이 섹션에서 강사는 모델의 아키텍처를 변경하여 Tensorflow 객체 감지 모델의 성능을 개선하는 방법에 대해 설명합니다. 이를 위해 사용자는 탐지 노트북에서 사용하려는 사전 훈련된 모델의 링크를 업데이트해야 합니다. 새 링크와 이름을 복사하여 붙여넣으면 사용자는 미리 훈련된 새 모델을 미리 훈련된 모델 폴더에 다운로드할 수 있습니다. 그러나 강사는 다른 스타일의 이미지, 다른 각도의 이미지를 사용하고 장기간 훈련하는 등 이미지 품질을 개선하면 더 나은 성능을 얻을 수 있다고 강조합니다. 강사는 이미지를 Colab의 교육 및 감지 노트북으로 가져오기 전에 이미지를 압축하고 보관하여 Google Colab에서 모델을 교육하는 방법도 보여줍니다.

  • 03:15:00 이 섹션에서 강사는 TensorFlow 객체 감지 프로그램에서 사용할 이미지를 업로드하는 과정과 TensorFlow 모델 저장소를 복제하고 TensorFlow 객체 감지 소프트웨어를 설치하는 과정을 시청자에게 안내합니다. 미리 학습된 모델을 가져오고 레이블 맵을 만듭니다. 그런 다음 강사는 모델을 교육하기 전에 models/my_ssd_mobnet 폴더 내에 사용자 지정 구성을 설정합니다. 뷰어는 Colab을 사용하는 웹캠으로는 실시간 개체 감지를 수행할 수 없지만 이미지로는 수행할 수 있다는 경고를 받습니다. 뷰어는 프로세스를 단계별로 진행하면서 모델을 평가하여 평균 평균 정밀도와 평균 재현율을 확인할 수 있습니다.

  • 03:20:00 비디오의 이 섹션에서 강사는 훈련된 모델을 사용하여 이미지에서 물체를 감지하는 방법을 시연합니다. 최신 체크포인트가 로드되고 이미지 이름이 지정되어 탐지 스크립트를 실행합니다. 강사는 이미지가 유효해야 하며 이미지 폴더에 있어야 한다고 강조합니다. 셀을 실행한 후 훈련된 객체 감지 모델은 이미지에서 객체를 식별합니다. 강사는 파일을 압축하고 내보내는 방법을 자세히 설명하고 코드를 로컬에서 실행할 때 객체 감지 API를 설치해야 한다고 강조합니다. 이 섹션은 객체 감지를 위한 현미경 사용, TensorFlow.js 웹 앱 빌드, Raspberry Pi 감정 감지 수행을 포함하여 다음에 다룰 세 가지 프로젝트를 미리 보는 것으로 마무리됩니다.

  • 03:25:00 이 섹션에서 강사는 USB 현미경을 사용하여 작은 LED의 결함을 감지하는 것과 관련된 첫 번째 프로젝트를 설명하는 것으로 시작합니다. 현미경은 다른 카메라처럼 취급되며 비디오 피드는 OpenCV 라이브러리를 사용하여 얻습니다. 강사는 Python 코드를 사용하여 현미경을 배치하고 확대/축소하는 방법을 시연하고 비디오 피드를 표시합니다. 그런 다음 비디오 피드는 개체 감지를 위한 교육 이미지를 수집하는 데 사용됩니다. 이 프로젝트의 목표는 LED의 결함을 감지하고 구부러진 것과 구부러지지 않은 것으로 분류하도록 모델을 훈련시키는 것입니다.

  • 03:30:00 3개의 프로젝트로 구성된 TensorFlow 객체 감지 전체 과정의 이 섹션에서 강사는 OpenCV를 사용하여 웹캠 또는 현미경 피드에서 이미지를 캡처하는 방법을 보여줍니다. 그는 cv2 웹 캡처를 닫은 후 "cap.release"를 실행하는 것을 포함하여 캡처 장치를 해제하고 모든 OpenCV 창을 파괴하는 모범 사례를 검토합니다. 그런 다음 그는 LED 핀의 이미지를 캡처하기 위해 현미경의 위치와 초점을 조정하는 방법과 결함이 있는 핀과 정상 핀의 이미지를 저장하기 위한 두 개의 새 폴더를 만드는 방법을 시연합니다. 마지막으로 이미지 캡처를 위해 웹캠 피드를 테스트하여 모든 것이 예상대로 작동하는지 확인합니다.

  • 03:35:00 비디오의 이 섹션에서 강사는 객체 감지를 위해 불량 핀과 정상 핀의 이미지를 수집하는 방법을 시연합니다. 핀을 배치하고 이미지 캡처 사이의 절전 시간을 조정한 다음 절전 기능을 사용하여 캡처 사이를 일시 중지합니다. 강사는 또한 레이블 지정 라인과 폴더 위치를 사용하여 이미지에 레이블을 지정하는 방법을 설명합니다. 시청자가 댓글 섹션이나 Discord 서버에서 설명을 요청하거나 피드백을 제공하도록 권장합니다.

  • 03:40:00 비디오의 이 섹션에서 강사는 TensorFlow를 사용하여 사용자 지정 개체 감지 모델을 훈련하기 위해 이미지에 레이블을 지정하는 프로세스를 진행합니다. 강사는 현미경을 사용하여 결함이 있는 핀과 결함이 없는 핀의 이미지를 캡처하고 그에 따라 라벨을 붙입니다. 그런 다음 교육 파이프라인을 설정하기 전에 이미지를 교육 및 테스트 폴더에 복사합니다. 강사는 사용자 지정 개체 감지 모델을 위한 새 폴더를 만들고 새 레이블을 포함하도록 레이블 맵을 업데이트하는 방법을 설명합니다. 이 섹션에서 사용되는 코드 베이스는 상당히 범용적이어서 많은 사용자 정의가 가능하며 강사는 성능 튜닝에 대한 팁을 제공합니다.

  • 03:45:00 자습서의 이 섹션에서는 모델 교육을 허용하는 TensorFlow 레코드를 만드는 데 중점을 둡니다. 사전 학습된 모델을 다운로드하고 레이블 맵을 생성하는 데 필요한 셀에 대해 설명하지만 모델 학습을 허용할 TensorFlow 레코드를 생성하는 데 초점을 맞춥니다. TensorFlow 레코드가 생성되면 모델이 새 클래스로 업데이트되고 업데이트된 구성이 저장됩니다. 이 모델은 2000단계에 대해 훈련되고 새 모델은 결함이 있는 핀과 결함이 없는 핀을 감지하도록 테스트됩니다. 노트북의 윤곽이 그려지고 사용자는 이 모델의 개발을 허용하는 특정 셀로 이동합니다.

  • 03:50:00 이 섹션에서 강사는 이미지를 업데이트하여 결함이 있는 핀과 결함이 없는 핀을 감지합니다. 시스템은 높은 신뢰도로 두 핀을 성공적으로 감지합니다. 그러나 강사는 특정 위치에서 결함이 있는 핀으로 시스템이 제대로 작동하지 않는다는 것을 알아채고 조정 트레이드 오프를 강조합니다. 강사는 감지 프레임에 감지 정확도 수준을 결정하기 위해 수정할 수 있는 매개변수가 있음을 보여줍니다. 최소 점수 임계값을 줄임으로써 시스템은 결함이 있는 핀을 합리적으로 잘 감지할 수 있지만 다른 많은 것을 결함으로 감지하는 비용이 발생합니다. 강사는 훈련되지 않은 핀을 포함하여 다양한 색상의 핀으로 시스템을 테스트하고 시스템의 견고성을 보여줍니다.

  • 03:55:00 이 섹션에서 강사는 물체 감지 방법으로 현미경을 사용하면서 첫 번째 프로젝트의 결과를 시연합니다. 핀의 각도와 위치를 바꾸어 검출된 핀을 불량과 양호로 분류하는 방법을 지적합니다. 그는 이미지 캡처 및 레이블 지정, 현미경 폴더 설정 및 모델 교육을 포함하는 첫 번째 프로젝트의 프로세스를 요약합니다. 다음 프로젝트는 객체의 방향을 감지하기 위한 웹 앱을 빌드하는 데 중점을 둡니다. 여기에는 TensorFlow 객체 감지 과정의 코드를 TensorFlow 객체 감지 앱 Github 리포지토리와 결합하는 작업이 포함됩니다. 목표는 향후 웹 사이트로 배포할 수 있는 상하좌우 움직임을 감지하는 것입니다.

파트 5

  • 04:00:00 비디오의 이 섹션에서 강사는 Tensorflow 개체 감지를 위한 레이블을 설정하고 재설정하는 방법을 설명합니다. 위 또는 아래 또는 결함 및 양호 핀과 같은 레이블을 정의하는 대신 왼쪽, 오른쪽, 위, 아래와 같은 방향 이동을 정의하는 방법을 보여줍니다. 그런 다음 다양한 방향에 대한 폴더를 만들고 훈련에 사용할 이미지를 수집하는 방법을 보여줍니다. 또한 강사는 LabelImg를 사용하여 이미지에 레이블을 지정하는 방법을 설명하고 이미지 사례에 주의를 기울이고 결과가 좋지 않은 경우 성능 조정을 제안합니다. 마지막으로 올바른 방향으로 이미지에 레이블을 지정하는 방법을 시연합니다.

  • 04:05:00 비디오의 이 섹션에서 강사는 개체 감지 모델에서 사용할 이미지에 레이블을 지정하는 방법을 시연합니다. 개체/클래스당 5개의 이미지만 사용되지만 사용자가 원하는 대로 숫자를 조정할 수 있습니다. 강사는 이것이 반복적인 과정이며 다른 수의 이미지로 실험해도 괜찮다고 조언합니다. 이미지에 레이블이 지정되면 각 이미지/클래스에 대해 80/20 분할로 교육 및 테스트 폴더로 정렬됩니다. 폴더가 설정되면 강사는 폴더 이름을 변경하고 "방향"이라는 새 파일 경로를 만듭니다. 마지막으로 강사는 가상 환경이 이미 설정되었으며 추가 단계를 수행할 필요가 없다고 말합니다.

  • 04:10:00 이 섹션에서는 레이블 맵이 "left", "right", "up" 및 "down"에 대한 새 레이블로 업데이트되고 각각에 고유 식별자가 할당됩니다. 그런 다음 주석을 실행하여 레이블 맵을 업데이트하고 필요한 훈련 및 테스트 tfrecord 파일을 생성합니다. 그런 다음 훈련 스크립트를 생성하는 명령을 사용하여 모델을 훈련하고 손실은 0.299로 계산됩니다. 체크포인트 3은 실시간 감지를 위한 종속성을 가져오기 위해 복원되고 최소 점수 임계값은 90으로 설정됩니다. 마지막으로 웹캠이 활성화되어 객체 감지 모델에 대한 실시간 감지를 생성합니다.

  • 04:15:00 이 섹션에서 강사는 성능이 좋지 않은 특정 클래스의 이미지를 더 추가하여 모델을 평가하고 정확도를 개선하는 방법을 보여줍니다. 그는 이것을 가리켜서 보여줍니다.
    양손을 사용하여 다른 방향으로 이동하고 모델의 성능을 확인합니다. 그런 다음 계속해서 그래프를 고정하고 내보내고 tensorflow.js로 변환합니다. 또한 모델을 IBM Cloud Object Store에 업로드하는 방법과 github 저장소에서 사용 가능한 단계를 안내합니다. 강사는 계속해서 리포지토리를 복제하고 새 명령 프롬프트를 열고 적절한 폴더로 이동하는 방법을 보여줍니다.

  • 04:20:00 비디오의 이 섹션에서 강사는 이미지 인식을 위해 TensorFlow 객체 감지를 사용하기 위한 개발 환경을 준비하는 방법에 대한 단계별 안내를 제공합니다. 강사는 먼저 필요한 폴더로 이동하고 TensorFlow 개체 감지 리포지토리를 복제하는 방법을 보여줍니다. 그런 다음 강사는 Node.js를 설치하는 방법과 리포지토리에 대한 종속성을 보여줍니다. 마지막으로 강사는 IBM Cloud에서 새 클라우드 오브젝트 스토리지 버킷을 생성하고 이름을 지정하는 방법을 시연합니다. 이 프로세스는 비디오의 후반부에서 웹 기반 사용자 인터페이스를 사용하는 데 필요합니다.

  • 04:25:00 이 섹션에서 강사는 IBM Cloud Object Storage에서 버킷을 생성하고 여기에 model.json 및 .bin 파일을 업로드하는 튜토리얼의 5단계를 계속 진행합니다. 다음으로 공개 액세스 정책을 활성화하여 모든 위치에서 모델에 액세스할 수 있도록 하고 나중에 앱에서 사용할 수 있도록 model.json 파일의 URL을 가져오는 방법을 보여줍니다. 그런 다음 IBM Cloud Object Storage CLI를 설치한 후 CLI 명령을 실행하여 CORS(Cross-Origin Resource Sharing)를 활성화하는 프로세스를 안내합니다.

  • 04:30:00 이 섹션에서 동영상은 명령행 인터페이스를 통해 IBM Cloud CLI 및 IBM Cloud Object Storage CLI를 설치하여 웹 앱이 URL에 액세스할 수 있도록 허용하는 교차 출처 리소스 공유(CORS)를 사용하는 방법을 보여줍니다. 다른 곳에서. 이 명령은 또한 IBM Cloud Storage 클라이언트를 설치하고 구성 파일로 구성합니다. 동영상은 원인 정책을 버킷의 루트 폴더에 넣는 명령으로 사용자의 버킷 이름을 대체하는 방법을 보여줍니다. 마지막으로 동영상에서는 원인 정책이 클라우드 구성 파일에 포함되어 있으며 복제된 리포지토리의 일부이므로 파일 생성이 필요하지 않음을 설명합니다.

  • 04:35:00 이 섹션에서는 강사가 TensorFlow.js 웹 앱을 실행하는 데 필요한 파일을 업데이트하는 방법을 설명합니다. 단계에는 Google Cloud Storage 자격 증명 설정, app.js에서 모델 URL 업데이트, utility.js에서 라벨 맵 업데이트, npm start를 사용하여 앱 시작이 포함됩니다. 강사는 또한 앱이 작동하지 않는 경우 신뢰 메트릭 변경 및 검색 결과 배열에서 개체 순서 확인을 포함하여 앱을 디버그하는 방법을 설명합니다. 전반적으로 이러한 단계를 통해 사용자는 특정 사용 사례를 기반으로 웹 앱을 사용자 지정하고 제대로 실행되는지 확인할 수 있습니다.

  • 04:40:00 이 섹션에서 비디오는 개체가 있는 위치를 확인하는 방법과 결과 배열을 조작하는 방법을 보여줍니다. 코드를 검사하여 사용자는 결과 배열에 5개의 값이 포함되어 있고 각 배열에 특정 앱에 사용할 수 있는 서로 다른 클래스가 있음을 식별할 수 있습니다. 비디오는 또한 매우 낮은 숫자로 표시되는 포스트 프로세스가 아닌 상자 클래스인 객체 3과 같은 각 객체 배열을 올바르게 사용하는 방법을 사용자에게 안내합니다. 그런 다음 비디오는 사용자가 상자 배열의 값을 변경하여 신속하게 수행할 수 있는 신뢰 메트릭 및 점수 값을 변경하고 상자 값을 조정하는 방법을 보여줍니다.

  • 04:45:00 이 섹션에서는 비디오가 두 번째 프로젝트를 마무리하고 Raspberry Pi에서 개체 감지 모델을 실행하는 것과 관련된 세 번째 프로젝트로 이동합니다. 발표자는 Raspberry Pi에서 개체 감지 모델을 실행하는 것이 GPU가 없기 때문에 이전 두 프로젝트와 다르기 때문에 특히 모델을 Tensorflow lite 형식으로 변환할 것이라고 언급합니다. 그들은 행복하고 슬픈 얼굴의 이미지를 수집하고 이전과 동일한 프로세스를 사용하여 모델을 훈련합니다. 그러나 그들은 이 프로젝트에 라즈베리 파이를 사용할 것이며 탐지를 위해 라즈베리 파이에 원격 데스크톱을 할 것입니다. 비디오는 서로 다른 장치에서 여러 가지 모델을 실행할 수 있는 가능성을 언급하며 끝납니다. 시청자가 이 주제에 대한 아이디어를 공유하도록 독려합니다.

  • 04:50:00 비디오의 이 섹션에서 강사는 행복한 얼굴과 슬픈 얼굴을 인식하는 감정 감지기용 이미지를 수집하고 레이블을 지정하는 방법을 시연합니다. 이 프로세스에는 기존 이미지 삭제, 새 이미지의 경로 생성, 각 감정의 이미지 5개 수집, 이미지 레이블 지정 및 각 개체 저장이 포함됩니다. 강사는 시청자에게 레이블 지정 시 대소문자 구분이 중요하며 이 연습에는 녹색 화면이 필요하지 않음을 상기시킵니다. 또한 강사는 사용자가 항상 이미지 디렉토리로 돌아가 이미지 레이블을 업데이트할 수 있다고 설명합니다.

  • 04:55:00 이 섹션에서 강사는 수집된 이미지와 주석을 교육 및 테스트 폴더로 구성하고 이동하는 방법을 보여줍니다. 레이블 맵을 업데이트하여 새 사용자 지정 모델을 만들고 수집된 이미지에 행복 및 슬픔 레이블을 지정하는 방법을 보여줍니다. 그런 다음 tf 레코드를 만들고 사전 학습된 모델 구성을 사용자 지정 모델 폴더에 복사합니다. 구성을 업데이트한 후 가상 환경에서 실행되는 생성된 명령을 사용하여 모델을 학습하고 프로세스가 완료될 때까지 기다립니다.

6부

  • 05:00:00 이 섹션에서 강사는 GPU 머신에서 작업할 때 감정 모델의 교육 실행 중에 발생할 수 있는 일반적인 오류에 대해 이야기합니다. 오류 메시지는 GPU가 완전히 소모되어 시스템에 나쁜 시간이 있음을 나타냅니다. 이 문제를 해결하려면 사용자는 언제든지 GPU를 사용할 수 있는 모든 것을 중지한 다음 교육 실행을 다시 시작해야 합니다. 교육이 완료되면 사용자는 운영 체제와 이러한 경로를 가져오고 최신 체크포인트도 확인할 수 있습니다. 강사는 또한 시스템이 설정되면 빠르고 쉬운 프로세스인 감정 모델의 사용을 실시간으로 시연합니다.

  • 05:05:00 이 섹션에서는 강사가 TensorFlow 객체 감지를 사용하여 Raspberry Pi 감지 모델을 구축하는 데 필요한 단계를 설명합니다. 첫 번째 단계는 TensorFlow 객체 감지 과정을 거쳐 TfLite 파일을 만드는 것입니다. 다음으로 사용자는 Raspberry Pi 탐지 리포지토리를 복제하거나 PC에 다운로드하거나 Raspberry Pi에서 복제해야 합니다. 이 작업이 완료되면 사용자는 필요한 종속 항목을 설치하고 변환된 모델을 복사한 다음 기존 detect.tf lite 모델을 사용하여 실행해야 합니다. 또한 강사는 xrdp를 사용하여 Raspberry Pi에 원격 데스크톱을 사용하여 프로세스를 더 쉽게 만드는 방법을 시연합니다.

  • 05:10:00 이 섹션에서 강사는 Raspberry Pi에서 TensorFlow의 객체 감지 API로 작업하는 데 필요한 모든 종속성을 설치하는 과정을 안내합니다. 강사는 OpenCV Python을 설치하는 방법과 OpenCV가 Raspberry Pi에서 작동하는 데 필요한 몇 가지 다른 종속성을 보여줍니다. 그런 다음 강사는 Raspberry Pi에서 TensorFlow Lite 모델을 실행하는 데 필요한 TensorFlow Lite 런타임을 설치합니다. 모든 종속성이 설치되면 Raspberry Pi에서 샘플 객체 감지 모델을 실행하여 작동 방식을 보여줍니다. 마지막으로 강사는 사용자 지정 모델 및 레이블을 시스템에 추가하는 방법을 설명합니다.

  • 05:15:00 이 섹션에서 강사는 사용자 지정 개체 감지 및 더 나은 결과를 얻기 위해 감지 임계값을 조정하는 방법에 대해 설명합니다. 사용자 지정 개체 감지에는 두 개의 레이블이 포함됩니다. 행복하고 슬프다. 강사는 레이블의 순서를 첫 번째 개체로 행복하고 두 번째 개체로 슬프게 조정합니다. 사용자 지정 모델을 실행하면 어떤 개체도 감지되지 않으며 강사는 감지 임계값을 20%로 낮추기로 결정합니다. 명령을 다시 실행하면 모델이 객체를 감지합니다. 하나의 큰 슬프고 행복한 대상. 강사는 더 나은 성능 결과를 얻기 위해 더 많은 이미지로 모델을 교육해야 할 필요성을 강조합니다. 강사는 수행 중인 클래스의 이미지를 더 추가하고 모델을 더 오래 훈련하여 추가 성능 튜닝을 수행합니다.

  • 05:20:00 이 섹션에서 화자는 감정 분석 모델의 성능을 어떻게 개선했는지 설명합니다. 첫째, 그는 다른 각도에서 자신의 추가 이미지를 추가하여 모델이 잘 일반화될 가능성을 높였습니다. 둘째, 그는 5600단계를 더 추가하여 모델을 훈련하여 더 큰 인덱스 체크포인트가 있는 완전히 새로운 모델을 제공했습니다. 그런 다음 그는 새 모델을 고정된 tf-lite 그래프로 변환하고 이를 Raspberry Pi로 가져와 자신이 행복한지 슬픈지 감지하는 데 사용했습니다. 화자는 녹색 화면이 위아래로 움직여도 모델의 성능에 영향을 미치지 않았으며 그가 기쁠 때와 슬플 때를 정확하게 감지할 수 있음을 보여줍니다. 연사는 성능 튜닝의 힘과 모델의 정확도를 개선하는 데 어떻게 사용할 수 있는지 강조합니다.

  • 05:25:00 이 마지막 발췌문은 강사가 시청자에게 추가 지원이 필요한 경우 댓글 또는 Discord 채널을 통해 연락할 것을 상기시키면서 Python을 사용한 5시간 동안의 Tensorflow 개체 감지 과정을 마무리합니다. 이 과정은 과정 자체 내에서 3개의 프로젝트를 다루므로 물체 감지에 대해 배우고 Tensorflow에 대한 심층 지식을 원하는 시청자에게 유용합니다.
GitHub - nicknochnack/TFODCourse
GitHub - nicknochnack/TFODCourse
  • nicknochnack
  • github.com
This set of Notebooks provides a complete set of code to be able to train and leverage your own custom object detection model using the Tensorflow Object Detection API. This accompanies the Tensorflow Object Detection course on my YouTube channel. Steps Step 1. Clone this repository: https://github.com/nicknochnack/TFODCourse Step 2. Create a...
 

Tensorflow 및 EasyOCR을 사용한 자동 번호판 인식 2시간 만에 풀코스 | 파이썬

최종 노트: https://github.com/nicknochnack/RealTimeAutomaticNumberPlateRecognition

기본 코드: https://github.com/nicknochnack/TFODCourse



Tensorflow 및 EasyOCR을 사용한 자동 번호판 인식 2시간 만에 풀코스 | 파이썬

"Automatic Number Plate Recognition using Tensorflow and EasyOCR Full Course in 2 Hours | Python"이라는 제목의 YouTube 동영상은 Tensorflow 및 EasyOCR을 사용하여 정확하고 효율적인 자동 번호판 인식(ANPR) 시스템을 구축하기 위한 포괄적인 가이드를 제공합니다. ANPR 시스템은 TensorFlow를 사용하여 관심 있는 번호판 영역을 감지하고 EasyOCR이 감지된 영역에서 텍스트를 추출하는 두 부분으로 구성된 시스템을 사용합니다. 이 비디오는 가상 환경 설정 및 필요한 종속성 설치에서 훈련을 위한 데이터 준비 및 훈련 중에 발생할 수 있는 오류 해결에 이르기까지 다양한 주제를 다룹니다. 전반적으로 시청자는 실시간 또는 표준 이미지 감지 기능으로 프로덕션 등급 ANPR 시스템을 구축하는 방법을 자세히 이해할 수 있습니다.

TensorFlow 및 EasyOCR을 사용한 자동 번호판 인식(ANPR)에 대한 YouTube 자습서에서는 객체 감지를 사용하여 번호판을 정확하게 감지하는 방법과 OCR을 사용하여 번호판을 추출하는 방법을 다룹니다. 강사는 플레이트에서 관련 정보만 추출하기 위해 크기와 좌표를 기준으로 텍스트를 필터링하는 방법에 대해 설명합니다. GPU 리소스를 할당하고 TensorFlow에 대한 메모리 소비를 제한하는 방법, 감지 임계값을 통과하는 이미지 점수, 클래스 및 상자를 추출하고 EasyOCR을 사용하여 OCR을 적용하는 방법을 보여줍니다. 또한 비디오는 실시간 및 이미지 결과 모두에 대해 출력 결과를 CSV 파일 및 폴더 경로에 저장하는 방법을 다룹니다. 발표자는 시청자가 코드를 사용할 수 있음을 강조하고 도움을 요청하고 피드백을 공유하도록 권장합니다.

  • 00:00:00 시스템은 OCR 또는 광학 문자 인식입니다. 이 단계에는 EasyOCR이라는 라이브러리를 사용하여 감지된 번호판 피드에서 텍스트를 추출하여 실시간으로 또는 표준 이미지에서 번호판의 텍스트를 읽고 분석할 수 있습니다. 또한 이 과정은 이전에 감지된 플레이트와 관심 영역을 저장하고 기록하여 생산 등급의 사전 구축된 AMPR 시스템을 모방하는 고급 시스템 구축을 다룹니다. 전반적으로 이 과정은 Tensorflow 및 EasyOCR을 사용하여 정확하고 효율적인 자동 번호판 인식 시스템을 구축하기 위한 포괄적인 가이드를 제공합니다.

  • 00:05:00 이 섹션에서 발표자는 자동 번호판 인식에 사용되는 두 부분으로 구성된 시스템을 설명합니다. 첫 번째 부분은 TensorFlow 객체 감지 모델을 사용하여 번호판인 관심 영역을 감지합니다. 두 번째 부분은 EasyOCR을 사용하여 감지된 영역에서 텍스트를 추출합니다. 발표자는 TensorFlow 및 EasyOCR을 포함하여 필요한 구성 요소를 설치하는 방법을 시연하고 필요한 파일이 포함된 GitHub 리포지토리에 대한 링크를 제공합니다. 발표자는 저장소를 복제하는 방법을 설명하고 결과로 생성된 폴더의 내용을 보여줍니다. 이 폴더에는 번호판 교육 및 감지에 사용되는 노트북 파일이 포함되어 있습니다.

  • 00:10:00 비디오의 이 섹션에서 발표자는 가상 환경을 설정하고 TensorFlow 및 EasyOCR을 사용하여 자동 번호판 인식(ANPR)을 실행하는 데 필요한 종속 항목을 설치하는 단계를 거칩니다. 발표자는 먼저 ANPR 저장소를 복제하고 Python으로 가상 환경을 만듭니다. 그런 다음 그는 가상 환경을 활성화하고 ipi 커널 및 pip 업그레이드와 같은 중요한 종속성을 설치합니다. 이러한 단계를 통해 가상 환경을 Jupyter 노트북에 연결하여 ANPR의 모든 기능을 활용하는 방법을 보여줍니다.

  • 00:15:00 이 섹션에서 강사는 "ampr sys" 환경을 예로 사용하여 가상 환경을 Jupyter 노트북에 연결하는 프로세스를 통해 뷰어를 안내합니다. 강사는 종종 가상 환경에서 작업하는 사람들이 모든 것을 환경에 설치하지만 Jupyter Notebook 내부에 들어가면 여전히 거기에 없다고 말하기 때문에 이것이 중요하다고 지적합니다. 가상 환경이 Jupyter Notebook과 연결되면 TensorFlow Object Detection API를 설치하고 TensorFlow를 사용하여 객체 감지를 수행할 수 있도록 폴더 구조를 설정하는 과정을 통해 강사가 뷰어를 안내합니다.

  • 00:20:00 이 섹션에서 강사는 전이 학습의 개념을 설명하는 것으로 시작합니다. 이를 통해 이미 존재하는 최신 모델을 번호판 감지와 같은 특정 사용 사례에 맞게 미세 조정할 수 있습니다. 그런 다음 강사는 TensorFlow Model Zoo에서 선행 학습된 모델을 다운로드하고 여러 코드 셀을 실행하여 TensorFlow 객체 감지 API를 설치합니다. 객체 감지 폴더와 같은 API 및 해당 구성요소는 TensorFlow 모델 정원 리포지토리에 복제되고 TensorFlow 객체 감지 모델의 설치가 시작됩니다. 설치에는 여러 종속성과 protoc, 프로토콜 버퍼 시스템이 포함되며 완료하는 데 약간의 시간이 걸릴 수 있습니다.

  • 00:25:00 이 섹션에서는 강사가 TensorFlow 및 GPU 버전 설치 과정을 안내합니다. Nvidia GPU와만 호환되는 TensorFlow 2.4.1 및 TensorFlow GPU 2.4.1을 설치합니다. 마지막에 "Ok"를 출력해야 하는 확인 스크립트를 실행하여 설치가 성공했는지 확인하는 방법을 보여줍니다. 강사는 또한 pip를 사용하여 Matplotlib 및 Pillow 라이브러리를 설치하는 것과 같이 설치 프로세스 중에 발생할 수 있는 "모듈을 찾을 수 없음" 오류를 해결하는 방법을 시연합니다. 확인 스크립트는 다음 섹션으로 이동하기 전에 필요한 모든 종속성이 설치되었는지 확인합니다.

  • 00:30:00 비디오의 이 섹션에서 발표자는 특히 자동차 번호판 인식을 위해 물체 감지 모델을 구축하는 데 필요한 다양한 모듈의 설치 과정을 안내합니다. 설치 과정에서 여러 오류가 발생하지만 해결 방법을 안내합니다. TensorFlow 객체 감지 및 EasyOCR을 포함하여 필요한 모든 모듈이 설치되면 발표자는 다음 단계로 이동하여 데이터 작업을 수행하고 자동차 이미지와 번호판에 대한 주석이 포함된 Kaggle 데이터 세트를 소개합니다. 모델에서 사용할 데이터 세트를 다운로드하고 준비하는 방법을 보여줍니다.

  • 00:35:00 이 섹션에서 강사는 자동 번호판 인식(ANPR)에 필요한 데이터를 다운로드하고 개체 감지를 위한 교육 및 테스트 세트로 구성하는 방법에 대해 설명합니다. 주석과 해당 이미지가 포함된 데이터는 Kaggle에서 다운로드하여 ANPR 폴더에 압축을 풉니다. 이미지 폴더 내에 두 개의 새 폴더가 생성됩니다. 하나는 학습용이고 다른 하나는 테스트용이며 다운로드한 이미지는 train 폴더에 복사됩니다. 또한 주석은 훈련 및 테스트 세트로 분할되며 훈련 주석은 해당 이미지와 함께 훈련 폴더에 배치됩니다. 이러한 개별 세트의 목적은 하나의 데이터 세트에서 물체 감지 모델을 훈련하고 성능을 평가하기 위해 독립적인 세트에서 테스트하는 것입니다.

  • 00:40:00 이 섹션에서는 비디오에서 번호판 감지 모델을 교육하기 위해 데이터를 준비하는 프로세스에 대해 설명합니다. 발표자는 Kaggle에서 번호판 이미지를 다운로드하고 해당 주석을 TensorFlow 작업 공간 내의 두 개의 새 폴더인 "train" 및 "test"에 복사했다고 설명합니다. 다음 단계는 레이블 업데이트, tf 레코드 생성, 구성 준비 및 마지막으로 모델 교육을 포함하는 객체 감지 모델을 교육하는 것입니다. 발표자는 "레이블 맵"을 사용하여 사용할 하나의 레이블인 "라이선스"를 식별한 다음 개체 감지 모델에 필요한 형식인 tf 레코드를 만듭니다. 프로세스는 간단하다고 설명되어 있으며 tf 레코드를 생성하는 스크립트가 제공됩니다.

  • 00:45:00 이 섹션에서는 동영상에서 TensorFlow 및 EasyOCR을 사용하여 교육용 데이터를 준비하는 방법을 다룹니다. 여기에서 설명하는 스크립트는 이미지 및 주석을 포함한 원시 데이터를 tf 레코드 형식으로 변환하지만 Kaggle 데이터 세트의 주석 형식이 약간 다르기 때문에 업데이트해야 합니다. 비디오는 누락된 모듈 설치, 올바른 바운딩 박스 메트릭을 선택하도록 인덱스 변경, 사전 교육된 모델 구성을 교육 폴더에 복사하는 것을 포함하여 이러한 불일치로 인해 발생하는 오류를 수정하는 방법을 보여줍니다.

  • 00:50:00 이 섹션에서 발표자는 모델을 교육하기 전에 업데이트해야 하는 다양한 구성 라인이 포함된 사전 교육된 모델 파이프라인의 세부 정보를 살펴봅니다. 연사는 매개변수가 업데이트되고 훈련 명령을 실행하여 모델을 훈련시키는 업데이트된 구성 파일을 복사하는 방법을 시연합니다. 또한 진행 상황을 제대로 확인하기 위해 외부에서 명령을 실행하는 것의 중요성과 명령을 실행하기 위해 가상 환경을 활성화하는 방법에 대해서도 언급합니다. 마지막으로 모델을 설치하는 동안 발생할 수 있는 표준 오류를 해결하는 방법을 설명합니다.

  • 00:55:00 과정의 이 섹션에서는 강사가 교육 중에 발생할 수 있는 오류를 해결합니다. 그는 numpy dot nd 배열 크기 변경과 관련된 값 오류, cv2의 모듈을 찾을 수 없음 오류, tensorflow 애드온의 모듈을 찾을 수 없음 오류, gin의 모듈을 찾을 수 없음 오류와 같은 특정 문제를 해결하는 방법을 보여줍니다. 강사는 이러한 오류가 드문 일이 아니며 이를 해결하기 위해 필요한 라이브러리를 설치하는 것이 필수적이라고 설명합니다. 모델이 훈련되면 강사는 손실 메트릭을 읽는 방법과 가장 최근에 훈련된 모델 체크포인트를 찾는 방법을 보여줍니다.

  • 01:00:00 Tensorflow 및 EasyOCR을 사용한 자동 번호판 인식에 대한 비디오 자습서의 이 섹션에서 강사는 이미지에서 또는 동일한 모델을 사용하여 실시간으로 번호판을 감지하는 방법을 다룹니다. 이미지 파일 이름을 변경하면 모델이 다양한 유형의 플레이트를 정확하게 감지하고 분류할 수 있습니다. 이 방법은 플레이트의 형식이 다양할 수 있기 때문에 기존의 컴퓨터 비전 기술을 활용하는 것보다 물체 감지를 통해 훨씬 더 나은 성능을 발휘하는 것으로 밝혀졌습니다. 이 모델은 라이브 비디오 스트림에서 또는 차량 번호판 앞에서 전화를 들어 번호판을 감지할 수도 있습니다. 강사는 이 방법이 효율적이고 번호판 감지기를 구축하기 위한 좋은 시작이라고 강조하며 다음 단계는 OCR 구성 요소를 적용하여 이미지에서 의미 있는 데이터를 추출하는 것입니다.

  • 01:05:00 이 섹션에서 비디오 자습서는 자동차 번호판 번호를 식별하기 위해 오픈 소스 라이브러리 EasyOCR을 사용하여 이미지에서 텍스트를 감지하고 추출하는 방법에 대해 설명합니다. 튜토리얼에서는 더 정확한 OCR 모델을 사용할 수 있지만 EasyOCR은 PyTorch에서 실행될 때 사용되므로 GPU가 모든 GPU 메모리를 소비하지 않고 TensorFlow와 함께 실행할 수 있도록 약간의 공간이 필요합니다. 튜토리얼은 EasyOCR이 원활하게 실행될 수 있도록 GPU 리소스를 할당하고 TensorFlow의 메모리 소비를 제한하는 방법을 보여줍니다.

  • 01:10:00 이 섹션에서는 발표자가 TensorFlow 및 EasyOCR을 사용하여 자동 번호판 인식(ANPR)에 필요한 파일 경로 및 레이블을 로드하는 방법과 CUDA 가속을 사용하여 EasyOCR 및 PyTorch를 설치하는 방법을 설명합니다. 그들은 예제 이미지를 로드하고 ANPR을 수행한 후 자동차 번호판 번호와 감지 점수가 "detections"라는 변수에 저장되고 EasyOCR을 사용하여 OCR을 적용하는 데 사용됨을 보여줍니다. 탐지 임계값은 0.7로 설정되어 0.7 이상의 점수를 가진 탐지만 추가로 처리할 수 있습니다.

  • 01:15:00 이 섹션에서는 강사가 몇 줄의 코드를 사용하여 감지 임계값을 통과하는 이미지 점수, 클래스 및 상자를 추출하는 방법을 설명합니다. 감지 점수 배열의 각 값을 반복하고 임계값을 초과하는 점수만 반환하는 방법을 보여줍니다. 또한 상자와 클래스에 필터를 적용하여 웹캠에 맞는 크기와 형식인지 확인합니다. 마지막으로 이미지의 너비와 높이를 가져와 상자 좌표를 다시 계산하고 이미지에 필터링을 적용하여 관심 영역을 결정합니다.

  • 01:20:00 이 섹션에서 비디오는 이미지에서 관심 영역을 추출하고 광학 문자 인식(OCR)을 적용하여 플레이트 결과를 추출하는 방법을 보여줍니다. 먼저 image.shape를 사용하여 이미지의 너비와 높이 매개변수를 얻습니다. ROI를 추출하려면 탐지 좌표를 나타내는 상자 변수의 각 상자를 반복하고 관심 영역을 필터링합니다. 마지막으로 EasyOCR을 사용하여 ROI에 OCR을 적용하고 그 결과를 콘솔에 출력합니다. 비디오는 시청자에게 EasyOCR 리더를 설정하고 언어 매개변수를 통과하며 이미지를 구문 분석하여 플레이트 결과를 추출하는 과정을 안내합니다.

  • 01:25:00 이 섹션에서는 발표자가 OCR(광학 문자 인식)을 사용하여 인쇄된 판 또는 판에서 텍스트를 효과적으로 추출하는 방법에 대해 논의합니다. OCR 판독기를 혼동할 수 있는 번호판 번호 외에 추가 텍스트가 있는 예시 이미지를 보여줍니다. 이 문제를 해결하기 위해 발표자는 크기와 좌표를 기준으로 결과를 필터링할 것을 제안합니다. 이 필터링을 수행하는 함수를 작성하고 이미지에 적용하여 적절한 텍스트를 얻는 방법을 보여줍니다. 결과는 OCR 모델로 여전히 개선의 여지가 있지만 OCR 판독기가 번호판 번호를 정확하게 추출할 수 있음을 보여줍니다.

  • 01:30:00 이 섹션에서 화자는 "필터 텍스트"라는 새로운 기능을 소개합니다. 이 함수는 영역, OCR 결과 및 영역 임계값의 세 가지 인수를 사용합니다. 영역은 이미지를 나타내고, OCR 결과는 EasyOCR에서 추출한 텍스트를 나타내며, 영역 임계값은 번호판 영역을 감지하기 위한 크기 임계값입니다. 이 함수는 OCR 결과를 반복하고 각각의 길이와 너비를 추출하고 곱한 다음 영역 임계값과 비교합니다. 이 필터를 통과하면 텍스트로 간주되며 해당 영역은 "플레이트"라는 변수에 저장됩니다. 발표자는 또한 영역의 크기를 계산하고 필터 작동 방식을 설명하는 일부 코드 부분을 설명합니다.

  • 01:35:00 이 섹션에서 작성자는 OCR 엔진을 사용하여 이미지의 텍스트를 효과적으로 필터링하는 방법을 보여줍니다. filterText 알고리즘을 사용하면 사용자가 영역에 대한 임계값을 지정할 수 있으며 이 임계값을 충족하거나 초과하는 텍스트 블록만 필터링됩니다. 그들은 이 기능을 사용하여 플레이트에서 모든 것을 검색하는 대신 필요한 구성 요소를 추출합니다. 그들은 또한 OCR 필터와 OCR 구성 요소를 결합한 OCR_it 기능을 만들었으며 해당 임계값으로 이미지 및 감지를 통과할 때 모든 이미지에 적용할 수 있습니다.

  • 01:40:00 이 섹션에서 강사는 지정된 감지 및 영역 임계값이 있는 "ocr_it" 기능을 통해 이미지를 전달하여 광학 문자 인식(OCR) 방법을 테스트합니다. 이 방법은 이미지에서 번호판과 해당 영역을 정확하게 추출할 수 있습니다. 그런 다음 모든 유효한 감지에 대해 OCR 기능을 호출하는 새로운 코드와 try-except 블록을 사용하여 번호판을 감지하기 위해 OCR 방법을 실시간으로 적용하는 방법을 시연합니다. 강사는 휴대폰에서 실시간 감지를 테스트하고 결과가 완벽하지 않고 약간의 조정을 사용할 수 있지만 번호판 텍스트를 정확하게 감지하고 추출하는 것을 보여줍니다.

  • 01:45:00 영상의 이 부분에서는 강사가 직접 개발한 OCR 시스템의 출력 결과를 저장하는 방법을 설명합니다. 텍스트, 지역, 파일 이름 및 폴더를 입력 매개변수로 사용하는 "save_results"라는 새 함수를 만듭니다. 그런 다음 uuid 라이브러리를 사용하여 고유한 파일 이름을 생성하고 csv 라이브러리를 사용하여 출력 결과를 csv 파일에 저장합니다. 또한 cv2 라이브러리를 사용하여 선택한 폴더에 이미지를 기록합니다. 마지막으로 코드를 마무리하고 테스트합니다.

  • 01:50:00 비디오의 이 섹션에서 강사는 CSV 파일 및 폴더 경로를 설정하여 모든 이미지 결과 또는 영역을 작성하는 방법을 시연합니다. 그들은 모든 이미지 결과가 기록될 detection_images라는 새 폴더를 만듭니다. 강사는 CSV 파일 이름과 폴더 경로를 통과한 다음 코드를 테스트하여 결과를 저장하는 방법을 보여줍니다. 그들은 이미지 이름과 번호판을 포함하는 생성된 폴더에 결과를 기록하도록 결과 저장 방법을 설정합니다. 그런 다음 강사는 실시간으로 코드를 실행하여 탐지가 발생하는 동안 결과를 저장하는 방법을 시연합니다. 마지막으로 코드를 테스트하여 결과를 실시간으로 저장하면서 이미지를 정확하게 출력합니다.

  • 01:55:00 이 섹션에서 화자는 시청자에게 OCR 기능이 내장되어 있고 실시간으로 적용된 필터링 알고리즘을 사용할 수 있음을 알립니다. 그는 시청자에게 어려움이 있는 경우 도움을 요청하도록 권장하고 코드를 GitHub에서 사용할 수 있다고 언급합니다. 마지막으로 시청자에게 시청해 주셔서 감사하며 좋아요, 구독, 댓글을 부탁하고 로그아웃합니다.
GitHub - nicknochnack/RealTimeAutomaticNumberPlateRecognition
GitHub - nicknochnack/RealTimeAutomaticNumberPlateRecognition
  • nicknochnack
  • github.com
Contribute to nicknochnack/RealTimeAutomaticNumberPlateRecognition development by creating an account on GitHub.