YOLO Object Detection v2 (MATLAB Tutorial) using Deep Learning!

You Only Look Once-이 딥 러닝 객체 감지 알고리즘은 현재 R-CNN보다 성능이 뛰어난 최신 기술이며 그 변형입니다 몇 가지 다른 물체 감지 알고리즘을 살펴보고 왜 YOLO가 그렇게 잘 작동하는지, 어떻게 자동차를 분류하기 위해 로지스틱 회귀로 자체 YOLO 신경망을 구축 할 수 있을까요? 전체 코드와 패키지 목록은 여기에서 찾을 수 있으며 내 비디오와 함께 코드를 사용하여 30 분 이내에이 YOLO Detector를 작성하는 데 많은 도움이됩니다! https://www

mathworkscom/help/deeplearning/examples/object-detection-using-yolo-v2html Mathworks의 MATLAB r2019a를 사용하고 있습니다 최신 버전의 MATLAB에서이를 복제 할 수 있어야합니다 이 비디오는 Siraj Raval과 그의 YOLO Tensorflow 기술과 튜토리얼에서 영감을 받았습니다

나는 MATLAB을 위해 하나를 만들기로 결정했습니다! 구독하고 좋아요 댓글 어쩌면 공유? 이 중 하나라도 대단히 감사하겠습니다! 그것은 나의 일을 계속하고, 당신들을 위해 AI (인공 지능) 비디오를 계속 만들도록 격려합니다! YOLO 네트워크 Matlab 2019, 딥 러닝 신경 네트워크, CNN, 인공 지능을 만드는 방법 제 이름은 Rishabh Jain이며 오늘 Yolo 버전 2 딥 러닝 비디오에 오신 것을 환영합니다

물체 감지 및 MATLAB 2019 년 오늘 우리는 당신의 세계를 한 번만 살펴볼 것입니다 이 비디오 후에 완성 된 열차 Yolo 감지기를 만들 것입니다 모델이 어떻게 작동하는지 배울 것입니다 다양한 데이터 세트를 다운로드하여 모델을 학습시키고 마지막으로 모델을 감지하여 이 경우 자동차가 될 개체를 설명하십시오 먼저 개요로 Yolo가 무엇인지 살펴 보겠습니다 그런 다음 필요한 다운로드 자동차 이미지가 포함 된 사용 가능한 데이터 세트를로드하는 도구 상자 및 관련 라이브러리 Yolo 감지기를 훈련하고 마지막으로 모델을 평가하고 테스트하여 비디오 내에서 전체 요약을 제공합니다 우선 Yolo가 무엇입니까 Yolo는 한 번만 보이며 여러 단계가 있습니다

이러한 단계는 다음과 같이 먼저 전체 이미지에 신경망을 적용합니다 이미지를 그리드로 나누고 예측과 확률로 상자를 정의하십시오 다음으로 로지스틱 회귀 분석을 사용하여 각 그리드 내의 각 클래스에 대한 확률을 계산합니다 여러 클래스에 대해 서로 다른 회귀 모델을 사용합니다 예를 들어 다른 객체는 하나를 사용합니다 자동차 등을 훈련시키는 로지스틱 회귀 마지막으로 우리는 어떤 상자 또는 미니 그리드 사각형이 더 높은 확률을 갖는지를 결정합니다

로지스틱 회귀 모델을 훈련시키는 객체 또는 클래스는 우리 앞에 모범이 있으면 이해하십시오 예를 들어이 그리드에서 우리는 지구 전체를 볼 수 있으며 지구 내의 모든 국가는 우리가 찾으려고 노력하고 있다고 말합니다 특정 국가 (예 : 미국) 처음에 일어날 일은 먼저이 그리드의 그리드를 상자 전체에 배치하는 것입니다 기본적으로 이미지 전체에 신경망 적용 그럼 우리는 하나의 수업 만 가질 것이고 우리는 단지 예측하려고 노력하기 때문에 미국이라는 것이 있는지 여부 우리는 로지스틱 회귀를 넣을 것이고 우리는 하나의 모델을 가질 것입니다 우리는 미국인 클래스를 하나만 가지고 있으며 우리가 우리에게 가능성을 계산할 것입니다 각 그리드 박스에 있습니다 예를 들어, 왼쪽 상단에 0 0이 있고 그 사실을 알고있을 것입니다 우리를 데려 갈 확률도 05 % 예를 들어 2 3과 같은 상자가있는 동안 멕시코의 일부는 확률이 높을 수 있습니다 어떻게 든 더 가깝고 로지스틱 회귀 모델이 그것을 말할 수 있기 때문에 기본 박스만큼 높지 않기를 바랍니다

2 2에 위치하고 왼쪽은 다양한 이미지에서 신경 네트워크를 훈련시킵니다 예를 들어 훈련시킬 수 있습니다 여러 개의 지구본이 이미지와 같으며 모델에 그리드 선을 그려 확률을 계산할 수 있습니다 각 상자마다 결국, 우리는 어느 박스가 미국을 포함하는지 예측할 수있는 신경망을 보게 될 것입니다 정확하고 좋은 시간에 Yolo를 사용할 때 한 가지만 기억합시다 우리는 실제로 실시간 테스트 및 훈련 절차를 가지고 있습니다 로지스틱 회귀 분석을 사용하고 있기 때문에 상당히 빠른 평가 우리는 일반적으로 필요한만큼의 데이터를 필요로하지 않습니다 로지스틱 회귀 및 데이터 양은 사용중인 클래스에 따라 변경 될 수 있습니다

2 단계로 넘어 갑시다 MATLAB에서 라이브러리 및 도구 상자를 다운로드하는 것은 매우 간단하며 이미 몇 가지가 있어야한다고 가정합니다 전에 기계 학습 또는 딥 러닝 프로젝트를 수행 한 경우 도구 상자 따라서 컴퓨터 비전 툴박스 딥 러닝 툴박스와 병렬 컴퓨팅 툴박스가 필요합니다 선택적으로 네트워크를 직접 훈련시키고 사전 훈련을 필요로하지 않는 경우 작업 속도를 높이고 작업을 좀 더 호환성있게 만드는 NVIDIA GPU 그 외에는 매우 간단합니다 대부분이 이미 설치되어 있어야합니다

이미 딥 러닝 도구 상자가있는 경우 ResNet 50 네트워크에 대한 딥 러닝 툴박스 모델이 있어야합니다 하지만 일단 MATLAB에서 코드를로드하면 그것은 당신에게 경고하고 당신이 잃어버린 것과 우리가 모두 가지고 있기 때문에 지금 당신이 무엇을 필요로하는지 알려 주어야합니다 설치된 모듈 및 라이브러리 사전 훈련 된 검출기 다운로드를 시작하겠습니다 이 예는 사전 훈련 된 감지기를 사용하여 예없이 Train Yolo v2로 감지기를 훈련 시키려면 훈련이 완료 될 때까지 기다려야합니다 코드에서 볼 수 있듯이 객체 감지기 기능은 훈련 훈련 변수를 true로 설정합니다 그렇지 않으면이 코드를 사용하여 사전 훈련 된 검출기를 다운로드하십시오

다음으로 데이터 세트를로드합니다 이 예는 다음을 포함하는 소형 차량 데이터 세트를 사용합니다 각 이미지에 295 개의 이미지에는 하나 또는 두 개의 레이블이있는 차량 인스턴스가 포함되어 있습니다 작은 데이터 세트는 Yolo v2 교육 절차를 탐색하는 데 유용합니다 그러나 실제로 강력한 검출기를 훈련시키기 위해서는 더 많은 라벨링 된 이미지가 필요합니다 훈련 데이터는 테이블에 저장됩니다 첫 번째 열에는 이미지 파일의 경로가 포함되고 나머지 열에는 ROI가 포함됩니다 차량 라벨 다음으로 데이터 세트의 이미지 중 하나를 표시하여 포함 된 이미지 유형을 이해합니다 코드를 사용하여 화면의 오른쪽에 보이는 것처럼이 예제 이미지를 실제로 표시합니다 금후 탐지기를 훈련시키기위한 데이터 세트와 탐지기를 평가하기위한 테스트 세트로 데이터 세트를 분할합니다

교육용 데이터의 60 %를 선택하면 나머지는 평가 용으로 사용됩니다 먼저 이미지 입력 ​​크기와 클래스 수를 지정하십시오 이미지 입력 ​​크기는 훈련 이미지의 이미지 크기보다 커야합니다 이 예에서는 RGB 또는 3 가지 색상이 있으므로 이미지 또는 2 24 x 2 24 x 3 다음으로 앵커 박스의 크기를 지정하겠습니다 다음으로 사전 훈련 된 ResNet 50을로드합니다 피처 레이어를 지정하고 yolo 감지 네트워크 생성 마지막으로 Yolo 물체 탐지기를 훈련시킵니다 아래 설명에서 나머지 코드와 함께이 코드 섹션을 찾을 수 있습니다

화면의 공간이 부족하여 코드를 모두 표시 할 수 없기 때문에 코드의이 부분은 설명에 있습니다 기본적으로 테스트 세트에있는 다양한 이미지가 모두 포함 된 테이블을 만든 다음 실행합니다 각 이미지의 검출기는 평균 정밀도뿐만 아니라 로그 평균 미스율을 계산합니다 그래프를 작성하면 다음과 같은 것을 찾을 수 있습니다 이 예제는 딥 러닝을 사용하여 차량 감지기를 훈련시키는 방법을 보여줍니다

교통 표지판 탐지기를 훈련시키기 위해 비슷한 단계를 따를 수 있습니다 딥 러닝에 대해 더 배우기위한 보행자 또는 기타 대상 아래 설명을 확인하고이 비디오에서 다시 언급 한 다른 코드를 다운로드하거나 배우십시오 설명을 확인하십시오 시청 해주셔서 감사합니다 이 채널을 좋아하고 구독 해주세요 다음에 you겠습니다

Deep Learning Inference for Object Detection on Raspberry Pi

이 비디오는 ARM 프로세서 용 MATLAB에서 숙련 된 심 신경 네트워크의 코드를 생성하는 방법을 보여줍니다 대상 ARM 플랫폼은 ARM Cortex A 제품군과 같은 Neon 명령어 세트 아키텍처를 지원해야합니다

생성 된 코드는 ARM Compute 라이브러리를 활용합니다 특정 ARM 아키텍처에 최적화 된 저수준 소프트웨어 기능 모음 이미지 프로세싱, 컴퓨터 비전 및 기계 학습 애플리케이션을 대상으로합니다 보행자 검출을 심층적 인 학습 응용 프로그램 예제로 간주합니다 및 ARM 타겟으로 라즈베리 파이 3 명령 줄 API를 사용하여 네트워크 코드를 생성 할 수 있습니다

여기에서 생성 된 코드를 간단히 살펴 보겠습니다 우리는 레이어 클래스의 배열을 포함하는 C ++ 클래스를 생성했습니다 우리는 설정, 예측 및 사후 설정 방법을 가지고 있습니다 예측 메소드는 네트워크의 각 레이어에 대한 예측을 호출합니다 postsetup () 함수는 각 계층에 대한 버퍼 할당을 수행합니다

이러한 버퍼는 추론 중에 ARM 계산 라이브러리에서 사용됩니다 cnnbuild_rtw는 생성 된 Makefile입니다 이 메이크 파일을 사용하여 대상에서 응용 프로그램을 빌드 할 것입니다 opencv를 사용하여 비디오 입력 파일을 읽는 주 파일을 작성했습니다 추론을위한 예측 방법을 호출하고 출력을 표시합니다

이 파일을 내 Raspberry Pi에 내보내고 이제 대상에 코드를 작성할 수 있습니다 빌드가 성공하려면 ARM Compute 라이브러리의 경로가 올바르게 설정되었는지 확인하십시오 빌드 프로세스가 완료되면 테스트 비디오로 exe를 시작할 수 있습니다 초당 약 6 프레임의 속도로 라스베리 파이 (Raspberry Pi)에서 실행되는 보행자 감지를위한 신경망을 갖추고 있습니다 각 프레임에서 네트워크가 다른 관심 영역에있는 보행자를 감지하려고한다는 것을 알 수 있습니다 일단 발견되면 보행자를 추적 할 수 있습니다

그러나 그것은 또 다른 주제입니다 심층 학습 응용 프로그램의 코드 생성에 대한 자세한 내용은 비디오 아래의 리소스를 참조하십시오