자동(지능형) 운전 시리즈 |(2) 환경 인식 및 인식(1)

이전 부분에서 일반적인 센서 하드웨어에 대해 이야기한 후 센서의 소프트웨어 측면에 대해 이야기해 보겠습니다.

이 부분은 주로 두 부분으로 나뉩니다: 1. 컴퓨터 비전 및 신경망, 2. 지각 응용(순수 비전 부분)

목차

1. 컴퓨터 비전과 신경망

2. 지각적용(순수시각부분)

2.1 순수한 비주얼 솔루션(YOLO, SSD 등)


1. 컴퓨터 비전과 신경망

컴퓨터 비전(CV)은 모든 사람에게 친숙하며 최근 가장 빠르게 성장하는 과학 중 하나입니다. 그 내용에는 시각적 정보의 획득, 전송, 처리, 저장, 처리 및 이해가 포함됩니다.

이미지의 1차 차분의 최대값에서 에지가 자주 발생하고 2차 차분은 0이지만 노이즈의 영향으로 고주파 노이즈를 제거한 후 처리하는 경우가 많습니다. 우리가 일반적으로 사용하는 이산 신호 차동 필터 컨벌루션 커널은 Robert 연산자, Prewitt 연산자, Sobel 연산자, Laplacian 연산자 등에서 일반적으로 사용됩니다.

분할 작업에는 임계값 기반 분할, 영역 기반 분할, 가장자리 감지 기반 분할, 깊이 모델 기반 분할 등이 있습니다. 여기서는 확장되지 않습니다.

컴퓨터 비전은 양안 및 다안 카메라의 깊이 획득 및 운전자 상태 모니터링, 포인트 클라우드 처리, 교통 참여자 식별, 추적 및 모션 추정, 신호등 감지, 운전 영역과 같은 자율 주행 분야에서 다양한 응용 프로그램을 보유하고 있습니다. 감지, 고화질 매핑 등.

이 섹션에서는 주로 딥러닝에서의 신경망 방법을 소개하는데, 2012년 이미지 분야에서 알렉스넷이 성공을 거둔 이후 합성곱 신경망이 주목을 받게 되었습니다. (convolution과 cross-correlation의 차이는 convolution 커널을 뒤집느냐의 차이일 뿐이므로 convolution도 상관관계를 반영하여 특징을 추출하는 효과가 있다)

이 섹션에서는

활성화 기능 : 공통 활성화 기능(동기 부여 기능) 이해 및 요약

순방향 및 역방향 전파: 신경망의 순방향 및 역방향 전파

손실 함수: 신경망 손실 함수 요약

가장 고전적인 컨볼루션 신경망:

Vgg16(2014): 혁신 포인트는 5*5 또는 심지어 7*7 컨볼루션 커널 대신 3*3 컨볼루션 커널을 사용하여 더 깊은 깊이에 있으며 더 강력한 비선형성을 도입합니다.

GoogleNet: 가장 유명한 것은 인셉션 구조(인셉션은 인셉션 영화의 이름이기도 함)로, 1*1 컨볼루션 커널의 역할, 특징 추출, 차원 축소(필터에 해당하는 채널)를 처음으로 설명했습니다. )는 선형 활성화(ReLU)를 수정하는 데에도 사용되며, 특징 스티칭을 사용하고 기울기 소멸 문제를 극복하는 데 도움이 되는 두 개의 보조 분류기를 추가하여 네트워크를 더 깊게 만듭니다.

ResNet (2015): 기존 네트워크가 DropOut을 사용하고 정규화를 위해 BN을 사용하는 것과는 달리 잔차 구조의 병목 현상을 추가하고 기울기 소실 문제를 완화하는 중요한 네트워크입니다.

DenseNet(2017): 더 이상 네트워크를 심화하고 네트워크 구조를 넓히는 것이 아니라(Inception) 기능 집약적인 단위를 혼합하는 것입니다. 각 레이어의 입력은 이전 레이어의 출력을 접합하는 것입니다. 효과는 좋지만 메모리 요구 사항이 훨씬 높습니다.

SENet: Squeeze 작업을 실수(폭은 채널)로 압축한 다음 여기를 통해 다른 가중치를 생성한 다음 크기를 조정하여 채널에서 원래 기능의 재보정을 완료하고 기능 채널 간의 연결을 설정합니다.

2. 지각적용(순수시각부분)

앞에서 언급했듯이 인식 응용 프로그램은 물체 감지, 주행 가능 영역, 차선, 신호등 감지 등에 있습니다. 이 섹션에서는 주로 딥 러닝 도구를 사용합니다.

2.1 순수한 비주얼 솔루션(YOLO, SSD 등)

RCNN에서 제안한 Region Proposal로 인해 후보 영역을 추출한 후 후보 영역에 대해 특징 추출을 수행하고 간단한 AlexNet을 사용하여 미세 조정 특징 학습을 수행하고 최종적으로 SVM(SVM)을 통해 결과를 출력합니다. 전통적인 2단계 방법인 softmax보다 낫습니다. 단점은 느리고 실시간으로 처리할 수 없다는 것입니다. 배포 이유는 일반적으로 실시간으로 처리할 수 있어야 하기 때문에 여기서는 두 개의 클래식 1단계 네트워크만 공유됩니다.

먼저 2016년에 출시된 YOLOv1에 대해 이야기해보자.전형적인 1단계 알고리즘으로, 대상의 탐지 문제를 회귀 문제로 변환하는 탐지와 훈련의 두 부분으로 나뉜다.

 입력된 이미지는 먼저 크기를 조정하고 s*s개의 그리드 셀로 분할한 후 신경망을 통과하여 객체 유형의 bbox의 배열을 획득하고 NMS를 통해 총 확률이 가장 높은 검출 결과만 표시합니다. (각 그리드 셀에 대해 n bbox만 결정됨)

 결과 예측을 위한 일반적인 평가 지표는 Pascal VOC(20개 범주) 및 COCO(80개 범주)에 따라 다릅니다.

네트워크 설계는 다음과 같습니다.

 첫 번째는 이미지를 448*488로 크기 조정하는 것입니다. 여기에는 24개 레이어의 컨볼루션 특징 추출 레이어와 2개 레이어의 FC 레이어가 포함되며 마지막으로 7*7*30 텐서를 얻기 위해 돌아갑니다.

그 중 7*7은 격자 셀에 해당하는 크기이고 30에 포함된 정보는 다음과 같습니다. bbox. 또한 20개의 목표 대응 조건부 확률이 있습니다. 여기서 그리드 셀은 두 개의 bbox만 생성하므로 총 5*2+20=30 차원이 있습니다.

그래서 논문에서와 같이 7*7 그리드 셀로 나누면 7*7*30의 출력이 생성됩니다. 그리고 각 7*7에 대해 NMS(출력의 왼쪽에서 본)를 사용하여 각 그리드에서 가장 가능성 있는 결과를 추출합니다.

손실 함수는 다음과 같이 정의됩니다.

 첫 번째 항목은 음수 검출 bbox 중심점(x, y) 오류이고, 두 번째 항목은 검출 너비 및 높이(w, h) 위치 오류이며, 루트 기호를 추가한 이유는 작은 상자를 민감하게 만들기 위한 것이며, 세 번째와 네 번째 항목은 회귀 신뢰도 오류를 양성 샘플과 음성 샘플로 구분하여 객체 감지를 담당하는 bbox와 객체 감지를 담당하지 않는 bbox를 나타내며, 다섯 번째 항목은 객체 감지의 그리드 셀 분류 오류를 나타냅니다.

 RCNN과 비교할 때 YOLO가 가장 확실히 빠릅니다.RCNN과 비교할 때 특정 관심 영역을 추출하는 대신 모든 이미지 영역을 통과하므로 마이그레이션 능력이 매우 우수하지만 각 프레임은 한 종류의 객체만 감지할 수 있기 때문에 for 작고 조밀한 물체의 효과는 매우 좋지 않을 것입니다.위 그림에서도 모든 이미지를 순회하기 때문에 배경에 대한 YOLO의 오류율이 RCNN보다 훨씬 낫다는 것을 알 수 있습니다.

 YOLO와 Fast-RCNN은 매우 좋은 결과를 얻었다.

YOLO는 원작자 밑에서 2가지 버전을 반복했습니다. 군사 모니터링 및 기타 목적으로 사용할 의사가 없기 때문에 업데이트되지 않습니다. 현재 YOLO는 7번째 버전(주장)으로 반복되었으며 현재 v5 버전이 있습니다. 비교적 완전한 것으로 인정됩니다.

v6 버전은 최근 Meituan에서 출시되었습니다. 관심이 있으시면 제 기사를 확인하세요.

[전체 네트워크에서 가장 상세한 yolov6] yoloV6 디버깅 기록(자신의 데이터 세트 훈련 및 일반적인 오류 보고서 및 솔루션 포함)-지속적으로 업데이트되고 자신의 데이터 세트 훈련, 프로젝트가 방금 출시되었으며 더 많은 버그가 있을 것입니다. , 조정이 일반적으로 원활하지 않습니다. 이 문서에는 windows+ubuntu가 포함되어 있으며 몇 가지 일반적인 문제와 솔루션을 제공합니다. 카탈로그 1. 프로젝트 소개 2. 주의 및 권장 사항 3. 프로젝트 구성(COCO 데이터 세트 구성 포함) 4. 교육 자체 데이터: 5. 피트 및 솔루션에 대한 단계: 6. Meituan에서 최근 출시한 자체 훈련 시도 및 팁(참조용)은 다음과 같은 효과를 달성한다고 주장합니다. 그 중 YOLOv6-nano는 COCO val2017에서 35.0 mAP에 도달했습니다. 데이터 세트... https://blog.csdn.net/m0_46611008/article/details/125491850?spm=1001.2014.3001.5501

다음으로 SSD 알고리즘(Single SHOT Multibox Detection)을 소개합니다.

YOLO와 달리 SSD는 각각의 컨볼루션에서 얻은 특징 맵을 감지하고 최종적으로 컨볼루션 레이어를 사용하여 감지하고 서로 다른 스케일의 후보 프레임을 사용합니다. 아래 그림은 다양한 축척의 기능 맵을 보여줍니다. 작은 고양이는 더 미세한 그리드 셀을 사용하고 큰 개는 크기 관계가 있는 더 큰 그리드 셀을 사용합니다. (VOC에 대한 신뢰도는 21가지로 배경이 추가되어 있다는 점 참고)

 잘라낸 vgg16 백본을 사용하여 입력을 300*300으로 확장해야 합니다. 1*1 컨볼루션 레이어와 3*3 컨볼루션 레이어 사용.

 다음 흐름이 더 명확해집니다.

다양한 피처 레이어의 기본 상자 크기 및 측면:

 8732개의 기본 상자가 생성됩니다.

손실 함수:

 두 번째 포지셔닝 손실의 손실(Faster RCNN과 동일):

첫 번째 항목의 신뢰도 손실은 다중 범주 소프트맥스 손실입니다.

 PASCAL VOC2017 테스트 세트에 대한 결과:

 SSD 성능이 더 좋은 이유는 작성자가 제어 변수로 테스트한 내용입니다.

 데이터 확대가 가장 중요한 영향 지표임을 알 수 있습니다.

속도 테스트: ( Intel Xeon [email protected]에서 Titan X 및 cuDNN v4를 사용한 배치 크기 8. )

추천

출처blog.csdn.net/m0_46611008/article/details/125693666